Linux websever 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64
Apache/2.4.52 (Ubuntu)
: 192.168.3.70 | : 192.168.1.99
Cant Read [ /etc/named.conf ]
8.1.2-1ubuntu2.23
urlab
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
var /
www /
html /
orco /
cesium_assets /
[ HOME SHELL ]
Name
Size
Permission
Action
Assets
[ DIR ]
drwxr-xr-x
ThirdParty
[ DIR ]
drwxr-xr-x
Widgets
[ DIR ]
drwxr-xr-x
Workers
[ DIR ]
drwxr-xr-x
Cesium.js
4.83
MB
-rw-r--r--
index.cjs
3.8
MB
-rw-r--r--
index.js
3.75
MB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : index.cjs
/** * @license * Cesium - https://github.com/CesiumGS/cesium * Version 1.118.1 * * Copyright 2011-2022 Cesium Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Columbus View (Pat. Pend.) * * Portions licensed separately. * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. */ var SCe=Object.create;var Dk=Object.defineProperty;var vCe=Object.getOwnPropertyDescriptor;var wCe=Object.getOwnPropertyNames;var DCe=Object.getPrototypeOf,PCe=Object.prototype.hasOwnProperty;var ICe=(e,t)=>()=>(e&&(t=e(e=0)),t);var Yn=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),rQ=(e,t)=>{for(var n in t)Dk(e,n,{get:t[n],enumerable:!0})},sQ=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of wCe(t))!PCe.call(e,o)&&o!==n&&Dk(e,o,{get:()=>t[o],enumerable:!(i=vCe(t,o))||i.enumerable});return e};var wo=(e,t,n)=>(n=e!=null?SCe(DCe(e)):{},sQ(t||!e||!e.__esModule?Dk(n,"default",{value:e,enumerable:!0}):n,e)),Wh=e=>sQ(Dk({},"__esModule",{value:!0}),e);var Pk=Yn((sSt,cQ)=>{var up=function(e){e==null&&(e=new Date().getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,e.constructor==Array?this.init_by_array(e,e.length):this.init_seed(e)};up.prototype.init_seed=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(((e&4294901760)>>>16)*1812433253<<16)+(e&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0}};up.prototype.init_by_array=function(e,t){var n,i,o;for(this.init_seed(19650218),n=1,i=0,o=this.N>t?this.N:t;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1664525<<16)+(r&65535)*1664525)+e[i]+i,this.mt[n]>>>=0,n++,i++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1),i>=t&&(i=0)}for(o=this.N-1;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1566083941<<16)+(r&65535)*1566083941)-n,this.mt[n]>>>=0,n++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1)}this.mt[0]=2147483648};up.prototype.random_int=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_seed(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[e&1];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[e&1];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[e&1],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0};up.prototype.random_int31=function(){return this.random_int()>>>1};up.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};up.prototype.random=function(){return this.random_int()*(1/4294967296)};up.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};up.prototype.random_long=function(){var e=this.random_int()>>>5,t=this.random_int()>>>6;return(e*67108864+t)*(1/9007199254740992)};cQ.exports=up});var TQ=Yn((RA,OA)=>{/*! https://mths.be/punycode v1.4.0 by @mathias */(function(e){var t=typeof RA=="object"&&RA&&!RA.nodeType&&RA,n=typeof OA=="object"&&OA&&!OA.nodeType&&OA,i=typeof global=="object"&&global;(i.global===i||i.window===i||i.self===i)&&(e=i);var o,r=2147483647,s=36,a=1,c=26,u=38,f=700,d=72,p=128,g="-",m=/^xn--/,x=/[^\x20-\x7E]/,b=/[\x2E\u3002\uFF0E\uFF61]/g,T={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},C=s-a,A=Math.floor,E=String.fromCharCode,v;function D(V){throw new RangeError(T[V])}function O(V,G){for(var k=V.length,Y=[];k--;)Y[k]=G(V[k]);return Y}function I(V,G){var k=V.split("@"),Y="";k.length>1&&(Y=k[0]+"@",V=k[1]),V=V.replace(b,".");var W=V.split("."),Q=O(W,G).join(".");return Y+Q}function L(V){for(var G=[],k=0,Y=V.length,W,Q;k<Y;)W=V.charCodeAt(k++),W>=55296&&W<=56319&&k<Y?(Q=V.charCodeAt(k++),(Q&64512)==56320?G.push(((W&1023)<<10)+(Q&1023)+65536):(G.push(W),k--)):G.push(W);return G}function N(V){return O(V,function(G){var k="";return G>65535&&(G-=65536,k+=E(G>>>10&1023|55296),G=56320|G&1023),k+=E(G),k}).join("")}function _(V){return V-48<10?V-22:V-65<26?V-65:V-97<26?V-97:s}function S(V,G){return V+22+75*(V<26)-((G!=0)<<5)}function w(V,G,k){var Y=0;for(V=k?A(V/f):V>>1,V+=A(V/G);V>C*c>>1;Y+=s)V=A(V/C);return A(Y+(C+1)*V/(V+u))}function P(V){var G=[],k=V.length,Y,W=0,Q=p,j=d,K,Z,he,be,re,_e,xe,Ce,we;for(K=V.lastIndexOf(g),K<0&&(K=0),Z=0;Z<K;++Z)V.charCodeAt(Z)>=128&&D("not-basic"),G.push(V.charCodeAt(Z));for(he=K>0?K+1:0;he<k;){for(be=W,re=1,_e=s;he>=k&&D("invalid-input"),xe=_(V.charCodeAt(he++)),(xe>=s||xe>A((r-W)/re))&&D("overflow"),W+=xe*re,Ce=_e<=j?a:_e>=j+c?c:_e-j,!(xe<Ce);_e+=s)we=s-Ce,re>A(r/we)&&D("overflow"),re*=we;Y=G.length+1,j=w(W-be,Y,be==0),A(W/Y)>r-Q&&D("overflow"),Q+=A(W/Y),W%=Y,G.splice(W++,0,Q)}return N(G)}function M(V){var G,k,Y,W,Q,j,K,Z,he,be,re,_e=[],xe,Ce,we,Oe;for(V=L(V),xe=V.length,G=p,k=0,Q=d,j=0;j<xe;++j)re=V[j],re<128&&_e.push(E(re));for(Y=W=_e.length,W&&_e.push(g);Y<xe;){for(K=r,j=0;j<xe;++j)re=V[j],re>=G&&re<K&&(K=re);for(Ce=Y+1,K-G>A((r-k)/Ce)&&D("overflow"),k+=(K-G)*Ce,G=K,j=0;j<xe;++j)if(re=V[j],re<G&&++k>r&&D("overflow"),re==G){for(Z=k,he=s;be=he<=Q?a:he>=Q+c?c:he-Q,!(Z<be);he+=s)Oe=Z-be,we=s-be,_e.push(E(S(be+Oe%we,0))),Z=A(Oe/we);_e.push(E(S(Z,0))),Q=w(k,Ce,Y==W),k=0,++Y}++k,++G}return _e.join("")}function B(V){return I(V,function(G){return m.test(G)?P(G.slice(4).toLowerCase()):G})}function U(V){return I(V,function(G){return x.test(G)?"xn--"+M(G):G})}if(o={version:"1.3.2",ucs2:{decode:L,encode:N},decode:P,encode:M,toASCII:U,toUnicode:B},typeof define=="function"&&typeof define.amd=="object"&&define.amd)define("punycode",function(){return o});else if(t&&n)if(OA.exports==t)n.exports=o;else for(v in o)o.hasOwnProperty(v)&&(t[v]=o[v]);else e.punycode=o})(RA)});var CQ=Yn((AQ,kk)=>{/*! * URI.js - Mutating URLs * IPv6 Support * * Version: 1.19.11 * * Author: Rodney Rehm * Web: http://medialize.github.io/URI.js/ * * Licensed under * MIT License http://www.opensource.org/licenses/mit-license * */(function(e,t){"use strict";typeof kk=="object"&&kk.exports?kk.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(AQ,function(e){"use strict";var t=e&&e.IPv6;function n(o){var r=o.toLowerCase(),s=r.split(":"),a=s.length,c=8;s[0]===""&&s[1]===""&&s[2]===""?(s.shift(),s.shift()):s[0]===""&&s[1]===""?s.shift():s[a-1]===""&&s[a-2]===""&&s.pop(),a=s.length,s[a-1].indexOf(".")!==-1&&(c=7);var u;for(u=0;u<a&&s[u]!=="";u++);if(u<c)for(s.splice(u,1,"0000");s.length<c;)s.splice(u,0,"0000");for(var f,d=0;d<c;d++){f=s[d].split("");for(var p=0;p<3&&(f[0]==="0"&&f.length>1);p++)f.splice(0,1);s[d]=f.join("")}var g=-1,m=0,x=0,b=-1,T=!1;for(d=0;d<c;d++)T?s[d]==="0"?x+=1:(T=!1,x>m&&(g=b,m=x)):s[d]==="0"&&(T=!0,b=d,x=1);x>m&&(g=b,m=x),m>1&&s.splice(g,m,""),a=s.length;var C="";for(s[0]===""&&(C=":"),d=0;d<a&&(C+=s[d],d!==a-1);d++)C+=":";return s[a-1]===""&&(C+=":"),C}function i(){return e.IPv6===this&&(e.IPv6=t),this}return{best:n,noConflict:i}})});var SQ=Yn((EQ,Vk)=>{/*! * URI.js - Mutating URLs * Second Level Domain (SLD) Support * * Version: 1.19.11 * * Author: Rodney Rehm * Web: http://medialize.github.io/URI.js/ * * Licensed under * MIT License http://www.opensource.org/licenses/mit-license * */(function(e,t){"use strict";typeof Vk=="object"&&Vk.exports?Vk.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(EQ,function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(r+1,o)+" ")>=0:!1},is:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r>=0)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(0,o)+" ")>=0:!1},get:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return null;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return null;var s=n.list[i.slice(o+1)];return!s||s.indexOf(" "+i.slice(r+1,o)+" ")<0?null:i.slice(r+1)},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n})});var au=Yn((vQ,Uk)=>{/*! * URI.js - Mutating URLs * * Version: 1.19.11 * * Author: Rodney Rehm * Web: http://medialize.github.io/URI.js/ * * Licensed under * MIT License http://www.opensource.org/licenses/mit-license * */(function(e,t){"use strict";typeof Uk=="object"&&Uk.exports?Uk.exports=t(TQ(),CQ(),SQ()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})(vQ,function(e,t,n,i){"use strict";var o=i&&i.URI;function r(S,w){var P=arguments.length>=1,M=arguments.length>=2;if(!(this instanceof r))return P?M?new r(S,w):new r(S):new r;if(S===void 0){if(P)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?S=location.href+"":S=""}if(S===null&&P)throw new TypeError("null is not a valid argument for URI");return this.href(S),w!==void 0?this.absoluteTo(w):this}function s(S){return/^[0-9]+$/.test(S)}r.version="1.19.11";var a=r.prototype,c=Object.prototype.hasOwnProperty;function u(S){return S.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function f(S){return S===void 0?"Undefined":String(Object.prototype.toString.call(S)).slice(8,-1)}function d(S){return f(S)==="Array"}function p(S,w){var P={},M,B;if(f(w)==="RegExp")P=null;else if(d(w))for(M=0,B=w.length;M<B;M++)P[w[M]]=!0;else P[w]=!0;for(M=0,B=S.length;M<B;M++){var U=P&&P[S[M]]!==void 0||!P&&w.test(S[M]);U&&(S.splice(M,1),B--,M--)}return S}function g(S,w){var P,M;if(d(w)){for(P=0,M=w.length;P<M;P++)if(!g(S,w[P]))return!1;return!0}var B=f(w);for(P=0,M=S.length;P<M;P++)if(B==="RegExp"){if(typeof S[P]=="string"&&S[P].match(w))return!0}else if(S[P]===w)return!0;return!1}function m(S,w){if(!d(S)||!d(w)||S.length!==w.length)return!1;S.sort(),w.sort();for(var P=0,M=S.length;P<M;P++)if(S[P]!==w[P])return!1;return!0}function x(S){var w=/^\/+|\/+$/g;return S.replace(w,"")}r._parts=function(){return{protocol:null,username:null,password:null,hostname:null,urn:null,port:null,path:null,query:null,fragment:null,preventInvalidHostname:r.preventInvalidHostname,duplicateQueryParameters:r.duplicateQueryParameters,escapeQuerySpace:r.escapeQuerySpace}},r.preventInvalidHostname=!1,r.duplicateQueryParameters=!1,r.escapeQuerySpace=!0,r.protocol_expression=/^[a-z][a-z0-9.+-]*$/i,r.idn_expression=/[^a-z0-9\._-]/i,r.punycode_expression=/(xn--)/i,r.ip4_expression=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,r.ip6_expression=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,r.find_uri_expression=/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig,r.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},r.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,r.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,r.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},r.hostProtocols=["http","https"],r.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,r.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},r.getDomAttribute=function(S){if(!(!S||!S.nodeName)){var w=S.nodeName.toLowerCase();if(!(w==="input"&&S.type!=="image"))return r.domAttributes[w]}};function b(S){return escape(S)}function T(S){return encodeURIComponent(S).replace(/[!'()*]/g,b).replace(/\*/g,"%2A")}r.encode=T,r.decode=decodeURIComponent,r.iso8859=function(){r.encode=escape,r.decode=unescape},r.unicode=function(){r.encode=T,r.decode=decodeURIComponent},r.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},r.encodeQuery=function(S,w){var P=r.encode(S+"");return w===void 0&&(w=r.escapeQuerySpace),w?P.replace(/%20/g,"+"):P},r.decodeQuery=function(S,w){S+="",w===void 0&&(w=r.escapeQuerySpace);try{return r.decode(w?S.replace(/\+/g,"%20"):S)}catch{return S}};var C={encode:"encode",decode:"decode"},A,E=function(S,w){return function(P){try{return r[w](P+"").replace(r.characters[S][w].expression,function(M){return r.characters[S][w].map[M]})}catch{return P}}};for(A in C)r[A+"PathSegment"]=E("pathname",C[A]),r[A+"UrnPathSegment"]=E("urnpath",C[A]);var v=function(S,w,P){return function(M){var B;P?B=function(k){return r[w](r[P](k))}:B=r[w];for(var U=(M+"").split(S),V=0,G=U.length;V<G;V++)U[V]=B(U[V]);return U.join(S)}};r.decodePath=v("/","decodePathSegment"),r.decodeUrnPath=v(":","decodeUrnPathSegment"),r.recodePath=v("/","encodePathSegment","decode"),r.recodeUrnPath=v(":","encodeUrnPathSegment","decode"),r.encodeReserved=E("reserved","encode"),r.parse=function(S,w){var P;return w||(w={preventInvalidHostname:r.preventInvalidHostname}),S=S.replace(r.leading_whitespace_expression,""),S=S.replace(r.ascii_tab_whitespace,""),P=S.indexOf("#"),P>-1&&(w.fragment=S.substring(P+1)||null,S=S.substring(0,P)),P=S.indexOf("?"),P>-1&&(w.query=S.substring(P+1)||null,S=S.substring(0,P)),S=S.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),S=S.replace(/^[/\\]{2,}/i,"//"),S.substring(0,2)==="//"?(w.protocol=null,S=S.substring(2),S=r.parseAuthority(S,w)):(P=S.indexOf(":"),P>-1&&(w.protocol=S.substring(0,P)||null,w.protocol&&!w.protocol.match(r.protocol_expression)?w.protocol=void 0:S.substring(P+1,P+3).replace(/\\/g,"/")==="//"?(S=S.substring(P+3),S=r.parseAuthority(S,w)):(S=S.substring(P+1),w.urn=!0))),w.path=S,w},r.parseHost=function(S,w){S||(S=""),S=S.replace(/\\/g,"/");var P=S.indexOf("/"),M,B;if(P===-1&&(P=S.length),S.charAt(0)==="[")M=S.indexOf("]"),w.hostname=S.substring(1,M)||null,w.port=S.substring(M+2,P)||null,w.port==="/"&&(w.port=null);else{var U=S.indexOf(":"),V=S.indexOf("/"),G=S.indexOf(":",U+1);G!==-1&&(V===-1||G<V)?(w.hostname=S.substring(0,P)||null,w.port=null):(B=S.substring(0,P).split(":"),w.hostname=B[0]||null,w.port=B[1]||null)}return w.hostname&&S.substring(P).charAt(0)!=="/"&&(P++,S="/"+S),w.preventInvalidHostname&&r.ensureValidHostname(w.hostname,w.protocol),w.port&&r.ensureValidPort(w.port),S.substring(P)||"/"},r.parseAuthority=function(S,w){return S=r.parseUserinfo(S,w),r.parseHost(S,w)},r.parseUserinfo=function(S,w){var P=S,M=S.indexOf("\\");M!==-1&&(S=S.replace(/\\/g,"/"));var B=S.indexOf("/"),U=S.lastIndexOf("@",B>-1?B:S.length-1),V;return U>-1&&(B===-1||U<B)?(V=S.substring(0,U).split(":"),w.username=V[0]?r.decode(V[0]):null,V.shift(),w.password=V[0]?r.decode(V.join(":")):null,S=P.substring(U+1)):(w.username=null,w.password=null),S},r.parseQuery=function(S,w){if(!S)return{};if(S=S.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,""),!S)return{};for(var P={},M=S.split("&"),B=M.length,U,V,G,k=0;k<B;k++)U=M[k].split("="),V=r.decodeQuery(U.shift(),w),G=U.length?r.decodeQuery(U.join("="),w):null,V!=="__proto__"&&(c.call(P,V)?((typeof P[V]=="string"||P[V]===null)&&(P[V]=[P[V]]),P[V].push(G)):P[V]=G);return P},r.build=function(S){var w="",P=!1;return S.protocol&&(w+=S.protocol+":"),!S.urn&&(w||S.hostname)&&(w+="//",P=!0),w+=r.buildAuthority(S)||"",typeof S.path=="string"&&(S.path.charAt(0)!=="/"&&P&&(w+="/"),w+=S.path),typeof S.query=="string"&&S.query&&(w+="?"+S.query),typeof S.fragment=="string"&&S.fragment&&(w+="#"+S.fragment),w},r.buildHost=function(S){var w="";if(S.hostname)r.ip6_expression.test(S.hostname)?w+="["+S.hostname+"]":w+=S.hostname;else return"";return S.port&&(w+=":"+S.port),w},r.buildAuthority=function(S){return r.buildUserinfo(S)+r.buildHost(S)},r.buildUserinfo=function(S){var w="";return S.username&&(w+=r.encode(S.username)),S.password&&(w+=":"+r.encode(S.password)),w&&(w+="@"),w},r.buildQuery=function(S,w,P){var M="",B,U,V,G;for(U in S)if(U!=="__proto__"&&c.call(S,U))if(d(S[U]))for(B={},V=0,G=S[U].length;V<G;V++)S[U][V]!==void 0&&B[S[U][V]+""]===void 0&&(M+="&"+r.buildQueryParameter(U,S[U][V],P),w!==!0&&(B[S[U][V]+""]=!0));else S[U]!==void 0&&(M+="&"+r.buildQueryParameter(U,S[U],P));return M.substring(1)},r.buildQueryParameter=function(S,w,P){return r.encodeQuery(S,P)+(w!==null?"="+r.encodeQuery(w,P):"")},r.addQuery=function(S,w,P){if(typeof w=="object")for(var M in w)c.call(w,M)&&r.addQuery(S,M,w[M]);else if(typeof w=="string"){if(S[w]===void 0){S[w]=P;return}else typeof S[w]=="string"&&(S[w]=[S[w]]);d(P)||(P=[P]),S[w]=(S[w]||[]).concat(P)}else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter")},r.setQuery=function(S,w,P){if(typeof w=="object")for(var M in w)c.call(w,M)&&r.setQuery(S,M,w[M]);else if(typeof w=="string")S[w]=P===void 0?null:P;else throw new TypeError("URI.setQuery() accepts an object, string as the name parameter")},r.removeQuery=function(S,w,P){var M,B,U;if(d(w))for(M=0,B=w.length;M<B;M++)S[w[M]]=void 0;else if(f(w)==="RegExp")for(U in S)w.test(U)&&(S[U]=void 0);else if(typeof w=="object")for(U in w)c.call(w,U)&&r.removeQuery(S,U,w[U]);else if(typeof w=="string")P!==void 0?f(P)==="RegExp"?!d(S[w])&&P.test(S[w])?S[w]=void 0:S[w]=p(S[w],P):S[w]===String(P)&&(!d(P)||P.length===1)?S[w]=void 0:d(S[w])&&(S[w]=p(S[w],P)):S[w]=void 0;else throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter")},r.hasQuery=function(S,w,P,M){switch(f(w)){case"String":break;case"RegExp":for(var B in S)if(c.call(S,B)&&w.test(B)&&(P===void 0||r.hasQuery(S,B,P)))return!0;return!1;case"Object":for(var U in w)if(c.call(w,U)&&!r.hasQuery(S,U,w[U]))return!1;return!0;default:throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter")}switch(f(P)){case"Undefined":return w in S;case"Boolean":var V=!!(d(S[w])?S[w].length:S[w]);return P===V;case"Function":return!!P(S[w],w,S);case"Array":if(!d(S[w]))return!1;var G=M?g:m;return G(S[w],P);case"RegExp":return d(S[w])?M?g(S[w],P):!1:!!(S[w]&&S[w].match(P));case"Number":P=String(P);case"String":return d(S[w])?M?g(S[w],P):!1:S[w]===P;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter")}},r.joinPaths=function(){for(var S=[],w=[],P=0,M=0;M<arguments.length;M++){var B=new r(arguments[M]);S.push(B);for(var U=B.segment(),V=0;V<U.length;V++)typeof U[V]=="string"&&w.push(U[V]),U[V]&&P++}if(!w.length||!P)return new r("");var G=new r("").segment(w);return(S[0].path()===""||S[0].path().slice(0,1)==="/")&&G.path("/"+G.path()),G.normalize()},r.commonPath=function(S,w){var P=Math.min(S.length,w.length),M;for(M=0;M<P;M++)if(S.charAt(M)!==w.charAt(M)){M--;break}return M<1?S.charAt(0)===w.charAt(0)&&S.charAt(0)==="/"?"/":"":((S.charAt(M)!=="/"||w.charAt(M)!=="/")&&(M=S.substring(0,M).lastIndexOf("/")),S.substring(0,M+1))},r.withinString=function(S,w,P){P||(P={});var M=P.start||r.findUri.start,B=P.end||r.findUri.end,U=P.trim||r.findUri.trim,V=P.parens||r.findUri.parens,G=/[a-z0-9-]=["']?$/i;for(M.lastIndex=0;;){var k=M.exec(S);if(!k)break;var Y=k.index;if(P.ignoreHtml){var W=S.slice(Math.max(Y-3,0),Y);if(W&&G.test(W))continue}for(var Q=Y+S.slice(Y).search(B),j=S.slice(Y,Q),K=-1;;){var Z=V.exec(j);if(!Z)break;var he=Z.index+Z[0].length;K=Math.max(K,he)}if(K>-1?j=j.slice(0,K)+j.slice(K).replace(U,""):j=j.replace(U,""),!(j.length<=k[0].length)&&!(P.ignore&&P.ignore.test(j))){Q=Y+j.length;var be=w(j,Y,Q,S);if(be===void 0){M.lastIndex=Q;continue}be=String(be),S=S.slice(0,Y)+be+S.slice(Q),M.lastIndex=Y+be.length}}return M.lastIndex=0,S},r.ensureValidHostname=function(S,w){var P=!!S,M=!!w,B=!1;if(M&&(B=g(r.hostProtocols,w)),B&&!P)throw new TypeError("Hostname cannot be empty, if protocol is "+w);if(S&&S.match(r.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(S).match(r.invalid_hostname_characters))throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-:_]')}},r.ensureValidPort=function(S){if(S){var w=Number(S);if(!(s(w)&&w>0&&w<65536))throw new TypeError('Port "'+S+'" is not a valid port')}},r.noConflict=function(S){if(S){var w={URI:this.noConflict()};return i.URITemplate&&typeof i.URITemplate.noConflict=="function"&&(w.URITemplate=i.URITemplate.noConflict()),i.IPv6&&typeof i.IPv6.noConflict=="function"&&(w.IPv6=i.IPv6.noConflict()),i.SecondLevelDomains&&typeof i.SecondLevelDomains.noConflict=="function"&&(w.SecondLevelDomains=i.SecondLevelDomains.noConflict()),w}else i.URI===this&&(i.URI=o);return this},a.build=function(S){return S===!0?this._deferred_build=!0:(S===void 0||this._deferred_build)&&(this._string=r.build(this._parts),this._deferred_build=!1),this},a.clone=function(){return new r(this)},a.valueOf=a.toString=function(){return this.build(!1)._string};function D(S){return function(w,P){return w===void 0?this._parts[S]||"":(this._parts[S]=w||null,this.build(!P),this)}}function O(S,w){return function(P,M){return P===void 0?this._parts[S]||"":(P!==null&&(P=P+"",P.charAt(0)===w&&(P=P.substring(1))),this._parts[S]=P,this.build(!M),this)}}a.protocol=D("protocol"),a.username=D("username"),a.password=D("password"),a.hostname=D("hostname"),a.port=D("port"),a.query=O("query","?"),a.fragment=O("fragment","#"),a.search=function(S,w){var P=this.query(S,w);return typeof P=="string"&&P.length?"?"+P:P},a.hash=function(S,w){var P=this.fragment(S,w);return typeof P=="string"&&P.length?"#"+P:P},a.pathname=function(S,w){if(S===void 0||S===!0){var P=this._parts.path||(this._parts.hostname?"/":"");return S?(this._parts.urn?r.decodeUrnPath:r.decodePath)(P):P}else return this._parts.urn?this._parts.path=S?r.recodeUrnPath(S):"":this._parts.path=S?r.recodePath(S):"/",this.build(!w),this},a.path=a.pathname,a.href=function(S,w){var P;if(S===void 0)return this.toString();this._string="",this._parts=r._parts();var M=S instanceof r,B=typeof S=="object"&&(S.hostname||S.path||S.pathname);if(S.nodeName){var U=r.getDomAttribute(S);S=S[U]||"",B=!1}if(!M&&B&&S.pathname!==void 0&&(S=S.toString()),typeof S=="string"||S instanceof String)this._parts=r.parse(String(S),this._parts);else if(M||B){var V=M?S._parts:S;for(P in V)P!=="query"&&c.call(this._parts,P)&&(this._parts[P]=V[P]);V.query&&this.query(V.query,!1)}else throw new TypeError("invalid input");return this.build(!w),this},a.is=function(S){var w=!1,P=!1,M=!1,B=!1,U=!1,V=!1,G=!1,k=!this._parts.urn;switch(this._parts.hostname&&(k=!1,P=r.ip4_expression.test(this._parts.hostname),M=r.ip6_expression.test(this._parts.hostname),w=P||M,B=!w,U=B&&n&&n.has(this._parts.hostname),V=B&&r.idn_expression.test(this._parts.hostname),G=B&&r.punycode_expression.test(this._parts.hostname)),S.toLowerCase()){case"relative":return k;case"absolute":return!k;case"domain":case"name":return B;case"sld":return U;case"ip":return w;case"ip4":case"ipv4":case"inet4":return P;case"ip6":case"ipv6":case"inet6":return M;case"idn":return V;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return G}return null};var I=a.protocol,L=a.port,N=a.hostname;a.protocol=function(S,w){if(S&&(S=S.replace(/:(\/\/)?$/,""),!S.match(r.protocol_expression)))throw new TypeError('Protocol "'+S+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return I.call(this,S,w)},a.scheme=a.protocol,a.port=function(S,w){return this._parts.urn?S===void 0?"":this:(S!==void 0&&(S===0&&(S=null),S&&(S+="",S.charAt(0)===":"&&(S=S.substring(1)),r.ensureValidPort(S))),L.call(this,S,w))},a.hostname=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S!==void 0){var P={preventInvalidHostname:this._parts.preventInvalidHostname},M=r.parseHost(S,P);if(M!=="/")throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-]');S=P.hostname,this._parts.preventInvalidHostname&&r.ensureValidHostname(S,this._parts.protocol)}return N.call(this,S,w)},a.origin=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0){var P=this.protocol(),M=this.authority();return M?(P?P+"://":"")+this.authority():""}else{var B=r(S);return this.protocol(B.protocol()).authority(B.authority()).build(!w),this}},a.host=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0)return this._parts.hostname?r.buildHost(this._parts):"";var P=r.parseHost(S,this._parts);if(P!=="/")throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.authority=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0)return this._parts.hostname?r.buildAuthority(this._parts):"";var P=r.parseAuthority(S,this._parts);if(P!=="/")throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.userinfo=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0){var P=r.buildUserinfo(this._parts);return P&&P.substring(0,P.length-1)}else return S[S.length-1]!=="@"&&(S+="@"),r.parseUserinfo(S,this._parts),this.build(!w),this},a.resource=function(S,w){var P;return S===void 0?this.path()+this.search()+this.hash():(P=r.parse(S),this._parts.path=P.path,this._parts.query=P.query,this._parts.fragment=P.fragment,this.build(!w),this)},a.subdomain=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0){if(!this._parts.hostname||this.is("IP"))return"";var P=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,P)||""}else{var M=this._parts.hostname.length-this.domain().length,B=this._parts.hostname.substring(0,M),U=new RegExp("^"+u(B));if(S&&S.charAt(S.length-1)!=="."&&(S+="."),S.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return S&&r.ensureValidHostname(S,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(U,S),this.build(!w),this}},a.domain=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(typeof S=="boolean"&&(w=S,S=void 0),S===void 0){if(!this._parts.hostname||this.is("IP"))return"";var P=this._parts.hostname.match(/\./g);if(P&&P.length<2)return this._parts.hostname;var M=this._parts.hostname.length-this.tld(w).length-1;return M=this._parts.hostname.lastIndexOf(".",M-1)+1,this._parts.hostname.substring(M)||""}else{if(!S)throw new TypeError("cannot set domain empty");if(S.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(r.ensureValidHostname(S,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=S;else{var B=new RegExp(u(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(B,S)}return this.build(!w),this}},a.tld=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(typeof S=="boolean"&&(w=S,S=void 0),S===void 0){if(!this._parts.hostname||this.is("IP"))return"";var P=this._parts.hostname.lastIndexOf("."),M=this._parts.hostname.substring(P+1);return w!==!0&&n&&n.list[M.toLowerCase()]&&n.get(this._parts.hostname)||M}else{var B;if(S)if(S.match(/[^a-zA-Z0-9-]/))if(n&&n.is(S))B=new RegExp(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(B,S);else throw new TypeError('TLD "'+S+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");B=new RegExp(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(B,S)}else throw new TypeError("cannot set TLD empty");return this.build(!w),this}},a.directory=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0||S===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var P=this._parts.path.length-this.filename().length-1,M=this._parts.path.substring(0,P)||(this._parts.hostname?"/":"");return S?r.decodePath(M):M}else{var B=this._parts.path.length-this.filename().length,U=this._parts.path.substring(0,B),V=new RegExp("^"+u(U));return this.is("relative")||(S||(S="/"),S.charAt(0)!=="/"&&(S="/"+S)),S&&S.charAt(S.length-1)!=="/"&&(S+="/"),S=r.recodePath(S),this._parts.path=this._parts.path.replace(V,S),this.build(!w),this}},a.filename=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(typeof S!="string"){if(!this._parts.path||this._parts.path==="/")return"";var P=this._parts.path.lastIndexOf("/"),M=this._parts.path.substring(P+1);return S?r.decodePathSegment(M):M}else{var B=!1;S.charAt(0)==="/"&&(S=S.substring(1)),S.match(/\.?\//)&&(B=!0);var U=new RegExp(u(this.filename())+"$");return S=r.recodePath(S),this._parts.path=this._parts.path.replace(U,S),B?this.normalizePath(w):this.build(!w),this}},a.suffix=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0||S===!0){if(!this._parts.path||this._parts.path==="/")return"";var P=this.filename(),M=P.lastIndexOf("."),B,U;return M===-1?"":(B=P.substring(M+1),U=/^[a-z0-9%]+$/i.test(B)?B:"",S?r.decodePathSegment(U):U)}else{S.charAt(0)==="."&&(S=S.substring(1));var V=this.suffix(),G;if(V)S?G=new RegExp(u(V)+"$"):G=new RegExp(u("."+V)+"$");else{if(!S)return this;this._parts.path+="."+r.recodePath(S)}return G&&(S=r.recodePath(S),this._parts.path=this._parts.path.replace(G,S)),this.build(!w),this}},a.segment=function(S,w,P){var M=this._parts.urn?":":"/",B=this.path(),U=B.substring(0,1)==="/",V=B.split(M);if(S!==void 0&&typeof S!="number"&&(P=w,w=S,S=void 0),S!==void 0&&typeof S!="number")throw new Error('Bad segment "'+S+'", must be 0-based integer');if(U&&V.shift(),S<0&&(S=Math.max(V.length+S,0)),w===void 0)return S===void 0?V:V[S];if(S===null||V[S]===void 0)if(d(w)){V=[];for(var G=0,k=w.length;G<k;G++)!w[G].length&&(!V.length||!V[V.length-1].length)||(V.length&&!V[V.length-1].length&&V.pop(),V.push(x(w[G])))}else(w||typeof w=="string")&&(w=x(w),V[V.length-1]===""?V[V.length-1]=w:V.push(w));else w?V[S]=x(w):V.splice(S,1);return U&&V.unshift(""),this.path(V.join(M),P)},a.segmentCoded=function(S,w,P){var M,B,U;if(typeof S!="number"&&(P=w,w=S,S=void 0),w===void 0){if(M=this.segment(S,w,P),!d(M))M=M!==void 0?r.decode(M):void 0;else for(B=0,U=M.length;B<U;B++)M[B]=r.decode(M[B]);return M}if(!d(w))w=typeof w=="string"||w instanceof String?r.encode(w):w;else for(B=0,U=w.length;B<U;B++)w[B]=r.encode(w[B]);return this.segment(S,w,P)};var _=a.query;return a.query=function(S,w){if(S===!0)return r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof S=="function"){var P=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace),M=S.call(this,P);return this._parts.query=r.buildQuery(M||P,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!w),this}else return S!==void 0&&typeof S!="string"?(this._parts.query=r.buildQuery(S,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!w),this):_.call(this,S,w)},a.setQuery=function(S,w,P){var M=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof S=="string"||S instanceof String)M[S]=w!==void 0?w:null;else if(typeof S=="object")for(var B in S)c.call(S,B)&&(M[B]=S[B]);else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");return this._parts.query=r.buildQuery(M,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof S!="string"&&(P=w),this.build(!P),this},a.addQuery=function(S,w,P){var M=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.addQuery(M,S,w===void 0?null:w),this._parts.query=r.buildQuery(M,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof S!="string"&&(P=w),this.build(!P),this},a.removeQuery=function(S,w,P){var M=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.removeQuery(M,S,w),this._parts.query=r.buildQuery(M,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof S!="string"&&(P=w),this.build(!P),this},a.hasQuery=function(S,w,P){var M=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.hasQuery(M,S,w,P)},a.setSearch=a.setQuery,a.addSearch=a.addQuery,a.removeSearch=a.removeQuery,a.hasSearch=a.hasQuery,a.normalize=function(){return this._parts.urn?this.normalizeProtocol(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build():this.normalizeProtocol(!1).normalizeHostname(!1).normalizePort(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build()},a.normalizeProtocol=function(S){return typeof this._parts.protocol=="string"&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!S)),this},a.normalizeHostname=function(S){return this._parts.hostname&&(this.is("IDN")&&e?this._parts.hostname=e.toASCII(this._parts.hostname):this.is("IPv6")&&t&&(this._parts.hostname=t.best(this._parts.hostname)),this._parts.hostname=this._parts.hostname.toLowerCase(),this.build(!S)),this},a.normalizePort=function(S){return typeof this._parts.protocol=="string"&&this._parts.port===r.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!S)),this},a.normalizePath=function(S){var w=this._parts.path;if(!w)return this;if(this._parts.urn)return this._parts.path=r.recodeUrnPath(this._parts.path),this.build(!S),this;if(this._parts.path==="/")return this;w=r.recodePath(w);var P,M="",B,U;for(w.charAt(0)!=="/"&&(P=!0,w="/"+w),(w.slice(-3)==="/.."||w.slice(-2)==="/.")&&(w+="/"),w=w.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),P&&(M=w.substring(1).match(/^(\.\.\/)+/)||"",M&&(M=M[0]));B=w.search(/\/\.\.(\/|$)/),B!==-1;){if(B===0){w=w.substring(3);continue}U=w.substring(0,B).lastIndexOf("/"),U===-1&&(U=B),w=w.substring(0,U)+w.substring(B+3)}return P&&this.is("relative")&&(w=M+w.substring(1)),this._parts.path=w,this.build(!S),this},a.normalizePathname=a.normalizePath,a.normalizeQuery=function(S){return typeof this._parts.query=="string"&&(this._parts.query.length?this.query(r.parseQuery(this._parts.query,this._parts.escapeQuerySpace)):this._parts.query=null,this.build(!S)),this},a.normalizeFragment=function(S){return this._parts.fragment||(this._parts.fragment=null,this.build(!S)),this},a.normalizeSearch=a.normalizeQuery,a.normalizeHash=a.normalizeFragment,a.iso8859=function(){var S=r.encode,w=r.decode;r.encode=escape,r.decode=decodeURIComponent;try{this.normalize()}finally{r.encode=S,r.decode=w}return this},a.unicode=function(){var S=r.encode,w=r.decode;r.encode=T,r.decode=unescape;try{this.normalize()}finally{r.encode=S,r.decode=w}return this},a.readable=function(){var S=this.clone();S.username("").password("").normalize();var w="";if(S._parts.protocol&&(w+=S._parts.protocol+"://"),S._parts.hostname&&(S.is("punycode")&&e?(w+=e.toUnicode(S._parts.hostname),S._parts.port&&(w+=":"+S._parts.port)):w+=S.host()),S._parts.hostname&&S._parts.path&&S._parts.path.charAt(0)!=="/"&&(w+="/"),w+=S.path(!0),S._parts.query){for(var P="",M=0,B=S._parts.query.split("&"),U=B.length;M<U;M++){var V=(B[M]||"").split("=");P+="&"+r.decodeQuery(V[0],this._parts.escapeQuerySpace).replace(/&/g,"%26"),V[1]!==void 0&&(P+="="+r.decodeQuery(V[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"))}w+="?"+P.substring(1)}return w+=r.decodeQuery(S.hash(),!0),w},a.absoluteTo=function(S){var w=this.clone(),P=["protocol","username","password","hostname","port"],M,B,U;if(this._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(S instanceof r||(S=new r(S)),w._parts.protocol||(w._parts.protocol=S._parts.protocol,this._parts.hostname))return w;for(B=0;U=P[B];B++)w._parts[U]=S._parts[U];return w._parts.path?(w._parts.path.substring(-2)===".."&&(w._parts.path+="/"),w.path().charAt(0)!=="/"&&(M=S.directory(),M=M||(S.path().indexOf("/")===0?"/":""),w._parts.path=(M?M+"/":"")+w._parts.path,w.normalizePath())):(w._parts.path=S._parts.path,w._parts.query||(w._parts.query=S._parts.query)),w.build(),w},a.relativeTo=function(S){var w=this.clone().normalize(),P,M,B,U,V;if(w._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(S=new r(S).normalize(),P=w._parts,M=S._parts,U=w.path(),V=S.path(),U.charAt(0)!=="/")throw new Error("URI is already relative");if(V.charAt(0)!=="/")throw new Error("Cannot calculate a URI relative to another relative URI");if(P.protocol===M.protocol&&(P.protocol=null),P.username!==M.username||P.password!==M.password||P.protocol!==null||P.username!==null||P.password!==null)return w.build();if(P.hostname===M.hostname&&P.port===M.port)P.hostname=null,P.port=null;else return w.build();if(U===V)return P.path="",w.build();if(B=r.commonPath(U,V),!B)return w.build();var G=M.path.substring(B.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../");return P.path=G+P.path.substring(B.length)||"./",w.build()},a.equals=function(S){var w=this.clone(),P=new r(S),M={},B={},U={},V,G,k;if(w.normalize(),P.normalize(),w.toString()===P.toString())return!0;if(V=w.query(),G=P.query(),w.query(""),P.query(""),w.toString()!==P.toString()||V.length!==G.length)return!1;M=r.parseQuery(V,this._parts.escapeQuerySpace),B=r.parseQuery(G,this._parts.escapeQuerySpace);for(k in M)if(c.call(M,k)){if(d(M[k])){if(!m(M[k],B[k]))return!1}else if(M[k]!==B[k])return!1;U[k]=!0}for(k in B)if(c.call(B,k)&&!U[k])return!1;return!0},a.preventInvalidHostname=function(S){return this._parts.preventInvalidHostname=!!S,this},a.duplicateQueryParameters=function(S){return this._parts.duplicateQueryParameters=!!S,this},a.escapeQuerySpace=function(S){return this._parts.escapeQuerySpace=!!S,this},r})});var uie=Yn((Rjt,lie)=>{"use strict";/*! @license DOMPurify 3.1.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.5/LICENSE */var{entries:oie,setPrototypeOf:Zne,isFrozen:UOe,getPrototypeOf:zOe,getOwnPropertyDescriptor:HOe}=Object,{freeze:Wc,seal:yf,create:rie}=Object,{apply:Z6,construct:$6}=typeof Reflect<"u"&&Reflect;Wc||(Wc=function(t){return t});yf||(yf=function(t){return t});Z6||(Z6=function(t,n,i){return t.apply(n,i)});$6||($6=function(t,n){return new t(...n)});var kV=pu(Array.prototype.forEach),$ne=pu(Array.prototype.pop),n1=pu(Array.prototype.push),zV=pu(String.prototype.toLowerCase),j6=pu(String.prototype.toString),Qne=pu(String.prototype.match),i1=pu(String.prototype.replace),GOe=pu(String.prototype.indexOf),WOe=pu(String.prototype.trim),Md=pu(Object.prototype.hasOwnProperty),Gc=pu(RegExp.prototype.test),o1=jOe(TypeError);function pu(e){return function(t){for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o<n;o++)i[o-1]=arguments[o];return Z6(e,t,i)}}function jOe(e){return function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return $6(e,n)}}function vi(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:zV;Zne&&Zne(e,null);let i=t.length;for(;i--;){let o=t[i];if(typeof o=="string"){let r=n(o);r!==o&&(UOe(t)||(t[i]=r),o=r)}e[o]=!0}return e}function qOe(e){for(let t=0;t<e.length;t++)Md(e,t)||(e[t]=null);return e}function Nx(e){let t=rie(null);for(let[n,i]of oie(e))Md(e,n)&&(Array.isArray(i)?t[n]=qOe(i):i&&typeof i=="object"&&i.constructor===Object?t[n]=Nx(i):t[n]=i);return t}function VV(e,t){for(;e!==null;){let i=HOe(e,t);if(i){if(i.get)return pu(i.get);if(typeof i.value=="function")return pu(i.value)}e=zOe(e)}function n(){return null}return n}var Jne=Wc(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),q6=Wc(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Y6=Wc(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),YOe=Wc(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),X6=Wc(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),XOe=Wc(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),eie=Wc(["#text"]),tie=Wc(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),K6=Wc(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),nie=Wc(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),UV=Wc(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),KOe=yf(/\{\{[\w\W]*|[\w\W]*\}\}/gm),ZOe=yf(/<%[\w\W]*|[\w\W]*%>/gm),$Oe=yf(/\${[\w\W]*}/gm),QOe=yf(/^data-[\-\w.\u00B7-\uFFFF]/),JOe=yf(/^aria-[\-\w]+$/),sie=yf(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),eMe=yf(/^(?:\w+script|data):/i),tMe=yf(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),aie=yf(/^html$/i),nMe=yf(/^[a-z][.\w]*(-[.\w]+)+$/i),iie=Object.freeze({__proto__:null,MUSTACHE_EXPR:KOe,ERB_EXPR:ZOe,TMPLIT_EXPR:$Oe,DATA_ATTR:QOe,ARIA_ATTR:JOe,IS_ALLOWED_URI:sie,IS_SCRIPT_OR_DATA:eMe,ATTR_WHITESPACE:tMe,DOCTYPE_NAME:aie,CUSTOM_ELEMENT:nMe}),r1={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},iMe=function(){return typeof window>"u"?null:window},oMe=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let i=null,o="data-tt-policy-suffix";n&&n.hasAttribute(o)&&(i=n.getAttribute(o));let r="dompurify"+(i?"#"+i:"");try{return t.createPolicy(r,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+r+" could not be created."),null}};function cie(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:iMe(),t=jt=>cie(jt);if(t.version="3.1.5",t.removed=[],!e||!e.document||e.document.nodeType!==r1.document)return t.isSupported=!1,t;let{document:n}=e,i=n,o=i.currentScript,{DocumentFragment:r,HTMLTemplateElement:s,Node:a,Element:c,NodeFilter:u,NamedNodeMap:f=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:d,DOMParser:p,trustedTypes:g}=e,m=c.prototype,x=VV(m,"cloneNode"),b=VV(m,"nextSibling"),T=VV(m,"childNodes"),C=VV(m,"parentNode");if(typeof s=="function"){let jt=n.createElement("template");jt.content&&jt.content.ownerDocument&&(n=jt.content.ownerDocument)}let A,E="",{implementation:v,createNodeIterator:D,createDocumentFragment:O,getElementsByTagName:I}=n,{importNode:L}=i,N={};t.isSupported=typeof oie=="function"&&typeof C=="function"&&v&&v.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:_,ERB_EXPR:S,TMPLIT_EXPR:w,DATA_ATTR:P,ARIA_ATTR:M,IS_SCRIPT_OR_DATA:B,ATTR_WHITESPACE:U,CUSTOM_ELEMENT:V}=iie,{IS_ALLOWED_URI:G}=iie,k=null,Y=vi({},[...Jne,...q6,...Y6,...X6,...eie]),W=null,Q=vi({},[...tie,...K6,...nie,...UV]),j=Object.seal(rie(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),K=null,Z=null,he=!0,be=!0,re=!1,_e=!0,xe=!1,Ce=!0,we=!1,Oe=!1,ke=!1,At=!1,Bt=!1,rt=!1,Qe=!0,Kt=!1,ht="user-content-",mt=!0,Zt=!1,me={},Ae=null,Ut=vi({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),ut=null,Ai=vi({},["audio","video","img","source","image","track"]),po=null,hs=vi({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),es="http://www.w3.org/1998/Math/MathML",Ur="http://www.w3.org/2000/svg",Wo="http://www.w3.org/1999/xhtml",Be=Wo,Ke=!1,Xe=null,Ye=vi({},[es,Ur,Wo],j6),ft=null,Wt=["application/xhtml+xml","text/html"],wn="text/html",qn=null,_o=null,za=n.createElement("form"),ya=function(Se){return Se instanceof RegExp||Se instanceof Function},or=function(){let Se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(_o&&_o===Se)){if((!Se||typeof Se!="object")&&(Se={}),Se=Nx(Se),ft=Wt.indexOf(Se.PARSER_MEDIA_TYPE)===-1?wn:Se.PARSER_MEDIA_TYPE,qn=ft==="application/xhtml+xml"?j6:zV,k=Md(Se,"ALLOWED_TAGS")?vi({},Se.ALLOWED_TAGS,qn):Y,W=Md(Se,"ALLOWED_ATTR")?vi({},Se.ALLOWED_ATTR,qn):Q,Xe=Md(Se,"ALLOWED_NAMESPACES")?vi({},Se.ALLOWED_NAMESPACES,j6):Ye,po=Md(Se,"ADD_URI_SAFE_ATTR")?vi(Nx(hs),Se.ADD_URI_SAFE_ATTR,qn):hs,ut=Md(Se,"ADD_DATA_URI_TAGS")?vi(Nx(Ai),Se.ADD_DATA_URI_TAGS,qn):Ai,Ae=Md(Se,"FORBID_CONTENTS")?vi({},Se.FORBID_CONTENTS,qn):Ut,K=Md(Se,"FORBID_TAGS")?vi({},Se.FORBID_TAGS,qn):{},Z=Md(Se,"FORBID_ATTR")?vi({},Se.FORBID_ATTR,qn):{},me=Md(Se,"USE_PROFILES")?Se.USE_PROFILES:!1,he=Se.ALLOW_ARIA_ATTR!==!1,be=Se.ALLOW_DATA_ATTR!==!1,re=Se.ALLOW_UNKNOWN_PROTOCOLS||!1,_e=Se.ALLOW_SELF_CLOSE_IN_ATTR!==!1,xe=Se.SAFE_FOR_TEMPLATES||!1,Ce=Se.SAFE_FOR_XML!==!1,we=Se.WHOLE_DOCUMENT||!1,At=Se.RETURN_DOM||!1,Bt=Se.RETURN_DOM_FRAGMENT||!1,rt=Se.RETURN_TRUSTED_TYPE||!1,ke=Se.FORCE_BODY||!1,Qe=Se.SANITIZE_DOM!==!1,Kt=Se.SANITIZE_NAMED_PROPS||!1,mt=Se.KEEP_CONTENT!==!1,Zt=Se.IN_PLACE||!1,G=Se.ALLOWED_URI_REGEXP||sie,Be=Se.NAMESPACE||Wo,j=Se.CUSTOM_ELEMENT_HANDLING||{},Se.CUSTOM_ELEMENT_HANDLING&&ya(Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(j.tagNameCheck=Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&ya(Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(j.attributeNameCheck=Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&typeof Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(j.allowCustomizedBuiltInElements=Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),xe&&(be=!1),Bt&&(At=!0),me&&(k=vi({},eie),W=[],me.html===!0&&(vi(k,Jne),vi(W,tie)),me.svg===!0&&(vi(k,q6),vi(W,K6),vi(W,UV)),me.svgFilters===!0&&(vi(k,Y6),vi(W,K6),vi(W,UV)),me.mathMl===!0&&(vi(k,X6),vi(W,nie),vi(W,UV))),Se.ADD_TAGS&&(k===Y&&(k=Nx(k)),vi(k,Se.ADD_TAGS,qn)),Se.ADD_ATTR&&(W===Q&&(W=Nx(W)),vi(W,Se.ADD_ATTR,qn)),Se.ADD_URI_SAFE_ATTR&&vi(po,Se.ADD_URI_SAFE_ATTR,qn),Se.FORBID_CONTENTS&&(Ae===Ut&&(Ae=Nx(Ae)),vi(Ae,Se.FORBID_CONTENTS,qn)),mt&&(k["#text"]=!0),we&&vi(k,["html","head","body"]),k.table&&(vi(k,["tbody"]),delete K.tbody),Se.TRUSTED_TYPES_POLICY){if(typeof Se.TRUSTED_TYPES_POLICY.createHTML!="function")throw o1('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Se.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw o1('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');A=Se.TRUSTED_TYPES_POLICY,E=A.createHTML("")}else A===void 0&&(A=oMe(g,o)),A!==null&&typeof E=="string"&&(E=A.createHTML(""));Wc&&Wc(Se),_o=Se}},Zi=vi({},["mi","mo","mn","ms","mtext"]),Ps=vi({},["foreignobject","annotation-xml"]),ts=vi({},["title","style","font","a","script"]),Mc=vi({},[...q6,...Y6,...YOe]),Lo=vi({},[...X6,...XOe]),br=function(Se){let Ct=C(Se);(!Ct||!Ct.tagName)&&(Ct={namespaceURI:Be,tagName:"template"});let hn=zV(Se.tagName),jo=zV(Ct.tagName);return Xe[Se.namespaceURI]?Se.namespaceURI===Ur?Ct.namespaceURI===Wo?hn==="svg":Ct.namespaceURI===es?hn==="svg"&&(jo==="annotation-xml"||Zi[jo]):!!Mc[hn]:Se.namespaceURI===es?Ct.namespaceURI===Wo?hn==="math":Ct.namespaceURI===Ur?hn==="math"&&Ps[jo]:!!Lo[hn]:Se.namespaceURI===Wo?Ct.namespaceURI===Ur&&!Ps[jo]||Ct.namespaceURI===es&&!Zi[jo]?!1:!Lo[hn]&&(ts[hn]||!Mc[hn]):!!(ft==="application/xhtml+xml"&&Xe[Se.namespaceURI]):!1},Ha=function(Se){n1(t.removed,{element:Se});try{Se.parentNode.removeChild(Se)}catch{Se.remove()}},Xs=function(Se,Ct){try{n1(t.removed,{attribute:Ct.getAttributeNode(Se),from:Ct})}catch{n1(t.removed,{attribute:null,from:Ct})}if(Ct.removeAttribute(Se),Se==="is"&&!W[Se])if(At||Bt)try{Ha(Ct)}catch{}else try{Ct.setAttribute(Se,"")}catch{}},Ga=function(Se){let Ct=null,hn=null;if(ke)Se="<remove></remove>"+Se;else{let ba=Qne(Se,/^[\r\n\t ]+/);hn=ba&&ba[0]}ft==="application/xhtml+xml"&&Be===Wo&&(Se='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+Se+"</body></html>");let jo=A?A.createHTML(Se):Se;if(Be===Wo)try{Ct=new p().parseFromString(jo,ft)}catch{}if(!Ct||!Ct.documentElement){Ct=v.createDocument(Be,"template",null);try{Ct.documentElement.innerHTML=Ke?E:jo}catch{}}let ja=Ct.body||Ct.documentElement;return Se&&hn&&ja.insertBefore(n.createTextNode(hn),ja.childNodes[0]||null),Be===Wo?I.call(Ct,we?"html":"body")[0]:we?Ct.documentElement:ja},Tg=function(Se){return D.call(Se.ownerDocument||Se,Se,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},xa=function(Se){return Se instanceof d&&(typeof Se.nodeName!="string"||typeof Se.textContent!="string"||typeof Se.removeChild!="function"||!(Se.attributes instanceof f)||typeof Se.removeAttribute!="function"||typeof Se.setAttribute!="function"||typeof Se.namespaceURI!="string"||typeof Se.insertBefore!="function"||typeof Se.hasChildNodes!="function")},Wa=function(Se){return typeof a=="function"&&Se instanceof a},rf=function(Se,Ct,hn){N[Se]&&kV(N[Se],jo=>{jo.call(t,Ct,hn,_o)})},Tr=function(Se){let Ct=null;if(rf("beforeSanitizeElements",Se,null),xa(Se))return Ha(Se),!0;let hn=qn(Se.nodeName);if(rf("uponSanitizeElement",Se,{tagName:hn,allowedTags:k}),Se.hasChildNodes()&&!Wa(Se.firstElementChild)&&Gc(/<[/\w]/g,Se.innerHTML)&&Gc(/<[/\w]/g,Se.textContent)||Se.nodeType===r1.progressingInstruction||Ce&&Se.nodeType===r1.comment&&Gc(/<[/\w]/g,Se.data))return Ha(Se),!0;if(!k[hn]||K[hn]){if(!K[hn]&&af(hn)&&(j.tagNameCheck instanceof RegExp&&Gc(j.tagNameCheck,hn)||j.tagNameCheck instanceof Function&&j.tagNameCheck(hn)))return!1;if(mt&&!Ae[hn]){let jo=C(Se)||Se.parentNode,ja=T(Se)||Se.childNodes;if(ja&&jo){let ba=ja.length;for(let yl=ba-1;yl>=0;--yl){let Gh=x(ja[yl],!0);Gh.__removalCount=(Se.__removalCount||0)+1,jo.insertBefore(Gh,b(Se))}}}return Ha(Se),!0}return Se instanceof c&&!br(Se)||(hn==="noscript"||hn==="noembed"||hn==="noframes")&&Gc(/<\/no(script|embed|frames)/i,Se.innerHTML)?(Ha(Se),!0):(xe&&Se.nodeType===r1.text&&(Ct=Se.textContent,kV([_,S,w],jo=>{Ct=i1(Ct,jo," ")}),Se.textContent!==Ct&&(n1(t.removed,{element:Se.cloneNode()}),Se.textContent=Ct)),rf("afterSanitizeElements",Se,null),!1)},sf=function(Se,Ct,hn){if(Qe&&(Ct==="id"||Ct==="name")&&(hn in n||hn in za))return!1;if(!(be&&!Z[Ct]&&Gc(P,Ct))){if(!(he&&Gc(M,Ct))){if(!W[Ct]||Z[Ct]){if(!(af(Se)&&(j.tagNameCheck instanceof RegExp&&Gc(j.tagNameCheck,Se)||j.tagNameCheck instanceof Function&&j.tagNameCheck(Se))&&(j.attributeNameCheck instanceof RegExp&&Gc(j.attributeNameCheck,Ct)||j.attributeNameCheck instanceof Function&&j.attributeNameCheck(Ct))||Ct==="is"&&j.allowCustomizedBuiltInElements&&(j.tagNameCheck instanceof RegExp&&Gc(j.tagNameCheck,hn)||j.tagNameCheck instanceof Function&&j.tagNameCheck(hn))))return!1}else if(!po[Ct]){if(!Gc(G,i1(hn,U,""))){if(!((Ct==="src"||Ct==="xlink:href"||Ct==="href")&&Se!=="script"&&GOe(hn,"data:")===0&&ut[Se])){if(!(re&&!Gc(B,i1(hn,U,"")))){if(hn)return!1}}}}}}return!0},af=function(Se){return Se!=="annotation-xml"&&Qne(Se,V)},W0=function(Se){rf("beforeSanitizeAttributes",Se,null);let{attributes:Ct}=Se;if(!Ct)return;let hn={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:W},jo=Ct.length;for(;jo--;){let ja=Ct[jo],{name:ba,namespaceURI:yl,value:Gh}=ja,kv=qn(ba),Lc=ba==="value"?Gh:WOe(Gh);if(hn.attrName=kv,hn.attrValue=Lc,hn.keepAttr=!0,hn.forceKeepAttr=void 0,rf("uponSanitizeAttribute",Se,hn),Lc=hn.attrValue,hn.forceKeepAttr||(Xs(ba,Se),!hn.keepAttr))continue;if(!_e&&Gc(/\/>/i,Lc)){Xs(ba,Se);continue}if(Ce&&Gc(/((--!?|])>)|<\/(style|title)/i,Lc)){Xs(ba,Se);continue}xe&&kV([_,S,w],oQ=>{Lc=i1(Lc,oQ," ")});let iQ=qn(Se.nodeName);if(sf(iQ,kv,Lc)){if(Kt&&(kv==="id"||kv==="name")&&(Xs(ba,Se),Lc=ht+Lc),A&&typeof g=="object"&&typeof g.getAttributeType=="function"&&!yl)switch(g.getAttributeType(iQ,kv)){case"TrustedHTML":{Lc=A.createHTML(Lc);break}case"TrustedScriptURL":{Lc=A.createScriptURL(Lc);break}}try{yl?Se.setAttributeNS(yl,ba,Lc):Se.setAttribute(ba,Lc),xa(Se)?Ha(Se):$ne(t.removed)}catch{}}}rf("afterSanitizeAttributes",Se,null)},ns=function jt(Se){let Ct=null,hn=Tg(Se);for(rf("beforeSanitizeShadowDOM",Se,null);Ct=hn.nextNode();)rf("uponSanitizeShadowNode",Ct,null),!Tr(Ct)&&(Ct.content instanceof r&&jt(Ct.content),W0(Ct));rf("afterSanitizeShadowDOM",Se,null)};return t.sanitize=function(jt){let Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Ct=null,hn=null,jo=null,ja=null;if(Ke=!jt,Ke&&(jt="<!-->"),typeof jt!="string"&&!Wa(jt))if(typeof jt.toString=="function"){if(jt=jt.toString(),typeof jt!="string")throw o1("dirty is not a string, aborting")}else throw o1("toString is not a function");if(!t.isSupported)return jt;if(Oe||or(Se),t.removed=[],typeof jt=="string"&&(Zt=!1),Zt){if(jt.nodeName){let Gh=qn(jt.nodeName);if(!k[Gh]||K[Gh])throw o1("root node is forbidden and cannot be sanitized in-place")}}else if(jt instanceof a)Ct=Ga("<!---->"),hn=Ct.ownerDocument.importNode(jt,!0),hn.nodeType===r1.element&&hn.nodeName==="BODY"||hn.nodeName==="HTML"?Ct=hn:Ct.appendChild(hn);else{if(!At&&!xe&&!we&&jt.indexOf("<")===-1)return A&&rt?A.createHTML(jt):jt;if(Ct=Ga(jt),!Ct)return At?null:rt?E:""}Ct&&ke&&Ha(Ct.firstChild);let ba=Tg(Zt?jt:Ct);for(;jo=ba.nextNode();)Tr(jo)||(jo.content instanceof r&&ns(jo.content),W0(jo));if(Zt)return jt;if(At){if(Bt)for(ja=O.call(Ct.ownerDocument);Ct.firstChild;)ja.appendChild(Ct.firstChild);else ja=Ct;return(W.shadowroot||W.shadowrootmode)&&(ja=L.call(i,ja,!0)),ja}let yl=we?Ct.outerHTML:Ct.innerHTML;return we&&k["!doctype"]&&Ct.ownerDocument&&Ct.ownerDocument.doctype&&Ct.ownerDocument.doctype.name&&Gc(aie,Ct.ownerDocument.doctype.name)&&(yl="<!DOCTYPE "+Ct.ownerDocument.doctype.name+`> `+yl),xe&&kV([_,S,w],Gh=>{yl=i1(yl,Gh," ")}),A&&rt?A.createHTML(yl):yl},t.setConfig=function(){let jt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};or(jt),Oe=!0},t.clearConfig=function(){_o=null,Oe=!1},t.isValidAttribute=function(jt,Se,Ct){_o||or({});let hn=qn(jt),jo=qn(Se);return sf(hn,jo,Ct)},t.addHook=function(jt,Se){typeof Se=="function"&&(N[jt]=N[jt]||[],n1(N[jt],Se))},t.removeHook=function(jt){if(N[jt])return $ne(N[jt])},t.removeHooks=function(jt){N[jt]&&(N[jt]=[])},t.removeAllHooks=function(){N={}},t}var rMe=cie();lie.exports=rMe});var toe=Yn((x1,g9)=>{var nU=function(){"use strict";var e="b9H79TebbbeJq9Geueu9Geub9Gbb9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiKLdilevlevlooroowwvwbDDbelve9Weiiviebeoweuec:W;kekr;RiOo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbe8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbdE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UbiY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbl8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbv8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UboE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbra9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbwL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbDK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbqL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbkE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbzK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbHl79IV9RbODwebcekdQXq:g9sLdbk;3keYu8Jjjjjbcjo9Rgv8Kjjjjbcbhodnalcefae0mbabcbRb:S:kjjbc:GeV86bbavcjdfcbcjdzNjjjb8AdnaiTmbavcjdfadalz:tjjjb8Akabaefhrabcefhwavalfcbcbcjdal9RalcFe0EzNjjjb8Aavavcjdfalz:tjjjbhDcj;abal9UhodndndndndnalTmbaoc;WFbGgecjdaecjd6Ehqcbhkdninakai9pmiaDcjlfcbcjdzNjjjb8Aaqaiak9Rakaqfai6Egxcsfgecl4cifcd4hmadakal2fhPdndndndndnaec9WGgsTmbcbhzcehHaPhOawhAxekdnaxTmbcbhAcehHaPhCinaDaAfRbbhXaDcjlfheaChoaxhQinaeaoRbbgLaX9RgXcetaX;acr4786bbaoalfhoaecefheaLhXaQcufgQmbkaraw9Ram6miawcbamzNjjjbgeTmiaCcefhCaeamfhwaAcefgAal6hHaAal9hmbxvkkaraw9Ram6mvawcbamzNjjjb8AceheinawgXamfhwalaegoSmldnaraw9Ram6mbaocefheawcbamzNjjjb8AaXmekkaoal6hHxekindnaxTmbaDazfRbbhXaDcjlfheaOhoaxhQinaeaoRbbgLaX9RgXcetaX;acr4786bbaoalfhoaecefheaLhXaQcufgQmbkkaraA9Ram6mearaAcbamzNjjjbgKamfgw9RcK6mdcbhYaDcjlfhAinaDcjlfaYfh8AcwhCczhLcehQindndnaQce9hmbcuhoa8ARbbmecbhodninaogecsSmeaecefhoaAaefcefRbbTmbkkcucbaecs6EhoxekaQcetc;:FFFeGhocuaQtcu7cFeGhXcbheinaoaXaAaefRbb9nfhoaecefgecz9hmbkkaoaLaoaL6geEhLaQaCaeEhCaQcetgQcw6mbkdndndndnaCcufPdiebkaKaYco4fgeaeRbbcdciaCclSEaYci4coGtV86bbaCcw9hmeawa8A8Pbb83bbawcwfa8Acwf8Pbb83bbawczfhwxdkaKaYco4fgeaeRbbceaYci4coGtV86bbkdncwaC9TgEmbinawcb86bbawcefhwxbkkcuaCtcu7h8Acbh3aAh5ina5heaEhQcbhoinaeRbbgLa8AcFeGgXaLaX6EaoaCtVhoaecefheaQcufgQmbkawao86bba5aEfh5awcefhwa3aEfg3cz6mbkcbheindnaAaefRbbgoaX6mbawao86bbawcefhwkaecefgecz9hmbkkdnaYczfgYas9pmbaAczfhAaraw9RcL0mekkaYas6meawTmeaOcefhOazcefgzal6hHawhAazalSmixbkkcbhwaHceGTmexikcbhwaHceGmdkaDaPaxcufal2falz:tjjjb8AaxakfhkawmbkcbhoxokcbhoxvkaiTmekcbhoaraw9Ralcaalca0E6mialc8F9nmexdkcbhoaecufca6mdkawcbcaal9RgezNjjjbaefhwkawaDcjdfalz:tjjjbalfab9Rhokavcjof8Kjjjjbaok9heeuaecaaeca0Eabcj;abae9Uc;WFbGgdcjdadcjd6Egdfcufad9Uae2adcl4cifcd4adV2fcefkmbcbabBd:S:kjjbk;rse3u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd:C:kjjbgrc;GeV86bbalc;abfcFecjezNjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgoydbhLaocwfydbhKaoclfydbhYcbh8Adndninalc;abfavcsGcitfgoydlhEdndndnaoydbgoaL9hmbaEaYSmekdnaoaY9hmbaEaK9hmba8Acefh8AxekaoaK9hmeaEaL9hmea8Acdfh8Aka8Ac870mdaXcufhvada8AciGcx2goc:y1jjbfydbaCfcdtfydbhEadaocN1jjbfydbaCfcdtfydbhKadaoc:q1jjbfydbaCfcdtfydbhLcbhodnindnalavcsGcdtfydbaE9hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaEaOSgvaYce9iaYaH9oVgoGh3dndndndndncbcsavEaYaoEgvcs9hmbarce9imbaEaEaAaEcefaASgvEgAcefSmecmcsavEhvkasava8Acdtc;WeGV86bbavcs9hmeaEaA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbkaEhAxdkcPhvasa8AcdtcPV86bbaEhAkavTmbavaH9imekalaXcdtfaEBdbaXcefcsGhXkaOa3fhOalc;abfaQcitfgvaKBdlavaEBdbalc;abfaQcefcsGgvcitfgoaEBdlaoaLBdbavcefhoxikavcufhva8Aclfg8Ac;ab9hmbkkdnadceaKaOScetaYaOSEcx2gvc:q1jjbfydbaCfcdtfydbgLTadavcN1jjbfydbaCfcdtfydbg8AceSGadavc:y1jjbfydbaCfcdtfydbgYcdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhKxdkcuhKaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydbaY9hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaLaOSg8Efh3dndnaKcm0mbaKcefhKxekcbcsa8Aa3SgvEhKa3avfh3kdndnaEcm0mbaEcefhExekcbcsaYa3SgvEhEa3avfh3kc9:cua8EEh8FaEaKcltVhocbhvdndndninavcj1jjbfRbbaocFeGSmeavcefgvcz9hmbxdkka5aLaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeao86bbaecefhekdna8EmbaLaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaLhAkdnaKcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmbaYaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaYhAkalaXcdtfaLBdbaXcefcsGhvdndnaKPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfaYBdbavcefcsGhvkalc;abfaQcitfgoaLBdlaoa8ABdbalc;abfaQcefcsGcitfgoa8ABdlaoaYBdbalc;abfaQcdfcsGcitfgoaYBdlaoaLBdbaQcifhoavhXa3hOkascefhsaocsGhQaCcifgCai6mbkkcbhvaeaP0mbcbhvinaeavfavcj1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd:C:kjjbk:ydewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb:C:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkcbhvaoar0mbaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:dvli99dui99ludnaeTmbcuadcetcuftcu7:Yhvdndncuaicuftcu7:YgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhralcxfIdbhqdndnakJbbbb9GTmbaxhkxekJbbjZar:l:tgkak:maxJbbbb9GEhkJbbjZax:l:tgxax:marJbbbb9GEhrkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEavNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohmxekcjjjj94hmkdndnakJbbj:;akJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;akJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;klld99eud99eudnaeTmbdndncuaicuftcu7:YgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicdfciGcdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk:Hvdxue998Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6mearcearce0EhwaohDinaDc:CuBdbaDclfhDawcufgwmbkaeTmiadcl6mdarcearce0EhqarcdthkalhxcbhminaohDaxhwaqhPinaDaDydbgsawydbgzcL4cFeGc:cufcbazEgzasaz9kEBdbawclfhwaDclfhDaPcufgPmbkaxakfhxamcefgmae9hmbkkaeTmdxekaeTmekavcb9hadcl6gqVhHarcearce0Ehkarcdthrceai9Rhmcbhdindndndnavce9hmbaqmdc:CuhwalhDakhPinawaDydbgscL4cFeGc:cufcbasEgsawas9kEhwaDclfhDaPcufgPmbxdkkc:CuhwaHmbaohDalhPakhsinaDaPydbgzcL4cFeGgxc8Aaxc8A9kEc:cufcbazEBdbaPclfhPaDclfhDascufgsmbkkaqmbcbhDakhsinawhPdnavceSmbaoaDfydbhPkdndnalaDfIdbgOcjjj;8iamaPfgPcLt9R::NJbbbZJbbb:;aOJbbbb9GEMgO:lJbbb9p9DTmbaO:Ohzxekcjjjj94hzkabaDfazcFFFrGaPcKtVBdbaDclfhDascufgsmbkkabarfhbalarfhladcefgdae9hmbkkaocjdf8KjjjjbkFkdCui998Jjjjjbc:Gd9Rgv8Kjjjjbavc:4efcbc;KbzNjjjb8AcbhodnadTmbcbhoaiTmbdnabae9hmbavcuadcdtgoadcFFFFi0Ecbyd:K:kjjbHjjjjbbgeBd:4eavceBd:ydaeabaoz:tjjjb8Akavc:OefcwfcbBdbav9cb83i:Oeavc:Oefaeadaiavc:4efz:njjjbcuaicdtgraicFFFFi0Egwcbyd:K:kjjbHjjjjbbhoavc:4efavyd:ydgDcdtfaoBdbavaDcefgqBd:ydaoavyd:Oegkarz:tjjjbhxavc:4efaqcdtfadci9Ugmcbyd:K:kjjbHjjjjbbgoBdbavaDcdfgrBd:ydaocbamzNjjjbhPavc:4efarcdtfawcbyd:K:kjjbHjjjjbbgsBdbavaDcifgqBd:ydaxhoashrinaralIdbalaoydbgwcwawcw6Ecdtfc;ebfIdbMUdbaoclfhoarclfhraicufgimbkavc:4efaqcdtfcuamcdtadcFFFF970Ecbyd:K:kjjbHjjjjbbgqBdbavaDclfBd:yddnadci6mbamceamce0EhiaehoaqhrinarasaoydbcdtfIdbasaoclfydbcdtfIdbMasaocwfydbcdtfIdbMUdbaocxfhoarclfhraicufgimbkkavc;qbfhzavhoavyd:SehHavyd:WehOcbhwcbhrcbhAcehCinaohXcihQaearci2gLcdtfgocwfydbhdaoydbhDabaAcx2fgiclfaoclfydbgKBdbaiaDBdbaicwfadBdbaParfce86bbazadBdwazaKBdlazaDBdbaqarcdtfcbBdbdnawTmbcihQaXhiinazaQcdtfaiydbgoBdbaQaoaD9haoaK9hGaoad9hGfhQaiclfhiawcufgwmbkkaAcefhAaxaDcdtfgoaoydbcufBdbaxaKcdtfgoaoydbcufBdbaxadcdtfgoaoydbcufBdbcbhwinaOaHaeawaLfcdtfydbcdtgifydbcdtfgKhoakaifgDydbgdhidnadTmbdninaoydbarSmeaoclfhoaicufgiTmdxbkkaoadcdtaKfc98fydbBdbaDaDydbcufBdbkawcefgwci9hmbkdndndnaQTmbcuhrJbbbbhYcbhDavyd:SehKavyd:WehLindndnakazaDcdtfydbcdtgofydbgimbaDcefhDxekaDcs0hwasaofgdIdbh8AadalcbaDcefgDawEcdtfIdbalaxaofydbgwcwawcw6Ecdtfc;ebfIdbMgEUdbaEa8A:thEaicdthiaLaKaofydbcdtfhoinaqaoydbgwcdtfgdaEadIdbMg8AUdba8AaYaYa8A9DgdEhYawaradEhraoclfhoaic98fgimbkkaDaQ9hmbkarcu9hmekaCam9pmeindnaPaCfRbbmbaChrxdkamaCcefgC9hmbxdkkaQczaQcz6EhwazhoaXhzarcu9hmekkavyd:ydhokaocdtavc:4effc98fhrdninaoTmearydbcbyd:G:kjjbH:bjjjbbarc98fhraocufhoxbkkavc:Gdf8Kjjjjbk;UlevucuaicdtgvaicFFFFi0Egocbyd:K:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd:K:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd:K:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavzNjjjb8Aadci9UhwdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbawceawce0EhDabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic:01jjbz:mjjjbkQbabaeadaic:C:jjjbz:mjjjbk9DeeuabcFeaicdtzNjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;:kivuo99lu8Jjjjjbcj;Hb9Rgl8Kjjjjbcbhvalc1;Gbfcbc;KbzNjjjb8AalcuadcdtadcFFFFi0Egocbyd:K:kjjbHjjjjbbgrBd19GalceBd;O9Galcwfcbyd:m:kjjbBdbalcb8Pd:e:kjjb83ibalc;W;Gbfcwfcbyd:y:kjjbBdbalcb8Pd:q:kjjb83i;W9Gaicd4hwdndnadmbJFFuFhDJFFuuhqJFFuuhkJFFuFhxJFFuuhmJFFuFhPxekawcdthsaehzincbhiinalaifgHazaifIdbgDaHIdbgxaxaD9EEUdbalc;W;GbfaifgHaDaHIdbgxaxaD9DEUdbaiclfgicx9hmbkazasfhzavcefgvad9hmbkalIdwhqalId;49GhDalIdlhkalId;09GhxalIdbhmalId;W9GhPkdndnadTmbJbbbbJbbjZaPam:tJbbbb:xgPaxak:tgxaxaP9DEgxaDaq:tgDaDax9DEgD:vaDJbbbb9BEhDawcdthsarhHadhzindndnaDaeIdbam:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcv2c;j:KM;jbGhvdndnaDaeclfIdbak:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcq2cM;j:KMeGavVhvdndnaDaecwfIdbaq:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaHavaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcC2c:KM;j:KdGVBdbaeasfheaHclfhHazcufgzmbkalcbcj;GbzNjjjbhiarhHadheinaiaHydbgzcFrGcx2fgvavydbcefBdbaiazcq4cFrGcx2fgvavydlcefBdlaiazcC4cFrGcx2fgzazydwcefBdwaHclfhHaecufgembxdkkalcbcj;GbzNjjjb8AkcbhHcbhzcbhecbhvinalaHfgiydbhsaiazBdbaicwfgwydbhOawavBdbaiclfgiydbhwaiaeBdbasazfhzaOavfhvawaefheaHcxfgHcj;Gb9hmbkcbhialaocbyd:K:kjjbHjjjjbbgzBd:m9GdnadTmbabhHinaHaiBdbaHclfhHadaicefgi9hmbkadTmbabhiadhHinalaraiydbgecdtfydbcFrGcx2fgvavydbgvcefBdbazavcdtfaeBdbaiclfhiaHcufgHmbkazhiadhHinalaraiydbgecdtfydbcq4cFrGcx2fgvavydlgvcefBdlabavcdtfaeBdbaiclfhiaHcufgHmbkabhiadhHinalaraiydbgecdtfydbcC4cFrGcx2fgvavydwgvcefBdwazavcdtfaeBdbaiclfhiaHcufgHmbkadTmbcbhiinabazydbcdtfaiBdbazclfhzadaicefgi9hmbkkclhidninaic98Smealc1;Gbfaifydbcbyd:G:kjjbH:bjjjbbaic98fhixbkkalcj;Hbf8Kjjjjbk9teiucbcbyd:O:kjjbgeabcifc98GfgbBd:O:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:O:kjjbgeabcrfc94GfgbBd:O:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:O:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:O:kjjbfgdBd:O:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:6ddbcjwk:Cdb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:FFuuFFuuFFuuFFuFFFuFFFuFbc:Cqkzebbbebbbdbbb8WWbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(g){n=g.instance,n.exports.__wasm_call_ctors(),n.exports.meshopt_encodeVertexVersion(0),n.exports.meshopt_encodeIndexVersion(1)});function o(g){for(var m=new Uint8Array(g.length),x=0;x<g.length;++x){var b=g.charCodeAt(x);m[x]=b>96?b-97:b>64?b-39:b+4}for(var T=0,x=0;x<g.length;++x)m[T++]=m[x]<60?t[m[x]]:(m[x]-60)*64+m[++x];return m.buffer.slice(0,T)}function r(g){if(!g)throw new Error("Assertion failed")}function s(g){return new Uint8Array(g.buffer,g.byteOffset,g.byteLength)}function a(g,m,x,b){var T=n.exports.sbrk,C=T(m.length*4),A=T(x*4),E=new Uint8Array(n.exports.memory.buffer),v=s(m);E.set(v,C),b&&b(C,C,m.length,x);var D=g(A,C,m.length,x);E=new Uint8Array(n.exports.memory.buffer);var O=new Uint32Array(x);new Uint8Array(O.buffer).set(E.subarray(A,A+x*4)),v.set(E.subarray(C,C+m.length*4)),T(C-T(0));for(var I=0;I<m.length;++I)m[I]=O[m[I]];return[O,D]}function c(g,m,x,b){var T=n.exports.sbrk,C=T(x*4),A=T(x*b),E=new Uint8Array(n.exports.memory.buffer);E.set(s(m),A),g(C,A,x,b),E=new Uint8Array(n.exports.memory.buffer);var v=new Uint32Array(x);return new Uint8Array(v.buffer).set(E.subarray(C,C+x*4)),T(C-T(0)),v}function u(g,m,x,b,T){var C=n.exports.sbrk,A=C(m),E=C(b*T),v=new Uint8Array(n.exports.memory.buffer);v.set(s(x),E);var D=g(A,m,E,b,T),O=new Uint8Array(D);return O.set(v.subarray(A,A+D)),C(A-C(0)),O}function f(g){for(var m=0,x=0;x<g.length;++x){var b=g[x];m=m<b?b:m}return m}function d(g,m){if(r(m==2||m==4),m==4)return new Uint32Array(g.buffer,g.byteOffset,g.byteLength/4);var x=new Uint16Array(g.buffer,g.byteOffset,g.byteLength/2);return new Uint32Array(x)}function p(g,m,x,b,T,C,A){var E=n.exports.sbrk,v=E(x*b),D=E(x*C),O=new Uint8Array(n.exports.memory.buffer);O.set(s(m),D),g(v,x,b,T,D,A);var I=new Uint8Array(x*b);return I.set(O.subarray(v,v+x*b)),E(v-E(0)),I}return{ready:i,supported:!0,reorderMesh:function(g,m,x){var b=m?x?n.exports.meshopt_optimizeVertexCacheStrip:n.exports.meshopt_optimizeVertexCache:void 0;return a(n.exports.meshopt_optimizeVertexFetchRemap,g,f(g)+1,b)},reorderPoints:function(g,m){return r(g instanceof Float32Array),r(g.length%m==0),r(m>=3),c(n.exports.meshopt_spatialSortRemap,g,g.length/m,m*4)},encodeVertexBuffer:function(g,m,x){r(x>0&&x<=256),r(x%4==0);var b=n.exports.meshopt_encodeVertexBufferBound(m,x);return u(n.exports.meshopt_encodeVertexBuffer,b,g,m,x)},encodeIndexBuffer:function(g,m,x){r(x==2||x==4),r(m%3==0);var b=d(g,x),T=n.exports.meshopt_encodeIndexBufferBound(m,f(b)+1);return u(n.exports.meshopt_encodeIndexBuffer,T,b,m,4)},encodeIndexSequence:function(g,m,x){r(x==2||x==4);var b=d(g,x),T=n.exports.meshopt_encodeIndexSequenceBound(m,f(b)+1);return u(n.exports.meshopt_encodeIndexSequence,T,b,m,4)},encodeGltfBuffer:function(g,m,x,b){var T={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return r(T[b]),T[b](g,m,x)},encodeFilterOct:function(g,m,x,b){return r(x==4||x==8),r(b>=1&&b<=16),p(n.exports.meshopt_encodeFilterOct,g,m,x,b,16)},encodeFilterQuat:function(g,m,x,b){return r(x==8),r(b>=4&&b<=16),p(n.exports.meshopt_encodeFilterQuat,g,m,x,b,16)},encodeFilterExp:function(g,m,x,b,T){r(x>0&&x%4==0),r(b>=1&&b<=24);var C={Separate:0,SharedVector:1,SharedComponent:2};return p(n.exports.meshopt_encodeFilterExp,g,m,x,b,x,T?C[T]:1)}}}();typeof x1=="object"&&typeof g9=="object"?g9.exports=nU:typeof define=="function"&&define.amd?define([],function(){return nU}):typeof x1=="object"?x1.MeshoptEncoder=nU:(typeof self<"u"?self:x1).MeshoptEncoder=nU});var noe=Yn((b1,y9)=>{var iU=function(){"use strict";var e="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;d8Yqdbk:yzeHu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhlaicefhodnadTmbalc;WFbGglcjdalcjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxdndndndnalc9WGgmTmbcbhPcehsawcjdfhzaohHinaraH9Rax6midnaraHaxfgo9RcK6mbczhlcbhOinalgic9WfgAawcj;cbffhldndndndndnaHaAco4fRbbaOcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgAco4gCaCciSgCE86bbawcj;cbfaifglcGfaoclfaCfgCRbbaAcl4ciGgXaXciSgXE86bbalcVfaCaXfgCRbbaAcd4ciGgXaXciSgXE86bbalc7faCaXfgCRbbaAciGgAaAciSgAE86bbalctfaCaAfgCRbbaoRbegAco4gXaXciSgXE86bbalc91faCaXfgCRbbaAcl4ciGgXaXciSgXE86bbalc4faCaXfgCRbbaAcd4ciGgXaXciSgXE86bbalc93faCaXfgCRbbaAciGgAaAciSgAE86bbalc94faCaAfgCRbbaoRbdgAco4gXaXciSgXE86bbalc95faCaXfgCRbbaAcl4ciGgXaXciSgXE86bbalc96faCaXfgCRbbaAcd4ciGgXaXciSgXE86bbalc97faCaXfgCRbbaAciGgAaAciSgAE86bbalc98faCaAfgARbbaoRbigoco4gCaCciSgCE86bbalc99faAaCfgARbbaocl4ciGgCaCciSgCE86bbalc9:faAaCfgARbbaocd4ciGgCaCciSgCE86bbalcufaAaCfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgAcl4gCaCcsSgCE86bbawcj;cbfaifglcGfaocwfaCfgCRbbaAcsGgAaAcsSgAE86bbalcVfaCaAfgARbbaoRbegCcl4gXaXcsSgXE86bbalc7faAaXfgARbbaCcsGgCaCcsSgCE86bbalctfaAaCfgARbbaoRbdgCcl4gXaXcsSgXE86bbalc91faAaXfgARbbaCcsGgCaCcsSgCE86bbalc4faAaCfgARbbaoRbigCcl4gXaXcsSgXE86bbalc93faAaXfgARbbaCcsGgCaCcsSgCE86bbalc94faAaCfgARbbaoRblgCcl4gXaXcsSgXE86bbalc95faAaXfgARbbaCcsGgCaCcsSgCE86bbalc96faAaCfgARbbaoRbvgCcl4gXaXcsSgXE86bbalc97faAaXfgARbbaCcsGgCaCcsSgCE86bbalc98faAaCfgARbbaoRbogCcl4gXaXcsSgXE86bbalc99faAaXfgARbbaCcsGgCaCcsSgCE86bbalc9:faAaCfgARbbaoRbrgocl4gCaCcsSgCE86bbalcufaAaCfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaOcdfhOaiczfhlarao9RcL0mekkaiam6miaoTmidnakTmbawaPfRbbhOawcj;cbfhlazhiakhAinaialRbbgHce4cbaHceG9R7aOfgO86bbaiadfhialcefhlaAcufgAmbkkazcefhzaPcefgPad6hsaohHaPad9hmexvkkcbhoasceGmdxikaoaxad2fhXdnakTmbcbhmcehsawcjdfhCinarao9Rax6miaoTmdaoaxfhoawamfRbbhOawcj;cbfhlaChiakhAinaialRbbgHce4cbaHceG9R7aOfgO86bbaiadfhialcefhlaAcufgAmbkaCcefhCamcefgmad6hsamad9hmbkaXhoxikcbhlcehsinarao9Rax6mdaoTmeaoaxfhoalcefglad6hsadal9hmbkaXhoxdkcbhoasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekcbc99arao9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;xzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabaiavcdfciGfcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabaiavcufciGfcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabaiavciGfcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",t="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;b9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;e8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincbhHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAcd0hHalhOaAcefgAclSmdxekkcbhlaHceGTmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;tzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnaval9pmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb",n=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var o=WebAssembly.validate(n)?t:e,r,s=WebAssembly.instantiate(a(o),{}).then(function(T){r=T.instance,r.exports.__wasm_call_ctors()});function a(T){for(var C=new Uint8Array(T.length),A=0;A<T.length;++A){var E=T.charCodeAt(A);C[A]=E>96?E-97:E>64?E-39:E+4}for(var v=0,A=0;A<T.length;++A)C[v++]=C[A]<60?i[C[A]]:(C[A]-60)*64+C[++A];return C.buffer.slice(0,v)}function c(T,C,A,E,v,D,O){var I=T.exports.sbrk,L=E+3&-4,N=I(L*v),_=I(D.length),S=new Uint8Array(T.exports.memory.buffer);S.set(D,_);var w=C(N,E,v,_,D.length);if(w==0&&O&&O(N,L,v),A.set(S.subarray(N,N+E*v)),I(N-I(0)),w!=0)throw new Error("Malformed buffer data: "+w)}var u={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},f={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},d=[],p=0;function g(T){var C={object:new Worker(T),pending:0,requests:{}};return C.object.onmessage=function(A){var E=A.data;C.pending-=E.count,C.requests[E.id][E.action](E.value),delete C.requests[E.id]},C}function m(T){for(var C="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(a(o))+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+b.name+";"+c.toString()+b.toString(),A=new Blob([C],{type:"text/javascript"}),E=URL.createObjectURL(A),v=d.length;v<T;++v)d[v]=g(E);for(var v=T;v<d.length;++v)d[v].object.postMessage({});d.length=T,URL.revokeObjectURL(E)}function x(T,C,A,E,v){for(var D=d[0],O=1;O<d.length;++O)d[O].pending<D.pending&&(D=d[O]);return new Promise(function(I,L){var N=new Uint8Array(A),_=++p;D.pending+=T,D.requests[_]={resolve:I,reject:L},D.object.postMessage({id:_,count:T,size:C,source:N,mode:E,filter:v},[N.buffer])})}function b(T){var C=T.data;if(!C.id)return self.close();self.ready.then(function(A){try{var E=new Uint8Array(C.count*C.size);c(A,A.exports[C.mode],E,C.count,C.size,C.source,A.exports[C.filter]),self.postMessage({id:C.id,count:C.count,action:"resolve",value:E},[E.buffer])}catch(v){self.postMessage({id:C.id,count:C.count,action:"reject",value:v})}})}return{ready:s,supported:!0,useWorkers:function(T){m(T)},decodeVertexBuffer:function(T,C,A,E,v){c(r,r.exports.meshopt_decodeVertexBuffer,T,C,A,E,r.exports[u[v]])},decodeIndexBuffer:function(T,C,A,E){c(r,r.exports.meshopt_decodeIndexBuffer,T,C,A,E)},decodeIndexSequence:function(T,C,A,E){c(r,r.exports.meshopt_decodeIndexSequence,T,C,A,E)},decodeGltfBuffer:function(T,C,A,E,v,D){c(r,r.exports[f[v]],T,C,A,E,r.exports[u[D]])},decodeGltfBufferAsync:function(T,C,A,E,v){return d.length>0?x(T,C,A,f[E],u[v]):s.then(function(){var D=new Uint8Array(T*C);return c(r,r.exports[f[E]],D,T,C,A,r.exports[u[v]]),D})}}}();typeof b1=="object"&&typeof y9=="object"?y9.exports=iU:typeof define=="function"&&define.amd?define([],function(){return iU}):typeof b1=="object"?b1.MeshoptDecoder=iU:(typeof self<"u"?self:b1).MeshoptDecoder=iU});var ioe=Yn((T1,x9)=>{var oU=function(){"use strict";var e="b9H79Tebbbe9Ek9Geueu9Geub9Gbb9GPuuuuuuuuuuu99uueu9Gvuuuuub9Gluuuub9Gquuuuuuu99uueu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuizsdilvoirwDbqqbeqlve9Weiiviebeoweuec:G;jekr:Tewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95bl8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bvQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7boX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbra9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbwl79IV9RbDDwebcekdxmq::9Usdbk;i6iKuY99Ou8Jjjjjbc;W;ab9RgP8KjjjjbaPcwfcbc;Kbz:ljjjb8AaPcualcefgscdtascFFFFi0Ecbyd1:jjjbHjjjjbbgzBdwaPceBd9OaPazBdbaPcuadcitadcFFFFe0Ecbyd1:jjjbHjjjjbbgHBdxaPcdBd9OaPaHBdlaPaeadalcbz:cjjjbaPcualcdtgOalcFFFFi0EgAcbyd1:jjjbHjjjjbbgCBdzaPciBd9OaPaAcbyd1:jjjbHjjjjbbgXBdCaPclBd9Oalcd4alfhQcehLinaLgscethLasaQ6mbkcbhKaPcuascdtgLascFFFFi0Ecbyd1:jjjbHjjjjbbgQBdKaPcvBd9OaQcFeaLz:ljjjbhYdnalTmbavcd4h8AascufhEinaiaKa8A2cdtfg3ydlgscH4as7c:F:b:DD2a3ydbgscH4as7c;D;O:B8J27a3ydwgscH4as7c:3F;N8N27hQcbhsdndninaYaQaEGgQcdtfg5ydbgLcuSmeaiaLa8A2cdtfa3cxz:ojjjbTmdascefgsaQfhQasaE9nmbxdkka5aKBdbaKhLkaCaKcdtfaLBdbaKcefgKal9hmbkcbhsaXhLinaLasBdbaLclfhLalascefgs9hmbkcbhsaChLaXhQindnasaLydbgESmbaQaXaEcdtfgEydbBdbaEasBdbkaLclfhLaQclfhQalascefgs9hmbkkcbh8EaYcbyd:m:jjjbH:bjjjbbaPclBd9OaPalcbyd1:jjjbHjjjjbbgEBdKaPcvBd9OaPaAcbyd1:jjjbHjjjjbbgsBd3aPcoBd9OaPaAcbyd1:jjjbHjjjjbbgLBdaaPcrBd9OascFeaOz:ljjjbh8FaLcFeaOz:ljjjbhadnalTmbaHcwfhhindnaza8EgQcefg8Ecdtfydbg3azaQcdtgsfydbgLSmba3aL9RhOaHaLcitfhgaaasfh8Ja8FasfhKcbh8Aindndnaga8Acitfydbg5aQ9hmbaKaQBdba8JaQBdbxekdnaza5cdtg8KfgsclfydbgLasydbgsSmbaHascitg3fydbaQSmeaLas9Rh8Lascu7aLfhYaha3fhLcbhsinaYasSmeascefhsaLydbh3aLcwfhLa3aQ9hmbkasa8L6mekaaa8KfgsaQa5asydbcuSEBdbaKa5aQaKydbcuSEBdbka8Acefg8AaO9hmbkka8Eal9hmbkaChLaXhQaah3a8Fh8AcbhsindndnasaLydbg59hmbdnasaQydbg59hmba8Aydbh5dna3ydbgYcu9hmba5cu9hmbaEasfcb86bbxikaEasfhKdnasaYSmbasa5SmbaKce86bbxikaKcl86bbxdkdnasaXa5cdtgYfydb9hmbdna3ydbgKcuSmbasaKSmba8AydbgOcuSmbasaOSmbaaaYfydbggcuSmbaga5Smba8FaYfydbgYcuSmbaYa5SmbdnaCaKcdtfydbaCaYcdtfydb9hmbaCaOcdtfydbaCagcdtfydb9hmbaEasfcd86bbxlkaEasfcl86bbxikaEasfcl86bbxdkaEasfcl86bbxekaEasfaEa5fRbb86bbkaLclfhLaQclfhQa3clfh3a8Aclfh8Aalascefgs9hmbkaxceGTmbaEhsalhLindnasRbbce9hmbascl86bbkascefhsaLcufgLmbkkcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbh8JaPcwfaPyd9Ogscdtfa8JBdbaPascefgOBd9Oa8Jaialavz:djjjbdndnaDmbcbhvxekcbh5aPcwfaOcdtfcuaDal2gLcdtaLcFFFFi0Ecbyd1:jjjbHjjjjbbgvBdbaPascdfgOBd9OalTmbarcd4cdthYaDcdthKavh8AinaohsawhLa8AhQaDh3inaQasIdbaLIdbNUdbasclfhsaLclfhLaQclfhQa3cufg3mbkaoaYfhoa8AaKfh8Aa5cefg5al9hmbkkaPcwfaOcdtfcualc8S2gsalc;D;O;f8U0EgQcbyd1:jjjbHjjjjbbgLBdbaPaOcefg3Bd9OaLcbasz:ljjjbh8EdndndnaDTmbaPcwfa3cdtfaQcbyd1:jjjbHjjjjbbgoBdbaPaOcdfgLBd9Oaocbasz:ljjjb8AaPcwfaLcdtfcuaDal2gscltgLascFFFFb0Ecbyd1:jjjbHjjjjbbgwBdbaPaOcifBd9OawcbaLz:ljjjb8AadmexdkcbhocbhwadTmekcbh8AaehLindna8JaLclfydbg5cx2fgsIdba8JaLydbgYcx2fgQIdbg8M:tg8Na8JaLcwfydbgKcx2fg3IdlaQIdlgy:tg8PNa3Idba8M:tgIasIdlay:tg8RN:tg8Sa8SNa8Ra3IdwaQIdwgR:tg8UNa8PasIdwaR:tg8RN:tg8Pa8PNa8RaINa8Ua8NN:tg8Na8NNMM:rgIJbbbb9ETmba8SaI:vh8Sa8NaI:vh8Na8PaI:vh8Pka8EaCaYcdtfydbc8S2fgsa8PaI:rgIa8PNNg8RasIdbMUdbasa8NaIa8NNg8VNg8UasIdlMUdlasa8SaIa8SNg8WNg8XasIdwMUdwasa8Va8PNg8VasIdxMUdxasa8Wa8PNg8YasIdzMUdzasa8Wa8NNg8WasIdCMUdCasa8PaIa8SaRNa8Pa8MNaya8NNMM:mgyNg8MNg8PasIdKMUdKasa8Na8MNg8NasId3MUd3asa8Sa8MNg8SasIdaMUdaasa8MayNg8MasId8KMUd8KasaIasIdyMUdya8EaCa5cdtfydbc8S2fgsa8RasIdbMUdbasa8UasIdlMUdlasa8XasIdwMUdwasa8VasIdxMUdxasa8YasIdzMUdzasa8WasIdCMUdCasa8PasIdKMUdKasa8NasId3MUd3asa8SasIdaMUdaasa8MasId8KMUd8KasaIasIdyMUdya8EaCaKcdtfydbc8S2fgsa8RasIdbMUdbasa8UasIdlMUdlasa8XasIdwMUdwasa8VasIdxMUdxasa8YasIdzMUdzasa8WasIdCMUdCasa8PasIdKMUdKasa8NasId3MUd3asa8SasIdaMUdaasa8MasId8KMUd8KasaIasIdyMUdyaLcxfhLa8Acifg8Aad6mbkcbh5aehYincbhLinaEaeaLc:G1jjbfydba5fcdtfydbgQfRbbhsdndnaEaYaLfydbg3fRbbg8Ac99fcFeGcpe0mbasceSmbascd9hmekdna8AcufcFeGce0mba8Fa3cdtfydbaQ9hmekdnascufcFeGce0mbaaaQcdtfydba39hmekdna8Acv2asfc:W1jjbfRbbTmbaCaQcdtfydbaCa3cdtfydb0mekJbbacJbbjZasceSEhIa8AceShOa8JaeaLc:K1jjbfydba5fcdtfydbcx2fhsdna8JaQcx2fg8AIdwa8Ja3cx2fgKIdwgy:tg8Pa8PNa8AIdbaKIdbgR:tg8Na8NNa8AIdlaKIdlg8R:tg8Sa8SNMM:rg8MJbbbb9ETmba8Pa8M:vh8Pa8Sa8M:vh8Sa8Na8M:vh8NkJbbacaIaOEh8WdnasIdway:tgIa8PaIa8PNasIdbaR:tg8Xa8NNa8SasIdla8R:tg8VNMMg8UN:tgIaINa8Xa8Na8UN:tg8Pa8PNa8Va8Sa8UN:tg8Na8NNMM:rg8SJbbbb9ETmbaIa8S:vhIa8Na8S:vh8Na8Pa8S:vh8Pka8EaCa3cdtfydbc8S2fgsa8Pa8Wa8MNg8Sa8PNNg8UasIdbMUdbasa8Na8Sa8NNg8WNg8XasIdlMUdlasaIa8SaINg8MNg8VasIdwMUdwasa8Wa8PNg8WasIdxMUdxasa8Ma8PNg8YasIdzMUdzasa8Ma8NNg8ZasIdCMUdCasa8Pa8SaIayNa8PaRNa8Ra8NNMM:mgyNg8MNg8PasIdKMUdKasa8Na8MNg8NasId3MUd3asaIa8MNgIasIdaMUdaasa8MayNg8MasId8KMUd8Kasa8SasIdyMUdya8EaCaQcdtfydbc8S2fgsa8UasIdbMUdbasa8XasIdlMUdlasa8VasIdwMUdwasa8WasIdxMUdxasa8YasIdzMUdzasa8ZasIdCMUdCasa8PasIdKMUdKasa8NasId3MUd3asaIasIdaMUdaasa8MasId8KMUd8Kasa8SasIdyMUdykaLclfgLcx9hmbkaYcxfhYa5cifg5ad6mbkaDTmbcbhYinJbbbbhRa8JaeaYcdtfgsclfydbgKcx2fgLIdwa8JasydbgOcx2fgQIdwg8V:tg8Na8NNaLIdbaQIdbg8Y:tgIaINaLIdlaQIdlg8Z:tg8Sa8SNMMg8Wa8Jascwfydbggcx2fgsIdwa8V:tg8MNa8Na8Na8MNaIasIdba8Y:tgyNa8SasIdla8Z:tg8RNMMg8PN:tJbbbbJbbjZa8Wa8Ma8MNayayNa8Ra8RNMMg8XNa8Pa8PN:tg8U:va8UJbbbb9BEg8UNh80a8Xa8NNa8Ma8PN:ta8UNh81a8Wa8RNa8Sa8PN:ta8UNhBa8Xa8SNa8Ra8PN:ta8UNh83a8WayNaIa8PN:ta8UNhUa8XaINaya8PN:ta8UNh85aIa8RNaya8SN:tg8Pa8PNa8Sa8MNa8Ra8NN:tg8Pa8PNa8NayNa8MaIN:tg8Pa8PNMM:r:rh8PavaOaD2cdtfhLavagaD2cdtfhQavaKaD2cdtfh3a8V:mh86a8Z:mh87a8Y:mh88cbh8AaDh5Jbbbbh8RJbbbbh8UJbbbbh8WJbbbbh8XJbbbbh8VJbbbbh8YJbbbbh8ZJbbbbh89Jbbbbh8:inaPc;Wbfa8Afgscwfa8Pa81a3IdbaLIdbg8M:tg8SNa80aQIdba8M:tgyNMg8NNUdbasclfa8Pa83a8SNaBayNMgINUdbasa8Pa85a8SNaUayNMg8SNUdbascxfa8Pa86a8NNa87aINa8Ma88a8SNMMMg8MNUdba8Pa8NaINNa8XMh8Xa8Pa8Na8SNNa8VMh8Va8PaIa8SNNa8YMh8Ya8Pa8Ma8MNNaRMhRa8Pa8Na8MNNa8RMh8Ra8PaIa8MNNa8UMh8Ua8Pa8Sa8MNNa8WMh8Wa8Pa8Na8NNNa8ZMh8Za8PaIaINNa89Mh89a8Pa8Sa8SNNa8:Mh8:aLclfhLa3clfh3aQclfhQa8Aczfh8Aa5cufg5mbkaoaCaOcdtfydbgLc8S2fgsa8:asIdbMUdbasa89asIdlMUdlasa8ZasIdwMUdwasa8YasIdxMUdxasa8VasIdzMUdzasa8XasIdCMUdCasa8WasIdKMUdKasa8UasId3MUd3asa8RasIdaMUdaasaRasId8KMUd8Kasa8PasIdyMUdyaoaCaKcdtfydbgKc8S2fgsa8:asIdbMUdbasa89asIdlMUdlasa8ZasIdwMUdwasa8YasIdxMUdxasa8VasIdzMUdzasa8XasIdCMUdCasa8WasIdKMUdKasa8UasId3MUd3asa8RasIdaMUdaasaRasId8KMUd8Kasa8PasIdyMUdyaoaCagcdtfydbgOc8S2fgsa8:asIdbMUdbasa89asIdlMUdlasa8ZasIdwMUdwasa8YasIdxMUdxasa8VasIdzMUdzasa8XasIdCMUdCasa8WasIdKMUdKasa8UasId3MUd3asa8RasIdaMUdaasaRasId8KMUd8Kasa8PasIdyMUdyawaLaD2cltfh5cbhLaDh3ina5aLfgsaPc;WbfaLfgQIdbasIdbMUdbasclfg8AaQclfIdba8AIdbMUdbascwfg8AaQcwfIdba8AIdbMUdbascxfgsaQcxfIdbasIdbMUdbaLczfhLa3cufg3mbkawaKaD2cltfh5cbhLaDh3ina5aLfgsaPc;WbfaLfgQIdbasIdbMUdbasclfg8AaQclfIdba8AIdbMUdbascwfg8AaQcwfIdba8AIdbMUdbascxfgsaQcxfIdbasIdbMUdbaLczfhLa3cufg3mbkawaOaD2cltfh5cbhLaDh3ina5aLfgsaPc;WbfaLfgQIdbasIdbMUdbasclfg8AaQclfIdba8AIdbMUdbascwfg8AaQcwfIdba8AIdbMUdbascxfgsaQcxfIdbasIdbMUdbaLczfhLa3cufg3mbkaYcifgYad6mbkkdnabaeSmbabaeadcdtz:kjjjb8AkaPydbhZcbhsdnalTmbaZclfhsaZydbh3aEhLalh8AcbhQincbasydbg5a39RaLRbbcpeGEaQfhQaLcefhLasclfhsa5h3a8Acufg8AmbkaQce4hskcuadas9Rcifgrcx2arc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbh8LaPcwfaPyd9Ogscdtfa8LBdbaPascefgLBd9OaPcwfaLcdtfcuarcdtarcFFFFi0Ecbyd1:jjjbHjjjjbbgxBdbaPascdfgLBd9OaPcwfaLcdtfaAcbyd1:jjjbHjjjjbbgHBdbaPascifgLBd9OaPcwfaLcdtfalcbyd1:jjjbHjjjjbbgnBdbaPasclfBd9OJbbbbh8Ydnadaq9nmbdnarci6mbakakNh8VaDclthca8Lcwfh9cJbbbbh8YinaPabadghalaCz:cjjjbabhOcbhzcbhKincbhsindnaCaOasfydbgQcdtgYfydbg8AaCabasc;m1jjbfydbaKfcdtfydbgLcdtfydbg5SmbaEaLfRbbgecv2aEaQfRbbg3fc;G1jjbfRbbg8Ka3cv2aefggc;G1jjbfRbbgiVcFeGTmbdnagc:W1jjbfRbbTmba5a8A0mekdna3ae9hmba3cufcFeGce0mba8FaYfydbaL9hmeka8Lazcx2fg3aLaQaicFeGg8AEBdla3aQaLa8AEBdba3a8Aa8KGcb9hBdwazcefhzkasclfgscx9hmbkdnaKcifgKah9pmbaOcxfhOazcifar9nmekkdnazmbahhdxikcbheinJbbbbJbbjZa8EaCa8Laecx2fg3ydlg8Aa3ydbg5a3ydwgLEgKcdtfydbg8Kc8S2gifgsIdyg8P:va8PJbbbb9BEasIdwa8Ja5a8AaLEgYcx2fgLIdwg8SNasIdzaLIdbg8MNasIdaMg8Pa8PMMa8SNasIdlaLIdlgyNasIdCa8SNasId3Mg8Pa8PMMayNasIdba8MNasIdxayNasIdKMg8Pa8PMMa8MNasId8KMMM:lNh8WJbbbbJbbjZa8EaCa5cdtfydbgdc8S2gQfgsIdyg8P:va8PJbbbb9BEasIdwa8Ja8Acx2fgLIdwgINasIdzaLIdbgRNasIdaMg8Pa8PMMaINasIdlaLIdlg8RNasIdCaINasId3Mg8Pa8PMMa8RNasIdbaRNasIdxa8RNasIdKMg8Pa8PMMaRNasId8KMMM:lNh8Xa3cwfhOa3clfhgdnaDTmbaoaQfgQIdwaINaQIdzaRNaQIdaMg8Pa8PMMaINaQIdla8RNaQIdCaINaQId3Mg8Pa8PMMa8RNaQIdbaRNaQIdxa8RNaQIdKMg8Pa8PMMaRNaQId8KMMMh8Nava8AaD2cdtfhLawadaD2cltfhsaQIdyh8UaDhQinaLIdbg8PJbbb;aNascxfIdbaIascwfIdbNaRasIdbNa8RasclfIdbNMMMNa8Pa8PNa8UNa8NMMh8NaLclfhLasczfhsaQcufgQmbkaoaifgQIdwa8SNaQIdza8MNaQIdaMg8Pa8PMMa8SNaQIdlayNaQIdCa8SNaQId3Mg8Pa8PMMayNaQIdba8MNaQIdxayNaQIdKMg8Pa8PMMa8MNaQId8KMMMhIavaYaD2cdtfhLawa8KaD2cltfhsaQIdyhRaDhQinaLIdbg8PJbbb;aNascxfIdba8SascwfIdbNa8MasIdbNayasclfIdbNMMMNa8Pa8PNaRNaIMMhIaLclfhLasczfhsaQcufgQmbka8WaI:lMh8Wa8Xa8N:lMh8Xkaga8AaYa8Xa8W9FgsEBdba3a5aKasEBdbaOa8Xa8WasEUdbaecefgeaz9hmbkaPc;Wbfcbcj;abz:ljjjb8Aa9chsazhLinaPc;WbfasydbcO4c;8ZGfgQaQydbcefBdbascxfhsaLcufgLmbkcbhscbhLinaPc;WbfasfgQydbh3aQaLBdba3aLfhLasclfgscj;ab9hmbkcbhsa9chLinaPc;WbfaLydbcO4c;8ZGfgQaQydbgQcefBdbaxaQcdtfasBdbaLcxfhLazascefgs9hmbkahaq9RgQci9UhJdnalTmbcbhsaHhLinaLasBdbaLclfhLalascefgs9hmbkkcbh9eancbalz:ljjjbhTaQcO9UhSaJce4h9haPydlh9icbhicbhgdnina8Laxagcdtfydbcx2fgOIdwg8Na8V9EmeaiaJ9pmeJFFuuh8Pdna9haz9pmba8Laxa9hcdtfydbcx2fIdwJbb;aZNh8Pkdna8Na8P9ETmbaiaS0mdkdnaTaCaOydlg6cdtg9kfydbg3fg0RbbaTaCaOydbgKcdtg9mfydbg9nfg9oRbbVmbdnaZa9ncdtfgsclfydbgLasydbgsSmbaLas9Rh5a9iascitfhsa8Ja3cx2fgYcwfhdaYclfhAa8Ja9ncx2fg8Kcwfh9pa8Kclfh9qcbhLcehednindnaHasydbcdtfydbgQa3SmbaHasclfydbcdtfydbg8Aa3SmbaQa8ASmba8Ja8Acx2fg8AIdba8JaQcx2fgQIdbgI:tg8Pa9qIdbaQIdlg8S:tg8MNa8KIdbaI:tgya8AIdla8S:tg8NN:ta8PaAIdba8S:tgRNaYIdbaI:tg8Ra8NN:tNa8Na9pIdbaQIdwg8S:tg8UNa8Ma8AIdwa8S:tgIN:ta8NadIdba8S:tg8SNaRaIN:tNaIayNa8Ua8PN:taIa8RNa8Sa8PN:tNMMJbbbb9FmdkascwfhsaLcefgLa56hea5aL9hmbkkaeceGTmba9hcefh9hxeka8Ea3c8S2gQfgsa8Ea9nc8S2g8AfgLIdbasIdbMUdbasaLIdlasIdlMUdlasaLIdwasIdwMUdwasaLIdxasIdxMUdxasaLIdzasIdzMUdzasaLIdCasIdCMUdCasaLIdKasIdKMUdKasaLId3asId3MUd3asaLIdaasIdaMUdaasaLId8KasId8KMUd8KasaLIdyasIdyMUdydnaDTmbaoaQfgsaoa8AfgLIdbasIdbMUdbasaLIdlasIdlMUdlasaLIdwasIdwMUdwasaLIdxasIdxMUdxasaLIdzasIdzMUdzasaLIdCasIdCMUdCasaLIdKasIdKMUdKasaLId3asId3MUd3asaLIdaasIdaMUdaasaLId8KasId8KMUd8KasaLIdyasIdyMUdyaca9n2heaca32hYawhLaDh8AinaLaYfgsaLaefgQIdbasIdbMUdbasclfg5aQclfIdba5IdbMUdbascwfg5aQcwfIdba5IdbMUdbascxfgsaQcxfIdbasIdbMUdbaLczfhLa8Acufg8AmbkkaOcwfhLdndndndnaEaKfgQRbbc9:fPdebdkaKhsinaHascdtgsfa3BdbaXasfydbgsaK9hmbxikkaXa9kfydbhsaXa9mfydbhKaHa9mfa6Bdbash6kaHaKcdtfa6Bdbka9oce86bba0ce86bbaLIdbg8Pa8Ya8Ya8P9DEh8Ya9ecefh9ececdaQRbbceSEaifhikagcefggaz9hmbkkdna9embahhdxikdnalTmbcbhLa8FhsindnasydbgQcuSmbdnaLaHaQcdtg3fydbgQ9hmba8Fa3fydbhQkasaQBdbkasclfhsalaLcefgL9hmbkcbhLaahsindnasydbgQcuSmbdnaLaHaQcdtg3fydbgQ9hmbaaa3fydbhQkasaQBdbkasclfhsalaLcefgL9hmbkkcbhdabhscbh8AindnaHasydbcdtfydbgLaHasclfydbcdtfydbgQSmbaLaHascwfydbcdtfydbg3SmbaQa3Smbabadcdtfg5aLBdba5clfaQBdba5cwfa3Bdbadcifhdkascxfhsa8Acifg8Aah6mbkadaq9nmdxbkkaPabadalaCz:cjjjbkdnamTmbama8Y:rUdbkaPyd9OgscdtaPcwffc98fhCdninasTmeaCydbcbyd:m:jjjbH:bjjjbbaCc98fhCascufhsxbkkaPc;W;abf8Kjjjjbadk;:ieouabydlhvabydbclfcbaicdtz:ljjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbarcearce0EhdinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfheadcufgdmbkkabydbcbBdbk:Zldouv998Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdnadTmbaicd4hvdnabTmbavcdthocbhraehwinabarcx2fgiaearav2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinalczfaifgDawaifIdbgqaDIdbgkakaq9EEUdbalaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawaofhwarcefgrad9hmbxdkkavcdthrcbhwincbhiinalczfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbalaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbkkdnabTmbadTmbJbbbbJbbjZalIdbalIdzgk:tJbbbb:xgqalIdlalIdCgx:tgmamaq9DEgqalIdwalIdKgm:tgPaPaq9DEgq:vaqJbbbb9BEhqinabaqabIdbak:tNUdbabclfgiaqaiIdbax:tNUdbabcwfgiaqaiIdbam:tNUdbabcxfhbadcufgdmbkkk8KbabaeadaialavcbcbcbcbaoarawaDz:bjjjbk8KbabaeadaialavaoarawaDaqakaxamz:bjjjbk;lOowud99wue99iul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcwfcbc;Kbz:ljjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgqBdwawceBd9Oaqaeadaiz:djjjbawcuadcdtadcFFFFi0Egkcbyd1:jjjbHjjjjbbgxBdxawcdBd9Oadcd4adfhmceheinaegicetheaiam6mbkcbhmawcuaicdtgPaicFFFFi0Ecbyd1:jjjbHjjjjbbgsBdzawciBd9Odndnar:Zgz:rJbbbZMgH:lJbbb9p9DTmbaH:Ohexekcjjjj94hekaicufhOc:bwhAcbhCcbhXadhQinaChLaeaAgKcufaeaK9iEamgDcefaeaD9kEhYdndnadTmbaYcuf:YhHaqhiaxheadhmindndnaiIdbaHNJbbbZMg8A:lJbbb9p9DTmba8A:OhAxekcjjjj94hAkaAcCthAdndnaiclfIdbaHNJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcqtaAVhAdndnaicwfIdbaHNJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaeaAaCVBdbaicxfhiaeclfheamcufgmmbkascFeaPz:ljjjbhEcbh3cbh5indnaEaxa5cdtfydbgAcm4aA7c:v;t;h;Ev2gics4ai7aOGgmcdtfgCydbgecuSmbaeaASmbcehiinaEamaifaOGgmcdtfgCydbgecuSmeaicefhiaeaA9hmbkkaCaABdba3aecuSfh3a5cefg5ad9hmbxdkkascFeaPz:ljjjb8Acbh3kaDaYa3ar0giEhmaLa3aiEhCdna3arSmbaYaKaiEgAam9Rcd9imbdndnaXcl0mbdnaQ:ZgHaL:Zg8A:taY:Yg8EaD:Y:tg8Fa8EaK:Y:tgaa3:Zghaz:tNNNaHaz:taaNa8Aah:tNa8Aaz:ta8FNahaH:tNM:va8EMJbbbZMgH:lJbbb9p9DTmbaH:Ohexdkcjjjj94hexekamaAfcd9Theka3aQaiEhQaXcefgXcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd1:jjjbHjjjjbbg5BdCawclBd9OdndnadTmbamcuf:YhHaqhiaxheadhmindndnaiIdbaHNJbbbZMg8A:lJbbb9p9DTmba8A:OhAxekcjjjj94hAkaAcCthAdndnaiclfIdbaHNJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcqtaAVhAdndnaicwfIdbaHNJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaeaAaCVBdbaicxfhiaeclfheamcufgmmbkascFeaPz:ljjjbhEcbhDcbh3inaxa3cdtgYfydbgAcm4aA7c:v;t;h;Ev2gics4ai7hecbhidndninaEaeaOGgmcdtfgCydbgecuSmednaxaecdtgCfydbaASmbaicefgiamfheaiaO9nmekka5aCfydbhixekaCa3BdbaDhiaDcefhDka5aYfaiBdba3cefg3ad9hmbkcuaDc32giaDc;j:KM;jb0EhexekascFeaPz:ljjjb8AcbhDcbhekawaecbyd1:jjjbHjjjjbbgeBdKawcvBd9Oaecbaiz:ljjjbhOavcd4hxdnadTmbaxcdth3a5hmalhAaqheadhEinaOamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaAc;81jjbalEgCIdbaiIdxMUdxaiaCIdlaiIdzMUdzaiaCIdwaiIdCMUdCaiaiIdKJbbjZMUdKamclfhmaAa3fhAaecxfheaEcufgEmbkkdnaDTmbaOcxfhiaDheinaictfgmamIdbJbbbbJbbjZaicxfIdbgH:vaHJbbbb9BEgHNUdbaic94fgmaHamIdbNUdbaic98fgmaHamIdbNUdbaiaHaiIdbNUdbaiclfgmaHamIdbNUdbaicwfgmaHamIdbNUdbaic3fhiaecufgembkkcbhAawcuaDcdtgYaDcFFFFi0Egicbyd1:jjjbHjjjjbbgeBd3awcoBd9Oawaicbyd1:jjjbHjjjjbbgEBdaaecFeaYz:ljjjbh3dnadTmbaoaoNh8Aaxcdthxalheina8Aaec;81jjbalEgmIdwaOa5ydbgCc32fgiIdC:tgHaHNamIdbaiIdx:tgHaHNamIdlaiIdz:tgHaHNMMNaqcwfIdbaiIdw:tgHaHNaqIdbaiIdb:tgHaHNaqclfIdbaiIdl:tgHaHNMMMhHdndna3aCcdtgifgmydbcuSmbaEaifIdbaH9ETmekamaABdbaEaifaHUdbka5clfh5aeaxfheaqcxfhqadaAcefgA9hmbkkaba3aYz:kjjjb8AcrhikaicdthiinaiTmeaic98fgiawcwffydbcbyd:m:jjjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Qdidui99ducbhi8Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgoaDIdbgrarao9EEUdbaladfgDaoaDIdbgrarao9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkavJbbbb:xgvaoaoav9DEgoararao9DEk9DeeuabcFeaicdtz:ljjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcifc98GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcrfc94GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:jjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:jjjbfgdBd:q:jjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk:Iedbcjwk1eFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbebbbdbbbbbbbebbbeeebeebebbeeebebbbbbebebbbbbebbbdbbbbbbbbbbbbbbbeeeeebebbbbbebbbbbeebbbbbbbbbbbbbbbbbbbbbc1Dkxebbbdbbb:G9Kbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(m){n=m.instance,n.exports.__wasm_call_ctors()});function o(m){for(var x=new Uint8Array(m.length),b=0;b<m.length;++b){var T=m.charCodeAt(b);x[b]=T>96?T-97:T>64?T-39:T+4}for(var C=0,b=0;b<m.length;++b)x[C++]=x[b]<60?t[x[b]]:(x[b]-60)*64+x[++b];return x.buffer.slice(0,C)}function r(m){if(!m)throw new Error("Assertion failed")}function s(m){return new Uint8Array(m.buffer,m.byteOffset,m.byteLength)}function a(m,x,b){var T=n.exports.sbrk,C=T(x.length*4),A=T(b*4),E=new Uint8Array(n.exports.memory.buffer),v=s(x);E.set(v,C);var D=m(A,C,x.length,b);E=new Uint8Array(n.exports.memory.buffer);var O=new Uint32Array(b);new Uint8Array(O.buffer).set(E.subarray(A,A+b*4)),v.set(E.subarray(C,C+x.length*4)),T(C-T(0));for(var I=0;I<x.length;++I)x[I]=O[x[I]];return[O,D]}function c(m){for(var x=0,b=0;b<m.length;++b){var T=m[b];x=x<T?T:x}return x}function u(m,x,b,T,C,A,E,v,D){var O=n.exports.sbrk,I=O(4),L=O(b*4),N=O(C*A),_=O(b*4),S=new Uint8Array(n.exports.memory.buffer);S.set(s(T),N),S.set(s(x),_);var w=m(L,_,b,N,C,A,E,v,D,I);S=new Uint8Array(n.exports.memory.buffer);var P=new Uint32Array(w);s(P).set(S.subarray(L,L+w*4));var M=new Float32Array(1);return s(M).set(S.subarray(I,I+4)),O(I-O(0)),[P,M[0]]}function f(m,x,b,T,C,A,E,v,D,O,I,L){var N=n.exports.sbrk,_=N(4),S=N(b*4),w=N(C*A),P=N(C*v),M=N(D.length*4),B=N(b*4),U=new Uint8Array(n.exports.memory.buffer);U.set(s(T),w),U.set(s(E),P),U.set(s(D),M),U.set(s(x),B);var V=m(S,B,b,w,C,A,P,v,M,D.length,O,I,L,_);U=new Uint8Array(n.exports.memory.buffer);var G=new Uint32Array(V);s(G).set(U.subarray(S,S+V*4));var k=new Float32Array(1);return s(k).set(U.subarray(_,_+4)),N(_-N(0)),[G,k[0]]}function d(m,x,b,T){var C=n.exports.sbrk,A=C(b*T),E=new Uint8Array(n.exports.memory.buffer);E.set(s(x),A);var v=m(A,b,T);return C(A-C(0)),v}function p(m,x,b,T,C,A,E,v){var D=n.exports.sbrk,O=D(v*4),I=D(b*T),L=D(b*A),N=new Uint8Array(n.exports.memory.buffer);N.set(s(x),I),C&&N.set(s(C),L);var _=m(O,I,b,T,L,A,E,v);N=new Uint8Array(n.exports.memory.buffer);var S=new Uint32Array(_);return s(S).set(N.subarray(O,O+_*4)),D(O-D(0)),S}var g={LockBorder:1};return{ready:i,supported:!0,useExperimentalFeatures:!1,compactMesh:function(m){r(m instanceof Uint32Array||m instanceof Int32Array||m instanceof Uint16Array||m instanceof Int16Array),r(m.length%3==0);var x=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m);return a(n.exports.meshopt_optimizeVertexFetchRemap,x,c(m)+1)},simplify:function(m,x,b,T,C,A){r(m instanceof Uint32Array||m instanceof Int32Array||m instanceof Uint16Array||m instanceof Int16Array),r(m.length%3==0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),r(T>=0&&T<=m.length),r(T%3==0),r(C>=0&&C<=1);for(var E=0,v=0;v<(A?A.length:0);++v)E|=g[A[v]];var D=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m),O=u(n.exports.meshopt_simplify,D,m.length,x,x.length/b,b*4,T,C,E);return O[0]=m instanceof Uint32Array?O[0]:new m.constructor(O[0]),O},simplifyWithAttributes:function(m,x,b,T,C,A,E,v,D){r(this.useExperimentalFeatures),r(m instanceof Uint32Array||m instanceof Int32Array||m instanceof Uint16Array||m instanceof Int16Array),r(m.length%3==0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),r(T instanceof Float32Array),r(T.length%C==0),r(C>=0),r(E>=0&&E<=m.length),r(E%3==0),r(v>=0&&v<=1),r(Array.isArray(A)),r(C>=A.length),r(A.length<=16);for(var O=0,I=0;I<(D?D.length:0);++I)O|=g[D[I]];var L=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m),N=f(n.exports.meshopt_simplifyWithAttributes,L,m.length,x,x.length/b,b*4,T,C*4,new Float32Array(A),E,v,O);return N[0]=m instanceof Uint32Array?N[0]:new m.constructor(N[0]),N},getScale:function(m,x){return r(m instanceof Float32Array),r(m.length%x==0),r(x>=3),d(n.exports.meshopt_simplifyScale,m,m.length/x,x*4)},simplifyPoints:function(m,x,b,T,C,A){return r(this.useExperimentalFeatures),r(m instanceof Float32Array),r(m.length%x==0),r(x>=3),r(b>=0&&b<=m.length/x),T?(r(T instanceof Float32Array),r(T.length%C==0),r(C>=3),r(m.length/x==T.length/C),p(n.exports.meshopt_simplifyPoints,m,m.length/x,x*4,T,C*4,A,b)):p(n.exports.meshopt_simplifyPoints,m,m.length/x,x*4,void 0,0,0,b)}}}();typeof T1=="object"&&typeof x9=="object"?x9.exports=oU:typeof define=="function"&&define.amd?define([],function(){return oU}):typeof T1=="object"?T1.MeshoptSimplifier=oU:(typeof self<"u"?self:T1).MeshoptSimplifier=oU});var roe=Yn((tZt,ooe)=>{var cFe=toe(),lFe=noe(),uFe=ioe();ooe.exports={MeshoptEncoder:cFe,MeshoptDecoder:lFe,MeshoptSimplifier:uFe}});var Zoe=Yn((lnn,U9)=>{"use strict";U9.exports=gU;U9.exports.default=gU;function gU(e,t,n){n=n||2;var i=t&&t.length,o=i?t[0]*n:e.length,r=Yoe(e,0,o,n,!0),s=[];if(!r||r.next===r.prev)return s;var a,c,u,f,d,p,g;if(i&&(r=l3e(e,t,r,n)),e.length>80*n){a=u=e[0],c=f=e[1];for(var m=n;m<o;m+=n)d=e[m],p=e[m+1],d<a&&(a=d),p<c&&(c=p),d>u&&(u=d),p>f&&(f=p);g=Math.max(u-a,f-c),g=g!==0?32767/g:0}return G1(r,s,n,a,c,g,0),s}function Yoe(e,t,n,i,o){var r,s;if(o===V9(e,t,n,i)>0)for(r=t;r<n;r+=i)s=qoe(r,e[r],e[r+1],s);else for(r=n-i;r>=t;r-=i)s=qoe(r,e[r],e[r+1],s);return s&&yU(s,s.next)&&(j1(s),s=s.next),s}function ob(e,t){if(!e)return e;t||(t=e);var n=e,i;do if(i=!1,!n.steiner&&(yU(n,n.next)||vr(n.prev,n,n.next)===0)){if(j1(n),n=t=n.prev,n===n.next)break;i=!0}else n=n.next;while(i||n!==t);return t}function G1(e,t,n,i,o,r,s){if(e){!s&&r&&m3e(e,i,o,r);for(var a=e,c,u;e.prev!==e.next;){if(c=e.prev,u=e.next,r?s3e(e,i,o,r):r3e(e)){t.push(c.i/n|0),t.push(e.i/n|0),t.push(u.i/n|0),j1(e),e=u.next,a=u.next;continue}if(e=u,e===a){s?s===1?(e=a3e(ob(e),t,n),G1(e,t,n,i,o,r,2)):s===2&&c3e(e,t,n,i,o,r):G1(ob(e),t,n,i,o,r,1);break}}}}function r3e(e){var t=e.prev,n=e,i=e.next;if(vr(t,n,i)>=0)return!1;for(var o=t.x,r=n.x,s=i.x,a=t.y,c=n.y,u=i.y,f=o<r?o<s?o:s:r<s?r:s,d=a<c?a<u?a:u:c<u?c:u,p=o>r?o>s?o:s:r>s?r:s,g=a>c?a>u?a:u:c>u?c:u,m=i.next;m!==t;){if(m.x>=f&&m.x<=p&&m.y>=d&&m.y<=g&&SC(o,a,r,c,s,u,m.x,m.y)&&vr(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function s3e(e,t,n,i){var o=e.prev,r=e,s=e.next;if(vr(o,r,s)>=0)return!1;for(var a=o.x,c=r.x,u=s.x,f=o.y,d=r.y,p=s.y,g=a<c?a<u?a:u:c<u?c:u,m=f<d?f<p?f:p:d<p?d:p,x=a>c?a>u?a:u:c>u?c:u,b=f>d?f>p?f:p:d>p?d:p,T=B9(g,m,t,n,i),C=B9(x,b,t,n,i),A=e.prevZ,E=e.nextZ;A&&A.z>=T&&E&&E.z<=C;){if(A.x>=g&&A.x<=x&&A.y>=m&&A.y<=b&&A!==o&&A!==s&&SC(a,f,c,d,u,p,A.x,A.y)&&vr(A.prev,A,A.next)>=0||(A=A.prevZ,E.x>=g&&E.x<=x&&E.y>=m&&E.y<=b&&E!==o&&E!==s&&SC(a,f,c,d,u,p,E.x,E.y)&&vr(E.prev,E,E.next)>=0))return!1;E=E.nextZ}for(;A&&A.z>=T;){if(A.x>=g&&A.x<=x&&A.y>=m&&A.y<=b&&A!==o&&A!==s&&SC(a,f,c,d,u,p,A.x,A.y)&&vr(A.prev,A,A.next)>=0)return!1;A=A.prevZ}for(;E&&E.z<=C;){if(E.x>=g&&E.x<=x&&E.y>=m&&E.y<=b&&E!==o&&E!==s&&SC(a,f,c,d,u,p,E.x,E.y)&&vr(E.prev,E,E.next)>=0)return!1;E=E.nextZ}return!0}function a3e(e,t,n){var i=e;do{var o=i.prev,r=i.next.next;!yU(o,r)&&Xoe(o,i,i.next,r)&&W1(o,r)&&W1(r,o)&&(t.push(o.i/n|0),t.push(i.i/n|0),t.push(r.i/n|0),j1(i),j1(i.next),i=e=r),i=i.next}while(i!==e);return ob(i)}function c3e(e,t,n,i,o,r){var s=e;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&g3e(s,a)){var c=Koe(s,a);s=ob(s,s.next),c=ob(c,c.next),G1(s,t,n,i,o,r,0),G1(c,t,n,i,o,r,0);return}a=a.next}s=s.next}while(s!==e)}function l3e(e,t,n,i){var o=[],r,s,a,c,u;for(r=0,s=t.length;r<s;r++)a=t[r]*i,c=r<s-1?t[r+1]*i:e.length,u=Yoe(e,a,c,i,!1),u===u.next&&(u.steiner=!0),o.push(_3e(u));for(o.sort(u3e),r=0;r<o.length;r++)n=f3e(o[r],n);return n}function u3e(e,t){return e.x-t.x}function f3e(e,t){var n=d3e(e,t);if(!n)return t;var i=Koe(n,e);return ob(i,i.next),ob(n,n.next)}function d3e(e,t){var n=t,i=e.x,o=e.y,r=-1/0,s;do{if(o<=n.y&&o>=n.next.y&&n.next.y!==n.y){var a=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=i&&a>r&&(r=a,s=n.x<n.next.x?n:n.next,a===i))return s}n=n.next}while(n!==t);if(!s)return null;var c=s,u=s.x,f=s.y,d=1/0,p;n=s;do i>=n.x&&n.x>=u&&i!==n.x&&SC(o<f?i:r,o,u,f,o<f?r:i,o,n.x,n.y)&&(p=Math.abs(o-n.y)/(i-n.x),W1(n,e)&&(p<d||p===d&&(n.x>s.x||n.x===s.x&&h3e(s,n)))&&(s=n,d=p)),n=n.next;while(n!==c);return s}function h3e(e,t){return vr(e.prev,e,t.prev)<0&&vr(t.next,e,e.next)<0}function m3e(e,t,n,i){var o=e;do o.z===0&&(o.z=B9(o.x,o.y,t,n,i)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==e);o.prevZ.nextZ=null,o.prevZ=null,p3e(o)}function p3e(e){var t,n,i,o,r,s,a,c,u=1;do{for(n=e,e=null,r=null,s=0;n;){for(s++,i=n,a=0,t=0;t<u&&(a++,i=i.nextZ,!!i);t++);for(c=u;a>0||c>0&&i;)a!==0&&(c===0||!i||n.z<=i.z)?(o=n,n=n.nextZ,a--):(o=i,i=i.nextZ,c--),r?r.nextZ=o:e=o,o.prevZ=r,r=o;n=i}r.nextZ=null,u*=2}while(s>1);return e}function B9(e,t,n,i,o){return e=(e-n)*o|0,t=(t-i)*o|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function _3e(e){var t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function SC(e,t,n,i,o,r,s,a){return(o-s)*(t-a)>=(e-s)*(r-a)&&(e-s)*(i-a)>=(n-s)*(t-a)&&(n-s)*(r-a)>=(o-s)*(i-a)}function g3e(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!y3e(e,t)&&(W1(e,t)&&W1(t,e)&&x3e(e,t)&&(vr(e.prev,e,t.prev)||vr(e,t.prev,t))||yU(e,t)&&vr(e.prev,e,e.next)>0&&vr(t.prev,t,t.next)>0)}function vr(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function yU(e,t){return e.x===t.x&&e.y===t.y}function Xoe(e,t,n,i){var o=_U(vr(e,t,n)),r=_U(vr(e,t,i)),s=_U(vr(n,i,e)),a=_U(vr(n,i,t));return!!(o!==r&&s!==a||o===0&&pU(e,n,t)||r===0&&pU(e,i,t)||s===0&&pU(n,e,i)||a===0&&pU(n,t,i))}function pU(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function _U(e){return e>0?1:e<0?-1:0}function y3e(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Xoe(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function W1(e,t){return vr(e.prev,e,e.next)<0?vr(e,t,e.next)>=0&&vr(e,e.prev,t)>=0:vr(e,t,e.prev)<0||vr(e,e.next,t)<0}function x3e(e,t){var n=e,i=!1,o=(e.x+t.x)/2,r=(e.y+t.y)/2;do n.y>r!=n.next.y>r&&n.next.y!==n.y&&o<(n.next.x-n.x)*(r-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next;while(n!==e);return i}function Koe(e,t){var n=new k9(e.i,e.x,e.y),i=new k9(t.i,t.x,t.y),o=e.next,r=t.prev;return e.next=t,t.prev=e,n.next=o,o.prev=n,i.next=n,n.prev=i,r.next=i,i.prev=r,i}function qoe(e,t,n,i){var o=new k9(e,t,n);return i?(o.next=i.next,o.prev=i,i.next.prev=o,i.next=o):(o.prev=o,o.next=o),o}function j1(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function k9(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}gU.deviation=function(e,t,n,i){var o=t&&t.length,r=o?t[0]*n:e.length,s=Math.abs(V9(e,0,r,n));if(o)for(var a=0,c=t.length;a<c;a++){var u=t[a]*n,f=a<c-1?t[a+1]*n:e.length;s-=Math.abs(V9(e,u,f,n))}var d=0;for(a=0;a<i.length;a+=3){var p=i[a]*n,g=i[a+1]*n,m=i[a+2]*n;d+=Math.abs((e[p]-e[m])*(e[g+1]-e[p+1])-(e[p]-e[g])*(e[m+1]-e[p+1]))}return s===0&&d===0?0:Math.abs((d-s)/s)};function V9(e,t,n,i){for(var o=0,r=t,s=n-i;r<n;r+=i)o+=(e[s]-e[r])*(e[r+1]+e[s+1]),s=r;return o}gU.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},i=0,o=0;o<e.length;o++){for(var r=0;r<e[o].length;r++)for(var s=0;s<t;s++)n.vertices.push(e[o][r][s]);o>0&&(i+=e[o-1].length,n.holes.push(i))}return n}});var oce=Yn((jTn,ice)=>{"use strict";ice.exports=t6e;var aM=1e20;function t6e(e,t){t||(t={});var n=t.cutoff==null?.25:t.cutoff,i=t.radius==null?8:t.radius,o=t.channel||0,r,s,a,c,u,f,d,p,g,m,x;if(ArrayBuffer.isView(e)||Array.isArray(e)){if(!t.width||!t.height)throw Error("For raw data width and height should be provided by options");r=t.width,s=t.height,c=e,t.stride?f=t.stride:f=Math.floor(e.length/r/s)}else window.HTMLCanvasElement&&e instanceof window.HTMLCanvasElement?(p=e,d=p.getContext("2d"),r=p.width,s=p.height,g=d.getImageData(0,0,r,s),c=g.data,f=4):window.CanvasRenderingContext2D&&e instanceof window.CanvasRenderingContext2D?(p=e.canvas,d=e,r=p.width,s=p.height,g=d.getImageData(0,0,r,s),c=g.data,f=4):window.ImageData&&e instanceof window.ImageData&&(g=e,r=e.width,s=e.height,c=g.data,f=4);if(a=Math.max(r,s),window.Uint8ClampedArray&&c instanceof window.Uint8ClampedArray||window.Uint8Array&&c instanceof window.Uint8Array)for(u=c,c=Array(r*s),m=0,x=Math.floor(u.length/f);m<x;m++)c[m]=u[m*f+o]/255;else if(f!==1)throw Error("Raw data can have only 1 value per pixel");var b=Array(r*s),T=Array(r*s),C=Array(a),A=Array(a),E=Array(a+1),v=Array(a);for(m=0,x=r*s;m<x;m++){var D=c[m];b[m]=D===1?0:D===0?aM:Math.pow(Math.max(0,.5-D),2),T[m]=D===1?aM:D===0?0:Math.pow(Math.max(0,D-.5),2)}tce(b,r,s,C,A,v,E),tce(T,r,s,C,A,v,E);var O=window.Float32Array?new Float32Array(r*s):new Array(r*s);for(m=0,x=r*s;m<x;m++)O[m]=Math.min(Math.max(1-((b[m]-T[m])/i+n),0),1);return O}function tce(e,t,n,i,o,r,s){for(var a=0;a<t;a++){for(var c=0;c<n;c++)i[c]=e[c*t+a];for(nce(i,o,r,s,n),c=0;c<n;c++)e[c*t+a]=o[c]}for(c=0;c<n;c++){for(a=0;a<t;a++)i[a]=e[c*t+a];for(nce(i,o,r,s,t),a=0;a<t;a++)e[c*t+a]=Math.sqrt(o[a])}}function nce(e,t,n,i,o){n[0]=0,i[0]=-aM,i[1]=+aM;for(var r=1,s=0;r<o;r++){for(var a=(e[r]+r*r-(e[n[s]]+n[s]*n[s]))/(2*r-2*n[s]);a<=i[s];)s--,a=(e[r]+r*r-(e[n[s]]+n[s]*n[s]))/(2*r-2*n[s]);s++,n[s]=r,i[s]=a,i[s+1]=+aM}for(r=0,s=0;r<o;r++){for(;i[s+1]<r;)s++;t[r]=(r-n[s])*(r-n[s])+e[n[s]]}}});var lce=Yn((cAn,qU)=>{function d6e(){var e=0,t=1,n=2,i=3,o=4,r=5,s=6,a=7,c=8,u=9,f=10,d=11,p=12,g=13,m=14,x=15,b=16,T=17,C=0,A=1,E=2,v=3,D=4;function O(_,S){return 55296<=_.charCodeAt(S)&&_.charCodeAt(S)<=56319&&56320<=_.charCodeAt(S+1)&&_.charCodeAt(S+1)<=57343}function I(_,S){S===void 0&&(S=0);var w=_.charCodeAt(S);if(55296<=w&&w<=56319&&S<_.length-1){var P=w,M=_.charCodeAt(S+1);return 56320<=M&&M<=57343?(P-55296)*1024+(M-56320)+65536:P}if(56320<=w&&w<=57343&&S>=1){var P=_.charCodeAt(S-1),M=w;return 55296<=P&&P<=56319?(P-55296)*1024+(M-56320)+65536:M}return w}function L(_,S,w){var P=[_].concat(S).concat([w]),M=P[P.length-2],B=w,U=P.lastIndexOf(m);if(U>1&&P.slice(1,U).every(function(k){return k==i})&&[i,g,T].indexOf(_)==-1)return E;var V=P.lastIndexOf(o);if(V>0&&P.slice(1,V).every(function(k){return k==o})&&[p,o].indexOf(M)==-1)return P.filter(function(k){return k==o}).length%2==1?v:D;if(M==e&&B==t)return C;if(M==n||M==e||M==t)return B==m&&S.every(function(k){return k==i})?E:A;if(B==n||B==e||B==t)return A;if(M==s&&(B==s||B==a||B==u||B==f))return C;if((M==u||M==a)&&(B==a||B==c))return C;if((M==f||M==c)&&B==c)return C;if(B==i||B==x)return C;if(B==r)return C;if(M==p)return C;var G=P.indexOf(i)!=-1?P.lastIndexOf(i)-1:P.length-2;return[g,T].indexOf(P[G])!=-1&&P.slice(G+1,-1).every(function(k){return k==i})&&B==m||M==x&&[b,T].indexOf(B)!=-1?C:S.indexOf(o)!=-1?E:M==o&&B==o?C:A}this.nextBreak=function(_,S){if(S===void 0&&(S=0),S<0)return 0;if(S>=_.length-1)return _.length;for(var w=N(I(_,S)),P=[],M=S+1;M<_.length;M++)if(!O(_,M-1)){var B=N(I(_,M));if(L(w,P,B))return M;P.push(B)}return _.length},this.splitGraphemes=function(_){for(var S=[],w=0,P;(P=this.nextBreak(_,w))<_.length;)S.push(_.slice(w,P)),w=P;return w<_.length&&S.push(_.slice(w)),S},this.iterateGraphemes=function(_){var S=0,w={next:function(){var P,M;return(M=this.nextBreak(_,S))<_.length?(P=_.slice(S,M),S=M,{value:P,done:!1}):S<_.length?(P=_.slice(S),S=_.length,{value:P,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(w[Symbol.iterator]=function(){return w}),w},this.countGraphemes=function(_){for(var S=0,w=0,P;(P=this.nextBreak(_,w))<_.length;)w=P,S++;return w<_.length&&S++,S};function N(_){return 1536<=_&&_<=1541||_==1757||_==1807||_==2274||_==3406||_==69821||70082<=_&&_<=70083||_==72250||72326<=_&&_<=72329||_==73030?p:_==13?e:_==10?t:0<=_&&_<=9||11<=_&&_<=12||14<=_&&_<=31||127<=_&&_<=159||_==173||_==1564||_==6158||_==8203||8206<=_&&_<=8207||_==8232||_==8233||8234<=_&&_<=8238||8288<=_&&_<=8292||_==8293||8294<=_&&_<=8303||55296<=_&&_<=57343||_==65279||65520<=_&&_<=65528||65529<=_&&_<=65531||113824<=_&&_<=113827||119155<=_&&_<=119162||_==917504||_==917505||917506<=_&&_<=917535||917632<=_&&_<=917759||918e3<=_&&_<=921599?n:768<=_&&_<=879||1155<=_&&_<=1159||1160<=_&&_<=1161||1425<=_&&_<=1469||_==1471||1473<=_&&_<=1474||1476<=_&&_<=1477||_==1479||1552<=_&&_<=1562||1611<=_&&_<=1631||_==1648||1750<=_&&_<=1756||1759<=_&&_<=1764||1767<=_&&_<=1768||1770<=_&&_<=1773||_==1809||1840<=_&&_<=1866||1958<=_&&_<=1968||2027<=_&&_<=2035||2070<=_&&_<=2073||2075<=_&&_<=2083||2085<=_&&_<=2087||2089<=_&&_<=2093||2137<=_&&_<=2139||2260<=_&&_<=2273||2275<=_&&_<=2306||_==2362||_==2364||2369<=_&&_<=2376||_==2381||2385<=_&&_<=2391||2402<=_&&_<=2403||_==2433||_==2492||_==2494||2497<=_&&_<=2500||_==2509||_==2519||2530<=_&&_<=2531||2561<=_&&_<=2562||_==2620||2625<=_&&_<=2626||2631<=_&&_<=2632||2635<=_&&_<=2637||_==2641||2672<=_&&_<=2673||_==2677||2689<=_&&_<=2690||_==2748||2753<=_&&_<=2757||2759<=_&&_<=2760||_==2765||2786<=_&&_<=2787||2810<=_&&_<=2815||_==2817||_==2876||_==2878||_==2879||2881<=_&&_<=2884||_==2893||_==2902||_==2903||2914<=_&&_<=2915||_==2946||_==3006||_==3008||_==3021||_==3031||_==3072||3134<=_&&_<=3136||3142<=_&&_<=3144||3146<=_&&_<=3149||3157<=_&&_<=3158||3170<=_&&_<=3171||_==3201||_==3260||_==3263||_==3266||_==3270||3276<=_&&_<=3277||3285<=_&&_<=3286||3298<=_&&_<=3299||3328<=_&&_<=3329||3387<=_&&_<=3388||_==3390||3393<=_&&_<=3396||_==3405||_==3415||3426<=_&&_<=3427||_==3530||_==3535||3538<=_&&_<=3540||_==3542||_==3551||_==3633||3636<=_&&_<=3642||3655<=_&&_<=3662||_==3761||3764<=_&&_<=3769||3771<=_&&_<=3772||3784<=_&&_<=3789||3864<=_&&_<=3865||_==3893||_==3895||_==3897||3953<=_&&_<=3966||3968<=_&&_<=3972||3974<=_&&_<=3975||3981<=_&&_<=3991||3993<=_&&_<=4028||_==4038||4141<=_&&_<=4144||4146<=_&&_<=4151||4153<=_&&_<=4154||4157<=_&&_<=4158||4184<=_&&_<=4185||4190<=_&&_<=4192||4209<=_&&_<=4212||_==4226||4229<=_&&_<=4230||_==4237||_==4253||4957<=_&&_<=4959||5906<=_&&_<=5908||5938<=_&&_<=5940||5970<=_&&_<=5971||6002<=_&&_<=6003||6068<=_&&_<=6069||6071<=_&&_<=6077||_==6086||6089<=_&&_<=6099||_==6109||6155<=_&&_<=6157||6277<=_&&_<=6278||_==6313||6432<=_&&_<=6434||6439<=_&&_<=6440||_==6450||6457<=_&&_<=6459||6679<=_&&_<=6680||_==6683||_==6742||6744<=_&&_<=6750||_==6752||_==6754||6757<=_&&_<=6764||6771<=_&&_<=6780||_==6783||6832<=_&&_<=6845||_==6846||6912<=_&&_<=6915||_==6964||6966<=_&&_<=6970||_==6972||_==6978||7019<=_&&_<=7027||7040<=_&&_<=7041||7074<=_&&_<=7077||7080<=_&&_<=7081||7083<=_&&_<=7085||_==7142||7144<=_&&_<=7145||_==7149||7151<=_&&_<=7153||7212<=_&&_<=7219||7222<=_&&_<=7223||7376<=_&&_<=7378||7380<=_&&_<=7392||7394<=_&&_<=7400||_==7405||_==7412||7416<=_&&_<=7417||7616<=_&&_<=7673||7675<=_&&_<=7679||_==8204||8400<=_&&_<=8412||8413<=_&&_<=8416||_==8417||8418<=_&&_<=8420||8421<=_&&_<=8432||11503<=_&&_<=11505||_==11647||11744<=_&&_<=11775||12330<=_&&_<=12333||12334<=_&&_<=12335||12441<=_&&_<=12442||_==42607||42608<=_&&_<=42610||42612<=_&&_<=42621||42654<=_&&_<=42655||42736<=_&&_<=42737||_==43010||_==43014||_==43019||43045<=_&&_<=43046||43204<=_&&_<=43205||43232<=_&&_<=43249||43302<=_&&_<=43309||43335<=_&&_<=43345||43392<=_&&_<=43394||_==43443||43446<=_&&_<=43449||_==43452||_==43493||43561<=_&&_<=43566||43569<=_&&_<=43570||43573<=_&&_<=43574||_==43587||_==43596||_==43644||_==43696||43698<=_&&_<=43700||43703<=_&&_<=43704||43710<=_&&_<=43711||_==43713||43756<=_&&_<=43757||_==43766||_==44005||_==44008||_==44013||_==64286||65024<=_&&_<=65039||65056<=_&&_<=65071||65438<=_&&_<=65439||_==66045||_==66272||66422<=_&&_<=66426||68097<=_&&_<=68099||68101<=_&&_<=68102||68108<=_&&_<=68111||68152<=_&&_<=68154||_==68159||68325<=_&&_<=68326||_==69633||69688<=_&&_<=69702||69759<=_&&_<=69761||69811<=_&&_<=69814||69817<=_&&_<=69818||69888<=_&&_<=69890||69927<=_&&_<=69931||69933<=_&&_<=69940||_==70003||70016<=_&&_<=70017||70070<=_&&_<=70078||70090<=_&&_<=70092||70191<=_&&_<=70193||_==70196||70198<=_&&_<=70199||_==70206||_==70367||70371<=_&&_<=70378||70400<=_&&_<=70401||_==70460||_==70462||_==70464||_==70487||70502<=_&&_<=70508||70512<=_&&_<=70516||70712<=_&&_<=70719||70722<=_&&_<=70724||_==70726||_==70832||70835<=_&&_<=70840||_==70842||_==70845||70847<=_&&_<=70848||70850<=_&&_<=70851||_==71087||71090<=_&&_<=71093||71100<=_&&_<=71101||71103<=_&&_<=71104||71132<=_&&_<=71133||71219<=_&&_<=71226||_==71229||71231<=_&&_<=71232||_==71339||_==71341||71344<=_&&_<=71349||_==71351||71453<=_&&_<=71455||71458<=_&&_<=71461||71463<=_&&_<=71467||72193<=_&&_<=72198||72201<=_&&_<=72202||72243<=_&&_<=72248||72251<=_&&_<=72254||_==72263||72273<=_&&_<=72278||72281<=_&&_<=72283||72330<=_&&_<=72342||72344<=_&&_<=72345||72752<=_&&_<=72758||72760<=_&&_<=72765||_==72767||72850<=_&&_<=72871||72874<=_&&_<=72880||72882<=_&&_<=72883||72885<=_&&_<=72886||73009<=_&&_<=73014||_==73018||73020<=_&&_<=73021||73023<=_&&_<=73029||_==73031||92912<=_&&_<=92916||92976<=_&&_<=92982||94095<=_&&_<=94098||113821<=_&&_<=113822||_==119141||119143<=_&&_<=119145||119150<=_&&_<=119154||119163<=_&&_<=119170||119173<=_&&_<=119179||119210<=_&&_<=119213||119362<=_&&_<=119364||121344<=_&&_<=121398||121403<=_&&_<=121452||_==121461||_==121476||121499<=_&&_<=121503||121505<=_&&_<=121519||122880<=_&&_<=122886||122888<=_&&_<=122904||122907<=_&&_<=122913||122915<=_&&_<=122916||122918<=_&&_<=122922||125136<=_&&_<=125142||125252<=_&&_<=125258||917536<=_&&_<=917631||917760<=_&&_<=917999?i:127462<=_&&_<=127487?o:_==2307||_==2363||2366<=_&&_<=2368||2377<=_&&_<=2380||2382<=_&&_<=2383||2434<=_&&_<=2435||2495<=_&&_<=2496||2503<=_&&_<=2504||2507<=_&&_<=2508||_==2563||2622<=_&&_<=2624||_==2691||2750<=_&&_<=2752||_==2761||2763<=_&&_<=2764||2818<=_&&_<=2819||_==2880||2887<=_&&_<=2888||2891<=_&&_<=2892||_==3007||3009<=_&&_<=3010||3014<=_&&_<=3016||3018<=_&&_<=3020||3073<=_&&_<=3075||3137<=_&&_<=3140||3202<=_&&_<=3203||_==3262||3264<=_&&_<=3265||3267<=_&&_<=3268||3271<=_&&_<=3272||3274<=_&&_<=3275||3330<=_&&_<=3331||3391<=_&&_<=3392||3398<=_&&_<=3400||3402<=_&&_<=3404||3458<=_&&_<=3459||3536<=_&&_<=3537||3544<=_&&_<=3550||3570<=_&&_<=3571||_==3635||_==3763||3902<=_&&_<=3903||_==3967||_==4145||4155<=_&&_<=4156||4182<=_&&_<=4183||_==4228||_==6070||6078<=_&&_<=6085||6087<=_&&_<=6088||6435<=_&&_<=6438||6441<=_&&_<=6443||6448<=_&&_<=6449||6451<=_&&_<=6456||6681<=_&&_<=6682||_==6741||_==6743||6765<=_&&_<=6770||_==6916||_==6965||_==6971||6973<=_&&_<=6977||6979<=_&&_<=6980||_==7042||_==7073||7078<=_&&_<=7079||_==7082||_==7143||7146<=_&&_<=7148||_==7150||7154<=_&&_<=7155||7204<=_&&_<=7211||7220<=_&&_<=7221||_==7393||7410<=_&&_<=7411||_==7415||43043<=_&&_<=43044||_==43047||43136<=_&&_<=43137||43188<=_&&_<=43203||43346<=_&&_<=43347||_==43395||43444<=_&&_<=43445||43450<=_&&_<=43451||43453<=_&&_<=43456||43567<=_&&_<=43568||43571<=_&&_<=43572||_==43597||_==43755||43758<=_&&_<=43759||_==43765||44003<=_&&_<=44004||44006<=_&&_<=44007||44009<=_&&_<=44010||_==44012||_==69632||_==69634||_==69762||69808<=_&&_<=69810||69815<=_&&_<=69816||_==69932||_==70018||70067<=_&&_<=70069||70079<=_&&_<=70080||70188<=_&&_<=70190||70194<=_&&_<=70195||_==70197||70368<=_&&_<=70370||70402<=_&&_<=70403||_==70463||70465<=_&&_<=70468||70471<=_&&_<=70472||70475<=_&&_<=70477||70498<=_&&_<=70499||70709<=_&&_<=70711||70720<=_&&_<=70721||_==70725||70833<=_&&_<=70834||_==70841||70843<=_&&_<=70844||_==70846||_==70849||71088<=_&&_<=71089||71096<=_&&_<=71099||_==71102||71216<=_&&_<=71218||71227<=_&&_<=71228||_==71230||_==71340||71342<=_&&_<=71343||_==71350||71456<=_&&_<=71457||_==71462||72199<=_&&_<=72200||_==72249||72279<=_&&_<=72280||_==72343||_==72751||_==72766||_==72873||_==72881||_==72884||94033<=_&&_<=94078||_==119142||_==119149?r:4352<=_&&_<=4447||43360<=_&&_<=43388?s:4448<=_&&_<=4519||55216<=_&&_<=55238?a:4520<=_&&_<=4607||55243<=_&&_<=55291?c:_==44032||_==44060||_==44088||_==44116||_==44144||_==44172||_==44200||_==44228||_==44256||_==44284||_==44312||_==44340||_==44368||_==44396||_==44424||_==44452||_==44480||_==44508||_==44536||_==44564||_==44592||_==44620||_==44648||_==44676||_==44704||_==44732||_==44760||_==44788||_==44816||_==44844||_==44872||_==44900||_==44928||_==44956||_==44984||_==45012||_==45040||_==45068||_==45096||_==45124||_==45152||_==45180||_==45208||_==45236||_==45264||_==45292||_==45320||_==45348||_==45376||_==45404||_==45432||_==45460||_==45488||_==45516||_==45544||_==45572||_==45600||_==45628||_==45656||_==45684||_==45712||_==45740||_==45768||_==45796||_==45824||_==45852||_==45880||_==45908||_==45936||_==45964||_==45992||_==46020||_==46048||_==46076||_==46104||_==46132||_==46160||_==46188||_==46216||_==46244||_==46272||_==46300||_==46328||_==46356||_==46384||_==46412||_==46440||_==46468||_==46496||_==46524||_==46552||_==46580||_==46608||_==46636||_==46664||_==46692||_==46720||_==46748||_==46776||_==46804||_==46832||_==46860||_==46888||_==46916||_==46944||_==46972||_==47e3||_==47028||_==47056||_==47084||_==47112||_==47140||_==47168||_==47196||_==47224||_==47252||_==47280||_==47308||_==47336||_==47364||_==47392||_==47420||_==47448||_==47476||_==47504||_==47532||_==47560||_==47588||_==47616||_==47644||_==47672||_==47700||_==47728||_==47756||_==47784||_==47812||_==47840||_==47868||_==47896||_==47924||_==47952||_==47980||_==48008||_==48036||_==48064||_==48092||_==48120||_==48148||_==48176||_==48204||_==48232||_==48260||_==48288||_==48316||_==48344||_==48372||_==48400||_==48428||_==48456||_==48484||_==48512||_==48540||_==48568||_==48596||_==48624||_==48652||_==48680||_==48708||_==48736||_==48764||_==48792||_==48820||_==48848||_==48876||_==48904||_==48932||_==48960||_==48988||_==49016||_==49044||_==49072||_==49100||_==49128||_==49156||_==49184||_==49212||_==49240||_==49268||_==49296||_==49324||_==49352||_==49380||_==49408||_==49436||_==49464||_==49492||_==49520||_==49548||_==49576||_==49604||_==49632||_==49660||_==49688||_==49716||_==49744||_==49772||_==49800||_==49828||_==49856||_==49884||_==49912||_==49940||_==49968||_==49996||_==50024||_==50052||_==50080||_==50108||_==50136||_==50164||_==50192||_==50220||_==50248||_==50276||_==50304||_==50332||_==50360||_==50388||_==50416||_==50444||_==50472||_==50500||_==50528||_==50556||_==50584||_==50612||_==50640||_==50668||_==50696||_==50724||_==50752||_==50780||_==50808||_==50836||_==50864||_==50892||_==50920||_==50948||_==50976||_==51004||_==51032||_==51060||_==51088||_==51116||_==51144||_==51172||_==51200||_==51228||_==51256||_==51284||_==51312||_==51340||_==51368||_==51396||_==51424||_==51452||_==51480||_==51508||_==51536||_==51564||_==51592||_==51620||_==51648||_==51676||_==51704||_==51732||_==51760||_==51788||_==51816||_==51844||_==51872||_==51900||_==51928||_==51956||_==51984||_==52012||_==52040||_==52068||_==52096||_==52124||_==52152||_==52180||_==52208||_==52236||_==52264||_==52292||_==52320||_==52348||_==52376||_==52404||_==52432||_==52460||_==52488||_==52516||_==52544||_==52572||_==52600||_==52628||_==52656||_==52684||_==52712||_==52740||_==52768||_==52796||_==52824||_==52852||_==52880||_==52908||_==52936||_==52964||_==52992||_==53020||_==53048||_==53076||_==53104||_==53132||_==53160||_==53188||_==53216||_==53244||_==53272||_==53300||_==53328||_==53356||_==53384||_==53412||_==53440||_==53468||_==53496||_==53524||_==53552||_==53580||_==53608||_==53636||_==53664||_==53692||_==53720||_==53748||_==53776||_==53804||_==53832||_==53860||_==53888||_==53916||_==53944||_==53972||_==54e3||_==54028||_==54056||_==54084||_==54112||_==54140||_==54168||_==54196||_==54224||_==54252||_==54280||_==54308||_==54336||_==54364||_==54392||_==54420||_==54448||_==54476||_==54504||_==54532||_==54560||_==54588||_==54616||_==54644||_==54672||_==54700||_==54728||_==54756||_==54784||_==54812||_==54840||_==54868||_==54896||_==54924||_==54952||_==54980||_==55008||_==55036||_==55064||_==55092||_==55120||_==55148||_==55176?u:44033<=_&&_<=44059||44061<=_&&_<=44087||44089<=_&&_<=44115||44117<=_&&_<=44143||44145<=_&&_<=44171||44173<=_&&_<=44199||44201<=_&&_<=44227||44229<=_&&_<=44255||44257<=_&&_<=44283||44285<=_&&_<=44311||44313<=_&&_<=44339||44341<=_&&_<=44367||44369<=_&&_<=44395||44397<=_&&_<=44423||44425<=_&&_<=44451||44453<=_&&_<=44479||44481<=_&&_<=44507||44509<=_&&_<=44535||44537<=_&&_<=44563||44565<=_&&_<=44591||44593<=_&&_<=44619||44621<=_&&_<=44647||44649<=_&&_<=44675||44677<=_&&_<=44703||44705<=_&&_<=44731||44733<=_&&_<=44759||44761<=_&&_<=44787||44789<=_&&_<=44815||44817<=_&&_<=44843||44845<=_&&_<=44871||44873<=_&&_<=44899||44901<=_&&_<=44927||44929<=_&&_<=44955||44957<=_&&_<=44983||44985<=_&&_<=45011||45013<=_&&_<=45039||45041<=_&&_<=45067||45069<=_&&_<=45095||45097<=_&&_<=45123||45125<=_&&_<=45151||45153<=_&&_<=45179||45181<=_&&_<=45207||45209<=_&&_<=45235||45237<=_&&_<=45263||45265<=_&&_<=45291||45293<=_&&_<=45319||45321<=_&&_<=45347||45349<=_&&_<=45375||45377<=_&&_<=45403||45405<=_&&_<=45431||45433<=_&&_<=45459||45461<=_&&_<=45487||45489<=_&&_<=45515||45517<=_&&_<=45543||45545<=_&&_<=45571||45573<=_&&_<=45599||45601<=_&&_<=45627||45629<=_&&_<=45655||45657<=_&&_<=45683||45685<=_&&_<=45711||45713<=_&&_<=45739||45741<=_&&_<=45767||45769<=_&&_<=45795||45797<=_&&_<=45823||45825<=_&&_<=45851||45853<=_&&_<=45879||45881<=_&&_<=45907||45909<=_&&_<=45935||45937<=_&&_<=45963||45965<=_&&_<=45991||45993<=_&&_<=46019||46021<=_&&_<=46047||46049<=_&&_<=46075||46077<=_&&_<=46103||46105<=_&&_<=46131||46133<=_&&_<=46159||46161<=_&&_<=46187||46189<=_&&_<=46215||46217<=_&&_<=46243||46245<=_&&_<=46271||46273<=_&&_<=46299||46301<=_&&_<=46327||46329<=_&&_<=46355||46357<=_&&_<=46383||46385<=_&&_<=46411||46413<=_&&_<=46439||46441<=_&&_<=46467||46469<=_&&_<=46495||46497<=_&&_<=46523||46525<=_&&_<=46551||46553<=_&&_<=46579||46581<=_&&_<=46607||46609<=_&&_<=46635||46637<=_&&_<=46663||46665<=_&&_<=46691||46693<=_&&_<=46719||46721<=_&&_<=46747||46749<=_&&_<=46775||46777<=_&&_<=46803||46805<=_&&_<=46831||46833<=_&&_<=46859||46861<=_&&_<=46887||46889<=_&&_<=46915||46917<=_&&_<=46943||46945<=_&&_<=46971||46973<=_&&_<=46999||47001<=_&&_<=47027||47029<=_&&_<=47055||47057<=_&&_<=47083||47085<=_&&_<=47111||47113<=_&&_<=47139||47141<=_&&_<=47167||47169<=_&&_<=47195||47197<=_&&_<=47223||47225<=_&&_<=47251||47253<=_&&_<=47279||47281<=_&&_<=47307||47309<=_&&_<=47335||47337<=_&&_<=47363||47365<=_&&_<=47391||47393<=_&&_<=47419||47421<=_&&_<=47447||47449<=_&&_<=47475||47477<=_&&_<=47503||47505<=_&&_<=47531||47533<=_&&_<=47559||47561<=_&&_<=47587||47589<=_&&_<=47615||47617<=_&&_<=47643||47645<=_&&_<=47671||47673<=_&&_<=47699||47701<=_&&_<=47727||47729<=_&&_<=47755||47757<=_&&_<=47783||47785<=_&&_<=47811||47813<=_&&_<=47839||47841<=_&&_<=47867||47869<=_&&_<=47895||47897<=_&&_<=47923||47925<=_&&_<=47951||47953<=_&&_<=47979||47981<=_&&_<=48007||48009<=_&&_<=48035||48037<=_&&_<=48063||48065<=_&&_<=48091||48093<=_&&_<=48119||48121<=_&&_<=48147||48149<=_&&_<=48175||48177<=_&&_<=48203||48205<=_&&_<=48231||48233<=_&&_<=48259||48261<=_&&_<=48287||48289<=_&&_<=48315||48317<=_&&_<=48343||48345<=_&&_<=48371||48373<=_&&_<=48399||48401<=_&&_<=48427||48429<=_&&_<=48455||48457<=_&&_<=48483||48485<=_&&_<=48511||48513<=_&&_<=48539||48541<=_&&_<=48567||48569<=_&&_<=48595||48597<=_&&_<=48623||48625<=_&&_<=48651||48653<=_&&_<=48679||48681<=_&&_<=48707||48709<=_&&_<=48735||48737<=_&&_<=48763||48765<=_&&_<=48791||48793<=_&&_<=48819||48821<=_&&_<=48847||48849<=_&&_<=48875||48877<=_&&_<=48903||48905<=_&&_<=48931||48933<=_&&_<=48959||48961<=_&&_<=48987||48989<=_&&_<=49015||49017<=_&&_<=49043||49045<=_&&_<=49071||49073<=_&&_<=49099||49101<=_&&_<=49127||49129<=_&&_<=49155||49157<=_&&_<=49183||49185<=_&&_<=49211||49213<=_&&_<=49239||49241<=_&&_<=49267||49269<=_&&_<=49295||49297<=_&&_<=49323||49325<=_&&_<=49351||49353<=_&&_<=49379||49381<=_&&_<=49407||49409<=_&&_<=49435||49437<=_&&_<=49463||49465<=_&&_<=49491||49493<=_&&_<=49519||49521<=_&&_<=49547||49549<=_&&_<=49575||49577<=_&&_<=49603||49605<=_&&_<=49631||49633<=_&&_<=49659||49661<=_&&_<=49687||49689<=_&&_<=49715||49717<=_&&_<=49743||49745<=_&&_<=49771||49773<=_&&_<=49799||49801<=_&&_<=49827||49829<=_&&_<=49855||49857<=_&&_<=49883||49885<=_&&_<=49911||49913<=_&&_<=49939||49941<=_&&_<=49967||49969<=_&&_<=49995||49997<=_&&_<=50023||50025<=_&&_<=50051||50053<=_&&_<=50079||50081<=_&&_<=50107||50109<=_&&_<=50135||50137<=_&&_<=50163||50165<=_&&_<=50191||50193<=_&&_<=50219||50221<=_&&_<=50247||50249<=_&&_<=50275||50277<=_&&_<=50303||50305<=_&&_<=50331||50333<=_&&_<=50359||50361<=_&&_<=50387||50389<=_&&_<=50415||50417<=_&&_<=50443||50445<=_&&_<=50471||50473<=_&&_<=50499||50501<=_&&_<=50527||50529<=_&&_<=50555||50557<=_&&_<=50583||50585<=_&&_<=50611||50613<=_&&_<=50639||50641<=_&&_<=50667||50669<=_&&_<=50695||50697<=_&&_<=50723||50725<=_&&_<=50751||50753<=_&&_<=50779||50781<=_&&_<=50807||50809<=_&&_<=50835||50837<=_&&_<=50863||50865<=_&&_<=50891||50893<=_&&_<=50919||50921<=_&&_<=50947||50949<=_&&_<=50975||50977<=_&&_<=51003||51005<=_&&_<=51031||51033<=_&&_<=51059||51061<=_&&_<=51087||51089<=_&&_<=51115||51117<=_&&_<=51143||51145<=_&&_<=51171||51173<=_&&_<=51199||51201<=_&&_<=51227||51229<=_&&_<=51255||51257<=_&&_<=51283||51285<=_&&_<=51311||51313<=_&&_<=51339||51341<=_&&_<=51367||51369<=_&&_<=51395||51397<=_&&_<=51423||51425<=_&&_<=51451||51453<=_&&_<=51479||51481<=_&&_<=51507||51509<=_&&_<=51535||51537<=_&&_<=51563||51565<=_&&_<=51591||51593<=_&&_<=51619||51621<=_&&_<=51647||51649<=_&&_<=51675||51677<=_&&_<=51703||51705<=_&&_<=51731||51733<=_&&_<=51759||51761<=_&&_<=51787||51789<=_&&_<=51815||51817<=_&&_<=51843||51845<=_&&_<=51871||51873<=_&&_<=51899||51901<=_&&_<=51927||51929<=_&&_<=51955||51957<=_&&_<=51983||51985<=_&&_<=52011||52013<=_&&_<=52039||52041<=_&&_<=52067||52069<=_&&_<=52095||52097<=_&&_<=52123||52125<=_&&_<=52151||52153<=_&&_<=52179||52181<=_&&_<=52207||52209<=_&&_<=52235||52237<=_&&_<=52263||52265<=_&&_<=52291||52293<=_&&_<=52319||52321<=_&&_<=52347||52349<=_&&_<=52375||52377<=_&&_<=52403||52405<=_&&_<=52431||52433<=_&&_<=52459||52461<=_&&_<=52487||52489<=_&&_<=52515||52517<=_&&_<=52543||52545<=_&&_<=52571||52573<=_&&_<=52599||52601<=_&&_<=52627||52629<=_&&_<=52655||52657<=_&&_<=52683||52685<=_&&_<=52711||52713<=_&&_<=52739||52741<=_&&_<=52767||52769<=_&&_<=52795||52797<=_&&_<=52823||52825<=_&&_<=52851||52853<=_&&_<=52879||52881<=_&&_<=52907||52909<=_&&_<=52935||52937<=_&&_<=52963||52965<=_&&_<=52991||52993<=_&&_<=53019||53021<=_&&_<=53047||53049<=_&&_<=53075||53077<=_&&_<=53103||53105<=_&&_<=53131||53133<=_&&_<=53159||53161<=_&&_<=53187||53189<=_&&_<=53215||53217<=_&&_<=53243||53245<=_&&_<=53271||53273<=_&&_<=53299||53301<=_&&_<=53327||53329<=_&&_<=53355||53357<=_&&_<=53383||53385<=_&&_<=53411||53413<=_&&_<=53439||53441<=_&&_<=53467||53469<=_&&_<=53495||53497<=_&&_<=53523||53525<=_&&_<=53551||53553<=_&&_<=53579||53581<=_&&_<=53607||53609<=_&&_<=53635||53637<=_&&_<=53663||53665<=_&&_<=53691||53693<=_&&_<=53719||53721<=_&&_<=53747||53749<=_&&_<=53775||53777<=_&&_<=53803||53805<=_&&_<=53831||53833<=_&&_<=53859||53861<=_&&_<=53887||53889<=_&&_<=53915||53917<=_&&_<=53943||53945<=_&&_<=53971||53973<=_&&_<=53999||54001<=_&&_<=54027||54029<=_&&_<=54055||54057<=_&&_<=54083||54085<=_&&_<=54111||54113<=_&&_<=54139||54141<=_&&_<=54167||54169<=_&&_<=54195||54197<=_&&_<=54223||54225<=_&&_<=54251||54253<=_&&_<=54279||54281<=_&&_<=54307||54309<=_&&_<=54335||54337<=_&&_<=54363||54365<=_&&_<=54391||54393<=_&&_<=54419||54421<=_&&_<=54447||54449<=_&&_<=54475||54477<=_&&_<=54503||54505<=_&&_<=54531||54533<=_&&_<=54559||54561<=_&&_<=54587||54589<=_&&_<=54615||54617<=_&&_<=54643||54645<=_&&_<=54671||54673<=_&&_<=54699||54701<=_&&_<=54727||54729<=_&&_<=54755||54757<=_&&_<=54783||54785<=_&&_<=54811||54813<=_&&_<=54839||54841<=_&&_<=54867||54869<=_&&_<=54895||54897<=_&&_<=54923||54925<=_&&_<=54951||54953<=_&&_<=54979||54981<=_&&_<=55007||55009<=_&&_<=55035||55037<=_&&_<=55063||55065<=_&&_<=55091||55093<=_&&_<=55119||55121<=_&&_<=55147||55149<=_&&_<=55175||55177<=_&&_<=55203?f:_==9757||_==9977||9994<=_&&_<=9997||_==127877||127938<=_&&_<=127940||_==127943||127946<=_&&_<=127948||128066<=_&&_<=128067||128070<=_&&_<=128080||_==128110||128112<=_&&_<=128120||_==128124||128129<=_&&_<=128131||128133<=_&&_<=128135||_==128170||128372<=_&&_<=128373||_==128378||_==128400||128405<=_&&_<=128406||128581<=_&&_<=128583||128587<=_&&_<=128591||_==128675||128692<=_&&_<=128694||_==128704||_==128716||129304<=_&&_<=129308||129310<=_&&_<=129311||_==129318||129328<=_&&_<=129337||129341<=_&&_<=129342||129489<=_&&_<=129501?g:127995<=_&&_<=127999?m:_==8205?x:_==9792||_==9794||9877<=_&&_<=9878||_==9992||_==10084||_==127752||_==127806||_==127859||_==127891||_==127908||_==127912||_==127979||_==127981||_==128139||128187<=_&&_<=128188||_==128295||_==128300||_==128488||_==128640||_==128658?b:128102<=_&&_<=128105?T:d}return this}typeof qU<"u"&&qU.exports&&(qU.exports=d6e)});var Zde=Yn((w7,D7)=>{(function(e,t){typeof w7=="object"&&typeof D7<"u"?D7.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self,e.RBush=t())})(w7,function(){"use strict";function e(A,E,v,D,O){t(A,E,v||0,D||A.length-1,O||i)}function t(A,E,v,D,O){for(;D>v;){if(D-v>600){var I=D-v+1,L=E-v+1,N=Math.log(I),_=.5*Math.exp(2*N/3),S=.5*Math.sqrt(N*_*(I-_)/I)*(L-I/2<0?-1:1),w=Math.max(v,Math.floor(E-L*_/I+S)),P=Math.min(D,Math.floor(E+(I-L)*_/I+S));t(A,E,w,P,O)}var M=A[E],B=v,U=D;for(n(A,v,E),O(A[D],M)>0&&n(A,v,D);B<U;){for(n(A,B,U),B++,U--;O(A[B],M)<0;)B++;for(;O(A[U],M)>0;)U--}O(A[v],M)===0?n(A,v,U):(U++,n(A,U,D)),U<=E&&(v=U+1),E<=U&&(D=U-1)}}function n(A,E,v){var D=A[E];A[E]=A[v],A[v]=D}function i(A,E){return A<E?-1:A>E?1:0}var o=function(E){E===void 0&&(E=9),this._maxEntries=Math.max(4,E),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()};o.prototype.all=function(){return this._all(this.data,[])},o.prototype.search=function(E){var v=this.data,D=[];if(!b(E,v))return D;for(var O=this.toBBox,I=[];v;){for(var L=0;L<v.children.length;L++){var N=v.children[L],_=v.leaf?O(N):N;b(E,_)&&(v.leaf?D.push(N):x(E,_)?this._all(N,D):I.push(N))}v=I.pop()}return D},o.prototype.collides=function(E){var v=this.data;if(!b(E,v))return!1;for(var D=[];v;){for(var O=0;O<v.children.length;O++){var I=v.children[O],L=v.leaf?this.toBBox(I):I;if(b(E,L)){if(v.leaf||x(E,L))return!0;D.push(I)}}v=D.pop()}return!1},o.prototype.load=function(E){if(!(E&&E.length))return this;if(E.length<this._minEntries){for(var v=0;v<E.length;v++)this.insert(E[v]);return this}var D=this._build(E.slice(),0,E.length-1,0);if(!this.data.children.length)this.data=D;else if(this.data.height===D.height)this._splitRoot(this.data,D);else{if(this.data.height<D.height){var O=this.data;this.data=D,D=O}this._insert(D,this.data.height-D.height-1,!0)}return this},o.prototype.insert=function(E){return E&&this._insert(E,this.data.height-1),this},o.prototype.clear=function(){return this.data=T([]),this},o.prototype.remove=function(E,v){if(!E)return this;for(var D=this.data,O=this.toBBox(E),I=[],L=[],N,_,S;D||I.length;){if(D||(D=I.pop(),_=I[I.length-1],N=L.pop(),S=!0),D.leaf){var w=r(E,D.children,v);if(w!==-1)return D.children.splice(w,1),I.push(D),this._condense(I),this}!S&&!D.leaf&&x(D,O)?(I.push(D),L.push(N),N=0,_=D,D=D.children[0]):_?(N++,D=_.children[N],S=!1):D=null}return this},o.prototype.toBBox=function(E){return E},o.prototype.compareMinX=function(E,v){return E.minX-v.minX},o.prototype.compareMinY=function(E,v){return E.minY-v.minY},o.prototype.toJSON=function(){return this.data},o.prototype.fromJSON=function(E){return this.data=E,this},o.prototype._all=function(E,v){for(var D=[];E;)E.leaf?v.push.apply(v,E.children):D.push.apply(D,E.children),E=D.pop();return v},o.prototype._build=function(E,v,D,O){var I=D-v+1,L=this._maxEntries,N;if(I<=L)return N=T(E.slice(v,D+1)),s(N,this.toBBox),N;O||(O=Math.ceil(Math.log(I)/Math.log(L)),L=Math.ceil(I/Math.pow(L,O-1))),N=T([]),N.leaf=!1,N.height=O;var _=Math.ceil(I/L),S=_*Math.ceil(Math.sqrt(L));C(E,v,D,S,this.compareMinX);for(var w=v;w<=D;w+=S){var P=Math.min(w+S-1,D);C(E,w,P,_,this.compareMinY);for(var M=w;M<=P;M+=_){var B=Math.min(M+_-1,P);N.children.push(this._build(E,M,B,O-1))}}return s(N,this.toBBox),N},o.prototype._chooseSubtree=function(E,v,D,O){for(;O.push(v),!(v.leaf||O.length-1===D);){for(var I=1/0,L=1/0,N=void 0,_=0;_<v.children.length;_++){var S=v.children[_],w=d(S),P=g(E,S)-w;P<L?(L=P,I=w<I?w:I,N=S):P===L&&w<I&&(I=w,N=S)}v=N||v.children[0]}return v},o.prototype._insert=function(E,v,D){var O=D?E:this.toBBox(E),I=[],L=this._chooseSubtree(O,this.data,v,I);for(L.children.push(E),c(L,O);v>=0&&I[v].children.length>this._maxEntries;)this._split(I,v),v--;this._adjustParentBBoxes(O,I,v)},o.prototype._split=function(E,v){var D=E[v],O=D.children.length,I=this._minEntries;this._chooseSplitAxis(D,I,O);var L=this._chooseSplitIndex(D,I,O),N=T(D.children.splice(L,D.children.length-L));N.height=D.height,N.leaf=D.leaf,s(D,this.toBBox),s(N,this.toBBox),v?E[v-1].children.push(N):this._splitRoot(D,N)},o.prototype._splitRoot=function(E,v){this.data=T([E,v]),this.data.height=E.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},o.prototype._chooseSplitIndex=function(E,v,D){for(var O,I=1/0,L=1/0,N=v;N<=D-v;N++){var _=a(E,0,N,this.toBBox),S=a(E,N,D,this.toBBox),w=m(_,S),P=d(_)+d(S);w<I?(I=w,O=N,L=P<L?P:L):w===I&&P<L&&(L=P,O=N)}return O||D-v},o.prototype._chooseSplitAxis=function(E,v,D){var O=E.leaf?this.compareMinX:u,I=E.leaf?this.compareMinY:f,L=this._allDistMargin(E,v,D,O),N=this._allDistMargin(E,v,D,I);L<N&&E.children.sort(O)},o.prototype._allDistMargin=function(E,v,D,O){E.children.sort(O);for(var I=this.toBBox,L=a(E,0,v,I),N=a(E,D-v,D,I),_=p(L)+p(N),S=v;S<D-v;S++){var w=E.children[S];c(L,E.leaf?I(w):w),_+=p(L)}for(var P=D-v-1;P>=v;P--){var M=E.children[P];c(N,E.leaf?I(M):M),_+=p(N)}return _},o.prototype._adjustParentBBoxes=function(E,v,D){for(var O=D;O>=0;O--)c(v[O],E)},o.prototype._condense=function(E){for(var v=E.length-1,D=void 0;v>=0;v--)E[v].children.length===0?v>0?(D=E[v-1].children,D.splice(D.indexOf(E[v]),1)):this.clear():s(E[v],this.toBBox)};function r(A,E,v){if(!v)return E.indexOf(A);for(var D=0;D<E.length;D++)if(v(A,E[D]))return D;return-1}function s(A,E){a(A,0,A.children.length,E,A)}function a(A,E,v,D,O){O||(O=T(null)),O.minX=1/0,O.minY=1/0,O.maxX=-1/0,O.maxY=-1/0;for(var I=E;I<v;I++){var L=A.children[I];c(O,A.leaf?D(L):L)}return O}function c(A,E){return A.minX=Math.min(A.minX,E.minX),A.minY=Math.min(A.minY,E.minY),A.maxX=Math.max(A.maxX,E.maxX),A.maxY=Math.max(A.maxY,E.maxY),A}function u(A,E){return A.minX-E.minX}function f(A,E){return A.minY-E.minY}function d(A){return(A.maxX-A.minX)*(A.maxY-A.minY)}function p(A){return A.maxX-A.minX+(A.maxY-A.minY)}function g(A,E){return(Math.max(E.maxX,A.maxX)-Math.min(E.minX,A.minX))*(Math.max(E.maxY,A.maxY)-Math.min(E.minY,A.minY))}function m(A,E){var v=Math.max(A.minX,E.minX),D=Math.max(A.minY,E.minY),O=Math.min(A.maxX,E.maxX),I=Math.min(A.maxY,E.maxY);return Math.max(0,O-v)*Math.max(0,I-D)}function x(A,E){return A.minX<=E.minX&&A.minY<=E.minY&&E.maxX<=A.maxX&&E.maxY<=A.maxY}function b(A,E){return E.minX<=A.maxX&&E.minY<=A.maxY&&E.maxX>=A.minX&&E.maxY>=A.minY}function T(A){return{children:A,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function C(A,E,v,D,O){for(var I=[E,v];I.length;)if(v=I.pop(),E=I.pop(),!(v-E<=D)){var L=E+Math.ceil((v-E)/D/2)*D;e(A,L,E,v,O),I.push(E,L,L,v)}}return o})});var Fhe=Yn((Wz,Nhe)=>{(function(e,t){typeof Wz=="object"&&typeof Nhe<"u"?t(Wz):typeof define=="function"&&define.amd?define(["exports"],t):(e=e||self,t(e.topojson=e.topojson||{}))})(Wz,function(e){"use strict";function t(A){return A}function n(A){if(A==null)return t;var E,v,D=A.scale[0],O=A.scale[1],I=A.translate[0],L=A.translate[1];return function(N,_){_||(E=v=0);var S=2,w=N.length,P=new Array(w);for(P[0]=(E+=N[0])*D+I,P[1]=(v+=N[1])*O+L;S<w;)P[S]=N[S],++S;return P}}function i(A){var E=n(A.transform),v,D=1/0,O=D,I=-D,L=-D;function N(S){S=E(S),S[0]<D&&(D=S[0]),S[0]>I&&(I=S[0]),S[1]<O&&(O=S[1]),S[1]>L&&(L=S[1])}function _(S){switch(S.type){case"GeometryCollection":S.geometries.forEach(_);break;case"Point":N(S.coordinates);break;case"MultiPoint":S.coordinates.forEach(N);break}}A.arcs.forEach(function(S){for(var w=-1,P=S.length,M;++w<P;)M=E(S[w],w),M[0]<D&&(D=M[0]),M[0]>I&&(I=M[0]),M[1]<O&&(O=M[1]),M[1]>L&&(L=M[1])});for(v in A.objects)_(A.objects[v]);return[D,O,I,L]}function o(A,E){for(var v,D=A.length,O=D-E;O<--D;)v=A[O],A[O++]=A[D],A[D]=v}function r(A,E){return typeof E=="string"&&(E=A.objects[E]),E.type==="GeometryCollection"?{type:"FeatureCollection",features:E.geometries.map(function(v){return s(A,v)})}:s(A,E)}function s(A,E){var v=E.id,D=E.bbox,O=E.properties==null?{}:E.properties,I=a(A,E);return v==null&&D==null?{type:"Feature",properties:O,geometry:I}:D==null?{type:"Feature",id:v,properties:O,geometry:I}:{type:"Feature",id:v,bbox:D,properties:O,geometry:I}}function a(A,E){var v=n(A.transform),D=A.arcs;function O(w,P){P.length&&P.pop();for(var M=D[w<0?~w:w],B=0,U=M.length;B<U;++B)P.push(v(M[B],B));w<0&&o(P,U)}function I(w){return v(w)}function L(w){for(var P=[],M=0,B=w.length;M<B;++M)O(w[M],P);return P.length<2&&P.push(P[0]),P}function N(w){for(var P=L(w);P.length<4;)P.push(P[0]);return P}function _(w){return w.map(N)}function S(w){var P=w.type,M;switch(P){case"GeometryCollection":return{type:P,geometries:w.geometries.map(S)};case"Point":M=I(w.coordinates);break;case"MultiPoint":M=w.coordinates.map(I);break;case"LineString":M=L(w.arcs);break;case"MultiLineString":M=w.arcs.map(L);break;case"Polygon":M=_(w.arcs);break;case"MultiPolygon":M=w.arcs.map(_);break;default:return null}return{type:P,coordinates:M}}return S(E)}function c(A,E){var v={},D={},O={},I=[],L=-1;E.forEach(function(S,w){var P=A.arcs[S<0?~S:S],M;P.length<3&&!P[1][0]&&!P[1][1]&&(M=E[++L],E[L]=S,E[w]=M)}),E.forEach(function(S){var w=N(S),P=w[0],M=w[1],B,U;if(B=O[P])if(delete O[B.end],B.push(S),B.end=M,U=D[M]){delete D[U.start];var V=U===B?B:B.concat(U);D[V.start=B.start]=O[V.end=U.end]=V}else D[B.start]=O[B.end]=B;else if(B=D[M])if(delete D[B.start],B.unshift(S),B.start=P,U=O[P]){delete O[U.end];var G=U===B?B:U.concat(B);D[G.start=U.start]=O[G.end=B.end]=G}else D[B.start]=O[B.end]=B;else B=[S],D[B.start=P]=O[B.end=M]=B});function N(S){var w=A.arcs[S<0?~S:S],P=w[0],M;return A.transform?(M=[0,0],w.forEach(function(B){M[0]+=B[0],M[1]+=B[1]})):M=w[w.length-1],S<0?[M,P]:[P,M]}function _(S,w){for(var P in S){var M=S[P];delete w[M.start],delete M.start,delete M.end,M.forEach(function(B){v[B<0?~B:B]=1}),I.push(M)}}return _(O,D),_(D,O),E.forEach(function(S){v[S<0?~S:S]||I.push([S])}),I}function u(A){return a(A,f.apply(this,arguments))}function f(A,E,v){var D,O,I;if(arguments.length>1)D=d(A,E,v);else for(O=0,D=new Array(I=A.arcs.length);O<I;++O)D[O]=O;return{type:"MultiLineString",arcs:c(A,D)}}function d(A,E,v){var D=[],O=[],I;function L(P){var M=P<0?~P:P;(O[M]||(O[M]=[])).push({i:P,g:I})}function N(P){P.forEach(L)}function _(P){P.forEach(N)}function S(P){P.forEach(_)}function w(P){switch(I=P,P.type){case"GeometryCollection":P.geometries.forEach(w);break;case"LineString":N(P.arcs);break;case"MultiLineString":case"Polygon":_(P.arcs);break;case"MultiPolygon":S(P.arcs);break}}return w(E),O.forEach(v==null?function(P){D.push(P[0].i)}:function(P){v(P[0].g,P[P.length-1].g)&&D.push(P[0].i)}),D}function p(A){for(var E=-1,v=A.length,D,O=A[v-1],I=0;++E<v;)D=O,O=A[E],I+=D[0]*O[1]-D[1]*O[0];return Math.abs(I)}function g(A){return a(A,m.apply(this,arguments))}function m(A,E){var v={},D=[],O=[];E.forEach(I);function I(_){switch(_.type){case"GeometryCollection":_.geometries.forEach(I);break;case"Polygon":L(_.arcs);break;case"MultiPolygon":_.arcs.forEach(L);break}}function L(_){_.forEach(function(S){S.forEach(function(w){(v[w=w<0?~w:w]||(v[w]=[])).push(_)})}),D.push(_)}function N(_){return p(a(A,{type:"Polygon",arcs:[_]}).coordinates[0])}return D.forEach(function(_){if(!_._){var S=[],w=[_];for(_._=1,O.push(S);_=w.pop();)S.push(_),_.forEach(function(P){P.forEach(function(M){v[M<0?~M:M].forEach(function(B){B._||(B._=1,w.push(B))})})})}}),D.forEach(function(_){delete _._}),{type:"MultiPolygon",arcs:O.map(function(_){var S=[],w;if(_.forEach(function(V){V.forEach(function(G){G.forEach(function(k){v[k<0?~k:k].length<2&&S.push(k)})})}),S=c(A,S),(w=S.length)>1)for(var P=1,M=N(S[0]),B,U;P<w;++P)(B=N(S[P]))>M&&(U=S[0],S[0]=S[P],S[P]=U,M=B);return S}).filter(function(_){return _.length>0})}}function x(A,E){for(var v=0,D=A.length;v<D;){var O=v+D>>>1;A[O]<E?v=O+1:D=O}return v}function b(A){var E={},v=A.map(function(){return[]});function D(V,G){V.forEach(function(k){k<0&&(k=~k);var Y=E[k];Y?Y.push(G):E[k]=[G]})}function O(V,G){V.forEach(function(k){D(k,G)})}function I(V,G){V.type==="GeometryCollection"?V.geometries.forEach(function(k){I(k,G)}):V.type in L&&L[V.type](V.arcs,G)}var L={LineString:D,MultiLineString:O,Polygon:O,MultiPolygon:function(V,G){V.forEach(function(k){O(k,G)})}};A.forEach(I);for(var N in E)for(var _=E[N],S=_.length,w=0;w<S;++w)for(var P=w+1;P<S;++P){var M=_[w],B=_[P],U;(U=v[M])[N=x(U,B)]!==B&&U.splice(N,0,B),(U=v[B])[N=x(U,M)]!==M&&U.splice(N,0,M)}return v}function T(A){if(A==null)return t;var E,v,D=A.scale[0],O=A.scale[1],I=A.translate[0],L=A.translate[1];return function(N,_){_||(E=v=0);var S=2,w=N.length,P=new Array(w),M=Math.round((N[0]-I)/D),B=Math.round((N[1]-L)/O);for(P[0]=M-E,E=M,P[1]=B-v,v=B;S<w;)P[S]=N[S],++S;return P}}function C(A,E){if(A.transform)throw new Error("already quantized");if(!E||!E.scale){if(!((L=Math.floor(E))>=2))throw new Error("n must be \u22652");_=A.bbox||i(A);var v=_[0],D=_[1],O=_[2],I=_[3],L;E={scale:[O-v?(O-v)/(L-1):1,I-D?(I-D)/(L-1):1],translate:[v,D]}}else _=A.bbox;var N=T(E),_,S,w=A.objects,P={};function M(V){return N(V)}function B(V){var G;switch(V.type){case"GeometryCollection":G={type:"GeometryCollection",geometries:V.geometries.map(B)};break;case"Point":G={type:"Point",coordinates:M(V.coordinates)};break;case"MultiPoint":G={type:"MultiPoint",coordinates:V.coordinates.map(M)};break;default:return V}return V.id!=null&&(G.id=V.id),V.bbox!=null&&(G.bbox=V.bbox),V.properties!=null&&(G.properties=V.properties),G}function U(V){var G=0,k=1,Y=V.length,W,Q=new Array(Y);for(Q[0]=N(V[0],0);++G<Y;)((W=N(V[G],G))[0]||W[1])&&(Q[k++]=W);return k===1&&(Q[k++]=[0,0]),Q.length=k,Q}for(S in w)P[S]=B(w[S]);return{type:"Topology",bbox:_,transform:E,objects:P,arcs:A.arcs.map(U)}}e.bbox=i,e.feature=r,e.merge=g,e.mergeArcs=m,e.mesh=u,e.meshArcs=f,e.neighbors=b,e.quantize=C,e.transform=n,e.untransform=T,Object.defineProperty(e,"__esModule",{value:!0})})});var nme=Yn(Yz=>{"use strict";Object.defineProperty(Yz,"__esModule",{value:!0});Yz.version=void 0;Yz.version="4.0.0"});var lS=Yn(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});yc.assertNever=yc.removeWithPredicate=yc.remove=yc.ellipsis=yc.defaults=yc.isBoolean=yc.isUndefined=void 0;function ime(e){return e===void 0}yc.isUndefined=ime;function oQe(e){return typeof e=="boolean"}yc.isBoolean=oQe;function rQe(e,t){for(var n in t)t.hasOwnProperty(n)&&ime(e[n])&&(e[n]=t[n]);return e}yc.defaults=rQe;function sQe(e,t,n){var i;return e.length>t&&(n==null?(n="…",i=3):i=n.length,e=e.substring(0,t-i)+n),e}yc.ellipsis=sQe;function aQe(e,t){for(var n=e.length-1;n>=0;n--)e[n]===t&&e.splice(n,1)}yc.remove=aQe;function cQe(e,t){for(var n=e.length-1;n>=0;n--)t(e[n])===!0&&e.splice(n,1)}yc.removeWithPredicate=cQe;function lQe(e){throw new Error("Unhandled case for value: '".concat(e,"'"))}yc.assertNever=lQe});var lT=Yn(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.alphaNumericAndMarksRe=bi.alphaNumericAndMarksCharsStr=bi.alphaNumericCharsRe=bi.decimalNumbersStr=bi.alphaCharsAndMarksStr=bi.marksStr=bi.emojiStr=bi.alphaCharsStr=bi.controlCharsRe=bi.quoteRe=bi.whitespaceRe=bi.nonDigitRe=bi.digitRe=bi.letterRe=void 0;bi.letterRe=/[A-Za-z]/;bi.digitRe=/[\d]/;bi.nonDigitRe=/[\D]/;bi.whitespaceRe=/\s/;bi.quoteRe=/['"]/;bi.controlCharsRe=/[\x00-\x1F\x7F]/;bi.alphaCharsStr=/A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source;bi.emojiStr=/\u2700-\u27bf\udde6-\uddff\ud800-\udbff\udc00-\udfff\ufe0e\ufe0f\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0\ud83c\udffb-\udfff\u200d\u3299\u3297\u303d\u3030\u24c2\ud83c\udd70-\udd71\udd7e-\udd7f\udd8e\udd91-\udd9a\udde6-\uddff\ude01-\ude02\ude1a\ude2f\ude32-\ude3a\ude50-\ude51\u203c\u2049\u25aa-\u25ab\u25b6\u25c0\u25fb-\u25fe\u00a9\u00ae\u2122\u2139\udc04\u2600-\u26FF\u2b05\u2b06\u2b07\u2b1b\u2b1c\u2b50\u2b55\u231a\u231b\u2328\u23cf\u23e9-\u23f3\u23f8-\u23fa\udccf\u2935\u2934\u2190-\u21ff/.source;bi.marksStr=/\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F/.source;bi.alphaCharsAndMarksStr=bi.alphaCharsStr+bi.emojiStr+bi.marksStr;bi.decimalNumbersStr=/0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19/.source;bi.alphaNumericCharsRe=new RegExp("[".concat(bi.alphaCharsStr+bi.decimalNumbersStr,"]"));bi.alphaNumericAndMarksCharsStr=bi.alphaCharsAndMarksStr+bi.decimalNumbersStr;bi.alphaNumericAndMarksRe=new RegExp("[".concat(bi.alphaNumericAndMarksCharsStr,"]"))});var Zz=Yn(Kz=>{"use strict";Object.defineProperty(Kz,"__esModule",{value:!0});Kz.HtmlTag=void 0;var Xz=lT(),uQe=function(){function e(t){t===void 0&&(t={}),this.tagName="",this.attrs={},this.innerHTML="",this.tagName=t.tagName||"",this.attrs=t.attrs||{},this.innerHTML=t.innerHtml||t.innerHTML||""}return e.prototype.setTagName=function(t){return this.tagName=t,this},e.prototype.getTagName=function(){return this.tagName||""},e.prototype.setAttr=function(t,n){var i=this.getAttrs();return i[t]=n,this},e.prototype.getAttr=function(t){return this.getAttrs()[t]},e.prototype.setAttrs=function(t){return Object.assign(this.getAttrs(),t),this},e.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},e.prototype.setClass=function(t){return this.setAttr("class",t)},e.prototype.addClass=function(t){for(var n=this.getClass(),i=n?n.split(Xz.whitespaceRe):[],o=t.split(Xz.whitespaceRe),r;r=o.shift();)i.indexOf(r)===-1&&i.push(r);return this.getAttrs().class=i.join(" "),this},e.prototype.removeClass=function(t){for(var n=this.getClass(),i=n?n.split(Xz.whitespaceRe):[],o=t.split(Xz.whitespaceRe),r;i.length&&(r=o.shift());){var s=i.indexOf(r);s!==-1&&i.splice(s,1)}return this.getAttrs().class=i.join(" "),this},e.prototype.getClass=function(){return this.getAttrs().class||""},e.prototype.hasClass=function(t){return(" "+this.getClass()+" ").indexOf(" "+t+" ")!==-1},e.prototype.setInnerHTML=function(t){return this.innerHTML=t,this},e.prototype.setInnerHtml=function(t){return this.setInnerHTML(t)},e.prototype.getInnerHTML=function(){return this.innerHTML||""},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var t=this.getTagName(),n=this.buildAttrsStr();return n=n?" "+n:"",["<",t,n,">",this.getInnerHtml(),"</",t,">"].join("")},e.prototype.buildAttrsStr=function(){if(!this.attrs)return"";var t=this.getAttrs(),n=[];for(var i in t)t.hasOwnProperty(i)&&n.push(i+'="'+t[i]+'"');return n.join(" ")},e}();Kz.HtmlTag=uQe});var ome=Yn($z=>{"use strict";Object.defineProperty($z,"__esModule",{value:!0});$z.truncateSmart=void 0;function fQe(e,t,n){var i,o;n==null?(n="…",o=3,i=8):(o=n.length,i=n.length);var r=function(C){var A={},E=C,v=E.match(/^([a-z]+):\/\//i);return v&&(A.scheme=v[1],E=E.substr(v[0].length)),v=E.match(/^(.*?)(?=(\?|#|\/|$))/i),v&&(A.host=v[1],E=E.substr(v[0].length)),v=E.match(/^\/(.*?)(?=(\?|#|$))/i),v&&(A.path=v[1],E=E.substr(v[0].length)),v=E.match(/^\?(.*?)(?=(#|$))/i),v&&(A.query=v[1],E=E.substr(v[0].length)),v=E.match(/^#(.*?)$/i),v&&(A.fragment=v[1]),A},s=function(C){var A="";return C.scheme&&C.host&&(A+=C.scheme+"://"),C.host&&(A+=C.host),C.path&&(A+="/"+C.path),C.query&&(A+="?"+C.query),C.fragment&&(A+="#"+C.fragment),A},a=function(C,A){var E=A/2,v=Math.ceil(E),D=-1*Math.floor(E),O="";return D<0&&(O=C.substr(D)),C.substr(0,v)+n+O};if(e.length<=t)return e;var c=t-o,u=r(e);if(u.query){var f=u.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);f&&(u.query=u.query.substr(0,f[1].length),e=s(u))}if(e.length<=t||(u.host&&(u.host=u.host.replace(/^www\./,""),e=s(u)),e.length<=t))return e;var d="";if(u.host&&(d+=u.host),d.length>=c)return u.host.length==t?(u.host.substr(0,t-o)+n).substr(0,c+i):a(d,c).substr(0,c+i);var p="";if(u.path&&(p+="/"+u.path),u.query&&(p+="?"+u.query),p)if((d+p).length>=c){if((d+p).length==t)return(d+p).substr(0,t);var g=c-d.length;return(d+a(p,g)).substr(0,c+i)}else d+=p;if(u.fragment){var m="#"+u.fragment;if((d+m).length>=c){if((d+m).length==t)return(d+m).substr(0,t);var x=c-d.length;return(d+a(m,x)).substr(0,c+i)}else d+=m}if(u.scheme&&u.host){var b=u.scheme+"://";if((d+b).length<c)return(b+d).substr(0,t)}if(d.length<=t)return d;var T="";return c>0&&(T=d.substr(-1*Math.floor(c/2))),(d.substr(0,Math.ceil(c/2))+n+T).substr(0,c+i)}$z.truncateSmart=fQe});var rme=Yn(Qz=>{"use strict";Object.defineProperty(Qz,"__esModule",{value:!0});Qz.truncateMiddle=void 0;function dQe(e,t,n){if(e.length<=t)return e;var i,o;n==null?(n="…",i=8,o=3):(i=n.length,o=n.length);var r=t-o,s="";return r>0&&(s=e.substr(-1*Math.floor(r/2))),(e.substr(0,Math.ceil(r/2))+n+s).substr(0,r+i)}Qz.truncateMiddle=dQe});var sme=Yn(Jz=>{"use strict";Object.defineProperty(Jz,"__esModule",{value:!0});Jz.truncateEnd=void 0;var hQe=lS();function mQe(e,t,n){return(0,hQe.ellipsis)(e,t,n)}Jz.truncateEnd=mQe});var j7=Yn(e4=>{"use strict";Object.defineProperty(e4,"__esModule",{value:!0});e4.AnchorTagBuilder=void 0;var pQe=Zz(),_Qe=ome(),gQe=rme(),yQe=sme(),xQe=function(){function e(t){t===void 0&&(t={}),this.newWindow=!1,this.truncate={},this.className="",this.newWindow=t.newWindow||!1,this.truncate=t.truncate||{},this.className=t.className||""}return e.prototype.build=function(t){return new pQe.HtmlTag({tagName:"a",attrs:this.createAttrs(t),innerHtml:this.processAnchorText(t.getAnchorText())})},e.prototype.createAttrs=function(t){var n={href:t.getAnchorHref()},i=this.createCssClass(t);return i&&(n.class=i),this.newWindow&&(n.target="_blank",n.rel="noopener noreferrer"),this.truncate&&this.truncate.length&&this.truncate.length<t.getAnchorText().length&&(n.title=t.getAnchorHref()),n},e.prototype.createCssClass=function(t){var n=this.className;if(n){for(var i=[n],o=t.getCssClassSuffixes(),r=0,s=o.length;r<s;r++)i.push(n+"-"+o[r]);return i.join(" ")}else return""},e.prototype.processAnchorText=function(t){return t=this.doTruncate(t),t},e.prototype.doTruncate=function(t){var n=this.truncate;if(!n||!n.length)return t;var i=n.length,o=n.location;return o==="smart"?(0,_Qe.truncateSmart)(t,i):o==="middle"?(0,gQe.truncateMiddle)(t,i):(0,yQe.truncateEnd)(t,i)},e}();e4.AnchorTagBuilder=xQe});var Om={};rQ(Om,{__addDisposableResource:()=>wme,__assign:()=>t4,__asyncDelegator:()=>xme,__asyncGenerator:()=>yme,__asyncValues:()=>bme,__await:()=>uS,__awaiter:()=>dme,__classPrivateFieldGet:()=>Eme,__classPrivateFieldIn:()=>vme,__classPrivateFieldSet:()=>Sme,__createBinding:()=>i4,__decorate:()=>lme,__disposeResources:()=>Dme,__esDecorate:()=>bQe,__exportStar:()=>mme,__extends:()=>ame,__generator:()=>hme,__importDefault:()=>Cme,__importStar:()=>Ame,__makeTemplateObject:()=>Tme,__metadata:()=>fme,__param:()=>ume,__propKey:()=>AQe,__read:()=>Y7,__rest:()=>cme,__runInitializers:()=>TQe,__setFunctionName:()=>CQe,__spread:()=>pme,__spreadArray:()=>gme,__spreadArrays:()=>_me,__values:()=>n4,default:()=>vQe});function ame(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");q7(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function cme(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,i=Object.getOwnPropertySymbols(e);o<i.length;o++)t.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(e,i[o])&&(n[i[o]]=e[i[o]]);return n}function lme(e,t,n,i){var o=arguments.length,r=o<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,n):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(r=(o<3?s(r):o>3?s(t,n,r):s(t,n))||r);return o>3&&r&&Object.defineProperty(t,n,r),r}function ume(e,t){return function(n,i){t(n,i,e)}}function bQe(e,t,n,i,o,r){function s(T){if(T!==void 0&&typeof T!="function")throw new TypeError("Function expected");return T}for(var a=i.kind,c=a==="getter"?"get":a==="setter"?"set":"value",u=!t&&e?i.static?e:e.prototype:null,f=t||(u?Object.getOwnPropertyDescriptor(u,i.name):{}),d,p=!1,g=n.length-1;g>=0;g--){var m={};for(var x in i)m[x]=x==="access"?{}:i[x];for(var x in i.access)m.access[x]=i.access[x];m.addInitializer=function(T){if(p)throw new TypeError("Cannot add initializers after decoration has completed");r.push(s(T||null))};var b=(0,n[g])(a==="accessor"?{get:f.get,set:f.set}:f[c],m);if(a==="accessor"){if(b===void 0)continue;if(b===null||typeof b!="object")throw new TypeError("Object expected");(d=s(b.get))&&(f.get=d),(d=s(b.set))&&(f.set=d),(d=s(b.init))&&o.unshift(d)}else(d=s(b))&&(a==="field"?o.unshift(d):f[c]=d)}u&&Object.defineProperty(u,i.name,f),p=!0}function TQe(e,t,n){for(var i=arguments.length>2,o=0;o<t.length;o++)n=i?t[o].call(e,n):t[o].call(e);return i?n:void 0}function AQe(e){return typeof e=="symbol"?e:"".concat(e)}function CQe(e,t,n){return typeof t=="symbol"&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function fme(e,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,t)}function dme(e,t,n,i){function o(r){return r instanceof n?r:new n(function(s){s(r)})}return new(n||(n=Promise))(function(r,s){function a(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?r(f.value):o(f.value).then(a,c)}u((i=i.apply(e,t||[])).next())})}function hme(e,t){var n={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},i,o,r,s;return s={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function a(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(n=0)),n;)try{if(i=1,o&&(r=u[0]&2?o.return:u[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,u[1])).done)return r;switch(o=0,r&&(u=[u[0]&2,r.value]),u[0]){case 0:case 1:r=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,o=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(r=n.trys,!(r=r.length>0&&r[r.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!r||u[1]>r[0]&&u[1]<r[3])){n.label=u[1];break}if(u[0]===6&&n.label<r[1]){n.label=r[1],r=u;break}if(r&&n.label<r[2]){n.label=r[2],n.ops.push(u);break}r[2]&&n.ops.pop(),n.trys.pop();continue}u=t.call(e,n)}catch(f){u=[6,f],o=0}finally{i=r=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function mme(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&i4(t,e,n)}function n4(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Y7(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var i=n.call(e),o,r=[],s;try{for(;(t===void 0||t-- >0)&&!(o=i.next()).done;)r.push(o.value)}catch(a){s={error:a}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(s)throw s.error}}return r}function pme(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(Y7(arguments[t]));return e}function _me(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var i=Array(e),o=0,t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i}function gme(e,t,n){if(n||arguments.length===2)for(var i=0,o=t.length,r;i<o;i++)(r||!(i in t))&&(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}function uS(e){return this instanceof uS?(this.v=e,this):new uS(e)}function yme(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=n.apply(e,t||[]),o,r=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(p){i[p]&&(o[p]=function(g){return new Promise(function(m,x){r.push([p,g,m,x])>1||a(p,g)})})}function a(p,g){try{c(i[p](g))}catch(m){d(r[0][3],m)}}function c(p){p.value instanceof uS?Promise.resolve(p.value.v).then(u,f):d(r[0][2],p)}function u(p){a("next",p)}function f(p){a("throw",p)}function d(p,g){p(g),r.shift(),r.length&&a(r[0][0],r[0][1])}}function xme(e){var t,n;return t={},i("next"),i("throw",function(o){throw o}),i("return"),t[Symbol.iterator]=function(){return this},t;function i(o,r){t[o]=e[o]?function(s){return(n=!n)?{value:uS(e[o](s)),done:!1}:r?r(s):s}:r}}function bme(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof n4=="function"?n4(e):e[Symbol.iterator](),n={},i("next"),i("throw"),i("return"),n[Symbol.asyncIterator]=function(){return this},n);function i(r){n[r]=e[r]&&function(s){return new Promise(function(a,c){s=e[r](s),o(a,c,s.done,s.value)})}}function o(r,s,a,c){Promise.resolve(c).then(function(u){r({value:u,done:a})},s)}}function Tme(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function Ame(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&i4(t,e,n);return EQe(t,e),t}function Cme(e){return e&&e.__esModule?e:{default:e}}function Eme(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)}function Sme(e,t,n,i,o){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!o)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?o.call(e,n):o?o.value=n:t.set(e,n),n}function vme(e,t){if(t===null||typeof t!="object"&&typeof t!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof e=="function"?t===e:e.has(t)}function wme(e,t,n){if(t!=null){if(typeof t!="object"&&typeof t!="function")throw new TypeError("Object expected.");var i;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=t[Symbol.asyncDispose]}if(i===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=t[Symbol.dispose]}if(typeof i!="function")throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:i,async:n})}else n&&e.stack.push({async:!0});return t}function Dme(e){function t(i){e.error=e.hasError?new SQe(i,e.error,"An error was suppressed during disposal."):i,e.hasError=!0}function n(){for(;e.stack.length;){var i=e.stack.pop();try{var o=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(o).then(n,function(r){return t(r),n()})}catch(r){t(r)}}if(e.hasError)throw e.error}return n()}var q7,t4,i4,EQe,SQe,vQe,Mm=ICe(()=>{q7=function(e,t){return q7=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(n[o]=i[o])},q7(e,t)};t4=function(){return t4=Object.assign||function(t){for(var n,i=1,o=arguments.length;i<o;i++){n=arguments[i];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},t4.apply(this,arguments)};i4=Object.create?function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]};EQe=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};SQe=typeof SuppressedError=="function"?SuppressedError:function(e,t,n){var i=new Error(n);return i.name="SuppressedError",i.error=e,i.suppressed=t,i};vQe={__extends:ame,__assign:t4,__rest:cme,__decorate:lme,__param:ume,__metadata:fme,__awaiter:dme,__generator:hme,__createBinding:i4,__exportStar:mme,__values:n4,__read:Y7,__spread:pme,__spreadArrays:_me,__spreadArray:gme,__await:uS,__asyncGenerator:yme,__asyncDelegator:xme,__asyncValues:bme,__makeTemplateObject:Tme,__importStar:Ame,__importDefault:Cme,__classPrivateFieldGet:Eme,__classPrivateFieldSet:Sme,__classPrivateFieldIn:vme,__addDisposableResource:wme,__disposeResources:Dme}});var uT=Yn(o4=>{"use strict";Object.defineProperty(o4,"__esModule",{value:!0});o4.AbstractMatch=void 0;var wQe=function(){function e(t){this._=null,this.matchedText="",this.offset=0,this.tagBuilder=t.tagBuilder,this.matchedText=t.matchedText,this.offset=t.offset}return e.prototype.getMatchedText=function(){return this.matchedText},e.prototype.setOffset=function(t){this.offset=t},e.prototype.getOffset=function(){return this.offset},e.prototype.getCssClassSuffixes=function(){return[this.type]},e.prototype.buildTag=function(){return this.tagBuilder.build(this)},e}();o4.AbstractMatch=wQe});var Pme=Yn(fT=>{"use strict";Object.defineProperty(fT,"__esModule",{value:!0});fT.tldRegex=fT.tldRegexStr=void 0;fT.tldRegexStr="(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|verm\xF6gensberatung|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbah1a3hjkrd|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|verm\xF6gensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--mgbcpq6gpa1a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq480n2rg|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|travelchannel|wolterskluwer|xn--cckwcxetd|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--4dbrk0ce|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|\u0B9A\u0BBF\u0B99\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BC2\u0BB0\u0BCD|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nextdirect|properties|protection|prudential|realestate|republican|restaurant|schaeffler|tatamotors|technology|university|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--q7ce6a|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|institute|insurance|kuokgroup|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--qxa6a|xn--tckwe|xn--vhquv|yodobashi|\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|builders|business|capetown|catering|catholic|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|etisalat|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|training|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lanxess|lasalle|latrobe|leclerc|limited|lincoln|markets|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|singles|staples|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|\u043A\u0430\u0442\u043E\u043B\u0438\u043A|\u0627\u062A\u0635\u0627\u0644\u0627\u062A|\u0627\u0644\u0628\u062D\u0631\u064A\u0646|\u0627\u0644\u062C\u0632\u0627\u0626\u0631|\u0627\u0644\u0639\u0644\u064A\u0627\u0646|\u067E\u0627\u06A9\u0633\u062A\u0627\u0646|\u0643\u0627\u062B\u0648\u0644\u064A\u0643|\u0B87\u0BA8\u0BCD\u0BA4\u0BBF\u0BAF\u0BBE|abarth|abbott|abbvie|africa|agency|airbus|airtel|alipay|alsace|alstom|amazon|anquan|aramco|author|bayern|beauty|berlin|bharti|bostik|boston|broker|camera|career|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|webcam|xihuan|yachts|yandex|zappos|\u043C\u043E\u0441\u043A\u0432\u0430|\u043E\u043D\u043B\u0430\u0439\u043D|\u0627\u0628\u0648\u0638\u0628\u064A|\u0627\u0631\u0627\u0645\u0643\u0648|\u0627\u0644\u0627\u0631\u062F\u0646|\u0627\u0644\u0645\u063A\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062A|\u0641\u0644\u0633\u0637\u064A\u0646|\u0645\u0644\u064A\u0633\u064A\u0627|\u092D\u093E\u0930\u0924\u092E\u094D|\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8|\u30D5\u30A1\u30C3\u30B7\u30E7\u30F3|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|drive|dubai|earth|edeka|email|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|irish|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|loans|locus|lotte|lotto|macys|mango|media|miami|money|movie|music|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|\u05D9\u05E9\u05E8\u05D0\u05DC|\u0627\u06CC\u0631\u0627\u0646|\u0628\u0627\u0632\u0627\u0631|\u0628\u06BE\u0627\u0631\u062A|\u0633\u0648\u062F\u0627\u0646|\u0633\u0648\u0631\u064A\u0629|\u0647\u0645\u0631\u0627\u0647|\u092D\u093E\u0930\u094B\u0924|\u0938\u0902\u0917\u0920\u0928|\u09AC\u09BE\u0982\u09B2\u09BE|\u0C2D\u0C3E\u0C30\u0C24\u0C4D|\u0D2D\u0D3E\u0D30\u0D24\u0D02|\u5609\u91CC\u5927\u9152\u5E97|aarp|able|adac|aero|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kids|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|read|reit|rent|rest|rich|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|\u0434\u0435\u0442\u0438|\u0441\u0430\u0439\u0442|\u0628\u0627\u0631\u062A|\u0628\u064A\u062A\u0643|\u0680\u0627\u0631\u062A|\u062A\u0648\u0646\u0633|\u0634\u0628\u0643\u0629|\u0639\u0631\u0627\u0642|\u0639\u0645\u0627\u0646|\u0645\u0648\u0642\u0639|\u092D\u093E\u0930\u0924|\u09AD\u09BE\u09B0\u09A4|\u09AD\u09BE\u09F0\u09A4|\u0A2D\u0A3E\u0A30\u0A24|\u0AAD\u0ABE\u0AB0\u0AA4|\u0B2D\u0B3E\u0B30\u0B24|\u0CAD\u0CBE\u0CB0\u0CA4|\u0DBD\u0D82\u0D9A\u0DCF|\u30A2\u30DE\u30BE\u30F3|\u30B0\u30FC\u30B0\u30EB|\u30AF\u30E9\u30A6\u30C9|\u30DD\u30A4\u30F3\u30C8|\u7EC4\u7EC7\u673A\u6784|\u96FB\u8A0A\u76C8\u79D1|\u9999\u683C\u91CC\u62C9|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceo|cfa|cfd|com|cpa|crs|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gay|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|llp|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|spa|srl|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|\u0431\u0435\u043B|\u043A\u043E\u043C|\u049B\u0430\u0437|\u043C\u043A\u0434|\u043C\u043E\u043D|\u043E\u0440\u0433|\u0440\u0443\u0441|\u0441\u0440\u0431|\u0443\u043A\u0440|\u0570\u0561\u0575|\u05E7\u05D5\u05DD|\u0639\u0631\u0628|\u0642\u0637\u0631|\u0643\u0648\u0645|\u0645\u0635\u0631|\u0915\u0949\u092E|\u0928\u0947\u091F|\u0E04\u0E2D\u0E21|\u0E44\u0E17\u0E22|\u0EA5\u0EB2\u0EA7|\u30B9\u30C8\u30A2|\u30BB\u30FC\u30EB|\u307F\u3093\u306A|\u4E2D\u6587\u7F51|\u4E9A\u9A6C\u900A|\u5929\u4E3B\u6559|\u6211\u7231\u4F60|\u65B0\u52A0\u5761|\u6DE1\u9A6C\u9521|\u8BFA\u57FA\u4E9A|\u98DE\u5229\u6D66|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|\u03B5\u03BB|\u03B5\u03C5|\u0431\u0433|\u0435\u044E|\u0440\u0444|\u10D2\u10D4|\uB2F7\uB137|\uB2F7\uCEF4|\uC0BC\uC131|\uD55C\uAD6D|\u30B3\u30E0|\u4E16\u754C|\u4E2D\u4FE1|\u4E2D\u56FD|\u4E2D\u570B|\u4F01\u4E1A|\u4F5B\u5C71|\u4FE1\u606F|\u5065\u5EB7|\u516B\u5366|\u516C\u53F8|\u516C\u76CA|\u53F0\u6E7E|\u53F0\u7063|\u5546\u57CE|\u5546\u5E97|\u5546\u6807|\u5609\u91CC|\u5728\u7EBF|\u5927\u62FF|\u5A31\u4E50|\u5BB6\u96FB|\u5E7F\u4E1C|\u5FAE\u535A|\u6148\u5584|\u624B\u673A|\u62DB\u8058|\u653F\u52A1|\u653F\u5E9C|\u65B0\u95FB|\u65F6\u5C1A|\u66F8\u7C4D|\u673A\u6784|\u6E38\u620F|\u6FB3\u9580|\u70B9\u770B|\u79FB\u52A8|\u7F51\u5740|\u7F51\u5E97|\u7F51\u7AD9|\u7F51\u7EDC|\u8054\u901A|\u8C37\u6B4C|\u8D2D\u7269|\u901A\u8CA9|\u96C6\u56E2|\u98DF\u54C1|\u9910\u5385|\u9999\u6E2F)";fT.tldRegex=new RegExp("^"+fT.tldRegexStr+"$")});var r4=Yn(Bn=>{"use strict";Object.defineProperty(Bn,"__esModule",{value:!0});Bn.isValidIpV4Address=Bn.isValidTldMatch=Bn.isValidSchemeUrl=Bn.isKnownTld=Bn.isUrlSuffixStartChar=Bn.isPathChar=Bn.isDomainLabelChar=Bn.isDomainLabelStartChar=Bn.isSchemeChar=Bn.isSchemeStartChar=Bn.tldUrlHostRe=Bn.schemeUrlRe=Bn.invalidSchemeRe=Bn.urlSuffixedCharsNotAllowedAtEndRe=Bn.httpSchemePrefixRe=Bn.httpSchemeRe=Bn.urlSuffixNotAllowedAsLastCharRe=Bn.urlSuffixAllowedSpecialCharsRe=Bn.urlSuffixStartCharsRe=Bn.domainNameCharRegex=void 0;var dT=lT(),DQe=Pme();Bn.domainNameCharRegex=dT.alphaNumericAndMarksRe;Bn.urlSuffixStartCharsRe=/[\/?#]/;Bn.urlSuffixAllowedSpecialCharsRe=/[-+&@#/%=~_()|'$*\[\]{}\u2713]/;Bn.urlSuffixNotAllowedAsLastCharRe=/[?!:,.;^]/;Bn.httpSchemeRe=/https?:\/\//i;Bn.httpSchemePrefixRe=new RegExp("^"+Bn.httpSchemeRe.source,"i");Bn.urlSuffixedCharsNotAllowedAtEndRe=new RegExp(Bn.urlSuffixNotAllowedAsLastCharRe.source+"$");Bn.invalidSchemeRe=/^(javascript|vbscript):/i;Bn.schemeUrlRe=/^[A-Za-z][-.+A-Za-z0-9]*:(\/\/)?([^:/]*)/;Bn.tldUrlHostRe=/^(?:\/\/)?([^/#?:]+)/;function PQe(e){return dT.letterRe.test(e)}Bn.isSchemeStartChar=PQe;function IQe(e){return dT.letterRe.test(e)||dT.digitRe.test(e)||e==="+"||e==="-"||e==="."}Bn.isSchemeChar=IQe;function Ime(e){return dT.alphaNumericAndMarksRe.test(e)}Bn.isDomainLabelStartChar=Ime;function RQe(e){return e==="_"||Ime(e)}Bn.isDomainLabelChar=RQe;function OQe(e){return dT.alphaNumericAndMarksRe.test(e)||Bn.urlSuffixAllowedSpecialCharsRe.test(e)||Bn.urlSuffixNotAllowedAsLastCharRe.test(e)}Bn.isPathChar=OQe;function MQe(e){return Bn.urlSuffixStartCharsRe.test(e)}Bn.isUrlSuffixStartChar=MQe;function Rme(e){return DQe.tldRegex.test(e.toLowerCase())}Bn.isKnownTld=Rme;function LQe(e){if(Bn.invalidSchemeRe.test(e))return!1;var t=e.match(Bn.schemeUrlRe);if(!t)return!1;var n=!!t[1],i=t[2];return n?!0:!(i.indexOf(".")===-1||!dT.letterRe.test(i))}Bn.isValidSchemeUrl=LQe;function NQe(e){var t=e.match(Bn.tldUrlHostRe);if(!t)return!1;var n=t[0],i=n.split(".");if(i.length<2)return!1;var o=i[i.length-1];return!!Rme(o)}Bn.isValidTldMatch=NQe;var FQe=/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,BQe=/[:/?#]/;function kQe(e){var t=e.split(BQe,1)[0];return FQe.test(t)}Bn.isValidIpV4Address=kQe});var X7=Yn(s4=>{"use strict";Object.defineProperty(s4,"__esModule",{value:!0});s4.UrlMatch=void 0;var VQe=(Mm(),Wh(Om)),UQe=uT(),zQe=r4(),HQe=/^(https?:\/\/)?(www\.)?/i,GQe=/^\/\//,WQe=function(e){(0,VQe.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="url",i.url="",i.urlMatchType="scheme",i.protocolRelativeMatch=!1,i.stripPrefix={scheme:!0,www:!0},i.stripTrailingSlash=!0,i.decodePercentEncoding=!0,i.protocolPrepended=!1,i.urlMatchType=n.urlMatchType,i.url=n.url,i.protocolRelativeMatch=n.protocolRelativeMatch,i.stripPrefix=n.stripPrefix,i.stripTrailingSlash=n.stripTrailingSlash,i.decodePercentEncoding=n.decodePercentEncoding,i}return t.prototype.getType=function(){return"url"},t.prototype.getUrlMatchType=function(){return this.urlMatchType},t.prototype.getUrl=function(){var n=this.url;return!this.protocolRelativeMatch&&this.urlMatchType!=="scheme"&&!this.protocolPrepended&&(n=this.url="http://"+n,this.protocolPrepended=!0),n},t.prototype.getAnchorHref=function(){var n=this.getUrl();return n.replace(/&/g,"&")},t.prototype.getAnchorText=function(){var n=this.getMatchedText();return this.protocolRelativeMatch&&(n=YQe(n)),this.stripPrefix.scheme&&(n=jQe(n)),this.stripPrefix.www&&(n=qQe(n)),this.stripTrailingSlash&&(n=XQe(n)),this.decodePercentEncoding&&(n=KQe(n)),n},t}(UQe.AbstractMatch);s4.UrlMatch=WQe;function jQe(e){return e.replace(zQe.httpSchemePrefixRe,"")}function qQe(e){return e.replace(HQe,"$1")}function YQe(e){return e.replace(GQe,"")}function XQe(e){return e.charAt(e.length-1)==="/"&&(e=e.slice(0,-1)),e}function KQe(e){var t=e.replace(/%22/gi,""").replace(/%26/gi,"&").replace(/%27/gi,"'").replace(/%3C/gi,"<").replace(/%3E/gi,">");try{return decodeURIComponent(t)}catch{return t}}});var Mme=Yn(Lm=>{"use strict";Object.defineProperty(Lm,"__esModule",{value:!0});Lm.isValidEmail=Lm.isEmailLocalPartChar=Lm.isEmailLocalPartStartChar=Lm.mailtoSchemePrefixRe=void 0;var Ome=lT(),ZQe=r4();Lm.mailtoSchemePrefixRe=/^mailto:/i;var $Qe=new RegExp("[".concat(Ome.alphaNumericAndMarksCharsStr,"!#$%&'*+/=?^_`{|}~-]"));function QQe(e){return Ome.alphaNumericAndMarksRe.test(e)}Lm.isEmailLocalPartStartChar=QQe;function JQe(e){return $Qe.test(e)}Lm.isEmailLocalPartChar=JQe;function eJe(e){var t=e.split(".").pop()||"";return(0,ZQe.isKnownTld)(t)}Lm.isValidEmail=eJe});var K7=Yn(a4=>{"use strict";Object.defineProperty(a4,"__esModule",{value:!0});a4.EmailMatch=void 0;var tJe=(Mm(),Wh(Om)),nJe=uT(),iJe=function(e){(0,tJe.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="email",i.email="",i.email=n.email,i}return t.prototype.getType=function(){return"email"},t.prototype.getEmail=function(){return this.email},t.prototype.getAnchorHref=function(){return"mailto:"+this.email},t.prototype.getAnchorText=function(){return this.email},t}(nJe.AbstractMatch);a4.EmailMatch=iJe});var Z7=Yn(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.hashtagServices=Qy.isValidHashtag=Qy.isHashtagTextChar=void 0;var oJe=lT();function rJe(e){return e==="_"||oJe.alphaNumericAndMarksRe.test(e)}Qy.isHashtagTextChar=rJe;function sJe(e){return e.length<=140}Qy.isValidHashtag=sJe;Qy.hashtagServices=["twitter","facebook","instagram","tiktok"]});var $7=Yn(c4=>{"use strict";Object.defineProperty(c4,"__esModule",{value:!0});c4.HashtagMatch=void 0;var aJe=(Mm(),Wh(Om)),cJe=lS(),lJe=uT(),uJe=function(e){(0,aJe.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="hashtag",i.serviceName="twitter",i.hashtag="",i.serviceName=n.serviceName,i.hashtag=n.hashtag,i}return t.prototype.getType=function(){return"hashtag"},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getHashtag=function(){return this.hashtag},t.prototype.getAnchorHref=function(){var n=this.serviceName,i=this.hashtag;switch(n){case"twitter":return"https://twitter.com/hashtag/"+i;case"facebook":return"https://www.facebook.com/hashtag/"+i;case"instagram":return"https://instagram.com/explore/tags/"+i;case"tiktok":return"https://www.tiktok.com/tag/"+i;default:throw(0,cJe.assertNever)(n),new Error("Invalid hashtag service: ".concat(n))}},t.prototype.getAnchorText=function(){return"#"+this.hashtag},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t}(lJe.AbstractMatch);c4.HashtagMatch=uJe});var Q7=Yn(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.mentionServices=Jy.isValidMention=Jy.isMentionTextChar=void 0;var fJe={twitter:/^@\w{1,15}$/,instagram:/^@[_\w]{1,30}$/,soundcloud:/^@[-a-z0-9_]{3,25}$/,tiktok:/^@[.\w]{1,23}[\w]$/},dJe=/[-\w.]/;function hJe(e){return dJe.test(e)}Jy.isMentionTextChar=hJe;function mJe(e,t){var n=fJe[t];return n.test(e)}Jy.isValidMention=mJe;Jy.mentionServices=["twitter","instagram","soundcloud","tiktok"]});var J7=Yn(l4=>{"use strict";Object.defineProperty(l4,"__esModule",{value:!0});l4.MentionMatch=void 0;var pJe=(Mm(),Wh(Om)),_Je=uT(),gJe=function(e){(0,pJe.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="mention",i.serviceName="twitter",i.mention="",i.mention=n.mention,i.serviceName=n.serviceName,i}return t.prototype.getType=function(){return"mention"},t.prototype.getMention=function(){return this.mention},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getAnchorHref=function(){switch(this.serviceName){case"twitter":return"https://twitter.com/"+this.mention;case"instagram":return"https://instagram.com/"+this.mention;case"soundcloud":return"https://soundcloud.com/"+this.mention;case"tiktok":return"https://www.tiktok.com/@"+this.mention;default:throw new Error("Unknown service name to point mention to: "+this.serviceName)}},t.prototype.getAnchorText=function(){return"@"+this.mention},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t}(_Je.AbstractMatch);l4.MentionMatch=gJe});var Lme=Yn(e0=>{"use strict";Object.defineProperty(e0,"__esModule",{value:!0});e0.isValidPhoneNumber=e0.isPhoneNumberControlChar=e0.isPhoneNumberSeparatorChar=void 0;var yJe=/[-. ]/,xJe=/[-. ()]/,bJe=/[,;]/,TJe=/(?:(?:(?:(\+)?\d{1,3}[-. ]?)?\(?\d{3}\)?[-. ]?\d{3}[-. ]?\d{4})|(?:(\+)(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-. ]?(?:\d[-. ]?){6,12}\d+))([,;]+[0-9]+#?)*/,AJe=/(0([1-9]-?[1-9]\d{3}|[1-9]{2}-?\d{3}|[1-9]{2}\d{1}-?\d{2}|[1-9]{2}\d{2}-?\d{1})-?\d{4}|0[789]0-?\d{4}-?\d{4}|050-?\d{4}-?\d{4})/,CJe=new RegExp("^".concat(TJe.source,"|").concat(AJe.source,"$"));function EJe(e){return yJe.test(e)}e0.isPhoneNumberSeparatorChar=EJe;function SJe(e){return bJe.test(e)}e0.isPhoneNumberControlChar=SJe;function vJe(e){var t=e.charAt(0)==="+"||xJe.test(e);return t&&CJe.test(e)}e0.isValidPhoneNumber=vJe});var eq=Yn(u4=>{"use strict";Object.defineProperty(u4,"__esModule",{value:!0});u4.PhoneMatch=void 0;var wJe=(Mm(),Wh(Om)),DJe=uT(),PJe=function(e){(0,wJe.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="phone",i.number="",i.plusSign=!1,i.number=n.number,i.plusSign=n.plusSign,i}return t.prototype.getType=function(){return"phone"},t.prototype.getPhoneNumber=function(){return this.number},t.prototype.getNumber=function(){return this.getPhoneNumber()},t.prototype.getAnchorHref=function(){return"tel:"+(this.plusSign?"+":"")+this.number},t.prototype.getAnchorText=function(){return this.matchedText},t}(DJe.AbstractMatch);u4.PhoneMatch=PJe});var sq=Yn(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});hS.excludeUnbalancedTrailingBracesAndPunctuation=hS.parseMatches=void 0;var Ra=lT(),IJe=X7(),Eo=lS(),lr=r4(),fS=Mme(),RJe=K7(),tq=Z7(),OJe=$7(),nq=Q7(),MJe=J7(),dS=Lme(),LJe=eq();function NJe(e,t){for(var n=t.tagBuilder,i=t.stripPrefix,o=t.stripTrailingSlash,r=t.decodePercentEncoding,s=t.hashtagServiceName,a=t.mentionServiceName,c=[],u=e.length,f=[],d=0;d<u;d++){var p=e.charAt(d);if(f.length===0)b(p);else for(var g=f.length-1;g>=0;g--){var m=f[g];switch(m.state){case 11:D(m,p);break;case 12:O(m,p);break;case 0:T(m,p);break;case 1:C(m,p);break;case 2:A(m,p);break;case 3:E(m,p);break;case 4:v(m,p);break;case 5:I(m,p);break;case 6:L(m,p);break;case 7:N(m,p);break;case 13:_(m,p);break;case 14:S(m,p);break;case 8:w(m,p);break;case 9:P(m,p);break;case 10:M(m,p);break;case 15:B(m,p);break;case 16:U(m,p);break;case 17:V(m,p);break;case 18:G(m,p);break;case 19:k(m,p);break;case 20:Y(m,p);break;case 21:W(m,p);break;case 22:Q(m,p);break;case 23:j(m,p);break;case 24:K(m,p);break;case 25:Z(m,p);break;case 26:he(m,p);break;case 27:be(m,p);break;case 28:re(m,p);break;case 29:_e(m,p);break;case 30:xe(m,p);break;case 31:Ce(m,p);break;case 32:Oe(m,p);break;case 33:ke(m,p);break;case 34:At(m,p);break;case 35:Bt(m,p);break;case 36:rt(m,p);break;case 37:we(m,p);break;case 38:Qe(m,p);break;case 39:Kt(m,p);break;case 40:ht(m,p);break;case 41:mt(m,p);break;default:(0,Eo.assertNever)(m.state)}}}for(var x=f.length-1;x>=0;x--)f.forEach(function(me){return Zt(me)});return c;function b(me){if(me==="#")f.push(VJe(d,28));else if(me==="@")f.push(UJe(d,30));else if(me==="/")f.push(oq(d,11));else if(me==="+")f.push(rq(d,37));else if(me==="(")f.push(rq(d,32));else{if(Ra.digitRe.test(me)&&(f.push(rq(d,38)),f.push(BJe(d,13))),(0,fS.isEmailLocalPartStartChar)(me)){var Ae=me.toLowerCase()==="m"?15:22;f.push(kJe(d,Ae))}(0,lr.isSchemeStartChar)(me)&&f.push(iq(d,0)),Ra.alphaNumericAndMarksRe.test(me)&&f.push(oq(d,5))}}function T(me,Ae){Ae===":"?me.state=2:Ae==="-"?me.state=1:(0,lr.isSchemeChar)(Ae)||(0,Eo.remove)(f,me)}function C(me,Ae){Ae==="-"||(Ae==="/"?((0,Eo.remove)(f,me),f.push(oq(d,11))):(0,lr.isSchemeChar)(Ae)?me.state=0:(0,Eo.remove)(f,me))}function A(me,Ae){Ae==="/"?me.state=3:Ae==="."?(0,Eo.remove)(f,me):(0,lr.isDomainLabelStartChar)(Ae)?(me.state=5,(0,lr.isSchemeStartChar)(Ae)&&f.push(iq(d,0))):(0,Eo.remove)(f,me)}function E(me,Ae){Ae==="/"?me.state=4:(0,lr.isPathChar)(Ae)?(me.state=10,me.acceptStateReached=!0):Zt(me)}function v(me,Ae){Ae==="/"?me.state=10:(0,lr.isDomainLabelStartChar)(Ae)?(me.state=5,me.acceptStateReached=!0):(0,Eo.remove)(f,me)}function D(me,Ae){Ae==="/"?me.state=12:(0,Eo.remove)(f,me)}function O(me,Ae){(0,lr.isDomainLabelStartChar)(Ae)?me.state=5:(0,Eo.remove)(f,me)}function I(me,Ae){Ae==="."?me.state=7:Ae==="-"?me.state=6:Ae===":"?me.state=8:(0,lr.isUrlSuffixStartChar)(Ae)?me.state=10:(0,lr.isDomainLabelChar)(Ae)||Zt(me)}function L(me,Ae){Ae==="-"||(Ae==="."?Zt(me):(0,lr.isDomainLabelStartChar)(Ae)?me.state=5:Zt(me))}function N(me,Ae){Ae==="."?Zt(me):(0,lr.isDomainLabelStartChar)(Ae)?(me.state=5,me.acceptStateReached=!0):Zt(me)}function _(me,Ae){Ae==="."?me.state=14:Ae===":"?me.state=8:Ra.digitRe.test(Ae)||((0,lr.isUrlSuffixStartChar)(Ae)?me.state=10:Ra.alphaNumericAndMarksRe.test(Ae)?(0,Eo.remove)(f,me):Zt(me))}function S(me,Ae){Ra.digitRe.test(Ae)?(me.octetsEncountered++,me.octetsEncountered===4&&(me.acceptStateReached=!0),me.state=13):Zt(me)}function w(me,Ae){Ra.digitRe.test(Ae)?me.state=9:Zt(me)}function P(me,Ae){Ra.digitRe.test(Ae)||((0,lr.isUrlSuffixStartChar)(Ae)?me.state=10:Zt(me))}function M(me,Ae){(0,lr.isPathChar)(Ae)||Zt(me)}function B(me,Ae){Ae.toLowerCase()==="a"?me.state=16:Q(me,Ae)}function U(me,Ae){Ae.toLowerCase()==="i"?me.state=17:Q(me,Ae)}function V(me,Ae){Ae.toLowerCase()==="l"?me.state=18:Q(me,Ae)}function G(me,Ae){Ae.toLowerCase()==="t"?me.state=19:Q(me,Ae)}function k(me,Ae){Ae.toLowerCase()==="o"?me.state=20:Q(me,Ae)}function Y(me,Ae){Ae.toLowerCase()===":"?me.state=21:Q(me,Ae)}function W(me,Ae){(0,fS.isEmailLocalPartChar)(Ae)?me.state=22:(0,Eo.remove)(f,me)}function Q(me,Ae){Ae==="."?me.state=23:Ae==="@"?me.state=24:(0,fS.isEmailLocalPartChar)(Ae)?me.state=22:(0,Eo.remove)(f,me)}function j(me,Ae){Ae==="."||Ae==="@"?(0,Eo.remove)(f,me):(0,fS.isEmailLocalPartChar)(Ae)?me.state=22:(0,Eo.remove)(f,me)}function K(me,Ae){(0,lr.isDomainLabelStartChar)(Ae)?me.state=25:(0,Eo.remove)(f,me)}function Z(me,Ae){Ae==="."?me.state=27:Ae==="-"?me.state=26:(0,lr.isDomainLabelChar)(Ae)||Zt(me)}function he(me,Ae){Ae==="-"||Ae==="."?Zt(me):(0,lr.isDomainLabelChar)(Ae)?me.state=25:Zt(me)}function be(me,Ae){Ae==="."||Ae==="-"?Zt(me):(0,lr.isDomainLabelStartChar)(Ae)?(me.state=25,me.acceptStateReached=!0):Zt(me)}function re(me,Ae){(0,tq.isHashtagTextChar)(Ae)?(me.state=29,me.acceptStateReached=!0):(0,Eo.remove)(f,me)}function _e(me,Ae){(0,tq.isHashtagTextChar)(Ae)||Zt(me)}function xe(me,Ae){(0,nq.isMentionTextChar)(Ae)?(me.state=31,me.acceptStateReached=!0):(0,Eo.remove)(f,me)}function Ce(me,Ae){(0,nq.isMentionTextChar)(Ae)||(Ra.alphaNumericAndMarksRe.test(Ae)?(0,Eo.remove)(f,me):Zt(me))}function we(me,Ae){Ra.digitRe.test(Ae)?me.state=38:((0,Eo.remove)(f,me),b(Ae))}function Oe(me,Ae){Ra.digitRe.test(Ae)?me.state=33:(0,Eo.remove)(f,me),b(Ae)}function ke(me,Ae){Ra.digitRe.test(Ae)?me.state=34:(0,Eo.remove)(f,me)}function At(me,Ae){Ra.digitRe.test(Ae)?me.state=35:(0,Eo.remove)(f,me)}function Bt(me,Ae){Ae===")"?me.state=36:(0,Eo.remove)(f,me)}function rt(me,Ae){Ra.digitRe.test(Ae)?me.state=38:(0,dS.isPhoneNumberSeparatorChar)(Ae)?me.state=39:(0,Eo.remove)(f,me)}function Qe(me,Ae){me.acceptStateReached=!0,(0,dS.isPhoneNumberControlChar)(Ae)?me.state=40:Ae==="#"?me.state=41:Ra.digitRe.test(Ae)||(Ae==="("?me.state=32:(0,dS.isPhoneNumberSeparatorChar)(Ae)?me.state=39:(Zt(me),(0,lr.isSchemeStartChar)(Ae)&&f.push(iq(d,0))))}function Kt(me,Ae){Ra.digitRe.test(Ae)?me.state=38:Ae==="("?me.state=32:(Zt(me),b(Ae))}function ht(me,Ae){(0,dS.isPhoneNumberControlChar)(Ae)||(Ae==="#"?me.state=41:Ra.digitRe.test(Ae)?me.state=38:Zt(me))}function mt(me,Ae){(0,dS.isPhoneNumberControlChar)(Ae)?me.state=40:Ra.digitRe.test(Ae)?(0,Eo.remove)(f,me):Zt(me)}function Zt(me){if((0,Eo.remove)(f,me),!!me.acceptStateReached){var Ae=me.startIdx,Ut=e.slice(me.startIdx,d);if(Ut=Bme(Ut),me.type==="url"){var ut=e.charAt(me.startIdx-1);if(ut==="@")return;var Ai=me.matchType;if(Ai==="scheme"){var po=lr.httpSchemeRe.exec(Ut);if(po&&(Ae=Ae+po.index,Ut=Ut.slice(po.index)),!(0,lr.isValidSchemeUrl)(Ut))return}else if(Ai==="tld"){if(!(0,lr.isValidTldMatch)(Ut))return}else if(Ai==="ipV4"){if(!(0,lr.isValidIpV4Address)(Ut))return}else(0,Eo.assertNever)(Ai);c.push(new IJe.UrlMatch({tagBuilder:n,matchedText:Ut,offset:Ae,urlMatchType:Ai,url:Ut,protocolRelativeMatch:Ut.slice(0,2)==="//",stripPrefix:i,stripTrailingSlash:o,decodePercentEncoding:r}))}else if(me.type==="email")(0,fS.isValidEmail)(Ut)&&c.push(new RJe.EmailMatch({tagBuilder:n,matchedText:Ut,offset:Ae,email:Ut.replace(fS.mailtoSchemePrefixRe,"")}));else if(me.type==="hashtag")(0,tq.isValidHashtag)(Ut)&&c.push(new OJe.HashtagMatch({tagBuilder:n,matchedText:Ut,offset:Ae,serviceName:s,hashtag:Ut.slice(1)}));else if(me.type==="mention")(0,nq.isValidMention)(Ut,a)&&c.push(new MJe.MentionMatch({tagBuilder:n,matchedText:Ut,offset:Ae,serviceName:a,mention:Ut.slice(1)}));else if(me.type==="phone"){if(Ut=Ut.replace(/ +$/g,""),(0,dS.isValidPhoneNumber)(Ut)){var hs=Ut.replace(/[^0-9,;#]/g,"");c.push(new LJe.PhoneMatch({tagBuilder:n,matchedText:Ut,offset:Ae,number:hs,plusSign:Ut.charAt(0)==="+"}))}}else(0,Eo.assertNever)(me)}}}hS.parseMatches=NJe;var FJe=/[\(\{\[]/,Nme=/[\)\}\]]/,Fme={")":"(","}":"{","]":"["};function Bme(e){for(var t={"(":0,"{":0,"[":0},n=0;n<e.length;n++){var i=e.charAt(n);FJe.test(i)?t[i]++:Nme.test(i)&&t[Fme[i]]--}for(var o=e.length-1,r;o>=0;)if(r=e.charAt(o),Nme.test(r)){var s=Fme[r];if(t[s]<0)t[s]++,o--;else break}else if(lr.urlSuffixedCharsNotAllowedAtEndRe.test(r))o--;else break;return e.slice(0,o+1)}hS.excludeUnbalancedTrailingBracesAndPunctuation=Bme;function iq(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"scheme"}}function oq(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"tld"}}function BJe(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"ipV4",octetsEncountered:1}}function kJe(e,t){return{type:"email",startIdx:e,state:t,acceptStateReached:!1}}function VJe(e,t){return{type:"hashtag",startIdx:e,state:t,acceptStateReached:!1}}function UJe(e,t){return{type:"mention",startIdx:e,state:t,acceptStateReached:!1}}function rq(e,t){return{type:"phone",startIdx:e,state:t,acceptStateReached:!1}}});var kme=Yn(f4=>{"use strict";Object.defineProperty(f4,"__esModule",{value:!0});f4.parseHtml=void 0;var xc=(Mm(),Wh(Om)),sl=lT(),zJe=lS();function HJe(e,t){for(var n=t.onOpenTag,i=t.onCloseTag,o=t.onText,r=t.onComment,s=t.onDoctype,a=new Nm,c=0,u=e.length,f=0,d=0,p=a;c<u;){var g=e.charAt(c);switch(f){case 0:m(g);break;case 1:x(g);break;case 2:T(g);break;case 3:b(g);break;case 4:C(g);break;case 5:A(g);break;case 6:E(g);break;case 7:v(g);break;case 8:D(g);break;case 9:O(g);break;case 10:I(g);break;case 11:L(g);break;case 12:N(g);break;case 13:_(g);break;case 14:S(g);break;case 15:w(g);break;case 16:P(g);break;case 17:M(g);break;case 18:B(g);break;case 19:U(g);break;case 20:V(g);break;default:(0,zJe.assertNever)(f)}c++}d<c&&W();function m(K){K==="<"&&k()}function x(K){K==="!"?f=13:K==="/"?(f=2,p=new Nm((0,xc.__assign)((0,xc.__assign)({},p),{isClosing:!0}))):K==="<"?k():sl.letterRe.test(K)?(f=3,p=new Nm((0,xc.__assign)((0,xc.__assign)({},p),{isOpening:!0}))):(f=0,p=a)}function b(K){sl.whitespaceRe.test(K)?(p=new Nm((0,xc.__assign)((0,xc.__assign)({},p),{name:Q()})),f=4):K==="<"?k():K==="/"?(p=new Nm((0,xc.__assign)((0,xc.__assign)({},p),{name:Q()})),f=12):K===">"?(p=new Nm((0,xc.__assign)((0,xc.__assign)({},p),{name:Q()})),Y()):!sl.letterRe.test(K)&&!sl.digitRe.test(K)&&K!==":"&&G()}function T(K){K===">"?G():sl.letterRe.test(K)?f=3:G()}function C(K){sl.whitespaceRe.test(K)||(K==="/"?f=12:K===">"?Y():K==="<"?k():K==="="||sl.quoteRe.test(K)||sl.controlCharsRe.test(K)?G():f=5)}function A(K){sl.whitespaceRe.test(K)?f=6:K==="/"?f=12:K==="="?f=7:K===">"?Y():K==="<"?k():sl.quoteRe.test(K)&&G()}function E(K){sl.whitespaceRe.test(K)||(K==="/"?f=12:K==="="?f=7:K===">"?Y():K==="<"?k():sl.quoteRe.test(K)?G():f=5)}function v(K){sl.whitespaceRe.test(K)||(K==='"'?f=8:K==="'"?f=9:/[>=`]/.test(K)?G():K==="<"?k():f=10)}function D(K){K==='"'&&(f=11)}function O(K){K==="'"&&(f=11)}function I(K){sl.whitespaceRe.test(K)?f=4:K===">"?Y():K==="<"&&k()}function L(K){sl.whitespaceRe.test(K)?f=4:K==="/"?f=12:K===">"?Y():K==="<"?k():(f=4,j())}function N(K){K===">"?(p=new Nm((0,xc.__assign)((0,xc.__assign)({},p),{isClosing:!0})),Y()):f=4}function _(K){e.substr(c,2)==="--"?(c+=2,p=new Nm((0,xc.__assign)((0,xc.__assign)({},p),{type:"comment"})),f=14):e.substr(c,7).toUpperCase()==="DOCTYPE"?(c+=7,p=new Nm((0,xc.__assign)((0,xc.__assign)({},p),{type:"doctype"})),f=20):G()}function S(K){K==="-"?f=15:K===">"?G():f=16}function w(K){K==="-"?f=18:K===">"?G():f=16}function P(K){K==="-"&&(f=17)}function M(K){K==="-"?f=18:f=16}function B(K){K===">"?Y():K==="!"?f=19:K==="-"||(f=16)}function U(K){K==="-"?f=17:K===">"?Y():f=16}function V(K){K===">"?Y():K==="<"&&k()}function G(){f=0,p=a}function k(){f=1,p=new Nm({idx:c})}function Y(){var K=e.slice(d,p.idx);K&&o(K,d),p.type==="comment"?r(p.idx):p.type==="doctype"?s(p.idx):(p.isOpening&&n(p.name,p.idx),p.isClosing&&i(p.name,p.idx)),G(),d=c+1}function W(){var K=e.slice(d,c);o(K,d),d=c+1}function Q(){var K=p.idx+(p.isClosing?2:1);return e.slice(K,c).toLowerCase()}function j(){c--}}f4.parseHtml=HJe;var Nm=function(){function e(t){t===void 0&&(t={}),this.idx=t.idx!==void 0?t.idx:-1,this.type=t.type||"tag",this.name=t.name||"",this.isOpening=!!t.isOpening,this.isClosing=!!t.isClosing}return e}()});var d4=Yn(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});var GJe=nme(),As=lS(),WJe=j7(),jJe=Zz(),qJe=sq(),YJe=kme(),XJe=Q7(),KJe=Z7(),ZJe=function(){function e(t){t===void 0&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:"end"},this.className="",this.replaceFn=null,this.context=void 0,this.sanitizeHtml=!1,this.tagBuilder=null,this.urls=$Je(t.urls),this.email=(0,As.isBoolean)(t.email)?t.email:this.email,this.phone=(0,As.isBoolean)(t.phone)?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=(0,As.isBoolean)(t.newWindow)?t.newWindow:this.newWindow,this.stripPrefix=QJe(t.stripPrefix),this.stripTrailingSlash=(0,As.isBoolean)(t.stripTrailingSlash)?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=(0,As.isBoolean)(t.decodePercentEncoding)?t.decodePercentEncoding:this.decodePercentEncoding,this.sanitizeHtml=t.sanitizeHtml||!1;var n=this.mention;if(n!==!1&&XJe.mentionServices.indexOf(n)===-1)throw new Error("invalid `mention` cfg '".concat(n,"' - see docs"));var i=this.hashtag;if(i!==!1&&KJe.hashtagServices.indexOf(i)===-1)throw new Error("invalid `hashtag` cfg '".concat(i,"' - see docs"));this.truncate=JJe(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,n){var i=new e(n);return i.link(t)},e.parse=function(t,n){var i=new e(n);return i.parse(t)},e.prototype.parse=function(t){var n=this,i=["a","style","script"],o=0,r=[];return(0,YJe.parseHtml)(t,{onOpenTag:function(s){i.indexOf(s)>=0&&o++},onText:function(s,a){if(o===0){var c=/( | |<|<|>|>|"|"|')/gi,u=s.split(c),f=a;u.forEach(function(d,p){if(p%2===0){var g=n.parseText(d,f);r.push.apply(r,g)}f+=d.length})}},onCloseTag:function(s){i.indexOf(s)>=0&&(o=Math.max(o-1,0))},onComment:function(s){},onDoctype:function(s){}}),r=this.compactMatches(r),r=this.removeUnwantedMatches(r),r},e.prototype.compactMatches=function(t){t.sort(function(c,u){return c.getOffset()-u.getOffset()});for(var n=0;n<t.length-1;){var i=t[n],o=i.getOffset(),r=i.getMatchedText().length,s=o+r;if(n+1<t.length){if(t[n+1].getOffset()===o){var a=t[n+1].getMatchedText().length>r?n:n+1;t.splice(a,1);continue}if(t[n+1].getOffset()<s){t.splice(n+1,1);continue}}n++}return t},e.prototype.removeUnwantedMatches=function(t){return this.hashtag||(0,As.removeWithPredicate)(t,function(n){return n.getType()==="hashtag"}),this.email||(0,As.removeWithPredicate)(t,function(n){return n.getType()==="email"}),this.phone||(0,As.removeWithPredicate)(t,function(n){return n.getType()==="phone"}),this.mention||(0,As.removeWithPredicate)(t,function(n){return n.getType()==="mention"}),this.urls.schemeMatches||(0,As.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="scheme"}),this.urls.tldMatches||(0,As.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="tld"}),this.urls.ipV4Matches||(0,As.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="ipV4"}),t},e.prototype.parseText=function(t,n){n===void 0&&(n=0),n=n||0;for(var i=(0,qJe.parseMatches)(t,{tagBuilder:this.getTagBuilder(),stripPrefix:this.stripPrefix,stripTrailingSlash:this.stripTrailingSlash,decodePercentEncoding:this.decodePercentEncoding,hashtagServiceName:this.hashtag,mentionServiceName:this.mention||"twitter"}),o=0,r=i.length;o<r;o++)i[o].setOffset(n+i[o].getOffset());return i},e.prototype.link=function(t){if(!t)return"";this.sanitizeHtml&&(t=t.replace(/</g,"<").replace(/>/g,">"));for(var n=this.parse(t),i=[],o=0,r=0,s=n.length;r<s;r++){var a=n[r];i.push(t.substring(o,a.getOffset())),i.push(this.createMatchReturnVal(a)),o=a.getOffset()+a.getMatchedText().length}return i.push(t.substring(o)),i.join("")},e.prototype.createMatchReturnVal=function(t){var n;if(this.replaceFn&&(n=this.replaceFn.call(this.context,t)),typeof n=="string")return n;if(n===!1)return t.getMatchedText();if(n instanceof jJe.HtmlTag)return n.toAnchorString();var i=t.buildTag();return i.toAnchorString()},e.prototype.getTagBuilder=function(){var t=this.tagBuilder;return t||(t=this.tagBuilder=new WJe.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),t},e.version=GJe.version,e}();aq.default=ZJe;function $Je(e){return e==null&&(e=!0),(0,As.isBoolean)(e)?{schemeMatches:e,tldMatches:e,ipV4Matches:e}:{schemeMatches:(0,As.isBoolean)(e.schemeMatches)?e.schemeMatches:!0,tldMatches:(0,As.isBoolean)(e.tldMatches)?e.tldMatches:!0,ipV4Matches:(0,As.isBoolean)(e.ipV4Matches)?e.ipV4Matches:!0}}function QJe(e){return e==null&&(e=!0),(0,As.isBoolean)(e)?{scheme:e,www:e}:{scheme:(0,As.isBoolean)(e.scheme)?e.scheme:!0,www:(0,As.isBoolean)(e.www)?e.www:!0}}function JJe(e){return typeof e=="number"?{length:e,location:"end"}:(0,As.defaults)(e||{},{length:Number.POSITIVE_INFINITY,location:"end"})}});var Ume=Yn(Vme=>{"use strict";Object.defineProperty(Vme,"__esModule",{value:!0})});var zme=Yn(G_=>{"use strict";Object.defineProperty(G_,"__esModule",{value:!0});var hT=(Mm(),Wh(Om));(0,hT.__exportStar)(Ume(),G_);(0,hT.__exportStar)(K7(),G_);(0,hT.__exportStar)($7(),G_);(0,hT.__exportStar)(uT(),G_);(0,hT.__exportStar)(J7(),G_);(0,hT.__exportStar)(eq(),G_);(0,hT.__exportStar)(X7(),G_)});var Hme=Yn(cq=>{"use strict";Object.defineProperty(cq,"__esModule",{value:!0});var eet=(Mm(),Wh(Om));(0,eet.__exportStar)(sq(),cq)});var lq=Yn((yh,Wme)=>{"use strict";yh=Wme.exports=d4().default;Object.defineProperty(yh,"__esModule",{value:!0});yh.Autolinker=void 0;var mS=(Mm(),Wh(Om)),Gme=(0,mS.__importDefault)(d4());yh.Autolinker=Gme.default;yh.default=Gme.default;(0,mS.__exportStar)(d4(),yh);(0,mS.__exportStar)(j7(),yh);(0,mS.__exportStar)(Zz(),yh);(0,mS.__exportStar)(zme(),yh);(0,mS.__exportStar)(Hme(),yh)});var cX=Yn((exports,module)=>{/*! * protobuf.js v7.3.0 (c) 2016, daniel wirtz * compiled fri, 10 may 2024 03:38:34 utc * licensed under the bsd-3-clause license * see: https://github.com/dcodeio/protobuf.js for details */(function(undefined){"use strict";(function(t,n,i){function o(s){var a=n[s];return a||t[s][0].call(a=n[s]={exports:{}},o,a,a.exports),a.exports}var r=o(i[0]);r.util.global.protobuf=r,typeof define=="function"&&define.amd&&define(["long"],function(s){return s&&s.isLong&&(r.util.Long=s,r.configure()),r}),typeof module=="object"&&module&&module.exports&&(module.exports=r)})({1:[function(e,t,n){"use strict";t.exports=i;function i(o,r){for(var s=new Array(arguments.length-1),a=0,c=2,u=!0;c<arguments.length;)s[a++]=arguments[c++];return new Promise(function(d,p){s[a]=function(m){if(u)if(u=!1,m)p(m);else{for(var x=new Array(arguments.length-1),b=0;b<x.length;)x[b++]=arguments[b];d.apply(null,x)}};try{o.apply(r||null,s)}catch(g){u&&(u=!1,p(g))}})}},{}],2:[function(e,t,n){"use strict";var i=n;i.length=function(u){var f=u.length;if(!f)return 0;for(var d=0;--f%4>1&&u.charAt(f)==="=";)++d;return Math.ceil(u.length*3)/4-d};for(var o=new Array(64),r=new Array(123),s=0;s<64;)r[o[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;i.encode=function(u,f,d){for(var p=null,g=[],m=0,x=0,b;f<d;){var T=u[f++];switch(x){case 0:g[m++]=o[T>>2],b=(T&3)<<4,x=1;break;case 1:g[m++]=o[b|T>>4],b=(T&15)<<2,x=2;break;case 2:g[m++]=o[b|T>>6],g[m++]=o[T&63],x=0;break}m>8191&&((p||(p=[])).push(String.fromCharCode.apply(String,g)),m=0)}return x&&(g[m++]=o[b],g[m++]=61,x===1&&(g[m++]=61)),p?(m&&p.push(String.fromCharCode.apply(String,g.slice(0,m))),p.join("")):String.fromCharCode.apply(String,g.slice(0,m))};var a="invalid encoding";i.decode=function(u,f,d){for(var p=d,g=0,m,x=0;x<u.length;){var b=u.charCodeAt(x++);if(b===61&&g>1)break;if((b=r[b])===undefined)throw Error(a);switch(g){case 0:m=b,g=1;break;case 1:f[d++]=m<<2|(b&48)>>4,m=b,g=2;break;case 2:f[d++]=(m&15)<<4|(b&60)>>2,m=b,g=3;break;case 3:f[d++]=(m&3)<<6|b,g=0;break}}if(g===1)throw Error(a);return d-p},i.test=function(u){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(u)}},{}],3:[function(e,t,n){"use strict";t.exports=i;function i(){this._listeners={}}i.prototype.on=function(r,s,a){return(this._listeners[r]||(this._listeners[r]=[])).push({fn:s,ctx:a||this}),this},i.prototype.off=function(r,s){if(r===undefined)this._listeners={};else if(s===undefined)this._listeners[r]=[];else for(var a=this._listeners[r],c=0;c<a.length;)a[c].fn===s?a.splice(c,1):++c;return this},i.prototype.emit=function(r){var s=this._listeners[r];if(s){for(var a=[],c=1;c<arguments.length;)a.push(arguments[c++]);for(c=0;c<s.length;)s[c].fn.apply(s[c++].ctx,a)}return this}},{}],4:[function(e,t,n){"use strict";t.exports=i(i);function i(c){return typeof Float32Array<"u"?function(){var u=new Float32Array([-0]),f=new Uint8Array(u.buffer),d=f[3]===128;function p(b,T,C){u[0]=b,T[C]=f[0],T[C+1]=f[1],T[C+2]=f[2],T[C+3]=f[3]}function g(b,T,C){u[0]=b,T[C]=f[3],T[C+1]=f[2],T[C+2]=f[1],T[C+3]=f[0]}c.writeFloatLE=d?p:g,c.writeFloatBE=d?g:p;function m(b,T){return f[0]=b[T],f[1]=b[T+1],f[2]=b[T+2],f[3]=b[T+3],u[0]}function x(b,T){return f[3]=b[T],f[2]=b[T+1],f[1]=b[T+2],f[0]=b[T+3],u[0]}c.readFloatLE=d?m:x,c.readFloatBE=d?x:m}():function(){function u(d,p,g,m){var x=p<0?1:0;if(x&&(p=-p),p===0)d(1/p>0?0:2147483648,g,m);else if(isNaN(p))d(2143289344,g,m);else if(p>34028234663852886e22)d((x<<31|2139095040)>>>0,g,m);else if(p<11754943508222875e-54)d((x<<31|Math.round(p/1401298464324817e-60))>>>0,g,m);else{var b=Math.floor(Math.log(p)/Math.LN2),T=Math.round(p*Math.pow(2,-b)*8388608)&8388607;d((x<<31|b+127<<23|T)>>>0,g,m)}}c.writeFloatLE=u.bind(null,o),c.writeFloatBE=u.bind(null,r);function f(d,p,g){var m=d(p,g),x=(m>>31)*2+1,b=m>>>23&255,T=m&8388607;return b===255?T?NaN:x*(1/0):b===0?x*1401298464324817e-60*T:x*Math.pow(2,b-150)*(T+8388608)}c.readFloatLE=f.bind(null,s),c.readFloatBE=f.bind(null,a)}(),typeof Float64Array<"u"?function(){var u=new Float64Array([-0]),f=new Uint8Array(u.buffer),d=f[7]===128;function p(b,T,C){u[0]=b,T[C]=f[0],T[C+1]=f[1],T[C+2]=f[2],T[C+3]=f[3],T[C+4]=f[4],T[C+5]=f[5],T[C+6]=f[6],T[C+7]=f[7]}function g(b,T,C){u[0]=b,T[C]=f[7],T[C+1]=f[6],T[C+2]=f[5],T[C+3]=f[4],T[C+4]=f[3],T[C+5]=f[2],T[C+6]=f[1],T[C+7]=f[0]}c.writeDoubleLE=d?p:g,c.writeDoubleBE=d?g:p;function m(b,T){return f[0]=b[T],f[1]=b[T+1],f[2]=b[T+2],f[3]=b[T+3],f[4]=b[T+4],f[5]=b[T+5],f[6]=b[T+6],f[7]=b[T+7],u[0]}function x(b,T){return f[7]=b[T],f[6]=b[T+1],f[5]=b[T+2],f[4]=b[T+3],f[3]=b[T+4],f[2]=b[T+5],f[1]=b[T+6],f[0]=b[T+7],u[0]}c.readDoubleLE=d?m:x,c.readDoubleBE=d?x:m}():function(){function u(d,p,g,m,x,b){var T=m<0?1:0;if(T&&(m=-m),m===0)d(0,x,b+p),d(1/m>0?0:2147483648,x,b+g);else if(isNaN(m))d(0,x,b+p),d(2146959360,x,b+g);else if(m>17976931348623157e292)d(0,x,b+p),d((T<<31|2146435072)>>>0,x,b+g);else{var C;if(m<22250738585072014e-324)C=m/5e-324,d(C>>>0,x,b+p),d((T<<31|C/4294967296)>>>0,x,b+g);else{var A=Math.floor(Math.log(m)/Math.LN2);A===1024&&(A=1023),C=m*Math.pow(2,-A),d(C*4503599627370496>>>0,x,b+p),d((T<<31|A+1023<<20|C*1048576&1048575)>>>0,x,b+g)}}}c.writeDoubleLE=u.bind(null,o,0,4),c.writeDoubleBE=u.bind(null,r,4,0);function f(d,p,g,m,x){var b=d(m,x+p),T=d(m,x+g),C=(T>>31)*2+1,A=T>>>20&2047,E=4294967296*(T&1048575)+b;return A===2047?E?NaN:C*(1/0):A===0?C*5e-324*E:C*Math.pow(2,A-1075)*(E+4503599627370496)}c.readDoubleLE=f.bind(null,s,0,4),c.readDoubleBE=f.bind(null,a,4,0)}(),c}function o(c,u,f){u[f]=c&255,u[f+1]=c>>>8&255,u[f+2]=c>>>16&255,u[f+3]=c>>>24}function r(c,u,f){u[f]=c>>>24,u[f+1]=c>>>16&255,u[f+2]=c>>>8&255,u[f+3]=c&255}function s(c,u){return(c[u]|c[u+1]<<8|c[u+2]<<16|c[u+3]<<24)>>>0}function a(c,u){return(c[u]<<24|c[u+1]<<16|c[u+2]<<8|c[u+3])>>>0}},{}],5:[function(require,module,exports){"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}},{}],6:[function(e,t,n){"use strict";t.exports=i;function i(o,r,s){var a=s||8192,c=a>>>1,u=null,f=a;return function(p){if(p<1||p>c)return o(p);f+p>a&&(u=o(a),f=0);var g=r.call(u,f,f+=p);return f&7&&(f=(f|7)+1),g}}},{}],7:[function(e,t,n){"use strict";var i=n;i.length=function(r){for(var s=0,a=0,c=0;c<r.length;++c)a=r.charCodeAt(c),a<128?s+=1:a<2048?s+=2:(a&64512)===55296&&(r.charCodeAt(c+1)&64512)===56320?(++c,s+=4):s+=3;return s},i.read=function(r,s,a){var c=a-s;if(c<1)return"";for(var u=null,f=[],d=0,p;s<a;)p=r[s++],p<128?f[d++]=p:p>191&&p<224?f[d++]=(p&31)<<6|r[s++]&63:p>239&&p<365?(p=((p&7)<<18|(r[s++]&63)<<12|(r[s++]&63)<<6|r[s++]&63)-65536,f[d++]=55296+(p>>10),f[d++]=56320+(p&1023)):f[d++]=(p&15)<<12|(r[s++]&63)<<6|r[s++]&63,d>8191&&((u||(u=[])).push(String.fromCharCode.apply(String,f)),d=0);return u?(d&&u.push(String.fromCharCode.apply(String,f.slice(0,d))),u.join("")):String.fromCharCode.apply(String,f.slice(0,d))},i.write=function(r,s,a){for(var c=a,u,f,d=0;d<r.length;++d)u=r.charCodeAt(d),u<128?s[a++]=u:u<2048?(s[a++]=u>>6|192,s[a++]=u&63|128):(u&64512)===55296&&((f=r.charCodeAt(d+1))&64512)===56320?(u=65536+((u&1023)<<10)+(f&1023),++d,s[a++]=u>>18|240,s[a++]=u>>12&63|128,s[a++]=u>>6&63|128,s[a++]=u&63|128):(s[a++]=u>>12|224,s[a++]=u>>6&63|128,s[a++]=u&63|128);return a-c}},{}],8:[function(e,t,n){"use strict";var i=n;i.build="minimal",i.Writer=e(16),i.BufferWriter=e(17),i.Reader=e(9),i.BufferReader=e(10),i.util=e(15),i.rpc=e(12),i.roots=e(11),i.configure=o;function o(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}o()},{10:10,11:11,12:12,15:15,16:16,17:17,9:9}],9:[function(e,t,n){"use strict";t.exports=c;var i=e(15),o,r=i.LongBits,s=i.utf8;function a(m,x){return RangeError("index out of range: "+m.pos+" + "+(x||1)+" > "+m.len)}function c(m){this.buf=m,this.pos=0,this.len=m.length}var u=typeof Uint8Array<"u"?function(x){if(x instanceof Uint8Array||Array.isArray(x))return new c(x);throw Error("illegal buffer")}:function(x){if(Array.isArray(x))return new c(x);throw Error("illegal buffer")},f=function(){return i.Buffer?function(b){return(c.create=function(C){return i.Buffer.isBuffer(C)?new o(C):u(C)})(b)}:u};c.create=f(),c.prototype._slice=i.Array.prototype.subarray||i.Array.prototype.slice,c.prototype.uint32=function(){var x=4294967295;return function(){if(x=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(x=(x|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return x;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return x}}(),c.prototype.int32=function(){return this.uint32()|0},c.prototype.sint32=function(){var x=this.uint32();return x>>>1^-(x&1)|0};function d(){var m=new r(0,0),x=0;if(this.len-this.pos>4){for(;x<4;++x)if(m.lo=(m.lo|(this.buf[this.pos]&127)<<x*7)>>>0,this.buf[this.pos++]<128)return m;if(m.lo=(m.lo|(this.buf[this.pos]&127)<<28)>>>0,m.hi=(m.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return m;x=0}else{for(;x<3;++x){if(this.pos>=this.len)throw a(this);if(m.lo=(m.lo|(this.buf[this.pos]&127)<<x*7)>>>0,this.buf[this.pos++]<128)return m}return m.lo=(m.lo|(this.buf[this.pos++]&127)<<x*7)>>>0,m}if(this.len-this.pos>4){for(;x<5;++x)if(m.hi=(m.hi|(this.buf[this.pos]&127)<<x*7+3)>>>0,this.buf[this.pos++]<128)return m}else for(;x<5;++x){if(this.pos>=this.len)throw a(this);if(m.hi=(m.hi|(this.buf[this.pos]&127)<<x*7+3)>>>0,this.buf[this.pos++]<128)return m}throw Error("invalid varint encoding")}c.prototype.bool=function(){return this.uint32()!==0};function p(m,x){return(m[x-4]|m[x-3]<<8|m[x-2]<<16|m[x-1]<<24)>>>0}c.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)|0};function g(){if(this.pos+8>this.len)throw a(this,8);return new r(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}c.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var x=i.float.readFloatLE(this.buf,this.pos);return this.pos+=4,x},c.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var x=i.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,x},c.prototype.bytes=function(){var x=this.uint32(),b=this.pos,T=this.pos+x;if(T>this.len)throw a(this,x);if(this.pos+=x,Array.isArray(this.buf))return this.buf.slice(b,T);if(b===T){var C=i.Buffer;return C?C.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,b,T)},c.prototype.string=function(){var x=this.bytes();return s.read(x,0,x.length)},c.prototype.skip=function(x){if(typeof x=="number"){if(this.pos+x>this.len)throw a(this,x);this.pos+=x}else do if(this.pos>=this.len)throw a(this);while(this.buf[this.pos++]&128);return this},c.prototype.skipType=function(m){switch(m){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(m=this.uint32()&7)!==4;)this.skipType(m);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+m+" at offset "+this.pos)}return this},c._configure=function(m){o=m,c.create=f(),o._configure();var x=i.Long?"toLong":"toNumber";i.merge(c.prototype,{int64:function(){return d.call(this)[x](!1)},uint64:function(){return d.call(this)[x](!0)},sint64:function(){return d.call(this).zzDecode()[x](!1)},fixed64:function(){return g.call(this)[x](!0)},sfixed64:function(){return g.call(this)[x](!1)}})}},{15:15}],10:[function(e,t,n){"use strict";t.exports=r;var i=e(9);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(s){i.call(this,s)}r._configure=function(){o.Buffer&&(r.prototype._slice=o.Buffer.prototype.slice)},r.prototype.string=function(){var a=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+a,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+a,this.len))},r._configure()},{15:15,9:9}],11:[function(e,t,n){"use strict";t.exports={}},{}],12:[function(e,t,n){"use strict";var i=n;i.Service=e(13)},{13:13}],13:[function(e,t,n){"use strict";t.exports=o;var i=e(15);(o.prototype=Object.create(i.EventEmitter.prototype)).constructor=o;function o(r,s,a){if(typeof r!="function")throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=r,this.requestDelimited=!!s,this.responseDelimited=!!a}o.prototype.rpcCall=function r(s,a,c,u,f){if(!u)throw TypeError("request must be specified");var d=this;if(!f)return i.asPromise(r,d,s,a,c,u);if(!d.rpcImpl)return setTimeout(function(){f(Error("already ended"))},0),undefined;try{return d.rpcImpl(s,a[d.requestDelimited?"encodeDelimited":"encode"](u).finish(),function(g,m){if(g)return d.emit("error",g,s),f(g);if(m===null)return d.end(!0),undefined;if(!(m instanceof c))try{m=c[d.responseDelimited?"decodeDelimited":"decode"](m)}catch(x){return d.emit("error",x,s),f(x)}return d.emit("data",m,s),f(null,m)})}catch(p){return d.emit("error",p,s),setTimeout(function(){f(p)},0),undefined}},o.prototype.end=function(s){return this.rpcImpl&&(s||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{15:15}],14:[function(e,t,n){"use strict";t.exports=o;var i=e(15);function o(c,u){this.lo=c>>>0,this.hi=u>>>0}var r=o.zero=new o(0,0);r.toNumber=function(){return 0},r.zzEncode=r.zzDecode=function(){return this},r.length=function(){return 1};var s=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(u){if(u===0)return r;var f=u<0;f&&(u=-u);var d=u>>>0,p=(u-d)/4294967296>>>0;return f&&(p=~p>>>0,d=~d>>>0,++d>4294967295&&(d=0,++p>4294967295&&(p=0))),new o(d,p)},o.from=function(u){if(typeof u=="number")return o.fromNumber(u);if(i.isString(u))if(i.Long)u=i.Long.fromString(u);else return o.fromNumber(parseInt(u,10));return u.low||u.high?new o(u.low>>>0,u.high>>>0):r},o.prototype.toNumber=function(u){if(!u&&this.hi>>>31){var f=~this.lo+1>>>0,d=~this.hi>>>0;return f||(d=d+1>>>0),-(f+d*4294967296)}return this.lo+this.hi*4294967296},o.prototype.toLong=function(u){return i.Long?new i.Long(this.lo|0,this.hi|0,!!u):{low:this.lo|0,high:this.hi|0,unsigned:!!u}};var a=String.prototype.charCodeAt;o.fromHash=function(u){return u===s?r:new o((a.call(u,0)|a.call(u,1)<<8|a.call(u,2)<<16|a.call(u,3)<<24)>>>0,(a.call(u,4)|a.call(u,5)<<8|a.call(u,6)<<16|a.call(u,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var u=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^u)>>>0,this.lo=(this.lo<<1^u)>>>0,this},o.prototype.zzDecode=function(){var u=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^u)>>>0,this.hi=(this.hi>>>1^u)>>>0,this},o.prototype.length=function(){var u=this.lo,f=(this.lo>>>28|this.hi<<4)>>>0,d=this.hi>>>24;return d===0?f===0?u<16384?u<128?1:2:u<2097152?3:4:f<16384?f<128?5:6:f<2097152?7:8:d<128?9:10}},{15:15}],15:[function(e,t,n){"use strict";var i=n;i.asPromise=e(1),i.base64=e(2),i.EventEmitter=e(3),i.float=e(4),i.inquire=e(5),i.utf8=e(7),i.pool=e(6),i.LongBits=e(14),i.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node),i.global=i.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(a){return typeof a=="number"&&isFinite(a)&&Math.floor(a)===a},i.isString=function(a){return typeof a=="string"||a instanceof String},i.isObject=function(a){return a&&typeof a=="object"},i.isset=i.isSet=function(a,c){var u=a[c];return u!=null&&a.hasOwnProperty(c)?typeof u!="object"||(Array.isArray(u)?u.length:Object.keys(u).length)>0:!1},i.Buffer=function(){try{var s=i.inquire("buffer").Buffer;return s.prototype.utf8Write?s:null}catch{return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(a){return typeof a=="number"?i.Buffer?i._Buffer_allocUnsafe(a):new i.Array(a):i.Buffer?i._Buffer_from(a):typeof Uint8Array>"u"?a:new Uint8Array(a)},i.Array=typeof Uint8Array<"u"?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(a){return a?i.LongBits.from(a).toHash():i.LongBits.zeroHash},i.longFromHash=function(a,c){var u=i.LongBits.fromHash(a);return i.Long?i.Long.fromBits(u.lo,u.hi,c):u.toNumber(!!c)};function o(s,a,c){for(var u=Object.keys(a),f=0;f<u.length;++f)(s[u[f]]===undefined||!c)&&(s[u[f]]=a[u[f]]);return s}i.merge=o,i.lcFirst=function(a){return a.charAt(0).toLowerCase()+a.substring(1)};function r(s){function a(c,u){if(!(this instanceof a))return new a(c,u);Object.defineProperty(this,"message",{get:function(){return c}}),Error.captureStackTrace?Error.captureStackTrace(this,a):Object.defineProperty(this,"stack",{value:new Error().stack||""}),u&&o(this,u)}return a.prototype=Object.create(Error.prototype,{constructor:{value:a,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return s},set:undefined,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),a}i.newError=r,i.ProtocolError=r("ProtocolError"),i.oneOfGetter=function(a){for(var c={},u=0;u<a.length;++u)c[a[u]]=1;return function(){for(var f=Object.keys(this),d=f.length-1;d>-1;--d)if(c[f[d]]===1&&this[f[d]]!==undefined&&this[f[d]]!==null)return f[d]}},i.oneOfSetter=function(a){return function(c){for(var u=0;u<a.length;++u)a[u]!==c&&delete this[a[u]]}},i.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},i._configure=function(){var s=i.Buffer;if(!s){i._Buffer_from=i._Buffer_allocUnsafe=null;return}i._Buffer_from=s.from!==Uint8Array.from&&s.from||function(c,u){return new s(c,u)},i._Buffer_allocUnsafe=s.allocUnsafe||function(c){return new s(c)}}},{1:1,14:14,2:2,3:3,4:4,5:5,6:6,7:7}],16:[function(e,t,n){"use strict";t.exports=d;var i=e(15),o,r=i.LongBits,s=i.base64,a=i.utf8;function c(A,E,v){this.fn=A,this.len=E,this.next=undefined,this.val=v}function u(){}function f(A){this.head=A.head,this.tail=A.tail,this.len=A.len,this.next=A.states}function d(){this.len=0,this.head=new c(u,0,0),this.tail=this.head,this.states=null}var p=function(){return i.Buffer?function(){return(d.create=function(){return new o})()}:function(){return new d}};d.create=p(),d.alloc=function(E){return new i.Array(E)},i.Array!==Array&&(d.alloc=i.pool(d.alloc,i.Array.prototype.subarray)),d.prototype._push=function(E,v,D){return this.tail=this.tail.next=new c(E,v,D),this.len+=v,this};function g(A,E,v){E[v]=A&255}function m(A,E,v){for(;A>127;)E[v++]=A&127|128,A>>>=7;E[v]=A}function x(A,E){this.len=A,this.next=undefined,this.val=E}x.prototype=Object.create(c.prototype),x.prototype.fn=m,d.prototype.uint32=function(E){return this.len+=(this.tail=this.tail.next=new x((E=E>>>0)<128?1:E<16384?2:E<2097152?3:E<268435456?4:5,E)).len,this},d.prototype.int32=function(E){return E<0?this._push(b,10,r.fromNumber(E)):this.uint32(E)},d.prototype.sint32=function(E){return this.uint32((E<<1^E>>31)>>>0)};function b(A,E,v){for(;A.hi;)E[v++]=A.lo&127|128,A.lo=(A.lo>>>7|A.hi<<25)>>>0,A.hi>>>=7;for(;A.lo>127;)E[v++]=A.lo&127|128,A.lo=A.lo>>>7;E[v++]=A.lo}d.prototype.uint64=function(E){var v=r.from(E);return this._push(b,v.length(),v)},d.prototype.int64=d.prototype.uint64,d.prototype.sint64=function(E){var v=r.from(E).zzEncode();return this._push(b,v.length(),v)},d.prototype.bool=function(E){return this._push(g,1,E?1:0)};function T(A,E,v){E[v]=A&255,E[v+1]=A>>>8&255,E[v+2]=A>>>16&255,E[v+3]=A>>>24}d.prototype.fixed32=function(E){return this._push(T,4,E>>>0)},d.prototype.sfixed32=d.prototype.fixed32,d.prototype.fixed64=function(E){var v=r.from(E);return this._push(T,4,v.lo)._push(T,4,v.hi)},d.prototype.sfixed64=d.prototype.fixed64,d.prototype.float=function(E){return this._push(i.float.writeFloatLE,4,E)},d.prototype.double=function(E){return this._push(i.float.writeDoubleLE,8,E)};var C=i.Array.prototype.set?function(E,v,D){v.set(E,D)}:function(E,v,D){for(var O=0;O<E.length;++O)v[D+O]=E[O]};d.prototype.bytes=function(E){var v=E.length>>>0;if(!v)return this._push(g,1,0);if(i.isString(E)){var D=d.alloc(v=s.length(E));s.decode(E,D,0),E=D}return this.uint32(v)._push(C,v,E)},d.prototype.string=function(E){var v=a.length(E);return v?this.uint32(v)._push(a.write,v,E):this._push(g,1,0)},d.prototype.fork=function(){return this.states=new f(this),this.head=this.tail=new c(u,0,0),this.len=0,this},d.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new c(u,0,0),this.len=0),this},d.prototype.ldelim=function(){var E=this.head,v=this.tail,D=this.len;return this.reset().uint32(D),D&&(this.tail.next=E.next,this.tail=v,this.len+=D),this},d.prototype.finish=function(){for(var E=this.head.next,v=this.constructor.alloc(this.len),D=0;E;)E.fn(E.val,v,D),D+=E.len,E=E.next;return v},d._configure=function(A){o=A,d.create=p(),o._configure()}},{15:15}],17:[function(e,t,n){"use strict";t.exports=r;var i=e(16);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(){i.call(this)}r._configure=function(){r.alloc=o._Buffer_allocUnsafe,r.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&o.Buffer.prototype.set.name==="set"?function(c,u,f){u.set(c,f)}:function(c,u,f){if(c.copy)c.copy(u,f,0,c.length);else for(var d=0;d<c.length;)u[f++]=c[d++]}},r.prototype.bytes=function(c){o.isString(c)&&(c=o._Buffer_from(c,"base64"));var u=c.length>>>0;return this.uint32(u),u&&this._push(r.writeBytesBuffer,u,c),this};function s(a,c,u){a.length<40?o.utf8.write(a,c,u):c.utf8Write?c.utf8Write(a,u):c.write(a,u)}r.prototype.string=function(c){var u=o.Buffer.byteLength(c);return this.uint32(u),u&&this._push(s,u,c),this},r._configure()},{15:15,16:16}]},{},[8])})()});var yAe=Yn((hLi,l5)=>{/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var e=function(){var o={};o.defaultNoDataValue=-34027999387901484e22,o.decode=function(f,d){d=d||{};var p=d.encodedMaskData||d.encodedMaskData===null,g=c(f,d.inputOffset||0,p),m=d.noDataValue!==null?d.noDataValue:o.defaultNoDataValue,x=r(g,d.pixelType||Float32Array,d.encodedMaskData,m,d.returnMask),b={width:g.width,height:g.height,pixelData:x.resultPixels,minValue:x.minValue,maxValue:g.pixels.maxValue,noDataValue:m};return x.resultMask&&(b.maskData=x.resultMask),d.returnEncodedMask&&g.mask&&(b.encodedMaskData=g.mask.bitset?g.mask.bitset:null),d.returnFileInfo&&(b.fileInfo=s(g),d.computeUsedBitDepths&&(b.fileInfo.bitDepths=a(g))),b};var r=function(f,d,p,g,m){var x=0,b=f.pixels.numBlocksX,T=f.pixels.numBlocksY,C=Math.floor(f.width/b),A=Math.floor(f.height/T),E=2*f.maxZError,v=Number.MAX_VALUE,D;p=p||(f.mask?f.mask.bitset:null);var O,I;O=new d(f.width*f.height),m&&p&&(I=new Uint8Array(f.width*f.height));for(var L=new Float32Array(C*A),N,_,S=0;S<=T;S++){var w=S!==T?A:f.height%T;if(w!==0)for(var P=0;P<=b;P++){var M=P!==b?C:f.width%b;if(M!==0){var B=S*f.width*A+P*C,U=f.width-M,V=f.pixels.blocks[x],G,k,Y;V.encoding<2?(V.encoding===0?G=V.rawData:(u(V.stuffedData,V.bitsPerPixel,V.numValidPixels,V.offset,E,L,f.pixels.maxValue),G=L),k=0):V.encoding===2?Y=0:Y=V.offset;var W;if(p)for(_=0;_<w;_++){for(B&7&&(W=p[B>>3],W<<=B&7),N=0;N<M;N++)B&7||(W=p[B>>3]),W&128?(I&&(I[B]=1),D=V.encoding<2?G[k++]:Y,v=v>D?D:v,O[B++]=D):(I&&(I[B]=0),O[B++]=g),W<<=1;B+=U}else if(V.encoding<2)for(_=0;_<w;_++){for(N=0;N<M;N++)D=G[k++],v=v>D?D:v,O[B++]=D;B+=U}else for(v=v>Y?Y:v,_=0;_<w;_++){for(N=0;N<M;N++)O[B++]=Y;B+=U}if(V.encoding===1&&k!==V.numValidPixels)throw"Block and Mask do not match";x++}}}return{resultPixels:O,resultMask:I,minValue:v}},s=function(f){return{fileIdentifierString:f.fileIdentifierString,fileVersion:f.fileVersion,imageType:f.imageType,height:f.height,width:f.width,maxZError:f.maxZError,eofOffset:f.eofOffset,mask:f.mask?{numBlocksX:f.mask.numBlocksX,numBlocksY:f.mask.numBlocksY,numBytes:f.mask.numBytes,maxValue:f.mask.maxValue}:null,pixels:{numBlocksX:f.pixels.numBlocksX,numBlocksY:f.pixels.numBlocksY,numBytes:f.pixels.numBytes,maxValue:f.pixels.maxValue,noDataValue:f.noDataValue}}},a=function(f){for(var d=f.pixels.numBlocksX*f.pixels.numBlocksY,p={},g=0;g<d;g++){var m=f.pixels.blocks[g];m.encoding===0?p.float32=!0:m.encoding===1?p[m.bitsPerPixel]=!0:p[0]=!0}return Object.keys(p)},c=function(f,d,p){var g={},m=new Uint8Array(f,d,10);if(g.fileIdentifierString=String.fromCharCode.apply(null,m),g.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+g.fileIdentifierString;d+=10;var x=new DataView(f,d,24);if(g.fileVersion=x.getInt32(0,!0),g.imageType=x.getInt32(4,!0),g.height=x.getUint32(8,!0),g.width=x.getUint32(12,!0),g.maxZError=x.getFloat64(16,!0),d+=24,!p)if(x=new DataView(f,d,16),g.mask={},g.mask.numBlocksY=x.getUint32(0,!0),g.mask.numBlocksX=x.getUint32(4,!0),g.mask.numBytes=x.getUint32(8,!0),g.mask.maxValue=x.getFloat32(12,!0),d+=16,g.mask.numBytes>0){var b=new Uint8Array(Math.ceil(g.width*g.height/8));x=new DataView(f,d,g.mask.numBytes);var T=x.getInt16(0,!0),C=2,A=0;do{if(T>0)for(;T--;)b[A++]=x.getUint8(C++);else{var E=x.getUint8(C++);for(T=-T;T--;)b[A++]=E}T=x.getInt16(C,!0),C+=2}while(C<g.mask.numBytes);if(T!==-32768||A<b.length)throw"Unexpected end of mask RLE encoding";g.mask.bitset=b,d+=g.mask.numBytes}else g.mask.numBytes|g.mask.numBlocksY|g.mask.maxValue||(g.mask.bitset=new Uint8Array(Math.ceil(g.width*g.height/8)));x=new DataView(f,d,16),g.pixels={},g.pixels.numBlocksY=x.getUint32(0,!0),g.pixels.numBlocksX=x.getUint32(4,!0),g.pixels.numBytes=x.getUint32(8,!0),g.pixels.maxValue=x.getFloat32(12,!0),d+=16;var v=g.pixels.numBlocksX,D=g.pixels.numBlocksY,O=v+(g.width%v>0?1:0),I=D+(g.height%D>0?1:0);g.pixels.blocks=new Array(O*I);for(var L=0,N=0;N<I;N++)for(var _=0;_<O;_++){var S=0,w=f.byteLength-d;x=new DataView(f,d,Math.min(10,w));var P={};g.pixels.blocks[L++]=P;var M=x.getUint8(0);if(S++,P.encoding=M&63,P.encoding>3)throw"Invalid block encoding ("+P.encoding+")";if(P.encoding===2){d++;continue}if(M!==0&&M!==2){if(M>>=6,P.offsetType=M,M===2)P.offset=x.getInt8(1),S++;else if(M===1)P.offset=x.getInt16(1,!0),S+=2;else if(M===0)P.offset=x.getFloat32(1,!0),S+=4;else throw"Invalid block offset type";if(P.encoding===1)if(M=x.getUint8(S),S++,P.bitsPerPixel=M&63,M>>=6,P.numValidPixelsType=M,M===2)P.numValidPixels=x.getUint8(S),S++;else if(M===1)P.numValidPixels=x.getUint16(S,!0),S+=2;else if(M===0)P.numValidPixels=x.getUint32(S,!0),S+=4;else throw"Invalid valid pixel count type"}if(d+=S,P.encoding!==3){var B,U;if(P.encoding===0){var V=(g.pixels.numBytes-1)/4;if(V!==Math.floor(V))throw"uncompressed block has invalid length";B=new ArrayBuffer(V*4),U=new Uint8Array(B),U.set(new Uint8Array(f,d,V*4));var G=new Float32Array(B);P.rawData=G,d+=V*4}else if(P.encoding===1){var k=Math.ceil(P.numValidPixels*P.bitsPerPixel/8),Y=Math.ceil(k/4);B=new ArrayBuffer(Y*4),U=new Uint8Array(B),U.set(new Uint8Array(f,d,k)),P.stuffedData=new Uint32Array(B),d+=k}}}return g.eofOffset=d,g},u=function(f,d,p,g,m,x,b){var T=(1<<d)-1,C=0,A,E=0,v,D,O=Math.ceil((b-g)/m),I=f.length*4-Math.ceil(d*p/8);for(f[f.length-1]<<=8*I,A=0;A<p;A++){if(E===0&&(D=f[C++],E=32),E>=d)v=D>>>E-d&T,E-=d;else{var L=d-E;v=(D&T)<<L&T,D=f[C++],E=32-L,v+=D>>>E}x[A]=v<O?g+v*m:b}return x};return o}(),t=function(){"use strict";var o={unstuff:function(c,u,f,d,p,g,m,x){var b=(1<<f)-1,T=0,C,A=0,E,v,D,O,I=c.length*4-Math.ceil(f*d/8);if(c[c.length-1]<<=8*I,p)for(C=0;C<d;C++)A===0&&(v=c[T++],A=32),A>=f?(E=v>>>A-f&b,A-=f):(D=f-A,E=(v&b)<<D&b,v=c[T++],A=32-D,E+=v>>>A),u[C]=p[E];else for(O=Math.ceil((x-g)/m),C=0;C<d;C++)A===0&&(v=c[T++],A=32),A>=f?(E=v>>>A-f&b,A-=f):(D=f-A,E=(v&b)<<D&b,v=c[T++],A=32-D,E+=v>>>A),u[C]=E<O?g+E*m:x},unstuffLUT:function(c,u,f,d,p,g){var m=(1<<u)-1,x=0,b=0,T=0,C=0,A=0,E,v=[],D=c.length*4-Math.ceil(u*f/8);c[c.length-1]<<=8*D;var O=Math.ceil((g-d)/p);for(b=0;b<f;b++)C===0&&(E=c[x++],C=32),C>=u?(A=E>>>C-u&m,C-=u):(T=u-C,A=(E&m)<<T&m,E=c[x++],C=32-T,A+=E>>>C),v[b]=A<O?d+A*p:g;return v.unshift(d),v},unstuff2:function(c,u,f,d,p,g,m,x){var b=(1<<f)-1,T=0,C,A=0,E=0,v,D,O;if(p)for(C=0;C<d;C++)A===0&&(D=c[T++],A=32,E=0),A>=f?(v=D>>>E&b,A-=f,E+=f):(O=f-A,v=D>>>E&b,D=c[T++],A=32-O,v|=(D&(1<<O)-1)<<f-O,E=O),u[C]=p[v];else{var I=Math.ceil((x-g)/m);for(C=0;C<d;C++)A===0&&(D=c[T++],A=32,E=0),A>=f?(v=D>>>E&b,A-=f,E+=f):(O=f-A,v=D>>>E&b,D=c[T++],A=32-O,v|=(D&(1<<O)-1)<<f-O,E=O),u[C]=v<I?g+v*m:x}return u},unstuffLUT2:function(c,u,f,d,p,g){var m=(1<<u)-1,x=0,b=0,T=0,C=0,A=0,E=0,v,D=[],O=Math.ceil((g-d)/p);for(b=0;b<f;b++)C===0&&(v=c[x++],C=32,E=0),C>=u?(A=v>>>E&m,C-=u,E+=u):(T=u-C,A=v>>>E&m,v=c[x++],C=32-T,A|=(v&(1<<T)-1)<<u-T,E=T),D[b]=A<O?d+A*p:g;return D.unshift(d),D},originalUnstuff:function(c,u,f,d){var p=(1<<f)-1,g=0,m,x=0,b,T,C,A=c.length*4-Math.ceil(f*d/8);for(c[c.length-1]<<=8*A,m=0;m<d;m++)x===0&&(T=c[g++],x=32),x>=f?(b=T>>>x-f&p,x-=f):(C=f-x,b=(T&p)<<C&p,T=c[g++],x=32-C,b+=T>>>x),u[m]=b;return u},originalUnstuff2:function(c,u,f,d){var p=(1<<f)-1,g=0,m,x=0,b=0,T,C,A;for(m=0;m<d;m++)x===0&&(C=c[g++],x=32,b=0),x>=f?(T=C>>>b&p,x-=f,b+=f):(A=f-x,T=C>>>b&p,C=c[g++],x=32-A,T|=(C&(1<<A)-1)<<f-A,b=A),u[m]=T;return u}},r={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(c){for(var u=65535,f=65535,d=c.length,p=Math.floor(d/2),g=0;p;){var m=p>=359?359:p;p-=m;do u+=c[g++]<<8,f+=u+=c[g++];while(--m);u=(u&65535)+(u>>>16),f=(f&65535)+(f>>>16)}return d&1&&(f+=u+=c[g]<<8),u=(u&65535)+(u>>>16),f=(f&65535)+(f>>>16),(f<<16|u)>>>0},readHeaderInfo:function(c,u){var f=u.ptr,d=new Uint8Array(c,f,6),p={};if(p.fileIdentifierString=String.fromCharCode.apply(null,d),p.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+p.fileIdentifierString;f+=6;var g=new DataView(c,f,8),m=g.getInt32(0,!0);p.fileVersion=m,f+=4,m>=3&&(p.checksum=g.getUint32(4,!0),f+=4),g=new DataView(c,f,12),p.height=g.getUint32(0,!0),p.width=g.getUint32(4,!0),f+=8,m>=4?(p.numDims=g.getUint32(8,!0),f+=4):p.numDims=1,g=new DataView(c,f,40),p.numValidPixel=g.getUint32(0,!0),p.microBlockSize=g.getInt32(4,!0),p.blobSize=g.getInt32(8,!0),p.imageType=g.getInt32(12,!0),p.maxZError=g.getFloat64(16,!0),p.zMin=g.getFloat64(24,!0),p.zMax=g.getFloat64(32,!0),f+=40,u.headerInfo=p,u.ptr=f;var x,b;if(m>=3&&(b=m>=4?52:48,x=this.computeChecksumFletcher32(new Uint8Array(c,f-b,p.blobSize-14)),x!==p.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(c,u){var f=u.headerInfo,d=this.getDataTypeArray(f.imageType),p=f.numDims*this.getDataTypeSize(f.imageType),g=this.readSubArray(c,u.ptr,d,p),m=this.readSubArray(c,u.ptr+p,d,p);u.ptr+=2*p;var x,b=!0;for(x=0;x<f.numDims;x++)if(g[x]!==m[x]){b=!1;break}return f.minValues=g,f.maxValues=m,b},readSubArray:function(c,u,f,d){var p;if(f===Uint8Array)p=new Uint8Array(c,u,d);else{var g=new ArrayBuffer(d),m=new Uint8Array(g);m.set(new Uint8Array(c,u,d)),p=new f(g)}return p},readMask:function(c,u){var f=u.ptr,d=u.headerInfo,p=d.width*d.height,g=d.numValidPixel,m=new DataView(c,f,4),x={};if(x.numBytes=m.getUint32(0,!0),f+=4,(g===0||p===g)&&x.numBytes!==0)throw"invalid mask";var b,T;if(g===0)b=new Uint8Array(Math.ceil(p/8)),x.bitset=b,T=new Uint8Array(p),u.pixels.resultMask=T,f+=x.numBytes;else if(x.numBytes>0){b=new Uint8Array(Math.ceil(p/8)),m=new DataView(c,f,x.numBytes);var C=m.getInt16(0,!0),A=2,E=0,v=0;do{if(C>0)for(;C--;)b[E++]=m.getUint8(A++);else for(v=m.getUint8(A++),C=-C;C--;)b[E++]=v;C=m.getInt16(A,!0),A+=2}while(A<x.numBytes);if(C!==-32768||E<b.length)throw"Unexpected end of mask RLE encoding";T=new Uint8Array(p);var D=0,O=0;for(O=0;O<p;O++)O&7?(D=b[O>>3],D<<=O&7):D=b[O>>3],D&128&&(T[O]=1);u.pixels.resultMask=T,x.bitset=b,f+=x.numBytes}return u.ptr=f,u.mask=x,!0},readDataOneSweep:function(c,u,f){var d=u.ptr,p=u.headerInfo,g=p.numDims,m=p.width*p.height,x=p.imageType,b=p.numValidPixel*r.getDataTypeSize(x)*g,T,C=u.pixels.resultMask;if(f===Uint8Array)T=new Uint8Array(c,d,b);else{var A=new ArrayBuffer(b),E=new Uint8Array(A);E.set(new Uint8Array(c,d,b)),T=new f(A)}if(T.length===m*g)u.pixels.resultPixels=T;else{u.pixels.resultPixels=new f(m*g);var v=0,D=0,O=0,I=0;if(g>1)for(O=0;O<g;O++)for(I=O*m,D=0;D<m;D++)C[D]&&(u.pixels.resultPixels[I+D]=T[v++]);else for(D=0;D<m;D++)C[D]&&(u.pixels.resultPixels[D]=T[v++])}return d+=b,u.ptr=d,!0},readHuffmanTree:function(c,u){var f=this.HUFFMAN_LUT_BITS_MAX,d=new DataView(c,u.ptr,16);u.ptr+=16;var p=d.getInt32(0,!0);if(p<2)throw"unsupported Huffman version";var g=d.getInt32(4,!0),m=d.getInt32(8,!0),x=d.getInt32(12,!0);if(m>=x)return!1;var b=new Uint32Array(x-m);r.decodeBits(c,u,b);var T=[],C,A,E,v;for(C=m;C<x;C++)A=C-(C<g?0:g),T[A]={first:b[C-m],second:null};var D=c.byteLength-u.ptr,O=Math.ceil(D/4),I=new ArrayBuffer(O*4),L=new Uint8Array(I);L.set(new Uint8Array(c,u.ptr,D));var N=new Uint32Array(I),_=0,S,w=0;for(S=N[0],C=m;C<x;C++)A=C-(C<g?0:g),v=T[A].first,v>0&&(T[A].second=S<<_>>>32-v,32-_>=v?(_+=v,_===32&&(_=0,w++,S=N[w])):(_+=v-32,w++,S=N[w],T[A].second|=S>>>32-_));var P=0,M=0,B=new s;for(C=0;C<T.length;C++)T[C]!==void 0&&(P=Math.max(P,T[C].first));P>=f?M=f:M=P,P>=30&&console.log("WARning, large NUM LUT BITS IS "+P);var U=[],V,G,k,Y,W,Q;for(C=m;C<x;C++)if(A=C-(C<g?0:g),v=T[A].first,v>0)if(V=[v,A],v<=M)for(G=T[A].second<<M-v,k=1<<M-v,E=0;E<k;E++)U[G|E]=V;else for(G=T[A].second,Q=B,Y=v-1;Y>=0;Y--)W=G>>>Y&1,W?(Q.right||(Q.right=new s),Q=Q.right):(Q.left||(Q.left=new s),Q=Q.left),Y===0&&!Q.val&&(Q.val=V[1]);return{decodeLut:U,numBitsLUTQick:M,numBitsLUT:P,tree:B,stuffedData:N,srcPtr:w,bitPos:_}},readHuffman:function(c,u,f){var d=u.headerInfo,p=d.numDims,g=u.headerInfo.height,m=u.headerInfo.width,x=m*g,b=this.readHuffmanTree(c,u),T=b.decodeLut,C=b.tree,A=b.stuffedData,E=b.srcPtr,v=b.bitPos,D=b.numBitsLUTQick,O=b.numBitsLUT,I=u.headerInfo.imageType===0?128:0,L,N,_,S=u.pixels.resultMask,w,P,M,B,U,V,G,k=0;v>0&&(E++,v=0);var Y=A[E],W=u.encodeMode===1,Q=new f(x*p),j=Q,K;for(K=0;K<d.numDims;K++){if(p>1&&(j=new f(Q.buffer,x*K,x),k=0),u.headerInfo.numValidPixel===m*g)for(V=0,B=0;B<g;B++)for(U=0;U<m;U++,V++){if(N=0,w=Y<<v>>>32-D,P=w,32-v<D&&(w|=A[E+1]>>>64-v-D,P=w),T[P])N=T[P][1],v+=T[P][0];else for(w=Y<<v>>>32-O,P=w,32-v<O&&(w|=A[E+1]>>>64-v-O,P=w),L=C,G=0;G<O;G++)if(M=w>>>O-G-1&1,L=M?L.right:L.left,!(L.left||L.right)){N=L.val,v=v+G+1;break}v>=32&&(v-=32,E++,Y=A[E]),_=N-I,W?(U>0?_+=k:B>0?_+=j[V-m]:_+=k,_&=255,j[V]=_,k=_):j[V]=_}else for(V=0,B=0;B<g;B++)for(U=0;U<m;U++,V++)if(S[V]){if(N=0,w=Y<<v>>>32-D,P=w,32-v<D&&(w|=A[E+1]>>>64-v-D,P=w),T[P])N=T[P][1],v+=T[P][0];else for(w=Y<<v>>>32-O,P=w,32-v<O&&(w|=A[E+1]>>>64-v-O,P=w),L=C,G=0;G<O;G++)if(M=w>>>O-G-1&1,L=M?L.right:L.left,!(L.left||L.right)){N=L.val,v=v+G+1;break}v>=32&&(v-=32,E++,Y=A[E]),_=N-I,W?(U>0&&S[V-1]?_+=k:B>0&&S[V-m]?_+=j[V-m]:_+=k,_&=255,j[V]=_,k=_):j[V]=_}u.ptr=u.ptr+(E+1)*4+(v>0?4:0)}u.pixels.resultPixels=Q},decodeBits:function(c,u,f,d,p){{var g=u.headerInfo,m=g.fileVersion,x=0,b=new DataView(c,u.ptr,5),T=b.getUint8(0);x++;var C=T>>6,A=C===0?4:3-C,E=(T&32)>0,v=T&31,D=0;if(A===1)D=b.getUint8(x),x++;else if(A===2)D=b.getUint16(x,!0),x+=2;else if(A===4)D=b.getUint32(x,!0),x+=4;else throw"Invalid valid pixel count type";var O=2*g.maxZError,I,L,N,_,S,w,P,M,B,U,V=g.numDims>1?g.maxValues[p]:g.zMax;if(E){for(u.counter.lut++,M=b.getUint8(x),B=v,x++,_=Math.ceil((M-1)*v/8),S=Math.ceil(_/4),L=new ArrayBuffer(S*4),N=new Uint8Array(L),u.ptr+=x,N.set(new Uint8Array(c,u.ptr,_)),P=new Uint32Array(L),u.ptr+=_,U=0;M-1>>>U;)U++;_=Math.ceil(D*U/8),S=Math.ceil(_/4),L=new ArrayBuffer(S*4),N=new Uint8Array(L),N.set(new Uint8Array(c,u.ptr,_)),I=new Uint32Array(L),u.ptr+=_,m>=3?w=o.unstuffLUT2(P,v,M-1,d,O,V):w=o.unstuffLUT(P,v,M-1,d,O,V),m>=3?o.unstuff2(I,f,U,D,w):o.unstuff(I,f,U,D,w)}else u.counter.bitstuffer++,U=v,u.ptr+=x,U>0&&(_=Math.ceil(D*U/8),S=Math.ceil(_/4),L=new ArrayBuffer(S*4),N=new Uint8Array(L),N.set(new Uint8Array(c,u.ptr,_)),I=new Uint32Array(L),u.ptr+=_,m>=3?d==null?o.originalUnstuff2(I,f,U,D):o.unstuff2(I,f,U,D,!1,d,O,V):d==null?o.originalUnstuff(I,f,U,D):o.unstuff(I,f,U,D,!1,d,O,V))}},readTiles:function(c,u,f){var d=u.headerInfo,p=d.width,g=d.height,m=d.microBlockSize,x=d.imageType,b=r.getDataTypeSize(x),T=Math.ceil(p/m),C=Math.ceil(g/m);u.pixels.numBlocksY=C,u.pixels.numBlocksX=T,u.pixels.ptr=0;var A=0,E=0,v=0,D=0,O=0,I=0,L=0,N=0,_=0,S=0,w=0,P=0,M=0,B=0,U=0,V=0,G,k,Y,W,Q,j,K=new f(m*m),Z=g%m||m,he=p%m||m,be,re,_e=d.numDims,xe,Ce=u.pixels.resultMask,we=u.pixels.resultPixels;for(v=0;v<C;v++)for(O=v!==C-1?m:Z,D=0;D<T;D++)for(I=D!==T-1?m:he,w=v*p*m+D*m,P=p-I,xe=0;xe<_e;xe++){if(_e>1&&(we=new f(u.pixels.resultPixels.buffer,p*g*xe*b,p*g)),L=c.byteLength-u.ptr,G=new DataView(c,u.ptr,Math.min(10,L)),k={},V=0,N=G.getUint8(0),V++,_=N>>6&255,S=N>>2&15,S!==(D*m>>3&15))throw"integrity issue";if(j=N&3,j>3)throw u.ptr+=V,"Invalid block encoding ("+j+")";if(j===2){u.counter.constant++,u.ptr+=V;continue}else if(j===0){if(u.counter.uncompressed++,u.ptr+=V,M=O*I*b,B=c.byteLength-u.ptr,M=M<B?M:B,Y=new ArrayBuffer(M%b===0?M:M+b-M%b),W=new Uint8Array(Y),W.set(new Uint8Array(c,u.ptr,M)),Q=new f(Y),U=0,Ce)for(A=0;A<O;A++){for(E=0;E<I;E++)Ce[w]&&(we[w]=Q[U++]),w++;w+=P}else for(A=0;A<O;A++){for(E=0;E<I;E++)we[w++]=Q[U++];w+=P}u.ptr+=U*b}else if(be=r.getDataTypeUsed(x,_),re=r.getOnePixel(k,V,be,G),V+=r.getDataTypeSize(be),j===3)if(u.ptr+=V,u.counter.constantoffset++,Ce)for(A=0;A<O;A++){for(E=0;E<I;E++)Ce[w]&&(we[w]=re),w++;w+=P}else for(A=0;A<O;A++){for(E=0;E<I;E++)we[w++]=re;w+=P}else if(u.ptr+=V,r.decodeBits(c,u,K,re,xe),V=0,Ce)for(A=0;A<O;A++){for(E=0;E<I;E++)Ce[w]&&(we[w]=K[V++]),w++;w+=P}else for(A=0;A<O;A++){for(E=0;E<I;E++)we[w++]=K[V++];w+=P}}},formatFileInfo:function(c){return{fileIdentifierString:c.headerInfo.fileIdentifierString,fileVersion:c.headerInfo.fileVersion,imageType:c.headerInfo.imageType,height:c.headerInfo.height,width:c.headerInfo.width,numValidPixel:c.headerInfo.numValidPixel,microBlockSize:c.headerInfo.microBlockSize,blobSize:c.headerInfo.blobSize,maxZError:c.headerInfo.maxZError,pixelType:r.getPixelType(c.headerInfo.imageType),eofOffset:c.eofOffset,mask:c.mask?{numBytes:c.mask.numBytes}:null,pixels:{numBlocksX:c.pixels.numBlocksX,numBlocksY:c.pixels.numBlocksY,maxValue:c.headerInfo.zMax,minValue:c.headerInfo.zMin,noDataValue:c.noDataValue}}},constructConstantSurface:function(c){var u=c.headerInfo.zMax,f=c.headerInfo.numDims,d=c.headerInfo.height*c.headerInfo.width,p=d*f,g=0,m=0,x=0,b=c.pixels.resultMask;if(b)if(f>1)for(g=0;g<f;g++)for(x=g*d,m=0;m<d;m++)b[m]&&(c.pixels.resultPixels[x+m]=u);else for(m=0;m<d;m++)b[m]&&(c.pixels.resultPixels[m]=u);else if(c.pixels.resultPixels.fill)c.pixels.resultPixels.fill(u);else for(m=0;m<p;m++)c.pixels.resultPixels[m]=u},getDataTypeArray:function(c){var u;switch(c){case 0:u=Int8Array;break;case 1:u=Uint8Array;break;case 2:u=Int16Array;break;case 3:u=Uint16Array;break;case 4:u=Int32Array;break;case 5:u=Uint32Array;break;case 6:u=Float32Array;break;case 7:u=Float64Array;break;default:u=Float32Array}return u},getPixelType:function(c){var u;switch(c){case 0:u="S8";break;case 1:u="U8";break;case 2:u="S16";break;case 3:u="U16";break;case 4:u="S32";break;case 5:u="U32";break;case 6:u="F32";break;case 7:u="F64";break;default:u="F32"}return u},isValidPixelValue:function(c,u){if(u==null)return!1;var f;switch(c){case 0:f=u>=-128&&u<=127;break;case 1:f=u>=0&&u<=255;break;case 2:f=u>=-32768&&u<=32767;break;case 3:f=u>=0&&u<=65536;break;case 4:f=u>=-2147483648&&u<=2147483647;break;case 5:f=u>=0&&u<=4294967296;break;case 6:f=u>=-34027999387901484e22&&u<=34027999387901484e22;break;case 7:f=u>=5e-324&&u<=17976931348623157e292;break;default:f=!1}return f},getDataTypeSize:function(c){var u=0;switch(c){case 0:case 1:u=1;break;case 2:case 3:u=2;break;case 4:case 5:case 6:u=4;break;case 7:u=8;break;default:u=c}return u},getDataTypeUsed:function(c,u){var f=c;switch(c){case 2:case 4:f=c-u;break;case 3:case 5:f=c-2*u;break;case 6:u===0?f=c:u===1?f=2:f=1;break;case 7:u===0?f=c:f=c-2*u+1;break;default:f=c;break}return f},getOnePixel:function(c,u,f,d){var p=0;switch(f){case 0:p=d.getInt8(u);break;case 1:p=d.getUint8(u);break;case 2:p=d.getInt16(u,!0);break;case 3:p=d.getUint16(u,!0);break;case 4:p=d.getInt32(u,!0);break;case 5:p=d.getUInt32(u,!0);break;case 6:p=d.getFloat32(u,!0);break;case 7:p=d.getFloat64(u,!0);break;default:throw"the decoder does not understand this pixel type"}return p}},s=function(c,u,f){this.val=c,this.left=u,this.right=f},a={decode:function(c,u){u=u||{};var f=u.noDataValue,d=0,p={};if(p.ptr=u.inputOffset||0,p.pixels={},!!r.readHeaderInfo(c,p)){var g=p.headerInfo,m=g.fileVersion,x=r.getDataTypeArray(g.imageType);r.readMask(c,p),g.numValidPixel!==g.width*g.height&&!p.pixels.resultMask&&(p.pixels.resultMask=u.maskData);var b=g.width*g.height;if(p.pixels.resultPixels=new x(b*g.numDims),p.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},g.numValidPixel!==0)if(g.zMax===g.zMin)r.constructConstantSurface(p);else if(m>=4&&r.checkMinMaxRanges(c,p))r.constructConstantSurface(p);else{var T=new DataView(c,p.ptr,2),C=T.getUint8(0);if(p.ptr++,C)r.readDataOneSweep(c,p,x);else if(m>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var A=T.getUint8(1);if(p.ptr++,p.encodeMode=A,A>2||m<4&&A>1)throw"Invalid Huffman flag "+A;A?r.readHuffman(c,p,x):r.readTiles(c,p,x)}else r.readTiles(c,p,x)}p.eofOffset=p.ptr;var E;u.inputOffset?(E=p.headerInfo.blobSize+u.inputOffset-p.ptr,Math.abs(E)>=1&&(p.eofOffset=u.inputOffset+p.headerInfo.blobSize)):(E=p.headerInfo.blobSize-p.ptr,Math.abs(E)>=1&&(p.eofOffset=p.headerInfo.blobSize));var v={width:g.width,height:g.height,pixelData:p.pixels.resultPixels,minValue:g.zMin,maxValue:g.zMax,validPixelCount:g.numValidPixel,dimCount:g.numDims,dimStats:{minValues:g.minValues,maxValues:g.maxValues},maskData:p.pixels.resultMask};if(p.pixels.resultMask&&r.isValidPixelValue(g.imageType,f)){var D=p.pixels.resultMask;for(d=0;d<b;d++)D[d]||(v.pixelData[d]=f);v.noDataValue=f}return p.noDataValue=f,u.returnFileInfo&&(v.fileInfo=r.formatFileInfo(p)),v}},getBandCount:function(c){var u=0,f=0,d={};for(d.ptr=0,d.pixels={};f<c.byteLength-58;)r.readHeaderInfo(c,d),f+=d.headerInfo.blobSize,u++,d.ptr=f;return u}};return a}(),n=function(){var o=new ArrayBuffer(4),r=new Uint8Array(o),s=new Uint32Array(o);return s[0]=1,r[0]===1}(),i={decode:function(o,r){if(!n)throw"Big endian system is not supported.";r=r||{};var s=r.inputOffset||0,a=new Uint8Array(o,s,10),c=String.fromCharCode.apply(null,a),u,f;if(c.trim()==="CntZImage")u=e,f=1;else if(c.substring(0,5)==="Lerc2")u=t,f=2;else throw"Unexpected file identifier string: "+c;for(var d=0,p=o.byteLength-10,g,m=[],x,b,T={width:0,height:0,pixels:[],pixelType:r.pixelType,mask:null,statistics:[]};s<p;){var C=u.decode(o,{inputOffset:s,encodedMaskData:g,maskData:b,returnMask:d===0,returnEncodedMask:d===0,returnFileInfo:!0,pixelType:r.pixelType||null,noDataValue:r.noDataValue||null});s=C.fileInfo.eofOffset,d===0&&(g=C.encodedMaskData,b=C.maskData,T.width=C.width,T.height=C.height,T.dimCount=C.dimCount||1,T.pixelType=C.pixelType||C.fileInfo.pixelType,T.mask=C.maskData),f>1&&C.fileInfo.mask&&C.fileInfo.mask.numBytes>0&&m.push(C.maskData),d++,T.pixels.push(C.pixelData),T.statistics.push({minValue:C.minValue,maxValue:C.maxValue,noDataValue:C.noDataValue,dimStats:C.dimStats})}var A,E,v;if(f>1&&m.length>1){for(v=T.width*T.height,T.bandMasks=m,b=new Uint8Array(v),b.set(m[0]),A=1;A<m.length;A++)for(x=m[A],E=0;E<v;E++)b[E]=b[E]&x[E];T.maskData=b}return T}};typeof define=="function"&&define.amd?define([],function(){return i}):typeof l5<"u"&&l5.exports?l5.exports=i:this.Lerc=i})()});var pCe=Yn((Ak,X$)=>{/*! NoSleep.min.js v0.12.0 - git.io/vfn01 - Rich Tibbett - MIT license */(function(e,t){typeof Ak=="object"&&typeof X$=="object"?X$.exports=t():typeof define=="function"&&define.amd?define([],t):typeof Ak=="object"?Ak.NoSleep=t():e.NoSleep=t()})(Ak,function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(i,o,r){n.o(i,o)||Object.defineProperty(i,o,{enumerable:!0,get:r})},n.r=function(i){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},n.t=function(i,o){if(1&o&&(i=n(i)),8&o||4&o&&typeof i=="object"&&i&&i.__esModule)return i;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:i}),2&o&&typeof i!="string")for(var s in i)n.d(r,s,function(a){return i[a]}.bind(null,s));return r},n.n=function(i){var o=i&&i.__esModule?function(){return i.default}:function(){return i};return n.d(o,"a",o),o},n.o=function(i,o){return Object.prototype.hasOwnProperty.call(i,o)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";var i=function(){function f(d,p){for(var g=0;g<p.length;g++){var m=p[g];m.enumerable=m.enumerable||!1,m.configurable=!0,"value"in m&&(m.writable=!0),Object.defineProperty(d,m.key,m)}}return function(d,p,g){return p&&f(d.prototype,p),g&&f(d,g),d}}(),o=n(1),r=o.webm,s=o.mp4,a=function(){return typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream},c=function(){return"wakeLock"in navigator},u=function(){function f(){var d=this;if(function(g,m){if(!(g instanceof m))throw new TypeError("Cannot call a class as a function")}(this,f),this.enabled=!1,c()){this._wakeLock=null;var p=function(){d._wakeLock!==null&&document.visibilityState==="visible"&&d.enable()};document.addEventListener("visibilitychange",p),document.addEventListener("fullscreenchange",p)}else a()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",r),this._addSourceToVideo(this.noSleepVideo,"mp4",s),this.noSleepVideo.addEventListener("loadedmetadata",function(){d.noSleepVideo.duration<=1?d.noSleepVideo.setAttribute("loop",""):d.noSleepVideo.addEventListener("timeupdate",function(){d.noSleepVideo.currentTime>.5&&(d.noSleepVideo.currentTime=Math.random())})}))}return i(f,[{key:"_addSourceToVideo",value:function(d,p,g){var m=document.createElement("source");m.src=g,m.type="video/"+p,d.appendChild(m)}},{key:"enable",value:function(){var d=this;return c()?navigator.wakeLock.request("screen").then(function(p){d._wakeLock=p,d.enabled=!0,console.log("Wake Lock active."),d._wakeLock.addEventListener("release",function(){console.log("Wake Lock released.")})}).catch(function(p){throw d.enabled=!1,console.error(p.name+", "+p.message),p}):a()?(this.disable(),console.warn(` NoSleep enabled for older iOS devices. This can interrupt active or long-running network requests from completing successfully. See https://github.com/richtr/NoSleep.js/issues/15 for more details. `),this.noSleepTimer=window.setInterval(function(){document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(function(p){return d.enabled=!0,p}).catch(function(p){throw d.enabled=!1,p})}},{key:"disable",value:function(){c()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):a()?this.noSleepTimer&&(console.warn(` NoSleep now disabled for older iOS devices. `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}},{key:"isEnabled",get:function(){return this.enabled}}]),f}();e.exports=u},function(e,t,n){"use strict";e.exports={webm:"data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4EEQoWBAhhTgGcBAAAAAAAVkhFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsghV17AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU1LjMzLjEwMFdBjUxhdmY1NS4zMy4xMDBzpJBlrrXf3DCDVB8KcgbMpcr+RImIQJBgAAAAAAAWVK5rAQAAAAAAD++uAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDiDgQEj44OEAmJaAOABAAAAAAAABrCBsLqBkK4BAAAAAAAPq9eBAnPFgQKcgQAitZyDdW5khohBX1ZPUkJJU4OBAuEBAAAAAAAAEZ+BArWIQOdwAAAAAABiZIEgY6JPbwIeVgF2b3JiaXMAAAAAAoC7AAAAAAAAgLUBAAAAAAC4AQN2b3JiaXMtAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxMDExMDEgKFNjaGF1ZmVudWdnZXQpAQAAABUAAABlbmNvZGVyPUxhdmM1NS41Mi4xMDIBBXZvcmJpcyVCQ1YBAEAAACRzGCpGpXMWhBAaQlAZ4xxCzmvsGUJMEYIcMkxbyyVzkCGkoEKIWyiB0JBVAABAAACHQXgUhIpBCCGEJT1YkoMnPQghhIg5eBSEaUEIIYQQQgghhBBCCCGERTlokoMnQQgdhOMwOAyD5Tj4HIRFOVgQgydB6CCED0K4moOsOQghhCQ1SFCDBjnoHITCLCiKgsQwuBaEBDUojILkMMjUgwtCiJqDSTX4GoRnQXgWhGlBCCGEJEFIkIMGQcgYhEZBWJKDBjm4FITLQagahCo5CB+EIDRkFQCQAACgoiiKoigKEBqyCgDIAAAQQFEUx3EcyZEcybEcCwgNWQUAAAEACAAAoEiKpEiO5EiSJFmSJVmSJVmS5omqLMuyLMuyLMsyEBqyCgBIAABQUQxFcRQHCA1ZBQBkAAAIoDiKpViKpWiK54iOCISGrAIAgAAABAAAEDRDUzxHlETPVFXXtm3btm3btm3btm3btm1blmUZCA1ZBQBAAAAQ0mlmqQaIMAMZBkJDVgEACAAAgBGKMMSA0JBVAABAAACAGEoOogmtOd+c46BZDppKsTkdnEi1eZKbirk555xzzsnmnDHOOeecopxZDJoJrTnnnMSgWQqaCa0555wnsXnQmiqtOeeccc7pYJwRxjnnnCateZCajbU555wFrWmOmkuxOeecSLl5UptLtTnnnHPOOeecc84555zqxekcnBPOOeecqL25lpvQxTnnnE/G6d6cEM4555xzzjnnnHPOOeecIDRkFQAABABAEIaNYdwpCNLnaCBGEWIaMulB9+gwCRqDnELq0ehopJQ6CCWVcVJKJwgNWQUAAAIAQAghhRRSSCGFFFJIIYUUYoghhhhyyimnoIJKKqmooowyyyyzzDLLLLPMOuyssw47DDHEEEMrrcRSU2011lhr7jnnmoO0VlprrbVSSimllFIKQkNWAQAgAAAEQgYZZJBRSCGFFGKIKaeccgoqqIDQkFUAACAAgAAAAABP8hzRER3RER3RER3RER3R8RzPESVREiVREi3TMjXTU0VVdWXXlnVZt31b2IVd933d933d+HVhWJZlWZZlWZZlWZZlWZZlWZYgNGQVAAACAAAghBBCSCGFFFJIKcYYc8w56CSUEAgNWQUAAAIACAAAAHAUR3EcyZEcSbIkS9IkzdIsT/M0TxM9URRF0zRV0RVdUTdtUTZl0zVdUzZdVVZtV5ZtW7Z125dl2/d93/d93/d93/d93/d9XQdCQ1YBABIAADqSIymSIimS4ziOJElAaMgqAEAGAEAAAIriKI7jOJIkSZIlaZJneZaomZrpmZ4qqkBoyCoAABAAQAAAAAAAAIqmeIqpeIqoeI7oiJJomZaoqZoryqbsuq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq4LhIasAgAkAAB0JEdyJEdSJEVSJEdygNCQVQCADACAAAAcwzEkRXIsy9I0T/M0TxM90RM901NFV3SB0JBVAAAgAIAAAAAAAAAMybAUy9EcTRIl1VItVVMt1VJF1VNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RREHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQPAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTRAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEOAAABBgIRQasiIAiBMAcEgSJAmSBM0DSJYFTYOmwTQBkmVB06BpME0AAAAAAAAAAAAAJE2DpkHTIIoASdOgadA0iCIAAAAAAAAAAAAAkqZB06BpEEWApGnQNGgaRBEAAAAAAAAAAAAAzzQhihBFmCbAM02IIkQRpgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwUGrIiAIgTAHA4imUBAIDjOJYFAACO41gWAABYliWKAABgWZooAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQashIAiAIAcCiKZQHHsSzgOJYFJMmyAJYF0DyApgFEEQAIAAAocAAACLBBU2JxgEJDVgIAUQAABsWxLE0TRZKkaZoniiRJ0zxPFGma53meacLzPM80IYqiaJoQRVE0TZimaaoqME1VFQAAUOAAABBgg6bE4gCFhqwEAEICAByKYlma5nmeJ4qmqZokSdM8TxRF0TRNU1VJkqZ5niiKommapqqyLE3zPFEURdNUVVWFpnmeKIqiaaqq6sLzPE8URdE0VdV14XmeJ4qiaJqq6roQRVE0TdNUTVV1XSCKpmmaqqqqrgtETxRNU1Vd13WB54miaaqqq7ouEE3TVFVVdV1ZBpimaaqq68oyQFVV1XVdV5YBqqqqruu6sgxQVdd1XVmWZQCu67qyLMsCAAAOHAAAAoygk4wqi7DRhAsPQKEhKwKAKAAAwBimFFPKMCYhpBAaxiSEFEImJaXSUqogpFJSKRWEVEoqJaOUUmopVRBSKamUCkIqJZVSAADYgQMA2IGFUGjISgAgDwCAMEYpxhhzTiKkFGPOOScRUoox55yTSjHmnHPOSSkZc8w556SUzjnnnHNSSuacc845KaVzzjnnnJRSSuecc05KKSWEzkEnpZTSOeecEwAAVOAAABBgo8jmBCNBhYasBABSAQAMjmNZmuZ5omialiRpmud5niiapiZJmuZ5nieKqsnzPE8URdE0VZXneZ4oiqJpqirXFUXTNE1VVV2yLIqmaZqq6rowTdNUVdd1XZimaaqq67oubFtVVdV1ZRm2raqq6rqyDFzXdWXZloEsu67s2rIAAPAEBwCgAhtWRzgpGgssNGQlAJABAEAYg5BCCCFlEEIKIYSUUggJAAAYcAAACDChDBQashIASAUAAIyx1lprrbXWQGettdZaa62AzFprrbXWWmuttdZaa6211lJrrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmstpZRSSimllFJKKaWUUkoppZRSSgUA+lU4APg/2LA6wknRWGChISsBgHAAAMAYpRhzDEIppVQIMeacdFRai7FCiDHnJKTUWmzFc85BKCGV1mIsnnMOQikpxVZjUSmEUlJKLbZYi0qho5JSSq3VWIwxqaTWWoutxmKMSSm01FqLMRYjbE2ptdhqq7EYY2sqLbQYY4zFCF9kbC2m2moNxggjWywt1VprMMYY3VuLpbaaizE++NpSLDHWXAAAd4MDAESCjTOsJJ0VjgYXGrISAAgJACAQUooxxhhzzjnnpFKMOeaccw5CCKFUijHGnHMOQgghlIwx5pxzEEIIIYRSSsaccxBCCCGEkFLqnHMQQgghhBBKKZ1zDkIIIYQQQimlgxBCCCGEEEoopaQUQgghhBBCCKmklEIIIYRSQighlZRSCCGEEEIpJaSUUgohhFJCCKGElFJKKYUQQgillJJSSimlEkoJJYQSUikppRRKCCGUUkpKKaVUSgmhhBJKKSWllFJKIYQQSikFAAAcOAAABBhBJxlVFmGjCRcegEJDVgIAZAAAkKKUUiktRYIipRikGEtGFXNQWoqocgxSzalSziDmJJaIMYSUk1Qy5hRCDELqHHVMKQYtlRhCxhik2HJLoXMOAAAAQQCAgJAAAAMEBTMAwOAA4XMQdAIERxsAgCBEZohEw0JweFAJEBFTAUBigkIuAFRYXKRdXECXAS7o4q4DIQQhCEEsDqCABByccMMTb3jCDU7QKSp1IAAAAAAADADwAACQXAAREdHMYWRobHB0eHyAhIiMkAgAAAAAABcAfAAAJCVAREQ0cxgZGhscHR4fICEiIyQBAIAAAgAAAAAggAAEBAQAAAAAAAIAAAAEBB9DtnUBAAAAAAAEPueBAKOFggAAgACjzoEAA4BwBwCdASqwAJAAAEcIhYWIhYSIAgIABhwJ7kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99YAD+/6tQgKOFggADgAqjhYIAD4AOo4WCACSADqOZgQArADECAAEQEAAYABhYL/QACIBDmAYAAKOFggA6gA6jhYIAT4AOo5mBAFMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAGSADqOFggB6gA6jmYEAewAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAj4AOo5mBAKMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAKSADqOFggC6gA6jmYEAywAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAz4AOo4WCAOSADqOZgQDzADECAAEQEAAYABhYL/QACIBDmAYAAKOFggD6gA6jhYIBD4AOo5iBARsAEQIAARAQFGAAYWC/0AAiAQ5gGACjhYIBJIAOo4WCATqADqOZgQFDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggFPgA6jhYIBZIAOo5mBAWsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAXqADqOFggGPgA6jmYEBkwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIBpIAOo4WCAbqADqOZgQG7ADECAAEQEAAYABhYL/QACIBDmAYAAKOFggHPgA6jmYEB4wAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIB5IAOo4WCAfqADqOZgQILADECAAEQEAAYABhYL/QACIBDmAYAAKOFggIPgA6jhYICJIAOo5mBAjMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAjqADqOFggJPgA6jmYECWwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYICZIAOo4WCAnqADqOZgQKDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggKPgA6jhYICpIAOo5mBAqsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCArqADqOFggLPgA6jmIEC0wARAgABEBAUYABhYL/QACIBDmAYAKOFggLkgA6jhYIC+oAOo5mBAvsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAw+ADqOZgQMjADECAAEQEAAYABhYL/QACIBDmAYAAKOFggMkgA6jhYIDOoAOo5mBA0sAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA0+ADqOFggNkgA6jmYEDcwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIDeoAOo4WCA4+ADqOZgQObADECAAEQEAAYABhYL/QACIBDmAYAAKOFggOkgA6jhYIDuoAOo5mBA8MAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA8+ADqOFggPkgA6jhYID+oAOo4WCBA+ADhxTu2sBAAAAAAAAEbuPs4EDt4r3gQHxghEr8IEK",mp4:"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw"}}])})});var NEt={};rQ(NEt,{AlphaMode:()=>dm,AlphaPipelineStage:()=>QR,Animation:()=>U3,AnimationViewModel:()=>z3,Appearance:()=>Ji,ApproximateTerrainHeights:()=>ci,ArcGISTiledElevationTerrainProvider:()=>HY,ArcGisBaseMapType:()=>Oh,ArcGisMapServerImageryProvider:()=>ng,ArcGisMapService:()=>Xu,ArcType:()=>Qt,ArticulationStageType:()=>lc,AssociativeArray:()=>bt,Atmosphere:()=>T2,AtmospherePipelineStage:()=>OR,AttributeCompression:()=>Mn,AttributeType:()=>tn,AutoExposure:()=>hB,AutomaticUniforms:()=>xp,Axis:()=>Io,AxisAlignedBoundingBox:()=>Mg,B3dmLoader:()=>uR,B3dmParser:()=>aR,BaseLayerPicker:()=>G3,BaseLayerPickerViewModel:()=>H3,BatchTable:()=>fx,BatchTableHierarchy:()=>Vx,BatchTexture:()=>Yc,BatchTexturePipelineStage:()=>JR,Billboard:()=>uo,BillboardCollection:()=>Cu,BillboardGraphics:()=>qa,BillboardVisualizer:()=>tw,BingMapsGeocoderService:()=>WY,BingMapsImageryProvider:()=>KF,BingMapsStyle:()=>ZS,BlendEquation:()=>Ca,BlendFunction:()=>To,BlendOption:()=>Co,BlendingState:()=>un,BoundingRectangle:()=>Ge,BoundingSphere:()=>ae,BoundingSphereState:()=>at,BoundingVolumeSemantics:()=>nb,BoxEmitter:()=>IZ,BoxGeometry:()=>Al,BoxGeometryUpdater:()=>t1,BoxGraphics:()=>Ex,BoxOutlineGeometry:()=>Cd,BrdfLutGenerator:()=>C2,Buffer:()=>ct,BufferLoader:()=>jx,BufferUsage:()=>Fe,CPUStylingPipelineStage:()=>iO,CallbackProperty:()=>Od,Camera:()=>ao,CameraEventAggregator:()=>bB,CameraEventType:()=>Ri,CameraFlightPath:()=>S2,Cartesian2:()=>z,Cartesian3:()=>h,Cartesian4:()=>oe,Cartographic:()=>fe,CartographicGeocoderService:()=>qY,CatmullRomSpline:()=>YY,Cesium3DContentGroup:()=>kx,Cesium3DTile:()=>zf,Cesium3DTileBatchTable:()=>Bp,Cesium3DTileColorBlendMode:()=>Rl,Cesium3DTileContent:()=>RZ,Cesium3DTileContentFactory:()=>Cb,Cesium3DTileContentState:()=>zo,Cesium3DTileContentType:()=>xs,Cesium3DTileFeature:()=>Ns,Cesium3DTileFeatureTable:()=>Yd,Cesium3DTileOptimizationHint:()=>Nf,Cesium3DTileOptimizations:()=>NM,Cesium3DTilePass:()=>Mo,Cesium3DTilePassState:()=>ld,Cesium3DTilePointFeature:()=>c_,Cesium3DTileRefine:()=>Bo,Cesium3DTileStyle:()=>hA,Cesium3DTileStyleEngine:()=>zM,Cesium3DTilesInspector:()=>K3,Cesium3DTilesInspectorViewModel:()=>X3,Cesium3DTilesVoxelProvider:()=>OZ,Cesium3DTileset:()=>oa,Cesium3DTilesetBaseTraversal:()=>YM,Cesium3DTilesetCache:()=>kM,Cesium3DTilesetGraphics:()=>Rx,Cesium3DTilesetHeatmap:()=>VM,Cesium3DTilesetMetadata:()=>Mb,Cesium3DTilesetMostDetailedTraversal:()=>WM,Cesium3DTilesetSkipTraversal:()=>ZM,Cesium3DTilesetStatistics:()=>A_,Cesium3DTilesetTraversal:()=>zs,Cesium3DTilesetVisualizer:()=>$M,CesiumInspector:()=>Q3,CesiumInspectorViewModel:()=>$3,CesiumTerrainProvider:()=>wT,CesiumWidget:()=>o3,Check:()=>go,CheckerboardMaterialProperty:()=>hE,CircleEmitter:()=>l3,CircleGeometry:()=>JY,CircleOutlineGeometry:()=>eX,ClassificationModelDrawCommand:()=>vR,ClassificationPipelineStage:()=>eO,ClassificationPrimitive:()=>eC,ClassificationType:()=>Vn,ClearCommand:()=>ii,ClippingPlane:()=>ib,ClippingPlaneCollection:()=>cs,ClippingPolygon:()=>PC,ClippingPolygonCollection:()=>Gd,Clock:()=>ah,ClockRange:()=>Nr,ClockStep:()=>fo,ClockViewModel:()=>F3,CloudCollection:()=>kZ,CloudType:()=>Ev,Color:()=>H,ColorBlendMode:()=>cc,ColorGeometryInstanceAttribute:()=>zt,ColorMaterialProperty:()=>kt,Command:()=>L$,ComponentDatatype:()=>X,Composite3DTileContent:()=>h1,CompositeEntityCollection:()=>Sj,CompositeMaterialProperty:()=>pE,CompositePositionProperty:()=>ra,CompositeProperty:()=>mc,CompressedTextureBuffer:()=>uw,ComputeCommand:()=>Dl,ComputeEngine:()=>KN,ConditionsExpression:()=>r3,ConeEmitter:()=>UZ,ConstantPositionProperty:()=>zc,ConstantProperty:()=>Zn,ConstantSpline:()=>mR,ContentMetadata:()=>wM,Context:()=>tF,ContextLimits:()=>Nt,CoplanarPolygonGeometry:()=>NL,CoplanarPolygonGeometryLibrary:()=>__,CoplanarPolygonOutlineGeometry:()=>Uf,CornerType:()=>Di,CorridorGeometry:()=>Vb,CorridorGeometryLibrary:()=>Fi,CorridorGeometryUpdater:()=>sL,CorridorGraphics:()=>vx,CorridorOutlineGeometry:()=>rL,Credit:()=>Tt,CreditDisplay:()=>P2,CubeMap:()=>Ja,CubeMapFace:()=>$h,CubicRealPolynomial:()=>ax,CullFace:()=>hi,CullingVolume:()=>as,CumulusCloud:()=>tf,CustomDataSource:()=>dL,CustomHeightmapTerrainProvider:()=>tX,CustomShader:()=>lA,CustomShaderMode:()=>r_,CustomShaderPipelineStage:()=>uO,CustomShaderTranslucencyMode:()=>xy,CylinderGeometry:()=>hL,CylinderGeometryLibrary:()=>Ub,CylinderGeometryUpdater:()=>pL,CylinderGraphics:()=>wx,CylinderOutlineGeometry:()=>mL,CzmlDataSource:()=>SL,DataSource:()=>Mr,DataSourceClock:()=>ch,DataSourceCollection:()=>vL,DataSourceDisplay:()=>uN,DebugAppearance:()=>zZ,DebugCameraPrimitive:()=>$m,DebugInspector:()=>DB,DebugModelMatrixPrimitive:()=>f3,DefaultProxy:()=>nX,DepthFunction:()=>tc,DepthPlane:()=>O2,DequantizationPipelineStage:()=>dO,DerivedCommand:()=>ag,DeveloperError:()=>de,DeviceOrientationCameraController:()=>L2,DirectionalLight:()=>HZ,DiscardEmptyTileImagePolicy:()=>$S,DiscardMissingTileImagePolicy:()=>YF,DistanceDisplayCondition:()=>It,DistanceDisplayConditionGeometryInstanceAttribute:()=>kn,DoubleEndedPriorityQueue:()=>DT,DoublyLinkedList:()=>BM,DracoLoader:()=>Wp,DrawCommand:()=>Ze,DynamicAtmosphereLightingType:()=>HT,DynamicGeometryBatch:()=>Xb,DynamicGeometryUpdater:()=>ti,EarthOrientationParameters:()=>Kv,EarthOrientationParametersSample:()=>Cg,EasingFunction:()=>Br,EllipseGeometry:()=>rl,EllipseGeometryLibrary:()=>jl,EllipseGeometryUpdater:()=>DL,EllipseGraphics:()=>Dx,EllipseOutlineGeometry:()=>Mu,Ellipsoid:()=>te,EllipsoidGeodesic:()=>Sp,EllipsoidGeometry:()=>Ws,EllipsoidGeometryUpdater:()=>IL,EllipsoidGraphics:()=>Px,EllipsoidOutlineGeometry:()=>Su,EllipsoidPrimitive:()=>g2,EllipsoidRhumbLine:()=>Ea,EllipsoidSurfaceAppearance:()=>GZ,EllipsoidTangentPlane:()=>Hr,EllipsoidTerrainProvider:()=>qm,EllipsoidalOccluder:()=>D_,Empty3DTileContent:()=>eE,EncodedCartesian3:()=>Gn,Entity:()=>Zo,EntityCluster:()=>wu,EntityCollection:()=>Hs,EntityView:()=>dN,Event:()=>pe,EventHelper:()=>Ir,Expression:()=>Af,ExpressionNodeType:()=>dt,ExtrapolationType:()=>Pu,FeatureDetection:()=>Vt,FeatureIdPipelineStage:()=>yy,Fog:()=>N2,ForEach:()=>Pe,FrameRateMonitor:()=>m3,FrameState:()=>F2,Framebuffer:()=>ta,FramebufferManager:()=>ui,FrustumCommands:()=>U2,FrustumGeometry:()=>IT,FrustumOutlineGeometry:()=>cF,Fullscreen:()=>hr,FullscreenButton:()=>ek,FullscreenButtonViewModel:()=>J3,GeoJsonDataSource:()=>pN,GeoJsonLoader:()=>fR,GeocodeType:()=>b0,Geocoder:()=>nk,GeocoderService:()=>VS,GeocoderViewModel:()=>tk,GeographicProjection:()=>Ci,GeographicTilingScheme:()=>Ui,Geometry:()=>st,Geometry3DTileContent:()=>p1,GeometryAttribute:()=>ve,GeometryAttributes:()=>fn,GeometryFactory:()=>aX,GeometryInstance:()=>xt,GeometryInstanceAttribute:()=>nc,GeometryOffsetAttribute:()=>an,GeometryPipeline:()=>Nn,GeometryPipelineStage:()=>_O,GeometryType:()=>df,GeometryUpdater:()=>ni,GeometryUpdaterSet:()=>rT,GeometryVisualizer:()=>QL,GetFeatureInfoFormat:()=>VT,Globe:()=>_2,GlobeDepth:()=>z2,GlobeSurfaceShaderSet:()=>qF,GlobeSurfaceTile:()=>sd,GlobeSurfaceTileProvider:()=>s2,GlobeTranslucency:()=>a2,GlobeTranslucencyFramebuffer:()=>H2,GlobeTranslucencyState:()=>B2,GltfBufferViewLoader:()=>hC,GltfDracoLoader:()=>mC,GltfImageLoader:()=>pC,GltfIndexBufferLoader:()=>_C,GltfJsonLoader:()=>yC,GltfLoader:()=>Zp,GltfLoaderUtil:()=>Nl,GltfStructuralMetadataLoader:()=>tR,GltfTextureLoader:()=>xC,GltfVertexBufferLoader:()=>bC,GoogleEarthEnterpriseImageryProvider:()=>jZ,GoogleEarthEnterpriseMapsProvider:()=>QF,GoogleEarthEnterpriseMetadata:()=>Q_,GoogleEarthEnterpriseTerrainData:()=>US,GoogleEarthEnterpriseTerrainProvider:()=>pX,GoogleEarthEnterpriseTileInformation:()=>lF,GoogleMaps:()=>OT,GpxDataSource:()=>xN,GregorianDate:()=>fp,GridImageryProvider:()=>qZ,GridMaterialProperty:()=>SE,GroundGeometryUpdater:()=>Wn,GroundPolylineGeometry:()=>bx,GroundPolylinePrimitive:()=>Dd,GroundPrimitive:()=>Vc,GroupMetadata:()=>uE,HeadingPitchRange:()=>Qf,HeadingPitchRoll:()=>$a,Heap:()=>Wv,HeightReference:()=>qe,HeightmapEncoding:()=>nd,HeightmapTerrainData:()=>Fa,HeightmapTessellator:()=>IS,HermitePolynomialApproximation:()=>_L,HermiteSpline:()=>py,HilbertOrder:()=>lC,HomeButton:()=>ok,HomeButtonViewModel:()=>ik,HorizontalOrigin:()=>di,I3SBuildingSceneLayerExplorer:()=>G$,I3SBuildingSceneLayerExplorerViewModel:()=>rk,I3SDataProvider:()=>zh,I3SDecoder:()=>p3,I3SFeature:()=>_3,I3SField:()=>g3,I3SGeometry:()=>Sv,I3SLayer:()=>yA,I3SNode:()=>vv,I3SStatistics:()=>b3,I3SSublayer:()=>A3,I3SSymbology:()=>x3,I3dmLoader:()=>hR,I3dmParser:()=>dR,Iau2000Orientation:()=>fF,Iau2006XysData:()=>Zv,Iau2006XysSample:()=>nx,IauOrientationAxes:()=>dF,IauOrientationParameters:()=>uF,ImageBasedLighting:()=>Bx,ImageBasedLightingPipelineStage:()=>LR,ImageMaterialProperty:()=>Vg,Imagery:()=>iv,ImageryLayer:()=>da,ImageryLayerCollection:()=>c2,ImageryLayerFeatureInfo:()=>Rh,ImageryProvider:()=>fl,ImageryState:()=>ai,Implicit3DTileContent:()=>CC,ImplicitAvailabilityBitstream:()=>fC,ImplicitMetadataView:()=>dC,ImplicitSubdivisionScheme:()=>jr,ImplicitSubtree:()=>eb,ImplicitSubtreeCache:()=>a3,ImplicitSubtreeMetadata:()=>_1,ImplicitTileCoordinates:()=>Fb,ImplicitTileset:()=>Nb,IndexDatatype:()=>Ne,InfoBox:()=>lk,InfoBoxViewModel:()=>ck,InspectorShared:()=>Ua,InstanceAttributeSemantic:()=>Yr,InstancingPipelineStage:()=>XR,InterpolationAlgorithm:()=>gX,InterpolationType:()=>Wd,Intersect:()=>Gt,IntersectionTests:()=>Qn,Intersections2D:()=>Z_,Interval:()=>Ta,InvertClassification:()=>fv,Ion:()=>Nd,IonGeocoderService:()=>pF,IonImageryProvider:()=>ig,IonResource:()=>_u,IonWorldImageryStyle:()=>og,Iso8601:()=>Ue,JobScheduler:()=>k2,JobType:()=>wa,JsonMetadataTable:()=>Kp,JulianDate:()=>J,KTX2Transcoder:()=>fw,KeyboardEventModifier:()=>fa,KeyframeNode:()=>Ki,KmlCamera:()=>bN,KmlDataSource:()=>qN,KmlLookAt:()=>VN,KmlTour:()=>UN,KmlTourFlyTo:()=>HN,KmlTourWait:()=>GN,Label:()=>Sy,LabelCollection:()=>xm,LabelGraphics:()=>Pd,LabelStyle:()=>Uo,LabelVisualizer:()=>JL,LagrangePolynomialApproximation:()=>gL,LeapSecond:()=>ki,Light:()=>ZZ,LightingModel:()=>pm,LightingPipelineStage:()=>yO,LinearApproximation:()=>Hb,LinearSpline:()=>my,ManagedArray:()=>qc,MapMode2D:()=>tu,MapProjection:()=>bX,MapboxImageryProvider:()=>JF,MapboxStyleImageryProvider:()=>$Z,Material:()=>Vi,MaterialAppearance:()=>ro,MaterialPipelineStage:()=>bO,MaterialProperty:()=>Ko,Math:()=>R,Matrix2:()=>Qi,Matrix3:()=>$,Matrix4:()=>F,Megatexture:()=>gv,MetadataClass:()=>Vd,MetadataClassProperty:()=>Zg,MetadataComponentType:()=>sn,MetadataEntity:()=>Fn,MetadataEnum:()=>V1,MetadataEnumValue:()=>k1,MetadataPipelineStage:()=>vf,MetadataSchema:()=>Ud,MetadataSchemaLoader:()=>TC,MetadataSemantic:()=>tb,MetadataTable:()=>Ml,MetadataTableProperty:()=>y1,MetadataType:()=>Ht,MipmapHint:()=>Qh,Model:()=>Zd,Model3DTileContent:()=>_m,ModelAlphaOptions:()=>kO,ModelAnimation:()=>yR,ModelAnimationChannel:()=>gR,ModelAnimationCollection:()=>xR,ModelAnimationLoop:()=>Bl,ModelAnimationState:()=>Xd,ModelArticulation:()=>FR,ModelArticulationStage:()=>NR,ModelClippingPlanesPipelineStage:()=>VR,ModelClippingPolygonsPipelineStage:()=>HR,ModelColorPipelineStage:()=>gy,ModelComponents:()=>xn,ModelDrawCommand:()=>wR,ModelFeature:()=>bR,ModelFeatureTable:()=>AR,ModelGraphics:()=>Rp,ModelLightingOptions:()=>XO,ModelMatrixUpdateStage:()=>KR,ModelNode:()=>GR,ModelRenderResources:()=>zO,ModelRuntimeNode:()=>$R,ModelRuntimePrimitive:()=>FO,ModelSceneGraph:()=>ZO,ModelSilhouettePipelineStage:()=>WO,ModelSkin:()=>BO,ModelSplitterPipelineStage:()=>qO,ModelStatistics:()=>$O,ModelType:()=>sr,ModelUtility:()=>Xt,ModelVisualizer:()=>eN,Moon:()=>x2,MorphTargetsPipelineStage:()=>AO,MorphWeightSpline:()=>TX,MortonOrder:()=>Ry,Multiple3DTileContent:()=>IM,MultisampleFramebuffer:()=>iR,NavigationHelpButton:()=>ak,NavigationHelpButtonViewModel:()=>sk,NearFarScalar:()=>Mt,NeverTileDiscardPolicy:()=>JZ,NodeRenderResources:()=>YO,NodeStatisticsPipelineStage:()=>ZR,NodeTransformationProperty:()=>Ix,OIT:()=>G2,Occluder:()=>_F,OctahedralProjectedCubeMap:()=>Ld,OffsetGeometryInstanceAttribute:()=>Yi,OpenCageGeocoderService:()=>EX,OpenStreetMapImageryProvider:()=>xg,OrderedGroundPrimitiveCollection:()=>wL,OrientedBoundingBox:()=>Sn,OrthographicFrustum:()=>rn,OrthographicOffCenterFrustum:()=>Er,Packable:()=>SX,PackableForInterpolation:()=>vX,Particle:()=>Pv,ParticleBurst:()=>t$,ParticleEmitter:()=>n$,ParticleSystem:()=>i$,Pass:()=>Ee,PassState:()=>bc,PathGraphics:()=>Op,PathVisualizer:()=>nN,PeliasGeocoderService:()=>mF,PerInstanceColorAppearance:()=>cn,PerformanceDisplay:()=>cg,PerformanceWatchdog:()=>fk,PerformanceWatchdogViewModel:()=>uk,PerspectiveFrustum:()=>Ti,PerspectiveOffCenterFrustum:()=>ul,PickDepth:()=>V2,PickDepthFramebuffer:()=>j2,PickFramebuffer:()=>Y2,Picking:()=>K2,PickingPipelineStage:()=>CO,PinBuilder:()=>H_,PixelDatatype:()=>We,PixelFormat:()=>nt,Plane:()=>ln,PlaneGeometry:()=>RL,PlaneGeometryUpdater:()=>ML,PlaneGraphics:()=>XI,PlaneOutlineGeometry:()=>OL,PntsLoader:()=>JO,PntsParser:()=>gb,PointCloud:()=>v3,PointCloudEyeDomeLighting:()=>$p,PointCloudShading:()=>mm,PointCloudStylingPipelineStage:()=>SO,PointGraphics:()=>Ox,PointPrimitive:()=>Gs,PointPrimitiveCollection:()=>bE,PointVisualizer:()=>oN,PolygonGeometry:()=>Xp,PolygonGeometryLibrary:()=>zn,PolygonGeometryUpdater:()=>BL,PolygonGraphics:()=>Id,PolygonHierarchy:()=>Sa,PolygonOutlineGeometry:()=>FL,PolygonPipeline:()=>si,Polyline:()=>Of,PolylineArrowMaterialProperty:()=>wE,PolylineCollection:()=>Qd,PolylineColorAppearance:()=>Gr,PolylineDashMaterialProperty:()=>PE,PolylineGeometry:()=>z_,PolylineGeometryUpdater:()=>aN,PolylineGlowMaterialProperty:()=>RE,PolylineGraphics:()=>ic,PolylineMaterialAppearance:()=>Qs,PolylineOutlineMaterialProperty:()=>Vy,PolylinePipeline:()=>wi,PolylineVisualizer:()=>lN,PolylineVolumeGeometry:()=>UL,PolylineVolumeGeometryLibrary:()=>ih,PolylineVolumeGeometryUpdater:()=>WL,PolylineVolumeGraphics:()=>Mx,PolylineVolumeOutlineGeometry:()=>GL,PositionProperty:()=>Pp,PositionPropertyArray:()=>O_,PostProcessStage:()=>mo,PostProcessStageCollection:()=>gB,PostProcessStageComposite:()=>hl,PostProcessStageLibrary:()=>fd,PostProcessStageSampleMode:()=>$u,PostProcessStageTextureCache:()=>eA,Primitive:()=>vn,PrimitiveCollection:()=>Wl,PrimitiveLoadPlan:()=>ub,PrimitiveOutlineGenerator:()=>lb,PrimitiveOutlinePipelineStage:()=>DO,PrimitivePipeline:()=>gx,PrimitiveRenderResources:()=>KO,PrimitiveState:()=>gr,PrimitiveStatisticsPipelineStage:()=>PO,PrimitiveType:()=>Le,ProjectionPicker:()=>hk,ProjectionPickerViewModel:()=>dk,Property:()=>q,PropertyArray:()=>ME,PropertyAttribute:()=>cb,PropertyAttributeProperty:()=>$1,PropertyBag:()=>wl,PropertyTable:()=>Kc,PropertyTexture:()=>ab,PropertyTextureProperty:()=>Z1,ProviderViewModel:()=>Jr,Proxy:()=>wX,QuadraticRealPolynomial:()=>Bc,QuadtreeOccluders:()=>l2,QuadtreePrimitive:()=>p2,QuadtreeTile:()=>u2,QuadtreeTileLoadState:()=>qs,QuadtreeTileProvider:()=>l$,QuantizedMeshTerrainData:()=>vT,QuarticRealPolynomial:()=>Vw,Quaternion:()=>Me,QuaternionSpline:()=>_R,Queue:()=>cy,Ray:()=>pn,Rectangle:()=>se,RectangleCollisionChecker:()=>aT,RectangleGeometry:()=>Jb,RectangleGeometryLibrary:()=>bs,RectangleGeometryUpdater:()=>jL,RectangleGraphics:()=>Rd,RectangleOutlineGeometry:()=>vb,ReferenceFrame:()=>to,ReferenceProperty:()=>M_,RenderState:()=>Ve,Renderbuffer:()=>Tu,RenderbufferFormat:()=>$c,Request:()=>qo,RequestErrorEvent:()=>Yh,RequestScheduler:()=>Ka,RequestState:()=>$n,RequestType:()=>os,Resource:()=>De,ResourceCache:()=>zi,ResourceCacheKey:()=>Fl,ResourceCacheStatistics:()=>H1,ResourceLoader:()=>no,ResourceLoaderState:()=>Pt,Rotation:()=>qf,RuntimeError:()=>le,S2Cell:()=>Up,SDFSettings:()=>Vs,SampledPositionProperty:()=>aa,SampledProperty:()=>Ru,Sampler:()=>on,ScaledPositionProperty:()=>Im,Scene:()=>QB,SceneFramebuffer:()=>YT,SceneMode:()=>ne,SceneMode2DPipelineStage:()=>IO,SceneModePicker:()=>pk,SceneModePickerViewModel:()=>mk,SceneTransforms:()=>Hi,SceneTransitioner:()=>xB,ScreenSpaceCameraController:()=>CB,ScreenSpaceEventHandler:()=>Yu,ScreenSpaceEventType:()=>bn,SelectedFeatureIdPipelineStage:()=>by,SelectionIndicator:()=>yk,SelectionIndicatorViewModel:()=>gk,SensorVolumePortionToDisplay:()=>BE,ShaderBuilder:()=>pb,ShaderCache:()=>ZN,ShaderDestination:()=>ge,ShaderFunction:()=>UO,ShaderProgram:()=>$t,ShaderSource:()=>ze,ShaderStruct:()=>VO,ShadowMap:()=>fg,ShadowMapShader:()=>tp,ShadowMode:()=>yn,ShadowVolumeAppearance:()=>du,ShowGeometryInstanceAttribute:()=>gn,Simon1994PlanetaryPositions:()=>h0,SimplePolylineGeometry:()=>FX,SingleTileImageryProvider:()=>e2,SkinningPipelineStage:()=>OO,SkyAtmosphere:()=>JB,SkyBox:()=>e3,SpatialNode:()=>XB,SphereEmitter:()=>f$,SphereGeometry:()=>BX,SphereOutlineGeometry:()=>y_,Spherical:()=>yL,Spline:()=>io,SplitDirection:()=>Qc,Splitter:()=>Iv,StaticGeometryColorBatch:()=>Kf,StaticGeometryPerMaterialBatch:()=>Zf,StaticGroundGeometryColorBatch:()=>tS,StaticGroundGeometryPerMaterialBatch:()=>$L,StaticGroundPolylinePerMaterialBatch:()=>cN,StaticOutlineGeometryBatch:()=>oS,StencilConstants:()=>Ft,StencilFunction:()=>Un,StencilOperation:()=>lt,SteppedSpline:()=>pR,Stereographic:()=>ac,StripeMaterialProperty:()=>NE,StripeOrientation:()=>uh,StructuralMetadata:()=>Da,StyleCommandsNeeded:()=>Kd,StyleExpression:()=>d$,Sun:()=>i3,SunLight:()=>X_,SunPostProcess:()=>vB,SupportedImageFormats:()=>nR,SvgPathBindingHandler:()=>L3,TaskProcessor:()=>mi,Terrain:()=>D3,TerrainData:()=>Sh,TerrainEncoding:()=>Ac,TerrainFillMesh:()=>av,TerrainMesh:()=>od,TerrainOffsetProperty:()=>Lx,TerrainProvider:()=>Kr,TerrainQuantization:()=>js,TerrainState:()=>so,Texture:()=>Dt,TextureAtlas:()=>Ey,TextureCache:()=>$N,TextureMagnificationFilter:()=>li,TextureManager:()=>KB,TextureMinificationFilter:()=>nn,TextureUniform:()=>P$,TextureWrap:()=>An,TileAvailability:()=>vh,TileBoundingRegion:()=>Vf,TileBoundingS2Cell:()=>MM,TileBoundingSphere:()=>x_,TileBoundingVolume:()=>h$,TileCoordinatesImageryProvider:()=>I3,TileDiscardPolicy:()=>p$,TileEdge:()=>_n,TileImagery:()=>ov,TileMapServiceImageryProvider:()=>v0,TileMetadata:()=>DM,TileOrientedBoundingBox:()=>vu,TileProviderError:()=>vo,TileReplacementQueue:()=>f2,TileSelectionResult:()=>Kn,TileState:()=>_$,Tileset3DTileContent:()=>nM,TilesetMetadata:()=>LM,TilesetPipelineStage:()=>PR,TilingScheme:()=>kX,TimeConstants:()=>Xn,TimeDynamicImagery:()=>UT,TimeDynamicPointCloud:()=>Lv,TimeInterval:()=>Tn,TimeIntervalCollection:()=>Or,TimeIntervalCollectionPositionProperty:()=>L_,TimeIntervalCollectionProperty:()=>N_,TimeStandard:()=>jn,Timeline:()=>Tk,TimelineHighlightRange:()=>xk,TimelineTrack:()=>bk,Tipsify:()=>AI,ToggleButtonViewModel:()=>V0,Tonemapper:()=>L0,Transforms:()=>wt,TranslationRotationScale:()=>Ug,TranslucentTileClassification:()=>X2,TridiagonalSystemSolver:()=>BC,TrustedServers:()=>NA,TweenCollection:()=>iA,UniformState:()=>eF,UniformType:()=>xv,UrlTemplateImageryProvider:()=>Ba,VERSION:()=>LEt,VRButton:()=>Ek,VRButtonViewModel:()=>Ck,VRTheWorldTerrainProvider:()=>VX,VaryingType:()=>I$,Vector3DTileBatch:()=>cm,Vector3DTileClampedPolylines:()=>EM,Vector3DTileContent:()=>vM,Vector3DTileGeometry:()=>Vp,Vector3DTilePoints:()=>gM,Vector3DTilePolygons:()=>yM,Vector3DTilePolylines:()=>Ab,Vector3DTilePrimitive:()=>Hx,VelocityOrientationProperty:()=>bL,VelocityVectorProperty:()=>qb,VertexArray:()=>ei,VertexArrayFacade:()=>s_,VertexAttributeSemantic:()=>yt,VertexFormat:()=>Ie,VerticalExaggeration:()=>pr,VerticalExaggerationPipelineStage:()=>LO,VerticalOrigin:()=>Rn,VideoSynchronizer:()=>UX,View:()=>ZT,Viewer:()=>Z$,ViewportQuad:()=>x$,Visibility:()=>fr,Visualizer:()=>wY,VoxelBoxShape:()=>rp,VoxelCell:()=>PB,VoxelContent:()=>c3,VoxelCylinderShape:()=>sp,VoxelEllipsoidShape:()=>aA,VoxelInspector:()=>wk,VoxelInspectorViewModel:()=>vk,VoxelPrimitive:()=>F0,VoxelProvider:()=>T$,VoxelRenderResources:()=>WB,VoxelShape:()=>A$,VoxelShapeType:()=>Oi,VoxelTraversal:()=>yv,VulkanConstants:()=>zX,WallGeometry:()=>YL,WallGeometryLibrary:()=>eT,WallGeometryUpdater:()=>ZL,WallGraphics:()=>Mp,WallOutlineGeometry:()=>KL,WebGLConstants:()=>ee,WebMapServiceImageryProvider:()=>n2,WebMapTileServiceImageryProvider:()=>o2,WebMercatorProjection:()=>Si,WebMercatorTilingScheme:()=>Zr,WindingOrder:()=>ss,WireframeIndexGenerator:()=>YC,WireframePipelineStage:()=>NO,_shadersAcesTonemappingStage:()=>Z2,_shadersAdditiveBlend:()=>EB,_shadersAdjustTranslucentFS:()=>GS,_shadersAllMaterialAppearanceFS:()=>ow,_shadersAllMaterialAppearanceVS:()=>rw,_shadersAmbientOcclusionGenerate:()=>$2,_shadersAmbientOcclusionModulate:()=>Q2,_shadersAspectRampMaterial:()=>mw,_shadersAtmosphereCommon:()=>eg,_shadersAtmosphereStageFS:()=>IR,_shadersAtmosphereStageVS:()=>RR,_shadersBasicMaterialAppearanceFS:()=>sw,_shadersBasicMaterialAppearanceVS:()=>aw,_shadersBillboardCollectionFS:()=>iM,_shadersBillboardCollectionVS:()=>oM,_shadersBlackAndWhite:()=>J2,_shadersBloomComposite:()=>eB,_shadersBrdfLutGeneratorFS:()=>EF,_shadersBrightPass:()=>SB,_shadersBrightness:()=>tB,_shadersBumpMapMaterial:()=>pw,_shadersCPUStylingStageFS:()=>nO,_shadersCPUStylingStageVS:()=>tO,_shadersCheckerboardMaterial:()=>_w,_shadersCloudCollectionFS:()=>SF,_shadersCloudCollectionVS:()=>vF,_shadersCloudNoiseFS:()=>wF,_shadersCloudNoiseVS:()=>DF,_shadersCompareAndPackTranslucentDepth:()=>PF,_shadersCompositeOITFS:()=>IF,_shadersCompositeTranslucentClassification:()=>KT,_shadersContrastBias:()=>nB,_shadersCustomShaderStageFS:()=>rO,_shadersCustomShaderStageVS:()=>oO,_shadersCzmBuiltins:()=>ux,_shadersDepthOfField:()=>iB,_shadersDepthPlaneFS:()=>RF,_shadersDepthPlaneVS:()=>OF,_shadersDepthView:()=>oB,_shadersDepthViewPacked:()=>D$,_shadersDotMaterial:()=>gw,_shadersEdgeDetection:()=>rB,_shadersElevationBandMaterial:()=>yw,_shadersElevationContourMaterial:()=>xw,_shadersElevationRampMaterial:()=>bw,_shadersEllipsoidFS:()=>WS,_shadersEllipsoidSurfaceAppearanceFS:()=>d3,_shadersEllipsoidSurfaceAppearanceVS:()=>h3,_shadersEllipsoidVS:()=>jS,_shadersFXAA:()=>aB,_shadersFXAA3_11:()=>MF,_shadersFadeMaterial:()=>Tw,_shadersFeatureIdStageFS:()=>sO,_shadersFeatureIdStageVS:()=>aO,_shadersFilmicTonemapping:()=>sB,_shadersGaussianBlur1D:()=>M0,_shadersGeometryStageFS:()=>hO,_shadersGeometryStageVS:()=>mO,_shadersGlobeFS:()=>LF,_shadersGlobeVS:()=>NF,_shadersGridMaterial:()=>Aw,_shadersGroundAtmosphere:()=>qS,_shadersHSBToRGB:()=>ND,_shadersHSLToRGB:()=>FD,_shadersImageBasedLightingStageFS:()=>MR,_shadersInstancingStageCommon:()=>WR,_shadersInstancingStageVS:()=>jR,_shadersIntersectBox:()=>FB,_shadersIntersectClippingPlanes:()=>NB,_shadersIntersectCylinder:()=>BB,_shadersIntersectDepth:()=>LB,_shadersIntersectEllipsoid:()=>kB,_shadersIntersectLongitude:()=>_v,_shadersIntersection:()=>sA,_shadersIntersectionUtils:()=>MB,_shadersLegacyInstancingStageVS:()=>qR,_shadersLensFlare:()=>cB,_shadersLightingStageFS:()=>gO,_shadersMaterialStageFS:()=>xO,_shadersMegatexture:()=>GB,_shadersMetadataStageFS:()=>cO,_shadersMetadataStageVS:()=>lO,_shadersModelClippingPlanesStageFS:()=>kR,_shadersModelClippingPolygonsStageFS:()=>zR,_shadersModelClippingPolygonsStageVS:()=>UR,_shadersModelColorStageFS:()=>BR,_shadersModelFS:()=>CR,_shadersModelSilhouetteStageFS:()=>HO,_shadersModelSilhouetteStageVS:()=>GO,_shadersModelSplitterStageFS:()=>jO,_shadersModelVS:()=>ER,_shadersModifiedReinhardTonemapping:()=>lB,_shadersMorphTargetsStageVS:()=>TO,_shadersNightVision:()=>uB,_shadersNormalMapMaterial:()=>Cw,_shadersOctahedralProjectionAtlasFS:()=>s1,_shadersOctahedralProjectionFS:()=>a1,_shadersOctahedralProjectionVS:()=>c1,_shadersOctree:()=>HB,_shadersPassThrough:()=>nu,_shadersPassThroughDepth:()=>I0,_shadersPerInstanceColorAppearanceFS:()=>Mw,_shadersPerInstanceColorAppearanceVS:()=>Lw,_shadersPerInstanceFlatColorAppearanceFS:()=>sx,_shadersPerInstanceFlatColorAppearanceVS:()=>Nw,_shadersPointCloudEyeDomeLighting:()=>rR,_shadersPointCloudStylingStageVS:()=>EO,_shadersPointPrimitiveCollectionFS:()=>ky,_shadersPointPrimitiveCollectionVS:()=>aL,_shadersPolygonSignedDistanceFS:()=>q1,_shadersPolylineArrowMaterial:()=>Ew,_shadersPolylineColorAppearanceVS:()=>NI,_shadersPolylineCommon:()=>hu,_shadersPolylineDashMaterial:()=>Sw,_shadersPolylineFS:()=>Ax,_shadersPolylineGlowMaterial:()=>vw,_shadersPolylineMaterialAppearanceVS:()=>FI,_shadersPolylineOutlineMaterial:()=>ww,_shadersPolylineShadowVolumeFS:()=>RI,_shadersPolylineShadowVolumeMorphFS:()=>OI,_shadersPolylineShadowVolumeMorphVS:()=>MI,_shadersPolylineShadowVolumeVS:()=>LI,_shadersPolylineVS:()=>fM,_shadersPrimitiveOutlineStageFS:()=>wO,_shadersPrimitiveOutlineStageVS:()=>vO,_shadersRGBToHSB:()=>BD,_shadersRGBToHSL:()=>kD,_shadersRGBToXYZ:()=>VD,_shadersReinhardTonemapping:()=>fB,_shadersReprojectWebMercatorFS:()=>FF,_shadersReprojectWebMercatorVS:()=>BF,_shadersRimLightingMaterial:()=>Dw,_shadersSelectedFeatureIdStageCommon:()=>qC,_shadersShadowVolumeAppearanceFS:()=>QA,_shadersShadowVolumeAppearanceVS:()=>yI,_shadersShadowVolumeFS:()=>Ng,_shadersSilhouette:()=>dB,_shadersSkinningStageVS:()=>RO,_shadersSkyAtmosphereCommon:()=>YS,_shadersSkyAtmosphereFS:()=>kF,_shadersSkyAtmosphereVS:()=>VF,_shadersSkyBoxFS:()=>UF,_shadersSkyBoxVS:()=>zF,_shadersSlopeRampMaterial:()=>Pw,_shadersStripeMaterial:()=>Iw,_shadersSunFS:()=>HF,_shadersSunTextureFS:()=>GF,_shadersSunVS:()=>WF,_shadersTexturedMaterialAppearanceFS:()=>cw,_shadersTexturedMaterialAppearanceVS:()=>lw,_shadersVector3DTileClampedPolylinesFS:()=>AM,_shadersVector3DTileClampedPolylinesVS:()=>TM,_shadersVector3DTilePolylinesVS:()=>xM,_shadersVectorTileVS:()=>cC,_shadersVerticalExaggerationStageVS:()=>MO,_shadersViewportQuadFS:()=>jF,_shadersViewportQuadVS:()=>AT,_shadersVoxelFS:()=>RB,_shadersVoxelUtils:()=>IB,_shadersVoxelVS:()=>OB,_shadersWater:()=>Rw,_shadersXYZToRGB:()=>UD,_shadersacesTonemapping:()=>zD,_shadersalphaWeight:()=>HD,_shadersantialias:()=>GD,_shadersapplyHSBShift:()=>WD,_shadersapproximateSphericalCoordinates:()=>jD,_shadersapproximateTanh:()=>qD,_shadersbackFacing:()=>YD,_shadersbranchFreeTernary:()=>XD,_shaderscascadeColor:()=>KD,_shaderscascadeDistance:()=>ZD,_shaderscascadeMatrix:()=>$D,_shaderscascadeWeights:()=>QD,_shadersclipPolygons:()=>JD,_shaderscolumbusViewMorph:()=>eP,_shaderscomputeAtmosphereColor:()=>tP,_shaderscomputeGroundAtmosphereScattering:()=>nP,_shaderscomputePosition:()=>iP,_shaderscomputeScattering:()=>oP,_shadersconvertUvToBox:()=>VB,_shadersconvertUvToCylinder:()=>UB,_shadersconvertUvToEllipsoid:()=>zB,_shaderscosineAndSine:()=>rP,_shadersdecompressTextureCoordinates:()=>sP,_shadersdegreesPerRadian:()=>Gw,_shadersdepthClamp:()=>aP,_shadersdepthRange:()=>Ww,_shadersdepthRangeStruct:()=>wD,_shaderseastNorthUpToEyeCoordinates:()=>cP,_shadersellipsoidContainsPoint:()=>lP,_shadersellipsoidWgs84TextureCoordinates:()=>uP,_shadersepsilon1:()=>jw,_shadersepsilon2:()=>qw,_shadersepsilon3:()=>Yw,_shadersepsilon4:()=>Xw,_shadersepsilon5:()=>Kw,_shadersepsilon6:()=>Zw,_shadersepsilon7:()=>$w,_shadersequalsEpsilon:()=>fP,_shaderseyeOffset:()=>dP,_shaderseyeToWindowCoordinates:()=>hP,_shadersfastApproximateAtan:()=>mP,_shadersfog:()=>pP,_shadersgammaCorrect:()=>_P,_shadersgeodeticSurfaceNormal:()=>gP,_shadersgetDefaultMaterial:()=>yP,_shadersgetDynamicAtmosphereLightDirection:()=>xP,_shadersgetLambertDiffuse:()=>bP,_shadersgetSpecular:()=>TP,_shadersgetWaterNoise:()=>AP,_shadershue:()=>CP,_shadersinfinity:()=>Qw,_shadersinverseGamma:()=>EP,_shadersisEmpty:()=>SP,_shadersisFull:()=>vP,_shaderslatitudeToWebMercatorFraction:()=>wP,_shaderslineDistance:()=>DP,_shaderslinearToSrgb:()=>PP,_shadersluminance:()=>IP,_shadersmaterial:()=>DD,_shadersmaterialInput:()=>PD,_shadersmaximumComponent:()=>RP,_shadersmetersPerPixel:()=>OP,_shadersmodelMaterial:()=>ID,_shadersmodelToWindowCoordinates:()=>MP,_shadersmodelVertexOutput:()=>RD,_shadersmultiplyWithColorBalance:()=>LP,_shadersnearFarScalar:()=>NP,_shadersoctDecode:()=>FP,_shadersoneOverPi:()=>Jw,_shadersoneOverTwoPi:()=>eD,_shaderspackDepth:()=>BP,_shaderspassCesium3DTile:()=>tD,_shaderspassCesium3DTileClassification:()=>nD,_shaderspassCesium3DTileClassificationIgnoreShow:()=>iD,_shaderspassClassification:()=>oD,_shaderspassCompute:()=>rD,_shaderspassEnvironment:()=>sD,_shaderspassGlobe:()=>aD,_shaderspassOpaque:()=>cD,_shaderspassOverlay:()=>lD,_shaderspassTerrainClassification:()=>uD,_shaderspassTranslucent:()=>fD,_shaderspassVoxels:()=>dD,_shaderspbrLighting:()=>kP,_shadersphong:()=>VP,_shaderspi:()=>hD,_shaderspiOverFour:()=>mD,_shaderspiOverSix:()=>pD,_shaderspiOverThree:()=>_D,_shaderspiOverTwo:()=>gD,_shadersplaneDistance:()=>UP,_shaderspointAlongRay:()=>zP,_shadersradiansPerDegree:()=>yD,_shadersray:()=>OD,_shadersrayEllipsoidIntersectionInterval:()=>HP,_shadersraySegment:()=>MD,_shadersraySphereIntersectionInterval:()=>GP,_shadersreadDepth:()=>WP,_shadersreadNonPerspective:()=>jP,_shadersreverseLogDepth:()=>qP,_shadersround:()=>YP,_shaderssampleOctahedralProjection:()=>XP,_shaderssaturation:()=>KP,_shaderssceneMode2D:()=>xD,_shaderssceneMode3D:()=>bD,_shaderssceneModeColumbusView:()=>TD,_shaderssceneModeMorphing:()=>AD,_shadersshadowDepthCompare:()=>ZP,_shadersshadowParameters:()=>LD,_shadersshadowVisibility:()=>$P,_shaderssignNotZero:()=>QP,_shaderssolarRadius:()=>CD,_shaderssphericalHarmonics:()=>JP,_shaderssrgbToLinear:()=>eI,_shaderstangentToEyeSpaceMatrix:()=>tI,_shaderstextureCube:()=>nI,_shadersthreePiOver2:()=>ED,_shaderstransformPlane:()=>iI,_shaderstranslateRelativeToEye:()=>oI,_shaderstranslucentPhong:()=>rI,_shaderstranspose:()=>sI,_shaderstwoPi:()=>SD,_shadersunpackClippingExtents:()=>aI,_shadersunpackDepth:()=>cI,_shadersunpackFloat:()=>lI,_shadersunpackUint:()=>uI,_shadersvalueTransform:()=>fI,_shadersvertexLogDepth:()=>dI,_shaderswebMercatorMaxLatitude:()=>vD,_shaderswindowToEyeCoordinates:()=>hI,_shaderswriteDepthClamp:()=>mI,_shaderswriteLogDepth:()=>pI,_shaderswriteNonPerspective:()=>_I,addBuffer:()=>I1,addDefaults:()=>A1,addExtensionsRequired:()=>w1,addExtensionsUsed:()=>Cf,addPipelineExtras:()=>ey,addToArray:()=>ps,appendForwardSlash:()=>zv,arrayRemoveDuplicates:()=>xo,barycentricCoordinates:()=>dx,binarySearch:()=>Do,buildDrawCommand:()=>DR,buildModuleUrl:()=>en,buildVoxelDrawCommands:()=>qB,clone:()=>He,combine:()=>_t,computeFlyToLocationForRectangle:()=>CA,createBillboardPointCallback:()=>yb,createCommand:()=>Cn,createDefaultImageryProviderViewModels:()=>W3,createDefaultTerrainProviderViewModels:()=>j3,createElevationBandMaterial:()=>E$,createGooglePhotorealistic3DTileset:()=>S$,createGuid:()=>Hn,createMaterialPropertyDescriptor:()=>Po,createOsmBuildingsAsync:()=>v$,createPropertyDescriptor:()=>ce,createRawPropertyDescriptor:()=>vl,createTangentSpaceDebugPrimitive:()=>w$,createTaskProcessorWorker:()=>R$,createUniform:()=>zw,createUniformArray:()=>Hw,createWorldBathymetryAsync:()=>xF,createWorldImageryAsync:()=>rg,createWorldTerrainAsync:()=>NT,decodeGoogleEarthEnterpriseData:()=>bF,decodeVectorPolylinePositions:()=>SM,defaultValue:()=>y,defer:()=>xl,defined:()=>l,demodernizeShader:()=>gI,deprecationWarning:()=>Ls,destroyObject:()=>ue,exportKml:()=>OY,findAccessorMinMax:()=>Zx,findContentMetadata:()=>Eb,findGroupMetadata:()=>Sb,findTileMetadata:()=>PM,forEachTextureInMaterial:()=>gC,formatError:()=>jm,freezeRenderState:()=>n6,getAbsoluteUri:()=>jh,getAccessorByteStride:()=>Ll,getBaseUri:()=>Hv,getBinaryAccessor:()=>gu,getClipAndStyleCode:()=>E3,getClippingFunction:()=>tg,getComponentReader:()=>qp,getElement:()=>Pn,getExtensionFromUri:()=>X0,getFilenameFromUri:()=>I_,getImageFromTypedArray:()=>TF,getImagePixels:()=>bd,getJsonFromTypedArray:()=>Ro,getMagic:()=>Fd,getStringFromTypedArray:()=>Il,getTimestamp:()=>pi,hasExtension:()=>oi,heightReferenceOnEntityPropertyChanged:()=>Lp,isBitSet:()=>Ec,isBlobUri:()=>K0,isCrossOriginUrl:()=>Sg,isDataUri:()=>dp,isLeapYear:()=>xd,knockout:()=>Te,knockout_3_5_1:()=>EA,knockout_es5:()=>M3,loadAndExecuteScript:()=>Z0,loadCubeMap:()=>nF,loadImageFromTypedArray:()=>Yx,loadKTX2:()=>Cl,mergeSort:()=>J_,moveTechniqueRenderStates:()=>v1,moveTechniquesToExtension:()=>D1,numberOfComponentsForType:()=>xu,objectToQuery:()=>$0,oneTimeWarning:()=>Lt,parseBatchTable:()=>e_,parseFeatureMetadataLegacy:()=>eR,parseGlb:()=>E1,parseResponseHeaders:()=>Gv,parseStructuralMetadata:()=>J1,pickModel:()=>KC,pointInsideTriangle:()=>qX,preprocess3DTileContent:()=>Am,processVoxelProperties:()=>jB,queryToObject:()=>cu,readAccessorPacked:()=>R1,removeExtension:()=>$x,removeExtensionsRequired:()=>C1,removeExtensionsUsed:()=>Kx,removePipelineExtras:()=>S1,removeUnusedElements:()=>P1,resizeImageToNextPowerOfTwo:()=>iy,sampleTerrain:()=>AF,sampleTerrainMostDetailed:()=>FT,scaleToGeodeticSurface:()=>Y0,srgbToLinear:()=>BT,subdivideArray:()=>xI,subscribeAndEvaluate:()=>_a,updateAccessorComponentTypes:()=>O1,updateVersion:()=>M1,usesExtension:()=>rr,viewerCesium3DTilesInspectorMixin:()=>$$,viewerCesiumInspectorMixin:()=>Q$,viewerDragDropMixin:()=>eQ,viewerPerformanceWatchdogMixin:()=>tQ,viewerVoxelInspectorMixin:()=>nQ,webGLConstantToGlslType:()=>KX,wrapFunction:()=>CF,writeTextToCanvas:()=>bb});module.exports=Wh(NEt);function aQ(e,t){return e??t}aQ.EMPTY_OBJECT=Object.freeze({});var y=aQ;function RCe(e){return e!=null}var l=RCe;function j0(e){this.name="DeveloperError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(j0.prototype=Object.create(Error.prototype),j0.prototype.constructor=j0);j0.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` ${this.stack.toString()}`),e};j0.throwInstantiationError=function(){throw new j0("This function defines an interface and should not be called directly.")};var de=j0;var ms={};ms.typeOf={};function OCe(e){return`${e} is required, actual value was undefined`}function DA(e,t,n){return`Expected ${n} to be typeof ${t}, actual typeof was ${e}`}ms.defined=function(e,t){if(!l(t))throw new de(OCe(e))};ms.typeOf.func=function(e,t){if(typeof t!="function")throw new de(DA(typeof t,"function",e))};ms.typeOf.string=function(e,t){if(typeof t!="string")throw new de(DA(typeof t,"string",e))};ms.typeOf.number=function(e,t){if(typeof t!="number")throw new de(DA(typeof t,"number",e))};ms.typeOf.number.lessThan=function(e,t,n){if(ms.typeOf.number(e,t),t>=n)throw new de(`Expected ${e} to be less than ${n}, actual value was ${t}`)};ms.typeOf.number.lessThanOrEquals=function(e,t,n){if(ms.typeOf.number(e,t),t>n)throw new de(`Expected ${e} to be less than or equal to ${n}, actual value was ${t}`)};ms.typeOf.number.greaterThan=function(e,t,n){if(ms.typeOf.number(e,t),t<=n)throw new de(`Expected ${e} to be greater than ${n}, actual value was ${t}`)};ms.typeOf.number.greaterThanOrEquals=function(e,t,n){if(ms.typeOf.number(e,t),t<n)throw new de(`Expected ${e} to be greater than or equal to ${n}, actual value was ${t}`)};ms.typeOf.object=function(e,t){if(typeof t!="object")throw new de(DA(typeof t,"object",e))};ms.typeOf.bool=function(e,t){if(typeof t!="boolean")throw new de(DA(typeof t,"boolean",e))};ms.typeOf.bigint=function(e,t){if(typeof t!="bigint")throw new de(DA(typeof t,"bigint",e))};ms.typeOf.number.equals=function(e,t,n,i){if(ms.typeOf.number(e,n),ms.typeOf.number(t,i),n!==i)throw new de(`${e} must be equal to ${t}, the actual values are ${n} and ${i}`)};var go=ms;function Vv(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}Object.defineProperties(Vv.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}});Vv.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);let n=this;return function(){n.removeEventListener(e,t)}};Vv.prototype.removeEventListener=function(e,t){let n=this._listeners,i=this._scopes,o=-1;for(let r=0;r<n.length;r++)if(n[r]===e&&i[r]===t){o=r;break}return o!==-1?(this._insideRaiseEvent?(this._toRemove.push(o),n[o]=void 0,i[o]=void 0):(n.splice(o,1),i.splice(o,1)),!0):!1};function MCe(e,t){return t-e}Vv.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;let e,t=this._listeners,n=this._scopes,i=t.length;for(e=0;e<i;e++){let r=t[e];l(r)&&t[e].apply(n[e],arguments)}let o=this._toRemove;if(i=o.length,i>0){for(o.sort(MCe),e=0;e<i;e++){let r=o[e];t.splice(r,1),n.splice(r,1)}o.length=0}this._insideRaiseEvent=!1};var pe=Vv;function Ag(e){this._value=void 0,this._hasClone=!1,this._hasEquals=!1,this._definitionChanged=new pe,this.setValue(e)}Object.defineProperties(Ag.prototype,{isConstant:{value:!0},definitionChanged:{get:function(){return this._definitionChanged}}});Ag.prototype.getValue=function(e,t){return this._hasClone?this._value.clone(t):this._value};Ag.prototype.setValue=function(e){let t=this._value;if(t!==e){let n=l(e),i=n&&typeof e.clone=="function",o=n&&typeof e.equals=="function";(!o||!e.equals(t))&&(this._hasClone=i,this._hasEquals=o,this._value=i?e.clone(this._value):e,this._definitionChanged.raiseEvent(this))}};Ag.prototype.equals=function(e){return this===e||e instanceof Ag&&(!this._hasEquals&&this._value===e._value||this._hasEquals&&this._value.equals(e._value))};Ag.prototype.valueOf=function(){return this._value};Ag.prototype.toString=function(){return String(this._value)};var Zn=Ag;function LCe(e,t,n,i,o){return{configurable:i,get:function(){return this[t]},set:function(r){let s=this[t],a=this[n];l(a)&&(a(),this[n]=void 0),r!==void 0&&(!l(r)||!l(r.getValue))&&l(o)&&(r=o(r)),s!==r&&(this[t]=r,this._definitionChanged.raiseEvent(this,e,r,s)),l(r)&&l(r.definitionChanged)&&(this[n]=r.definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this,e,r,r)},this))}}}function NCe(e){return new Zn(e)}function FCe(e,t,n){return LCe(e,`_${e.toString()}`,`_${e.toString()}Subscription`,y(t,!1),y(n,NCe))}var ce=FCe;function Uv(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._image=void 0,this._imageSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._alignedAxis=void 0,this._alignedAxisSubscription=void 0,this._sizeInMeters=void 0,this._sizeInMetersSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._imageSubRegion=void 0,this._imageSubRegionSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(Uv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),image:ce("image"),scale:ce("scale"),pixelOffset:ce("pixelOffset"),eyeOffset:ce("eyeOffset"),horizontalOrigin:ce("horizontalOrigin"),verticalOrigin:ce("verticalOrigin"),heightReference:ce("heightReference"),color:ce("color"),rotation:ce("rotation"),alignedAxis:ce("alignedAxis"),sizeInMeters:ce("sizeInMeters"),width:ce("width"),height:ce("height"),scaleByDistance:ce("scaleByDistance"),translucencyByDistance:ce("translucencyByDistance"),pixelOffsetScaleByDistance:ce("pixelOffsetScaleByDistance"),imageSubRegion:ce("imageSubRegion"),distanceDisplayCondition:ce("distanceDisplayCondition"),disableDepthTestDistance:ce("disableDepthTestDistance")});Uv.prototype.clone=function(e){return l(e)?(e.show=this._show,e.image=this._image,e.scale=this._scale,e.pixelOffset=this._pixelOffset,e.eyeOffset=this._eyeOffset,e.horizontalOrigin=this._horizontalOrigin,e.verticalOrigin=this._verticalOrigin,e.heightReference=this._heightReference,e.color=this._color,e.rotation=this._rotation,e.alignedAxis=this._alignedAxis,e.sizeInMeters=this._sizeInMeters,e.width=this._width,e.height=this._height,e.scaleByDistance=this._scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.pixelOffsetScaleByDistance=this._pixelOffsetScaleByDistance,e.imageSubRegion=this._imageSubRegion,e.distanceDisplayCondition=this._distanceDisplayCondition,e.disableDepthTestDistance=this._disableDepthTestDistance,e):new Uv(this)};Uv.prototype.merge=function(e){this.show=y(this._show,e.show),this.image=y(this._image,e.image),this.scale=y(this._scale,e.scale),this.pixelOffset=y(this._pixelOffset,e.pixelOffset),this.eyeOffset=y(this._eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this._horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this._verticalOrigin,e.verticalOrigin),this.heightReference=y(this._heightReference,e.heightReference),this.color=y(this._color,e.color),this.rotation=y(this._rotation,e.rotation),this.alignedAxis=y(this._alignedAxis,e.alignedAxis),this.sizeInMeters=y(this._sizeInMeters,e.sizeInMeters),this.width=y(this._width,e.width),this.height=y(this._height,e.height),this.scaleByDistance=y(this._scaleByDistance,e.scaleByDistance),this.translucencyByDistance=y(this._translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this._pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.imageSubRegion=y(this._imageSubRegion,e.imageSubRegion),this.distanceDisplayCondition=y(this._distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this._disableDepthTestDistance,e.disableDepthTestDistance)};var qa=Uv;function q0(){this._array=[],this._hash={}}Object.defineProperties(q0.prototype,{length:{get:function(){return this._array.length}},values:{get:function(){return this._array}}});q0.prototype.contains=function(e){return l(this._hash[e])};q0.prototype.set=function(e,t){let n=this._hash[e];t!==n&&(this.remove(e),this._hash[e]=t,this._array.push(t))};q0.prototype.get=function(e){return this._hash[e]};q0.prototype.remove=function(e){let t=this._hash[e],n=l(t);if(n){let i=this._array;i.splice(i.indexOf(t),1),delete this._hash[e]}return n};q0.prototype.removeAll=function(){let e=this._array;e.length>0&&(this._hash={},e.length=0)};var bt=q0;var z5=wo(Pk(),1);var ot={};ot.EPSILON1=.1;ot.EPSILON2=.01;ot.EPSILON3=.001;ot.EPSILON4=1e-4;ot.EPSILON5=1e-5;ot.EPSILON6=1e-6;ot.EPSILON7=1e-7;ot.EPSILON8=1e-8;ot.EPSILON9=1e-9;ot.EPSILON10=1e-10;ot.EPSILON11=1e-11;ot.EPSILON12=1e-12;ot.EPSILON13=1e-13;ot.EPSILON14=1e-14;ot.EPSILON15=1e-15;ot.EPSILON16=1e-16;ot.EPSILON17=1e-17;ot.EPSILON18=1e-18;ot.EPSILON19=1e-19;ot.EPSILON20=1e-20;ot.EPSILON21=1e-21;ot.GRAVITATIONALPARAMETER=3986004418e5;ot.SOLAR_RADIUS=6955e5;ot.LUNAR_RADIUS=1737400;ot.SIXTY_FOUR_KILOBYTES=64*1024;ot.FOUR_GIGABYTES=4*1024*1024*1024;ot.sign=y(Math.sign,function(t){return t=+t,t===0||t!==t?t:t>0?1:-1});ot.signNotZero=function(e){return e<0?-1:1};ot.toSNorm=function(e,t){return t=y(t,255),Math.round((ot.clamp(e,-1,1)*.5+.5)*t)};ot.fromSNorm=function(e,t){return t=y(t,255),ot.clamp(e,0,t)/t*2-1};ot.normalize=function(e,t,n){return n=Math.max(n-t,0),n===0?0:ot.clamp((e-t)/n,0,1)};ot.sinh=y(Math.sinh,function(t){return(Math.exp(t)-Math.exp(-t))/2});ot.cosh=y(Math.cosh,function(t){return(Math.exp(t)+Math.exp(-t))/2});ot.lerp=function(e,t,n){return(1-n)*e+n*t};ot.PI=Math.PI;ot.ONE_OVER_PI=1/Math.PI;ot.PI_OVER_TWO=Math.PI/2;ot.PI_OVER_THREE=Math.PI/3;ot.PI_OVER_FOUR=Math.PI/4;ot.PI_OVER_SIX=Math.PI/6;ot.THREE_PI_OVER_TWO=3*Math.PI/2;ot.TWO_PI=2*Math.PI;ot.ONE_OVER_TWO_PI=1/(2*Math.PI);ot.RADIANS_PER_DEGREE=Math.PI/180;ot.DEGREES_PER_RADIAN=180/Math.PI;ot.RADIANS_PER_ARCSECOND=ot.RADIANS_PER_DEGREE/3600;ot.toRadians=function(e){return e*ot.RADIANS_PER_DEGREE};ot.toDegrees=function(e){return e*ot.DEGREES_PER_RADIAN};ot.convertLongitudeRange=function(e){let t=ot.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n};ot.clampToLatitudeRange=function(e){return ot.clamp(e,-1*ot.PI_OVER_TWO,ot.PI_OVER_TWO)};ot.negativePiToPi=function(e){return e>=-ot.PI&&e<=ot.PI?e:ot.zeroToTwoPi(e+ot.PI)-ot.PI};ot.zeroToTwoPi=function(e){if(e>=0&&e<=ot.TWO_PI)return e;let t=ot.mod(e,ot.TWO_PI);return Math.abs(t)<ot.EPSILON14&&Math.abs(e)>ot.EPSILON14?ot.TWO_PI:t};ot.mod=function(e,t){return ot.sign(e)===ot.sign(t)&&Math.abs(e)<Math.abs(t)?e:(e%t+t)%t};ot.equalsEpsilon=function(e,t,n,i){n=y(n,0),i=y(i,n);let o=Math.abs(e-t);return o<=i||o<=n*Math.max(Math.abs(e),Math.abs(t))};ot.lessThan=function(e,t,n){return e-t<-n};ot.lessThanOrEquals=function(e,t,n){return e-t<n};ot.greaterThan=function(e,t,n){return e-t>n};ot.greaterThanOrEquals=function(e,t,n){return e-t>-n};var Ik=[1];ot.factorial=function(e){let t=Ik.length;if(e>=t){let n=Ik[t-1];for(let i=t;i<=e;i++){let o=n*i;Ik.push(o),n=o}}return Ik[e]};ot.incrementWrap=function(e,t,n){return n=y(n,0),++e,e>t&&(e=n),e};ot.isPowerOfTwo=function(e){return e!==0&&(e&e-1)===0};ot.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e,e};ot.previousPowerOfTwo=function(e){return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e|=e>>32,e=(e>>>0)-(e>>>1),e};ot.clamp=function(e,t,n){return e<t?t:e>n?n:e};var lQ=new z5.default;ot.setRandomNumberSeed=function(e){lQ=new z5.default(e)};ot.nextRandomNumber=function(){return lQ.random()};ot.randomBetween=function(e,t){return ot.nextRandomNumber()*(t-e)+e};ot.acosClamped=function(e){return Math.acos(ot.clamp(e,-1,1))};ot.asinClamped=function(e){return Math.asin(ot.clamp(e,-1,1))};ot.chordLength=function(e,t){return 2*t*Math.sin(e*.5)};ot.logBase=function(e,t){return Math.log(e)/Math.log(t)};ot.cbrt=y(Math.cbrt,function(t){let n=Math.pow(Math.abs(t),.3333333333333333);return t<0?-n:n});ot.log2=y(Math.log2,function(t){return Math.log(t)*Math.LOG2E});ot.fog=function(e,t){let n=e*t;return 1-Math.exp(-(n*n))};ot.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)};ot.fastApproximateAtan2=function(e,t){let n,i=Math.abs(e);n=Math.abs(t);let o=Math.max(i,n);n=Math.min(i,n);let r=n/o;return i=ot.fastApproximateAtan(r),i=Math.abs(t)>Math.abs(e)?ot.PI_OVER_TWO-i:i,i=e<0?ot.PI-i:i,i=t<0?-i:i,i};var R=ot;function Ot(e,t){this.x=y(e,0),this.y=y(t,0)}Ot.fromElements=function(e,t,n){return l(n)?(n.x=e,n.y=t,n):new Ot(e,t)};Ot.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t):new Ot(e.x,e.y)};Ot.fromCartesian3=Ot.clone;Ot.fromCartesian4=Ot.clone;Ot.packedLength=2;Ot.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n]=e.y,t};Ot.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Ot),n.x=e[t++],n.y=e[t],n};Ot.packArray=function(e,t){let n=e.length,i=n*2;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Ot.pack(e[o],t,o*2);return t};Ot.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/2:t=new Array(n/2);for(let i=0;i<n;i+=2){let o=i/2;t[o]=Ot.unpack(e,i,t[o])}return t};Ot.fromArray=Ot.unpack;Ot.maximumComponent=function(e){return Math.max(e.x,e.y)};Ot.minimumComponent=function(e){return Math.min(e.x,e.y)};Ot.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n};Ot.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n};Ot.clamp=function(e,t,n,i){let o=R.clamp(e.x,t.x,n.x),r=R.clamp(e.y,t.y,n.y);return i.x=o,i.y=r,i};Ot.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y};Ot.magnitude=function(e){return Math.sqrt(Ot.magnitudeSquared(e))};var Rk=new Ot;Ot.distance=function(e,t){return Ot.subtract(e,t,Rk),Ot.magnitude(Rk)};Ot.distanceSquared=function(e,t){return Ot.subtract(e,t,Rk),Ot.magnitudeSquared(Rk)};Ot.normalize=function(e,t){let n=Ot.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t};Ot.dot=function(e,t){return e.x*t.x+e.y*t.y};Ot.cross=function(e,t){return e.x*t.y-e.y*t.x};Ot.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n};Ot.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n};Ot.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n};Ot.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n};Ot.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n};Ot.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n};Ot.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t};Ot.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var uQ=new Ot;Ot.lerp=function(e,t,n,i){return Ot.multiplyByScalar(t,n,uQ),i=Ot.multiplyByScalar(e,1-n,i),Ot.add(uQ,i,i)};var fQ=new Ot,dQ=new Ot;Ot.angleBetween=function(e,t){return Ot.normalize(e,fQ),Ot.normalize(t,dQ),R.acosClamped(Ot.dot(fQ,dQ))};var BCe=new Ot;Ot.mostOrthogonalAxis=function(e,t){let n=Ot.normalize(e,BCe);return Ot.abs(n,n),n.x<=n.y?t=Ot.clone(Ot.UNIT_X,t):t=Ot.clone(Ot.UNIT_Y,t),t};Ot.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y};Ot.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]};Ot.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&R.equalsEpsilon(e.x,t.x,n,i)&&R.equalsEpsilon(e.y,t.y,n,i)};Ot.ZERO=Object.freeze(new Ot(0,0));Ot.ONE=Object.freeze(new Ot(1,1));Ot.UNIT_X=Object.freeze(new Ot(1,0));Ot.UNIT_Y=Object.freeze(new Ot(0,1));Ot.prototype.clone=function(e){return Ot.clone(this,e)};Ot.prototype.equals=function(e){return Ot.equals(this,e)};Ot.prototype.equalsEpsilon=function(e,t,n){return Ot.equalsEpsilon(this,e,t,n)};Ot.prototype.toString=function(){return`(${this.x}, ${this.y})`};var z=Ot;function Je(e,t,n){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0)}Je.fromSpherical=function(e,t){l(t)||(t=new Je);let n=e.clock,i=e.cone,o=y(e.magnitude,1),r=o*Math.sin(i);return t.x=r*Math.cos(n),t.y=r*Math.sin(n),t.z=o*Math.cos(i),t};Je.fromElements=function(e,t,n,i){return l(i)?(i.x=e,i.y=t,i.z=n,i):new Je(e,t,n)};Je.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new Je(e.x,e.y,e.z)};Je.fromCartesian4=Je.clone;Je.packedLength=3;Je.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n]=e.z,t};Je.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Je),n.x=e[t++],n.y=e[t++],n.z=e[t],n};Je.packArray=function(e,t){let n=e.length,i=n*3;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Je.pack(e[o],t,o*3);return t};Je.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/3:t=new Array(n/3);for(let i=0;i<n;i+=3){let o=i/3;t[o]=Je.unpack(e,i,t[o])}return t};Je.fromArray=Je.unpack;Je.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)};Je.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)};Je.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n};Je.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n};Je.clamp=function(e,t,n,i){let o=R.clamp(e.x,t.x,n.x),r=R.clamp(e.y,t.y,n.y),s=R.clamp(e.z,t.z,n.z);return i.x=o,i.y=r,i.z=s,i};Je.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z};Je.magnitude=function(e){return Math.sqrt(Je.magnitudeSquared(e))};var Mk=new Je;Je.distance=function(e,t){return Je.subtract(e,t,Mk),Je.magnitude(Mk)};Je.distanceSquared=function(e,t){return Je.subtract(e,t,Mk),Je.magnitudeSquared(Mk)};Je.normalize=function(e,t){let n=Je.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t};Je.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z};Je.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n};Je.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n};Je.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n};Je.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n};Je.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n};Je.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n};Je.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t};Je.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var hQ=new Je;Je.lerp=function(e,t,n,i){return Je.multiplyByScalar(t,n,hQ),i=Je.multiplyByScalar(e,1-n,i),Je.add(hQ,i,i)};var Ok=new Je,H5=new Je;Je.angleBetween=function(e,t){Je.normalize(e,Ok),Je.normalize(t,H5);let n=Je.dot(Ok,H5),i=Je.magnitude(Je.cross(Ok,H5,Ok));return Math.atan2(i,n)};var kCe=new Je;Je.mostOrthogonalAxis=function(e,t){let n=Je.normalize(e,kCe);return Je.abs(n,n),n.x<=n.y?n.x<=n.z?t=Je.clone(Je.UNIT_X,t):t=Je.clone(Je.UNIT_Z,t):n.y<=n.z?t=Je.clone(Je.UNIT_Y,t):t=Je.clone(Je.UNIT_Z,t),t};Je.projectVector=function(e,t,n){let i=Je.dot(e,t)/Je.dot(t,t);return Je.multiplyByScalar(t,i,n)};Je.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z};Je.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]};Je.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&R.equalsEpsilon(e.x,t.x,n,i)&&R.equalsEpsilon(e.y,t.y,n,i)&&R.equalsEpsilon(e.z,t.z,n,i)};Je.cross=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=t.x,a=t.y,c=t.z,u=o*c-r*a,f=r*s-i*c,d=i*a-o*s;return n.x=u,n.y=f,n.z=d,n};Je.midpoint=function(e,t,n){return n.x=(e.x+t.x)*.5,n.y=(e.y+t.y)*.5,n.z=(e.z+t.z)*.5,n};Je.fromDegrees=function(e,t,n,i,o){return e=R.toRadians(e),t=R.toRadians(t),Je.fromRadians(e,t,n,i,o)};var cf=new Je,PA=new Je,VCe=new Je(6378137*6378137,6378137*6378137,6356752314245179e-9*6356752314245179e-9);Je.fromRadians=function(e,t,n,i,o){n=y(n,0);let r=l(i)?i.radiiSquared:VCe,s=Math.cos(t);cf.x=s*Math.cos(e),cf.y=s*Math.sin(e),cf.z=Math.sin(t),cf=Je.normalize(cf,cf),Je.multiplyComponents(r,cf,PA);let a=Math.sqrt(Je.dot(cf,PA));return PA=Je.divideByScalar(PA,a,PA),cf=Je.multiplyByScalar(cf,n,cf),l(o)||(o=new Je),Je.add(PA,cf,o)};Je.fromDegreesArray=function(e,t,n){let i=e.length;l(n)?n.length=i/2:n=new Array(i/2);for(let o=0;o<i;o+=2){let r=e[o],s=e[o+1],a=o/2;n[a]=Je.fromDegrees(r,s,0,t,n[a])}return n};Je.fromRadiansArray=function(e,t,n){let i=e.length;l(n)?n.length=i/2:n=new Array(i/2);for(let o=0;o<i;o+=2){let r=e[o],s=e[o+1],a=o/2;n[a]=Je.fromRadians(r,s,0,t,n[a])}return n};Je.fromDegreesArrayHeights=function(e,t,n){let i=e.length;l(n)?n.length=i/3:n=new Array(i/3);for(let o=0;o<i;o+=3){let r=e[o],s=e[o+1],a=e[o+2],c=o/3;n[c]=Je.fromDegrees(r,s,a,t,n[c])}return n};Je.fromRadiansArrayHeights=function(e,t,n){let i=e.length;l(n)?n.length=i/3:n=new Array(i/3);for(let o=0;o<i;o+=3){let r=e[o],s=e[o+1],a=e[o+2],c=o/3;n[c]=Je.fromRadians(r,s,a,t,n[c])}return n};Je.ZERO=Object.freeze(new Je(0,0,0));Je.ONE=Object.freeze(new Je(1,1,1));Je.UNIT_X=Object.freeze(new Je(1,0,0));Je.UNIT_Y=Object.freeze(new Je(0,1,0));Je.UNIT_Z=Object.freeze(new Je(0,0,1));Je.prototype.clone=function(e){return Je.clone(this,e)};Je.prototype.equals=function(e){return Je.equals(this,e)};Je.prototype.equalsEpsilon=function(e,t,n){return Je.equalsEpsilon(this,e,t,n)};Je.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z})`};var h=Je;var UCe=new h,zCe=new h;function HCe(e,t,n,i,o){let r=e.x,s=e.y,a=e.z,c=t.x,u=t.y,f=t.z,d=r*r*c*c,p=s*s*u*u,g=a*a*f*f,m=d+p+g,x=Math.sqrt(1/m),b=h.multiplyByScalar(e,x,UCe);if(m<i)return isFinite(x)?h.clone(b,o):void 0;let T=n.x,C=n.y,A=n.z,E=zCe;E.x=b.x*T*2,E.y=b.y*C*2,E.z=b.z*A*2;let v=(1-x)*h.magnitude(e)/(.5*h.magnitude(E)),D=0,O,I,L,N,_,S,w,P,M,B,U;do{v-=D,L=1/(1+v*T),N=1/(1+v*C),_=1/(1+v*A),S=L*L,w=N*N,P=_*_,M=S*L,B=w*N,U=P*_,O=d*S+p*w+g*P-1,I=d*M*T+p*B*C+g*U*A;let V=-2*I;D=O/V}while(Math.abs(O)>R.EPSILON12);return l(o)?(o.x=r*L,o.y=s*N,o.z=a*_,o):new h(r*L,s*N,a*_)}var Y0=HCe;function is(e,t,n){this.longitude=y(e,0),this.latitude=y(t,0),this.height=y(n,0)}is.fromRadians=function(e,t,n,i){return n=y(n,0),l(i)?(i.longitude=e,i.latitude=t,i.height=n,i):new is(e,t,n)};is.fromDegrees=function(e,t,n,i){return e=R.toRadians(e),t=R.toRadians(t),is.fromRadians(e,t,n,i)};var GCe=new h,WCe=new h,jCe=new h,qCe=new h(1/6378137,1/6378137,1/6356752314245179e-9),YCe=new h(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9)),XCe=R.EPSILON1;is.fromCartesian=function(e,t,n){let i=l(t)?t.oneOverRadii:qCe,o=l(t)?t.oneOverRadiiSquared:YCe,r=l(t)?t._centerToleranceSquared:XCe,s=Y0(e,i,o,r,WCe);if(!l(s))return;let a=h.multiplyComponents(s,o,GCe);a=h.normalize(a,a);let c=h.subtract(e,s,jCe),u=Math.atan2(a.y,a.x),f=Math.asin(a.z),d=R.sign(h.dot(c,e))*h.magnitude(c);return l(n)?(n.longitude=u,n.latitude=f,n.height=d,n):new is(u,f,d)};is.toCartesian=function(e,t,n){return h.fromRadians(e.longitude,e.latitude,e.height,t,n)};is.clone=function(e,t){if(l(e))return l(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new is(e.longitude,e.latitude,e.height)};is.equals=function(e,t){return e===t||l(e)&&l(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height};is.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n};is.ZERO=Object.freeze(new is(0,0,0));is.prototype.clone=function(e){return is.clone(this,e)};is.prototype.equals=function(e){return is.equals(this,e)};is.prototype.equalsEpsilon=function(e,t){return is.equalsEpsilon(this,e,t)};is.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`};var fe=is;function pQ(e,t,n,i){t=y(t,0),n=y(n,0),i=y(i,0),e._radii=new h(t,n,i),e._radiiSquared=new h(t*t,n*n,i*i),e._radiiToTheFourth=new h(t*t*t*t,n*n*n*n,i*i*i*i),e._oneOverRadii=new h(t===0?0:1/t,n===0?0:1/n,i===0?0:1/i),e._oneOverRadiiSquared=new h(t===0?0:1/(t*t),n===0?0:1/(n*n),i===0?0:1/(i*i)),e._minimumRadius=Math.min(t,n,i),e._maximumRadius=Math.max(t,n,i),e._centerToleranceSquared=R.EPSILON1,e._radiiSquared.z!==0&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function ji(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,pQ(this,e,t,n)}Object.defineProperties(ji.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}});ji.clone=function(e,t){if(!l(e))return;let n=e._radii;return l(t)?(h.clone(n,t._radii),h.clone(e._radiiSquared,t._radiiSquared),h.clone(e._radiiToTheFourth,t._radiiToTheFourth),h.clone(e._oneOverRadii,t._oneOverRadii),h.clone(e._oneOverRadiiSquared,t._oneOverRadiiSquared),t._minimumRadius=e._minimumRadius,t._maximumRadius=e._maximumRadius,t._centerToleranceSquared=e._centerToleranceSquared,t):new ji(n.x,n.y,n.z)};ji.fromCartesian3=function(e,t){return l(t)||(t=new ji),l(e)&&pQ(t,e.x,e.y,e.z),t};ji.WGS84=Object.freeze(new ji(6378137,6378137,6356752314245179e-9));ji.UNIT_SPHERE=Object.freeze(new ji(1,1,1));ji.MOON=Object.freeze(new ji(R.LUNAR_RADIUS,R.LUNAR_RADIUS,R.LUNAR_RADIUS));ji.prototype.clone=function(e){return ji.clone(this,e)};ji.packedLength=h.packedLength;ji.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),t};ji.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t);return ji.fromCartesian3(i,n)};ji.prototype.geocentricSurfaceNormal=h.normalize;ji.prototype.geodeticSurfaceNormalCartographic=function(e,t){let n=e.longitude,i=e.latitude,o=Math.cos(i),r=o*Math.cos(n),s=o*Math.sin(n),a=Math.sin(i);return l(t)||(t=new h),t.x=r,t.y=s,t.z=a,h.normalize(t,t)};ji.prototype.geodeticSurfaceNormal=function(e,t){if(!h.equalsEpsilon(e,h.ZERO,R.EPSILON14))return l(t)||(t=new h),t=h.multiplyComponents(e,this._oneOverRadiiSquared,t),h.normalize(t,t)};var KCe=new h,ZCe=new h;ji.prototype.cartographicToCartesian=function(e,t){let n=KCe,i=ZCe;this.geodeticSurfaceNormalCartographic(e,n),h.multiplyComponents(this._radiiSquared,n,i);let o=Math.sqrt(h.dot(n,i));return h.divideByScalar(i,o,i),h.multiplyByScalar(n,e.height,n),l(t)||(t=new h),h.add(i,n,t)};ji.prototype.cartographicArrayToCartesianArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;i++)t[i]=this.cartographicToCartesian(e[i],t[i]);return t};var $Ce=new h,QCe=new h,JCe=new h;ji.prototype.cartesianToCartographic=function(e,t){let n=this.scaleToGeodeticSurface(e,QCe);if(!l(n))return;let i=this.geodeticSurfaceNormal(n,$Ce),o=h.subtract(e,n,JCe),r=Math.atan2(i.y,i.x),s=Math.asin(i.z),a=R.sign(h.dot(o,e))*h.magnitude(o);return l(t)?(t.longitude=r,t.latitude=s,t.height=a,t):new fe(r,s,a)};ji.prototype.cartesianArrayToCartographicArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;++i)t[i]=this.cartesianToCartographic(e[i],t[i]);return t};ji.prototype.scaleToGeodeticSurface=function(e,t){return Y0(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)};ji.prototype.scaleToGeocentricSurface=function(e,t){l(t)||(t=new h);let n=e.x,i=e.y,o=e.z,r=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*r.x+i*i*r.y+o*o*r.z);return h.multiplyByScalar(e,s,t)};ji.prototype.transformPositionToScaledSpace=function(e,t){return l(t)||(t=new h),h.multiplyComponents(e,this._oneOverRadii,t)};ji.prototype.transformPositionFromScaledSpace=function(e,t){return l(t)||(t=new h),h.multiplyComponents(e,this._radii,t)};ji.prototype.equals=function(e){return this===e||l(e)&&h.equals(this._radii,e._radii)};ji.prototype.toString=function(){return this._radii.toString()};ji.prototype.getSurfaceNormalIntersectionWithZAxis=function(e,t,n){t=y(t,0);let i=this._squaredXOverSquaredZ;if(l(n)||(n=new h),n.x=0,n.y=0,n.z=e.z*(1-i),!(Math.abs(n.z)>=this._radii.z-t))return n};var eEe=new h;ji.prototype.getLocalCurvature=function(e,t){l(t)||(t=new z);let n=this.getSurfaceNormalIntersectionWithZAxis(e,0,eEe),i=h.distance(e,n),o=this.minimumRadius*i/this.maximumRadius**2,r=i*o**2;return z.fromElements(1/i,1/r,t)};var tEe=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],nEe=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function mQ(e,t,n){let i=.5*(t+e),o=.5*(t-e),r=0;for(let s=0;s<5;s++){let a=o*tEe[s];r+=nEe[s]*(n(i+a)+n(i-a))}return r*=o,r}ji.prototype.surfaceArea=function(e){let t=e.west,n=e.east,i=e.south,o=e.north;for(;n<t;)n+=R.TWO_PI;let r=this._radiiSquared,s=r.x,a=r.y,c=r.z,u=s*a;return mQ(i,o,function(f){let d=Math.cos(f),p=Math.sin(f);return Math.cos(f)*mQ(t,n,function(g){let m=Math.cos(g),x=Math.sin(g);return Math.sqrt(u*p*p+c*(a*m*m+s*x*x)*d*d)})})};var te=ji;function Lk(e){this._ellipsoid=y(e,te.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(Lk.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});Lk.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=e.latitude*n,r=e.height;return l(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};Lk.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=e.y*n,r=e.z;return l(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new fe(i,o,r)};var Ci=Lk;var iEe={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},Gt=Object.freeze(iEe);function pt(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0),this.w=y(i,0)}pt.fromElements=function(e,t,n,i,o){return l(o)?(o.x=e,o.y=t,o.z=n,o.w=i,o):new pt(e,t,n,i)};pt.fromColor=function(e,t){return l(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new pt(e.red,e.green,e.blue,e.alpha)};pt.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new pt(e.x,e.y,e.z,e.w)};pt.packedLength=4;pt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};pt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new pt),n.x=e[t++],n.y=e[t++],n.z=e[t++],n.w=e[t],n};pt.packArray=function(e,t){let n=e.length,i=n*4;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)pt.pack(e[o],t,o*4);return t};pt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let o=i/4;t[o]=pt.unpack(e,i,t[o])}return t};pt.fromArray=pt.unpack;pt.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)};pt.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)};pt.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n};pt.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n};pt.clamp=function(e,t,n,i){let o=R.clamp(e.x,t.x,n.x),r=R.clamp(e.y,t.y,n.y),s=R.clamp(e.z,t.z,n.z),a=R.clamp(e.w,t.w,n.w);return i.x=o,i.y=r,i.z=s,i.w=a,i};pt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};pt.magnitude=function(e){return Math.sqrt(pt.magnitudeSquared(e))};var Nk=new pt;pt.distance=function(e,t){return pt.subtract(e,t,Nk),pt.magnitude(Nk)};pt.distanceSquared=function(e,t){return pt.subtract(e,t,Nk),pt.magnitudeSquared(Nk)};pt.normalize=function(e,t){let n=pt.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t};pt.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};pt.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n};pt.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n};pt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};pt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};pt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};pt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};pt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};pt.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var _Q=new pt;pt.lerp=function(e,t,n,i){return pt.multiplyByScalar(t,n,_Q),i=pt.multiplyByScalar(e,1-n,i),pt.add(_Q,i,i)};var oEe=new pt;pt.mostOrthogonalAxis=function(e,t){let n=pt.normalize(e,oEe);return pt.abs(n,n),n.x<=n.y?n.x<=n.z?n.x<=n.w?t=pt.clone(pt.UNIT_X,t):t=pt.clone(pt.UNIT_W,t):n.z<=n.w?t=pt.clone(pt.UNIT_Z,t):t=pt.clone(pt.UNIT_W,t):n.y<=n.z?n.y<=n.w?t=pt.clone(pt.UNIT_Y,t):t=pt.clone(pt.UNIT_W,t):n.z<=n.w?t=pt.clone(pt.UNIT_Z,t):t=pt.clone(pt.UNIT_W,t),t};pt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};pt.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]};pt.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&R.equalsEpsilon(e.x,t.x,n,i)&&R.equalsEpsilon(e.y,t.y,n,i)&&R.equalsEpsilon(e.z,t.z,n,i)&&R.equalsEpsilon(e.w,t.w,n,i)};pt.ZERO=Object.freeze(new pt(0,0,0,0));pt.ONE=Object.freeze(new pt(1,1,1,1));pt.UNIT_X=Object.freeze(new pt(1,0,0,0));pt.UNIT_Y=Object.freeze(new pt(0,1,0,0));pt.UNIT_Z=Object.freeze(new pt(0,0,1,0));pt.UNIT_W=Object.freeze(new pt(0,0,0,1));pt.prototype.clone=function(e){return pt.clone(this,e)};pt.prototype.equals=function(e){return pt.equals(this,e)};pt.prototype.equalsEpsilon=function(e,t,n){return pt.equalsEpsilon(this,e,t,n)};pt.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var G5=new Float32Array(1),Ya=new Uint8Array(G5.buffer),rEe=new Uint32Array([287454020]),sEe=new Uint8Array(rEe.buffer),gQ=sEe[0]===68;pt.packFloat=function(e,t){return l(t)||(t=new pt),G5[0]=e,gQ?(t.x=Ya[0],t.y=Ya[1],t.z=Ya[2],t.w=Ya[3]):(t.x=Ya[3],t.y=Ya[2],t.z=Ya[1],t.w=Ya[0]),t};pt.unpackFloat=function(e){return gQ?(Ya[0]=e.x,Ya[1]=e.y,Ya[2]=e.z,Ya[3]=e.w):(Ya[0]=e.w,Ya[1]=e.z,Ya[2]=e.y,Ya[3]=e.x),G5[0]};var oe=pt;function aEe(e,t,n){let i=0,o=e.length-1,r,s;for(;i<=o;){if(r=~~((i+o)/2),s=n(e[r],t),s<0){i=r+1;continue}if(s>0){o=r-1;continue}return r}return~(o+1)}var Do=aEe;function cEe(e,t,n,i,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=i,this.ut1MinusUtc=o}var Cg=cEe;function lEe(e){return e%4===0&&e%100!==0||e%400===0}var xd=lEe;var yQ=[31,28,31,30,31,30,31,31,30,31,30,31];function uEe(e,t,n,i,o,r,s,a){e=y(e,1),t=y(t,1),n=y(n,1),i=y(i,0),o=y(o,0),r=y(r,0),s=y(s,0),a=y(a,!1),this.year=e,this.month=t,this.day=n,this.hour=i,this.minute=o,this.second=r,this.millisecond=s,this.isLeapSecond=a;function x(){go.typeOf.number.greaterThanOrEquals("Year",e,1),go.typeOf.number.lessThanOrEquals("Year",e,9999),go.typeOf.number.greaterThanOrEquals("Month",t,1),go.typeOf.number.lessThanOrEquals("Month",t,12),go.typeOf.number.greaterThanOrEquals("Day",n,1),go.typeOf.number.lessThanOrEquals("Day",n,31),go.typeOf.number.greaterThanOrEquals("Hour",i,0),go.typeOf.number.lessThanOrEquals("Hour",i,23),go.typeOf.number.greaterThanOrEquals("Minute",o,0),go.typeOf.number.lessThanOrEquals("Minute",o,59),go.typeOf.bool("IsLeapSecond",a),go.typeOf.number.greaterThanOrEquals("Second",r,0),go.typeOf.number.lessThanOrEquals("Second",r,a?60:59),go.typeOf.number.greaterThanOrEquals("Millisecond",s,0),go.typeOf.number.lessThan("Millisecond",s,1e3)}function b(){let T=t===2&&xd(e)?yQ[t-1]+1:yQ[t-1];if(n>T)throw new de("Month and Day represents invalid date")}}var fp=uEe;function fEe(e,t){this.julianDate=e,this.offset=t}var ki=fEe;var dEe={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:24000005e-1},Xn=Object.freeze(dEe);var hEe={UTC:0,TAI:1},jn=Object.freeze(hEe);var bQ=new fp,W5=[31,28,31,30,31,30,31,31,30,31,30,31],j5=29;function q5(e,t){return vt.compare(e.julianDate,t.julianDate)}var IA=new ki;function Bk(e){IA.julianDate=e;let t=vt.leapSeconds,n=Do(t,IA,q5);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let i=t[n].offset;n>0&&vt.secondsDifference(t[n].julianDate,e)>i&&(n--,i=t[n].offset),vt.addSeconds(e,i,e)}function xQ(e,t){IA.julianDate=e;let n=vt.leapSeconds,i=Do(n,IA,q5);if(i<0&&(i=~i),i===0)return vt.addSeconds(e,-n[0].offset,t);if(i>=n.length)return vt.addSeconds(e,-n[i-1].offset,t);let o=vt.secondsDifference(n[i].julianDate,e);if(o===0)return vt.addSeconds(e,-n[i].offset,t);if(!(o<=1))return vt.addSeconds(e,-n[--i].offset,t)}function Eg(e,t,n){let i=t/Xn.SECONDS_PER_DAY|0;return e+=i,t-=Xn.SECONDS_PER_DAY*i,t<0&&(e--,t+=Xn.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function Y5(e,t,n,i,o,r,s){let a=(t-14)/12|0,c=e+4800+a,u=(1461*c/4|0)+(367*(t-2-12*a)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;i=i-12,i<0&&(i+=24);let f=r+(i*Xn.SECONDS_PER_HOUR+o*Xn.SECONDS_PER_MINUTE+s*Xn.SECONDS_PER_MILLISECOND);return f>=43200&&(u-=1),[u,f]}var mEe=/^(\d{4})$/,pEe=/^(\d{4})-(\d{2})$/,_Ee=/^(\d{4})-?(\d{3})$/,gEe=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,yEe=/^(\d{4})-?(\d{2})-?(\d{2})$/,X5=/([Z+\-])?(\d{2})?:?(\d{2})?$/,xEe=/^(\d{2})(\.\d+)?/.source+X5.source,bEe=/^(\d{2}):?(\d{2})(\.\d+)?/.source+X5.source,TEe=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+X5.source;function vt(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=y(e,0),t=y(t,0),n=y(n,jn.UTC);let i=e|0;t=t+(e-i)*Xn.SECONDS_PER_DAY,Eg(i,t,this),n===jn.UTC&&Bk(this)}vt.fromGregorianDate=function(e,t){let n=Y5(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return l(t)?(Eg(n[0],n[1],t),Bk(t),t):new vt(n[0],n[1],jn.UTC)};vt.fromDate=function(e,t){let n=Y5(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return l(t)?(Eg(n[0],n[1],t),Bk(t),t):new vt(n[0],n[1],jn.UTC)};vt.fromIso8601=function(e,t){e=e.replace(",",".");let n=e.split("T"),i,o=1,r=1,s=0,a=0,c=0,u=0,f=n[0],d=n[1],p,g;if(n=f.match(yEe),n!==null)i=+n[1],o=+n[2],r=+n[3];else if(n=f.match(pEe),n!==null)i=+n[1],o=+n[2];else if(n=f.match(mEe),n!==null)i=+n[1];else{let T;if(n=f.match(_Ee),n!==null)i=+n[1],T=+n[2],g=xd(i);else if(n=f.match(gEe),n!==null){i=+n[1];let C=+n[2],A=+n[3]||0,E=new Date(Date.UTC(i,0,4));T=C*7+A-E.getUTCDay()-3}p=new Date(Date.UTC(i,0,1)),p.setUTCDate(T),o=p.getUTCMonth()+1,r=p.getUTCDate()}g=xd(i);let m;if(l(d)){n=d.match(TEe),n!==null?(s=+n[1],a=+n[2],c=+n[3],u=+(n[4]||0)*1e3,m=5):(n=d.match(bEe),n!==null?(s=+n[1],a=+n[2],c=+(n[3]||0)*60,m=4):(n=d.match(xEe),n!==null&&(s=+n[1],a=+(n[2]||0)*60,m=3)));let T=n[m],C=+n[m+1],A=+(n[m+2]||0);switch(T){case"+":s=s-C,a=a-A;break;case"-":s=s+C,a=a+A;break;case"Z":break;default:a=a+new Date(Date.UTC(i,o-1,r,s,a)).getTimezoneOffset();break}}let x=c===60;for(x&&c--;a>=60;)a-=60,s++;for(;s>=24;)s-=24,r++;for(p=g&&o===2?j5:W5[o-1];r>p;)r-=p,o++,o>12&&(o-=12,i++),p=g&&o===2?j5:W5[o-1];for(;a<0;)a+=60,s--;for(;s<0;)s+=24,r--;for(;r<1;)o--,o<1&&(o+=12,i--),p=g&&o===2?j5:W5[o-1],r+=p;let b=Y5(i,o,r,s,a,c,u);return l(t)?(Eg(b[0],b[1],t),Bk(t)):t=new vt(b[0],b[1],jn.UTC),x&&vt.addSeconds(t,1,t),t};vt.now=function(e){return vt.fromDate(new Date,e)};var Fk=new vt(0,0,jn.TAI);vt.toGregorianDate=function(e,t){let n=!1,i=xQ(e,Fk);l(i)||(vt.addSeconds(e,-1,Fk),i=xQ(Fk,Fk),n=!0);let o=i.dayNumber,r=i.secondsOfDay;r>=43200&&(o+=1);let s=o+68569|0,a=4*s/146097|0;s=s-((146097*a+3)/4|0)|0;let c=4e3*(s+1)/1461001|0;s=s-(1461*c/4|0)+31|0;let u=80*s/2447|0,f=s-(2447*u/80|0)|0;s=u/11|0;let d=u+2-12*s|0,p=100*(a-49)+c+s|0,g=r/Xn.SECONDS_PER_HOUR|0,m=r-g*Xn.SECONDS_PER_HOUR,x=m/Xn.SECONDS_PER_MINUTE|0;m=m-x*Xn.SECONDS_PER_MINUTE;let b=m|0,T=(m-b)/Xn.SECONDS_PER_MILLISECOND;return g+=12,g>23&&(g-=24),n&&(b+=1),l(t)?(t.year=p,t.month=d,t.day=f,t.hour=g,t.minute=x,t.second=b,t.millisecond=T,t.isLeapSecond=n,t):new fp(p,d,f,g,x,b,T,n)};vt.toDate=function(e){let t=vt.toGregorianDate(e,bQ),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))};vt.toIso8601=function(e,t){let n=vt.toGregorianDate(e,bQ),i=n.year,o=n.month,r=n.day,s=n.hour,a=n.minute,c=n.second,u=n.millisecond;i===1e4&&o===1&&r===1&&s===0&&a===0&&c===0&&u===0&&(i=9999,o=12,r=31,s=24);let f;return!l(t)&&u!==0?(f=(u*.01).toString().replace(".",""),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`):!l(t)||t===0?`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}Z`:(f=(u*.01).toFixed(t).replace(".","").slice(0,t),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`)};vt.clone=function(e,t){if(l(e))return l(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new vt(e.dayNumber,e.secondsOfDay,jn.TAI)};vt.compare=function(e,t){let n=e.dayNumber-t.dayNumber;return n!==0?n:e.secondsOfDay-t.secondsOfDay};vt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay};vt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(vt.secondsDifference(e,t))<=n};vt.totalDays=function(e){return e.dayNumber+e.secondsOfDay/Xn.SECONDS_PER_DAY};vt.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*Xn.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)};vt.daysDifference=function(e,t){let n=e.dayNumber-t.dayNumber,i=(e.secondsOfDay-t.secondsOfDay)/Xn.SECONDS_PER_DAY;return n+i};vt.computeTaiMinusUtc=function(e){IA.julianDate=e;let t=vt.leapSeconds,n=Do(t,IA,q5);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset};vt.addSeconds=function(e,t,n){return Eg(e.dayNumber,e.secondsOfDay+t,n)};vt.addMinutes=function(e,t,n){let i=e.secondsOfDay+t*Xn.SECONDS_PER_MINUTE;return Eg(e.dayNumber,i,n)};vt.addHours=function(e,t,n){let i=e.secondsOfDay+t*Xn.SECONDS_PER_HOUR;return Eg(e.dayNumber,i,n)};vt.addDays=function(e,t,n){let i=e.dayNumber+t;return Eg(i,e.secondsOfDay,n)};vt.lessThan=function(e,t){return vt.compare(e,t)<0};vt.lessThanOrEquals=function(e,t){return vt.compare(e,t)<=0};vt.greaterThan=function(e,t){return vt.compare(e,t)>0};vt.greaterThanOrEquals=function(e,t){return vt.compare(e,t)>=0};vt.prototype.clone=function(e){return vt.clone(this,e)};vt.prototype.equals=function(e){return vt.equals(this,e)};vt.prototype.equalsEpsilon=function(e,t){return vt.equalsEpsilon(this,e,t)};vt.prototype.toString=function(){return vt.toIso8601(this)};vt.leapSeconds=[new ki(new vt(2441317,43210,jn.TAI),10),new ki(new vt(2441499,43211,jn.TAI),11),new ki(new vt(2441683,43212,jn.TAI),12),new ki(new vt(2442048,43213,jn.TAI),13),new ki(new vt(2442413,43214,jn.TAI),14),new ki(new vt(2442778,43215,jn.TAI),15),new ki(new vt(2443144,43216,jn.TAI),16),new ki(new vt(2443509,43217,jn.TAI),17),new ki(new vt(2443874,43218,jn.TAI),18),new ki(new vt(2444239,43219,jn.TAI),19),new ki(new vt(2444786,43220,jn.TAI),20),new ki(new vt(2445151,43221,jn.TAI),21),new ki(new vt(2445516,43222,jn.TAI),22),new ki(new vt(2446247,43223,jn.TAI),23),new ki(new vt(2447161,43224,jn.TAI),24),new ki(new vt(2447892,43225,jn.TAI),25),new ki(new vt(2448257,43226,jn.TAI),26),new ki(new vt(2448804,43227,jn.TAI),27),new ki(new vt(2449169,43228,jn.TAI),28),new ki(new vt(2449534,43229,jn.TAI),29),new ki(new vt(2450083,43230,jn.TAI),30),new ki(new vt(2450630,43231,jn.TAI),31),new ki(new vt(2451179,43232,jn.TAI),32),new ki(new vt(2453736,43233,jn.TAI),33),new ki(new vt(2454832,43234,jn.TAI),34),new ki(new vt(2456109,43235,jn.TAI),35),new ki(new vt(2457204,43236,jn.TAI),36),new ki(new vt(2457754,43237,jn.TAI),37)];var J=vt;var VQ=wo(au(),1);function AEe(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var zv=AEe;function wQ(e,t){if(e===null||typeof e!="object")return e;t=y(t,!1);let n=new e.constructor;for(let i in e)if(e.hasOwnProperty(i)){let o=e[i];t&&(o=wQ(o,t)),n[i]=o}return n}var He=wQ;function DQ(e,t,n){n=y(n,!1);let i={},o=l(e),r=l(t),s,a,c;if(o)for(s in e)e.hasOwnProperty(s)&&(a=e[s],r&&n&&typeof a=="object"&&t.hasOwnProperty(s)?(c=t[s],typeof c=="object"?i[s]=DQ(a,c,n):i[s]=a):i[s]=a);if(r)for(s in t)t.hasOwnProperty(s)&&!i.hasOwnProperty(s)&&(c=t[s],i[s]=c);return i}var _t=DQ;function CEe(){let e,t,n=new Promise(function(i,o){e=i,t=o});return{resolve:e,reject:t,promise:n}}var xl=CEe;var PQ=wo(au(),1);function K5(e,t){let n;return typeof document<"u"&&(n=document),K5._implementation(e,t,n)}K5._implementation=function(e,t,n){if(!l(t)){if(typeof n>"u")return e;t=y(n.baseURI,n.location.href)}let i=new PQ.default(e);return i.scheme()!==""?i.toString():i.absoluteTo(t).toString()};var jh=K5;var IQ=wo(au(),1);function EEe(e,t){let n="",i=e.lastIndexOf("/");return i!==-1&&(n=e.substring(0,i+1)),t&&(e=new IQ.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var Hv=EEe;var RQ=wo(au(),1);function SEe(e){let t=new RQ.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),i=n.lastIndexOf("."),i===-1?n="":n=n.substr(i+1),n}var X0=SEe;var OQ={};function vEe(e,t,n){l(t)||(t=e.width),l(n)||(n=e.height);let i=OQ[t];l(i)||(i={},OQ[t]=i);let o=i[n];if(!l(o)){let r=document.createElement("canvas");r.width=t,r.height=n,o=r.getContext("2d",{willReadFrequently:!0}),o.globalCompositeOperation="copy",i[n]=o}return o.drawImage(e,0,0,t,n),o.getImageData(0,0,t,n).data}var bd=vEe;var wEe=/^blob:/i;function DEe(e){return wEe.test(e)}var K0=DEe;var qh;function PEe(e){l(qh)||(qh=document.createElement("a")),qh.href=window.location.href;let t=qh.host,n=qh.protocol;return qh.href=e,qh.href=qh.href,n!==qh.protocol||t!==qh.host}var Sg=PEe;var IEe=/^data:/i;function REe(e){return IEe.test(e)}var dp=REe;function OEe(e){let t=document.createElement("script");return t.async=!0,t.src=e,new Promise((n,i)=>{window.crossOriginIsolated&&t.setAttribute("crossorigin","anonymous");let o=document.getElementsByTagName("head")[0];t.onload=function(){t.onload=void 0,o.removeChild(t),n()},t.onerror=function(r){i(r)},o.appendChild(t)})}var Z0=OEe;function MEe(e){let t="";for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=`${encodeURIComponent(n)}=`;if(Array.isArray(i))for(let r=0,s=i.length;r<s;++r)t+=`${o+encodeURIComponent(i[r])}&`;else t+=`${o+encodeURIComponent(i)}&`}return t=t.slice(0,-1),t}var $0=MEe;function LEe(e){let t={};if(e==="")return t;let n=e.replace(/\+/g,"%20").split(/[&;]/);for(let i=0,o=n.length;i<o;++i){let r=n[i].split("="),s=decodeURIComponent(r[0]),a=r[1];l(a)?a=decodeURIComponent(a):a="";let c=t[s];typeof c=="string"?t[s]=[c,a]:Array.isArray(c)?c.push(a):t[s]=a}return t}var cu=LEe;var NEe={UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5},$n=Object.freeze(NEe);var FEe={TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3},os=Object.freeze(FEe);function zk(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.throttleByServer,!1),n=y(e.throttle,!1);this.url=e.url,this.requestFunction=e.requestFunction,this.cancelFunction=e.cancelFunction,this.priorityFunction=e.priorityFunction,this.priority=y(e.priority,0),this.throttle=n,this.throttleByServer=t,this.type=y(e.type,os.OTHER),this.serverKey=e.serverKey,this.state=$n.UNISSUED,this.deferred=void 0,this.cancelled=!1}zk.prototype.cancel=function(){this.cancelled=!0};zk.prototype.clone=function(e){return l(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=$n.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new zk(this)};var qo=zk;function BEe(e){let t={};if(!e)return t;let n=e.split(`\r `);for(let i=0;i<n.length;++i){let o=n[i],r=o.indexOf(": ");if(r>0){let s=o.substring(0,r),a=o.substring(r+2);t[s]=a}}return t}var Gv=BEe;function MQ(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=Gv(this.responseHeaders))}MQ.prototype.toString=function(){let e="Request has failed.";return l(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var Yh=MQ;var Hk=wo(au(),1);function Q0(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}Object.defineProperties(Q0.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){let t=this._length;if(e<t){let n=this._array;for(let i=e;i<t;++i)n[i]=void 0;this._length=e,n.length=e}this._maximumLength=e}},comparator:{get:function(){return this._comparator}}});function Z5(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}Q0.prototype.reserve=function(e){e=y(e,this._length),this._array.length=e};Q0.prototype.heapify=function(e){e=y(e,0);let t=this._length,n=this._comparator,i=this._array,o=-1,r=!0;for(;r;){let s=2*(e+1),a=s-1;a<t&&n(i[a],i[e])<0?o=a:o=e,s<t&&n(i[s],i[o])<0&&(o=s),o!==e?(Z5(i,o,e),e=o):r=!1}};Q0.prototype.resort=function(){let e=this._length;for(let t=Math.ceil(e/2);t>=0;--t)this.heapify(t)};Q0.prototype.insert=function(e){let t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);o!==0;){let s=Math.floor((o-1)/2);if(n(t[o],t[s])<0)Z5(t,o,s),o=s;else break}let r;return l(i)&&this._length>i&&(r=t[i],this._length=i),r};Q0.prototype.pop=function(e){if(e=y(e,0),this._length===0)return;let t=this._array,n=t[e];return Z5(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var Wv=Q0;function kEe(e,t){return e.priority-t.priority}var $i={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},MA=20,Xa=new Wv({comparator:kEe});Xa.maximumLength=MA;Xa.reserve(MA);var Xh=[],hp={},VEe=typeof document<"u"?new Hk.default(document.location.href):new Hk.default,Gk=new pe;function Yo(){}Yo.maximumRequests=50;Yo.maximumRequestsPerServer=18;Yo.requestsByServer={};Yo.throttleRequests=!0;Yo.debugShowStatistics=!1;Yo.requestCompletedEvent=Gk;Object.defineProperties(Yo,{statistics:{get:function(){return $i}},priorityHeapLength:{get:function(){return MA},set:function(e){if(e<MA)for(;Xa.length>e;){let t=Xa.pop();J0(t)}MA=e,Xa.maximumLength=e,Xa.reserve(e)}}});function LQ(e){l(e.priorityFunction)&&(e.priority=e.priorityFunction())}Yo.serverHasOpenSlots=function(e,t){t=y(t,1);let n=y(Yo.requestsByServer[e],Yo.maximumRequestsPerServer);return hp[e]+t<=n};Yo.heapHasOpenSlots=function(e){return Xa.length+e<=MA};function NQ(e){return e.state===$n.UNISSUED&&(e.state=$n.ISSUED,e.deferred=xl()),e.deferred.promise}function UEe(e){return function(t){if(e.state===$n.CANCELLED)return;let n=e.deferred;--$i.numberOfActiveRequests,--hp[e.serverKey],Gk.raiseEvent(),e.state=$n.RECEIVED,e.deferred=void 0,n.resolve(t)}}function zEe(e){return function(t){e.state!==$n.CANCELLED&&(++$i.numberOfFailedRequests,--$i.numberOfActiveRequests,--hp[e.serverKey],Gk.raiseEvent(t),e.state=$n.FAILED,e.deferred.reject(t))}}function FQ(e){let t=NQ(e);return e.state=$n.ACTIVE,Xh.push(e),++$i.numberOfActiveRequests,++$i.numberOfActiveRequestsEver,++hp[e.serverKey],e.requestFunction().then(UEe(e)).catch(zEe(e)),t}function J0(e){let t=e.state===$n.ACTIVE;if(e.state=$n.CANCELLED,++$i.numberOfCancelledRequests,l(e.deferred)){let n=e.deferred;e.deferred=void 0,n.reject()}t&&(--$i.numberOfActiveRequests,--hp[e.serverKey],++$i.numberOfCancelledActiveRequests),l(e.cancelFunction)&&e.cancelFunction()}Yo.update=function(){let e,t,n=0,i=Xh.length;for(e=0;e<i;++e){if(t=Xh[e],t.cancelled&&J0(t),t.state!==$n.ACTIVE){++n;continue}n>0&&(Xh[e-n]=t)}Xh.length-=n;let o=Xa.internalArray,r=Xa.length;for(e=0;e<r;++e)LQ(o[e]);Xa.resort();let s=Math.max(Yo.maximumRequests-Xh.length,0),a=0;for(;a<s&&Xa.length>0;){if(t=Xa.pop(),t.cancelled){J0(t);continue}if(t.throttleByServer&&!Yo.serverHasOpenSlots(t.serverKey)){J0(t);continue}FQ(t),++a}HEe()};Yo.getServerKey=function(e){let t=new Hk.default(e);t.scheme()===""&&(t=t.absoluteTo(VEe),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let i=hp[n];return l(i)||(hp[n]=0),n};Yo.request=function(e){if(dp(e.url)||K0(e.url))return Gk.raiseEvent(),e.state=$n.RECEIVED,e.requestFunction();if(++$i.numberOfAttemptedRequests,l(e.serverKey)||(e.serverKey=Yo.getServerKey(e.url)),Yo.throttleRequests&&e.throttleByServer&&!Yo.serverHasOpenSlots(e.serverKey))return;if(!Yo.throttleRequests||!e.throttle)return FQ(e);if(Xh.length>=Yo.maximumRequests)return;LQ(e);let t=Xa.insert(e);if(l(t)){if(t===e)return;J0(t)}return NQ(e)};function HEe(){Yo.debugShowStatistics&&($i.numberOfActiveRequests===0&&$i.lastNumberOfActiveRequests>0&&($i.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${$i.numberOfAttemptedRequests}`),$i.numberOfAttemptedRequests=0),$i.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${$i.numberOfCancelledRequests}`),$i.numberOfCancelledRequests=0),$i.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${$i.numberOfCancelledActiveRequests}`),$i.numberOfCancelledActiveRequests=0),$i.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${$i.numberOfFailedRequests}`),$i.numberOfFailedRequests=0)),$i.lastNumberOfActiveRequests=$i.numberOfActiveRequests)}Yo.clearForSpecs=function(){for(;Xa.length>0;){let t=Xa.pop();J0(t)}let e=Xh.length;for(let t=0;t<e;++t)J0(Xh[t]);Xh.length=0,hp={},$i.numberOfAttemptedRequests=0,$i.numberOfActiveRequests=0,$i.numberOfCancelledRequests=0,$i.numberOfCancelledActiveRequests=0,$i.numberOfFailedRequests=0,$i.numberOfActiveRequestsEver=0,$i.lastNumberOfActiveRequests=0};Yo.numberOfActiveRequestsByServer=function(e){return hp[e]};Yo.requestHeap=Xa;var Ka=Yo;function jv(e){this.name="RuntimeError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(jv.prototype=Object.create(Error.prototype),jv.prototype.constructor=jv);jv.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` ${this.stack.toString()}`),e};var le=jv;var BQ=wo(au(),1);var qv={},LA={};qv.add=function(e,t){let n=`${e.toLowerCase()}:${t}`;l(LA[n])||(LA[n]=!0)};qv.remove=function(e,t){let n=`${e.toLowerCase()}:${t}`;l(LA[n])&&delete LA[n]};function GEe(e){let t=new BQ.default(e);t.normalize();let n=t.authority();if(n.length!==0){if(t.authority(n),n.indexOf("@")!==-1&&(n=n.split("@")[1]),n.indexOf(":")===-1){let i=t.scheme();if(i.length===0&&(i=window.location.protocol,i=i.substring(0,i.length-1)),i==="http")n+=":80";else if(i==="https")n+=":443";else return}return n}}qv.contains=function(e){let t=GEe(e);return!!(l(t)&&l(LA[t]))};qv.clear=function(){LA={}};var NA=qv;var UQ=function(){try{let e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob",e.responseType==="blob"}catch{return!1}}();function Et(e){e=y(e,y.EMPTY_OBJECT),typeof e=="string"&&(e={url:e}),this._url=void 0,this._templateValues=Kh(e.templateValues,{}),this._queryParameters=Kh(e.queryParameters,{}),this.headers=Kh(e.headers,{}),this.request=y(e.request,new qo),this.proxy=e.proxy,this.retryCallback=e.retryCallback,this.retryAttempts=y(e.retryAttempts,0),this._retryCount=0,y(e.parseUrl,!0)?this.parseUrl(e.url,!0,!0):this._url=e.url,this._credits=e.credits}function Kh(e,t){return l(e)?He(e):t}Et.createIfNeeded=function(e){return e instanceof Et?e.getDerivedResource({request:e.request}):typeof e!="string"?e:new Et({url:e})};var FA;Et.supportsImageBitmapOptions=function(){return l(FA)?FA:typeof createImageBitmap!="function"?(FA=Promise.resolve(!1),FA):(FA=Et.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC"}).then(function(t){let n={imageOrientation:"flipY",premultiplyAlpha:"none",colorSpaceConversion:"none"};return Promise.all([createImageBitmap(t,n),createImageBitmap(t)])}).then(function(t){let n=bd(t[0]),i=bd(t[1]);return n[1]!==i[1]}).catch(function(){return!1}),FA)};Object.defineProperties(Et,{isBlobSupported:{get:function(){return UQ}}});Object.defineProperties(Et.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(e){this.parseUrl(e,!1,!1)}},extension:{get:function(){return X0(this._url)}},isDataUri:{get:function(){return dp(this._url)}},isBlobUri:{get:function(){return K0(this._url)}},isCrossOriginUrl:{get:function(){return Sg(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}},credits:{get:function(){return this._credits}}});Et.prototype.toString=function(){return this.getUrlComponent(!0,!0)};Et.prototype.parseUrl=function(e,t,n,i){let o=new VQ.default(e),r=WEe(o.query());this._queryParameters=t?jk(r,this.queryParameters,n):r,o.search(""),o.fragment(""),l(i)&&o.scheme()===""&&(o=o.absoluteTo(jh(i))),this._url=o.toString()};function WEe(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:cu(e)}function jk(e,t,n){if(!n)return _t(e,t);let i=He(e,!0);for(let o in t)if(t.hasOwnProperty(o)){let r=i[o],s=t[o];l(r)?(Array.isArray(r)||(r=i[o]=[r]),i[o]=r.concat(s)):i[o]=Array.isArray(s)?s.slice():s}return i}Et.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${jEe(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");let i=this._templateValues;return Object.keys(i).length>0&&(n=n.replace(/{(.*?)}/g,function(o,r){let s=i[r];return l(s)?encodeURIComponent(s):o})),t&&l(this.proxy)&&(n=this.proxy.getURL(n)),n};function jEe(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!l(e[t[0]])?`?${t[0]}`:`?${$0(e)}`}Et.prototype.setQueryParameters=function(e,t){t?this._queryParameters=jk(this._queryParameters,e,!1):this._queryParameters=jk(e,this._queryParameters,!1)};Et.prototype.appendQueryParameters=function(e){this._queryParameters=jk(e,this._queryParameters,!0)};Et.prototype.setTemplateValues=function(e,t){t?this._templateValues=_t(this._templateValues,e):this._templateValues=_t(e,this._templateValues)};Et.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,l(e.url)){let n=y(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return l(e.queryParameters)&&(t._queryParameters=_t(e.queryParameters,t.queryParameters)),l(e.templateValues)&&(t._templateValues=_t(e.templateValues,t.templateValues)),l(e.headers)&&(t.headers=_t(e.headers,t.headers)),l(e.proxy)&&(t.proxy=e.proxy),l(e.request)&&(t.request=e.request),l(e.retryCallback)&&(t.retryCallback=e.retryCallback),l(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};Et.prototype.retryOnError=function(e){let t=this.retryCallback;if(typeof t!="function"||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);let n=this;return Promise.resolve(t(this,e)).then(function(i){return++n._retryCount,i})};Et.prototype.clone=function(e){return l(e)?(e._url=this._url,e._queryParameters=He(this._queryParameters),e._templateValues=He(this._templateValues),e.headers=He(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e):new Et({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1,credits:l(this.credits)?this.credits.slice():void 0})};Et.prototype.getBaseUri=function(e){return Hv(this.getUrlComponent(e),e)};Et.prototype.appendForwardSlash=function(){this._url=zv(this._url)};Et.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};Et.fetchArrayBuffer=function(e){return new Et(e).fetchArrayBuffer()};Et.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};Et.fetchBlob=function(e){return new Et(e).fetchBlob()};Et.prototype.fetchImage=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.preferImageBitmap,!1),n=y(e.preferBlob,!1),i=y(e.flipY,!1),o=y(e.skipColorSpaceConversion,!1);if(Q5(this.request),!UQ||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return $5({resource:this,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:t});let r=this.fetchBlob();if(!l(r))return;let s,a,c,u;return Et.supportsImageBitmapOptions().then(function(f){return s=f,a=s&&t,r}).then(function(f){if(!l(f))return;if(u=f,a)return Et.createImageBitmapFromBlob(f,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o});let d=window.URL.createObjectURL(f);return c=new Et({url:d}),$5({resource:c,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:!1})}).then(function(f){if(l(f))return f.blob=u,a||window.URL.revokeObjectURL(c.url),f}).catch(function(f){return l(c)&&window.URL.revokeObjectURL(c.url),f.blob=u,Promise.reject(f)})};function $5(e){let t=e.resource,n=e.flipY,i=e.skipColorSpaceConversion,o=e.preferImageBitmap,r=t.request;r.url=t.url,r.requestFunction=function(){let a=!1;!t.isDataUri&&!t.isBlobUri&&(a=t.isCrossOriginUrl);let c=xl();return Et._Implementations.createImage(r,a,c,n,i,o),c.promise};let s=Ka.request(r);if(l(s))return s.catch(function(a){return r.state!==$n.FAILED?Promise.reject(a):t.retryOnError(a).then(function(c){return c?(r.state=$n.UNISSUED,r.deferred=void 0,$5({resource:t,flipY:n,skipColorSpaceConversion:i,preferImageBitmap:o})):Promise.reject(a)})})}Et.fetchImage=function(e){return new Et(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};Et.prototype.fetchText=function(){return this.fetch({responseType:"text"})};Et.fetchText=function(e){return new Et(e).fetchText()};Et.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(l(e))return e.then(function(t){if(l(t))return JSON.parse(t)})};Et.fetchJson=function(e){return new Et(e).fetchJson()};Et.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};Et.fetchXML=function(e){return new Et(e).fetchXML()};Et.prototype.fetchJsonp=function(e){e=y(e,"callback"),Q5(this.request);let t;do t=`loadJsonp${R.nextRandomNumber().toString().substring(2,8)}`;while(l(window[t]));return zQ(this,e,t)};function zQ(e,t,n){let i={};i[t]=n,e.setQueryParameters(i);let o=e.request,r=e.url;o.url=r,o.requestFunction=function(){let a=xl();return window[n]=function(c){a.resolve(c);try{delete window[n]}catch{window[n]=void 0}},Et._Implementations.loadAndExecuteScript(r,n,a),a.promise};let s=Ka.request(o);if(l(s))return s.catch(function(a){return o.state!==$n.FAILED?Promise.reject(a):e.retryOnError(a).then(function(c){return c?(o.state=$n.UNISSUED,o.deferred=void 0,zQ(e,t,n)):Promise.reject(a)})})}Et.fetchJsonp=function(e){return new Et(e).fetchJsonp(e.callbackParameterName)};Et.prototype._makeRequest=function(e){let t=this;Q5(t.request);let n=t.request,i=t.url;n.url=i,n.requestFunction=function(){let r=e.responseType,s=_t(e.headers,t.headers),a=e.overrideMimeType,c=e.method,u=e.data,f=xl(),d=Et._Implementations.loadWithXhr(i,r,c,u,s,f,a);return l(d)&&l(d.abort)&&(n.cancelFunction=function(){d.abort()}),f.promise};let o=Ka.request(n);if(l(o))return o.then(function(r){return n.cancelFunction=void 0,r}).catch(function(r){return n.cancelFunction=void 0,n.state!==$n.FAILED?Promise.reject(r):t.retryOnError(r).then(function(s){return s?(n.state=$n.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(r)})})};function Q5(e){if(e.state===$n.ISSUED||e.state===$n.ACTIVE)throw new le("The Resource is already being fetched.");e.state=$n.UNISSUED,e.deferred=void 0}var qEe=/^data:(.*?)(;base64)?,(.*)$/;function Wk(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function kQ(e,t){let n=Wk(e,t),i=new ArrayBuffer(n.length),o=new Uint8Array(i);for(let r=0;r<n.length;r++)o[r]=n.charCodeAt(r);return i}function YEe(e,t){t=y(t,"");let n=e[1],i=!!e[2],o=e[3],r,s;switch(t){case"":case"text":return Wk(i,o);case"arraybuffer":return kQ(i,o);case"blob":return r=kQ(i,o),new Blob([r],{type:n});case"document":return s=new DOMParser,s.parseFromString(Wk(i,o),n);case"json":return JSON.parse(Wk(i,o));default:}}Et.prototype.fetch=function(e){return e=Kh(e,{}),e.method="GET",this._makeRequest(e)};Et.fetch=function(e){return new Et(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Et.prototype.delete=function(e){return e=Kh(e,{}),e.method="DELETE",this._makeRequest(e)};Et.delete=function(e){return new Et(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})};Et.prototype.head=function(e){return e=Kh(e,{}),e.method="HEAD",this._makeRequest(e)};Et.head=function(e){return new Et(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Et.prototype.options=function(e){return e=Kh(e,{}),e.method="OPTIONS",this._makeRequest(e)};Et.options=function(e){return new Et(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Et.prototype.post=function(e,t){return go.defined("data",e),t=Kh(t,{}),t.method="POST",t.data=e,this._makeRequest(t)};Et.post=function(e){return new Et(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Et.prototype.put=function(e,t){return go.defined("data",e),t=Kh(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)};Et.put=function(e){return new Et(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Et.prototype.patch=function(e,t){return go.defined("data",e),t=Kh(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)};Et.patch=function(e){return new Et(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Et._Implementations={};Et._Implementations.loadImageElement=function(e,t,n){let i=new Image;i.onload=function(){i.naturalWidth===0&&i.naturalHeight===0&&i.width===0&&i.height===0&&(i.width=300,i.height=150),n.resolve(i)},i.onerror=function(o){n.reject(o)},t&&(NA.contains(e)?i.crossOrigin="use-credentials":i.crossOrigin=""),i.src=e};Et._Implementations.createImage=function(e,t,n,i,o,r){let s=e.url;Et.supportsImageBitmapOptions().then(function(a){if(!(a&&r)){Et._Implementations.loadImageElement(s,t,n);return}let c="blob",u="GET",f=xl(),d=Et._Implementations.loadWithXhr(s,c,u,void 0,void 0,f,void 0,void 0,void 0);return l(d)&&l(d.abort)&&(e.cancelFunction=function(){d.abort()}),f.promise.then(function(p){if(!l(p)){n.reject(new le(`Successfully retrieved ${s} but it contained no content.`));return}return Et.createImageBitmapFromBlob(p,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o})}).then(function(p){n.resolve(p)})}).catch(function(a){n.reject(a)})};Et.createImageBitmapFromBlob=function(e,t){return go.defined("options",t),go.typeOf.bool("options.flipY",t.flipY),go.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),go.typeOf.bool("options.skipColorSpaceConversion",t.skipColorSpaceConversion),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:t.skipColorSpaceConversion?"none":"default"})};function XEe(e,t,n,i,o,r,s){fetch(e,{method:n,headers:o}).then(async a=>{if(!a.ok){let c={};a.headers.forEach((u,f)=>{c[f]=u}),r.reject(new Yh(a.status,a,c));return}switch(t){case"text":r.resolve(a.text());break;case"json":r.resolve(a.json());break;default:r.resolve(new Uint8Array(await a.arrayBuffer()).buffer);break}}).catch(()=>{r.reject(new Yh)})}var KEe=typeof XMLHttpRequest>"u";Et._Implementations.loadWithXhr=function(e,t,n,i,o,r,s){let a=qEe.exec(e);if(a!==null){r.resolve(YEe(a,t));return}if(KEe){XEe(e,t,n,i,o,r,s);return}let c=new XMLHttpRequest;if(NA.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),l(s)&&l(c.overrideMimeType)&&c.overrideMimeType(s),l(o))for(let f in o)o.hasOwnProperty(f)&&c.setRequestHeader(f,o[f]);l(t)&&(c.responseType=t);let u=!1;return typeof e=="string"&&(u=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),c.onload=function(){if((c.status<200||c.status>=300)&&!(u&&c.status===0)){r.reject(new Yh(c.status,c.response,c.getAllResponseHeaders()));return}let f=c.response,d=c.responseType;if(n==="HEAD"||n==="OPTIONS"){let g=c.getAllResponseHeaders().trim().split(/[\r\n]+/),m={};g.forEach(function(x){let b=x.split(": "),T=b.shift();m[T]=b.join(": ")}),r.resolve(m);return}if(c.status===204)r.resolve(void 0);else if(l(f)&&(!l(t)||d===t))r.resolve(f);else if(t==="json"&&typeof f=="string")try{r.resolve(JSON.parse(f))}catch(p){r.reject(p)}else(d===""||d==="document")&&l(c.responseXML)&&c.responseXML.hasChildNodes()?r.resolve(c.responseXML):(d===""||d==="text")&&l(c.responseText)?r.resolve(c.responseText):r.reject(new le("Invalid XMLHttpRequest response type."))},c.onerror=function(f){r.reject(new Yh)},c.send(i),c};Et._Implementations.loadAndExecuteScript=function(e,t,n){return Z0(e,t).catch(function(i){n.reject(i)})};Et._DefaultImplementations={};Et._DefaultImplementations.createImage=Et._Implementations.createImage;Et._DefaultImplementations.loadWithXhr=Et._Implementations.loadWithXhr;Et._DefaultImplementations.loadAndExecuteScript=Et._Implementations.loadAndExecuteScript;Et.DEFAULT=Object.freeze(new Et({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var De=Et;function Xv(e){e=y(e,y.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=y(e.addNewLeapSeconds,!0),l(e.data)?HQ(this,e.data):HQ(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}Xv.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=De.createIfNeeded(e),i;try{i=await n.fetchJson()}catch{throw new le(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new Xv({addNewLeapSeconds:t.addNewLeapSeconds,data:i})};Xv.NONE=Object.freeze({compute:function(e,t){return l(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new Cg(0,0,0,0,0),t}});Xv.prototype.compute=function(e,t){if(!l(this._samples))return;if(l(t)||(t=new Cg(0,0,0,0,0)),this._samples.length===0)return t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0,t;let n=this._dates,i=this._lastIndex,o=0,r=0;if(l(i)){let a=n[i],c=n[i+1],u=J.lessThanOrEquals(a,e),f=!l(c),d=f||J.greaterThanOrEquals(c,e);if(u&&d)return o=i,!f&&c.equals(e)&&++o,r=o+1,WQ(this,n,this._samples,e,o,r,t),t}let s=Do(n,e,J.compare,this._dateColumn);return s>=0?(s<n.length-1&&n[s+1].equals(e)&&++s,o=s,r=s):(r=~s,o=r-1,o<0&&(o=0)),this._lastIndex=o,WQ(this,n,this._samples,e,o,r,t),t};function ZEe(e,t){return J.compare(e.julianDate,t)}function HQ(e,t){if(!l(t.columnNames))throw new le("Error in loaded EOP data: The columnNames property is required.");if(!l(t.samples))throw new le("Error in loaded EOP data: The samples property is required.");let n=t.columnNames.indexOf("modifiedJulianDateUtc"),i=t.columnNames.indexOf("xPoleWanderRadians"),o=t.columnNames.indexOf("yPoleWanderRadians"),r=t.columnNames.indexOf("ut1MinusUtcSeconds"),s=t.columnNames.indexOf("xCelestialPoleOffsetRadians"),a=t.columnNames.indexOf("yCelestialPoleOffsetRadians"),c=t.columnNames.indexOf("taiMinusUtcSeconds");if(n<0||i<0||o<0||r<0||s<0||a<0||c<0)throw new le("Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");let u=e._samples=t.samples,f=e._dates=[];e._dateColumn=n,e._xPoleWanderRadiansColumn=i,e._yPoleWanderRadiansColumn=o,e._ut1MinusUtcSecondsColumn=r,e._xCelestialPoleOffsetRadiansColumn=s,e._yCelestialPoleOffsetRadiansColumn=a,e._taiMinusUtcSecondsColumn=c,e._columnCount=t.columnNames.length,e._lastIndex=void 0;let d,p=e._addNewLeapSeconds;for(let g=0,m=u.length;g<m;g+=e._columnCount){let x=u[g+n],b=u[g+c],T=x+Xn.MODIFIED_JULIAN_DATE_DIFFERENCE,C=new J(T,b,jn.TAI);if(f.push(C),p){if(b!==d&&l(d)){let A=J.leapSeconds,E=Do(A,C,ZEe);if(E<0){let v=new ki(C,b);A.splice(~E,0,v)}}d=b}}}function GQ(e,t,n,i,o){let r=n*i;o.xPoleWander=t[r+e._xPoleWanderRadiansColumn],o.yPoleWander=t[r+e._yPoleWanderRadiansColumn],o.xPoleOffset=t[r+e._xCelestialPoleOffsetRadiansColumn],o.yPoleOffset=t[r+e._yCelestialPoleOffsetRadiansColumn],o.ut1MinusUtc=t[r+e._ut1MinusUtcSecondsColumn]}function Yv(e,t,n){return t+e*(n-t)}function WQ(e,t,n,i,o,r,s){let a=e._columnCount;if(r>t.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;let c=t[o],u=t[r];if(c.equals(u)||i.equals(c))return GQ(e,n,o,a,s),s;if(i.equals(u))return GQ(e,n,r,a,s),s;let f=J.secondsDifference(i,c)/J.secondsDifference(u,c),d=o*a,p=r*a,g=n[d+e._ut1MinusUtcSecondsColumn],m=n[p+e._ut1MinusUtcSecondsColumn],x=m-g;if(x>.5||x<-.5){let b=n[d+e._taiMinusUtcSecondsColumn],T=n[p+e._taiMinusUtcSecondsColumn];b!==T&&(u.equals(i)?g=m:m-=T-b)}return s.xPoleWander=Yv(f,n[d+e._xPoleWanderRadiansColumn],n[p+e._xPoleWanderRadiansColumn]),s.yPoleWander=Yv(f,n[d+e._yPoleWanderRadiansColumn],n[p+e._yPoleWanderRadiansColumn]),s.xPoleOffset=Yv(f,n[d+e._xCelestialPoleOffsetRadiansColumn],n[p+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=Yv(f,n[d+e._yCelestialPoleOffsetRadiansColumn],n[p+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=Yv(f,g,m),s}var Kv=Xv;function Za(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.roll=y(n,0)}Za.fromQuaternion=function(e,t){l(t)||(t=new Za);let n=2*(e.w*e.y-e.z*e.x),i=1-2*(e.x*e.x+e.y*e.y),o=2*(e.w*e.x+e.y*e.z),r=1-2*(e.y*e.y+e.z*e.z),s=2*(e.w*e.z+e.x*e.y);return t.heading=-Math.atan2(s,r),t.roll=Math.atan2(o,i),t.pitch=-R.asinClamped(n),t};Za.fromDegrees=function(e,t,n,i){return l(i)||(i=new Za),i.heading=e*R.RADIANS_PER_DEGREE,i.pitch=t*R.RADIANS_PER_DEGREE,i.roll=n*R.RADIANS_PER_DEGREE,i};Za.clone=function(e,t){if(l(e))return l(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new Za(e.heading,e.pitch,e.roll)};Za.equals=function(e,t){return e===t||l(e)&&l(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};Za.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&R.equalsEpsilon(e.heading,t.heading,n,i)&&R.equalsEpsilon(e.pitch,t.pitch,n,i)&&R.equalsEpsilon(e.roll,t.roll,n,i)};Za.prototype.clone=function(e){return Za.clone(this,e)};Za.prototype.equals=function(e){return Za.equals(this,e)};Za.prototype.equalsEpsilon=function(e,t,n){return Za.equalsEpsilon(this,e,t,n)};Za.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var $a=Za;var jQ={},qQ=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function $Ee(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t<n;++t){let i=e[t].getAttribute("src"),o=qQ.exec(i);if(o!==null)return o[1]}}var qk;function YQ(e){return typeof document>"u"?e:(l(qk)||(qk=document.createElement("a")),qk.href=e,qk.href)}var ex;function XQ(){if(l(ex))return ex;let e;return typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:l(jQ?.url)?e=jh(".",jQ.url):typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(require.toUrl)?e=jh("..",tx("Core/buildModuleUrl.js")):e=$Ee(),ex=new De({url:YQ(e)}),ex.appendForwardSlash(),ex}function QEe(e){return YQ(require.toUrl(`../${e}`))}function KQ(e){return XQ().getDerivedResource({url:e}).url}var Yk;function tx(e){return l(Yk)||(typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(require.toUrl)?Yk=QEe:Yk=KQ),Yk(e)}tx._cesiumScriptRegex=qQ;tx._buildModuleUrlFromBaseUrl=KQ;tx._clearBaseResource=function(){ex=void 0};tx.setBaseUrl=function(e){ex=De.DEFAULT.getDerivedResource({url:e})};tx.getCesiumBaseUrl=XQ;var en=tx;function JEe(e,t,n){this.x=e,this.y=t,this.s=n}var nx=JEe;function tG(e){e=y(e,y.EMPTY_OBJECT),this._xysFileUrlTemplate=De.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=y(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=y(e.sampleZeroJulianEphemerisDate,24423965e-1),this._sampleZeroDateTT=new J(this._sampleZeroJulianEphemerisDate,0,jn.TAI),this._stepSizeDays=y(e.stepSizeDays,1),this._samplesPerXysFile=y(e.samplesPerXysFile,1e3),this._totalSamples=y(e.totalSamples,27426),this._samples=new Array(this._totalSamples*3),this._chunkDownloadsInProgress=[];let t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),o=Math.pow(this._stepSizeDays,t);for(let r=0;r<=t;++r){n[r]=o,i[r]=r*this._stepSizeDays;for(let s=0;s<=t;++s)s!==r&&(n[r]*=r-s);n[r]=1/n[r]}this._work=new Array(t+1),this._coef=new Array(t+1)}var eSe=new J(0,0,jn.TAI);function J5(e,t,n){let i=eSe;return i.dayNumber=t,i.secondsOfDay=n,J.daysDifference(i,e._sampleZeroDateTT)}tG.prototype.preload=function(e,t,n,i){let o=J5(this,e,t),r=J5(this,n,i),s=o/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);let a=r/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;a>=this._totalSamples&&(a=this._totalSamples-1);let c=s/this._samplesPerXysFile|0,u=a/this._samplesPerXysFile|0,f=[];for(let d=c;d<=u;++d)f.push(eG(this,d));return Promise.all(f)};tG.prototype.computeXysRadians=function(e,t,n){let i=J5(this,e,t);if(i<0)return;let o=i/this._stepSizeDays|0;if(o>=this._totalSamples)return;let r=this._interpolationOrder,s=o-(r/2|0);s<0&&(s=0);let a=s+r;a>=this._totalSamples&&(a=this._totalSamples-1,s=a-r,s<0&&(s=0));let c=!1,u=this._samples;if(l(u[s*3])||(eG(this,s/this._samplesPerXysFile|0),c=!0),l(u[a*3])||(eG(this,a/this._samplesPerXysFile|0),c=!0),c)return;l(n)?(n.x=0,n.y=0,n.s=0):n=new nx(0,0,0);let f=i-s*this._stepSizeDays,d=this._work,p=this._denominators,g=this._coef,m=this._xTable,x,b;for(x=0;x<=r;++x)d[x]=f-m[x];for(x=0;x<=r;++x){for(g[x]=1,b=0;b<=r;++b)b!==x&&(g[x]*=d[b]);g[x]*=p[x];let T=(s+x)*3;n.x+=g[x]*u[T++],n.y+=g[x]*u[T++],n.s+=g[x]*u[T]}return n};function eG(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n,i=e._xysFileUrlTemplate;l(i)?n=i.getDerivedResource({templateValues:{0:t}}):n=new De({url:en(`Assets/IAU2006_XYS/IAU2006_XYS_${t}.json`)});let o=n.fetchJson().then(function(r){e._chunkDownloadsInProgress[t]=!1;let s=e._samples,a=r.samples,c=t*e._samplesPerXysFile*3;for(let u=0,f=a.length;u<f;++u)s[c+u]=a[u]});return e._chunkDownloadsInProgress[t]=o,o}var Zv=tG;function et(e,t,n,i,o,r,s,a,c){this[0]=y(e,0),this[1]=y(i,0),this[2]=y(s,0),this[3]=y(t,0),this[4]=y(o,0),this[5]=y(a,0),this[6]=y(n,0),this[7]=y(r,0),this[8]=y(c,0)}et.packedLength=9;et.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t};et.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new et),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n};et.packArray=function(e,t){let n=e.length,i=n*9;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)et.pack(e[o],t,o*9);return t};et.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/9:t=new Array(n/9);for(let i=0;i<n;i+=9){let o=i/9;t[o]=et.unpack(e,i,t[o])}return t};et.clone=function(e,t){if(l(e))return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new et(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])};et.fromArray=et.unpack;et.fromColumnMajorArray=function(e,t){return et.clone(e,t)};et.fromRowMajorArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new et(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])};et.fromQuaternion=function(e,t){let n=e.x*e.x,i=e.x*e.y,o=e.x*e.z,r=e.x*e.w,s=e.y*e.y,a=e.y*e.z,c=e.y*e.w,u=e.z*e.z,f=e.z*e.w,d=e.w*e.w,p=n-s-u+d,g=2*(i-f),m=2*(o+c),x=2*(i+f),b=-n+s-u+d,T=2*(a-r),C=2*(o-c),A=2*(a+r),E=-n-s+u+d;return l(t)?(t[0]=p,t[1]=x,t[2]=C,t[3]=g,t[4]=b,t[5]=A,t[6]=m,t[7]=T,t[8]=E,t):new et(p,g,m,x,b,T,C,A,E)};et.fromHeadingPitchRoll=function(e,t){let n=Math.cos(-e.pitch),i=Math.cos(-e.heading),o=Math.cos(e.roll),r=Math.sin(-e.pitch),s=Math.sin(-e.heading),a=Math.sin(e.roll),c=n*i,u=-o*s+a*r*i,f=a*s+o*r*i,d=n*s,p=o*i+a*r*s,g=-a*i+o*r*s,m=-r,x=a*n,b=o*n;return l(t)?(t[0]=c,t[1]=d,t[2]=m,t[3]=u,t[4]=p,t[5]=x,t[6]=f,t[7]=g,t[8]=b,t):new et(c,u,f,d,p,g,m,x,b)};et.fromScale=function(e,t){return l(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new et(e.x,0,0,0,e.y,0,0,0,e.z)};et.fromUniformScale=function(e,t){return l(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new et(e,0,0,0,e,0,0,0,e)};et.fromCrossProduct=function(e,t){return l(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new et(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)};et.fromRotationX=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new et(1,0,0,0,n,-i,0,i,n)};et.fromRotationY=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new et(n,0,i,0,1,0,-i,0,n)};et.fromRotationZ=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new et(n,-i,0,i,n,0,0,0,1)};et.toArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]};et.getElementIndex=function(e,t){return e*3+t};et.getColumn=function(e,t,n){let i=t*3,o=e[i],r=e[i+1],s=e[i+2];return n.x=o,n.y=r,n.z=s,n};et.setColumn=function(e,t,n,i){i=et.clone(e,i);let o=t*3;return i[o]=n.x,i[o+1]=n.y,i[o+2]=n.z,i};et.getRow=function(e,t,n){let i=e[t],o=e[t+3],r=e[t+6];return n.x=i,n.y=o,n.z=r,n};et.setRow=function(e,t,n,i){return i=et.clone(e,i),i[t]=n.x,i[t+3]=n.y,i[t+6]=n.z,i};var tSe=new h;et.setScale=function(e,t,n){let i=et.getScale(e,tSe),o=t.x/i.x,r=t.y/i.y,s=t.z/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3]*r,n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*s,n[7]=e[7]*s,n[8]=e[8]*s,n};var nSe=new h;et.setUniformScale=function(e,t,n){let i=et.getScale(e,nSe),o=t/i.x,r=t/i.y,s=t/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3]*r,n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*s,n[7]=e[7]*s,n[8]=e[8]*s,n};var nG=new h;et.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],nG)),t.y=h.magnitude(h.fromElements(e[3],e[4],e[5],nG)),t.z=h.magnitude(h.fromElements(e[6],e[7],e[8],nG)),t};var ZQ=new h;et.getMaximumScale=function(e){return et.getScale(e,ZQ),h.maximumComponent(ZQ)};var iSe=new h;et.setRotation=function(e,t,n){let i=et.getScale(e,iSe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.x,n[3]=t[3]*i.y,n[4]=t[4]*i.y,n[5]=t[5]*i.y,n[6]=t[6]*i.z,n[7]=t[7]*i.z,n[8]=t[8]*i.z,n};var oSe=new h;et.getRotation=function(e,t){let n=et.getScale(e,oSe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[3]/n.y,t[4]=e[4]/n.y,t[5]=e[5]/n.y,t[6]=e[6]/n.z,t[7]=e[7]/n.z,t[8]=e[8]/n.z,t};et.multiply=function(e,t,n){let i=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],o=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],r=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],s=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],a=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],c=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],u=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],f=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],d=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=i,n[1]=o,n[2]=r,n[3]=s,n[4]=a,n[5]=c,n[6]=u,n[7]=f,n[8]=d,n};et.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n};et.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n};et.multiplyByVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[3]*o+e[6]*r,a=e[1]*i+e[4]*o+e[7]*r,c=e[2]*i+e[5]*o+e[8]*r;return n.x=s,n.y=a,n.z=c,n};et.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n};et.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n};et.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n};et.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t};et.transpose=function(e,t){let n=e[0],i=e[3],o=e[6],r=e[1],s=e[4],a=e[7],c=e[2],u=e[5],f=e[8];return t[0]=n,t[1]=i,t[2]=o,t[3]=r,t[4]=s,t[5]=a,t[6]=c,t[7]=u,t[8]=f,t};function rSe(e){let t=0;for(let n=0;n<9;++n){let i=e[n];t+=i*i}return Math.sqrt(t)}var iG=[1,0,0],oG=[2,2,1];function sSe(e){let t=0;for(let n=0;n<3;++n){let i=e[et.getElementIndex(oG[n],iG[n])];t+=2*i*i}return Math.sqrt(t)}function aSe(e,t){let n=R.EPSILON15,i=0,o=1;for(let u=0;u<3;++u){let f=Math.abs(e[et.getElementIndex(oG[u],iG[u])]);f>i&&(o=u,i=f)}let r=1,s=0,a=iG[o],c=oG[o];if(Math.abs(e[et.getElementIndex(c,a)])>n){let u=e[et.getElementIndex(c,c)],f=e[et.getElementIndex(a,a)],d=e[et.getElementIndex(c,a)],p=(u-f)/2/d,g;p<0?g=-1/(-p+Math.sqrt(1+p*p)):g=1/(p+Math.sqrt(1+p*p)),r=1/Math.sqrt(1+g*g),s=g*r}return t=et.clone(et.IDENTITY,t),t[et.getElementIndex(a,a)]=t[et.getElementIndex(c,c)]=r,t[et.getElementIndex(c,a)]=s,t[et.getElementIndex(a,c)]=-s,t}var Xk=new et,$Q=new et;et.computeEigenDecomposition=function(e,t){let n=R.EPSILON20,i=10,o=0,r=0;l(t)||(t={});let s=t.unitary=et.clone(et.IDENTITY,t.unitary),a=t.diagonal=et.clone(e,t.diagonal),c=n*rSe(a);for(;r<i&&sSe(a)>c;)aSe(a,Xk),et.transpose(Xk,$Q),et.multiply(a,Xk,a),et.multiply($Q,a,a),et.multiply(s,Xk,s),++o>2&&(++r,o=0);return t};et.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t};et.determinant=function(e){let t=e[0],n=e[3],i=e[6],o=e[1],r=e[4],s=e[7],a=e[2],c=e[5],u=e[8];return t*(r*u-c*s)+o*(c*i-n*u)+a*(n*s-r*i)};et.inverse=function(e,t){let n=e[0],i=e[1],o=e[2],r=e[3],s=e[4],a=e[5],c=e[6],u=e[7],f=e[8],d=et.determinant(e);t[0]=s*f-u*a,t[1]=u*o-i*f,t[2]=i*a-s*o,t[3]=c*a-r*f,t[4]=n*f-c*o,t[5]=r*o-n*a,t[6]=r*u-c*s,t[7]=c*i-n*u,t[8]=n*s-r*i;let p=1/d;return et.multiplyByScalar(t,p,t)};var cSe=new et;et.inverseTranspose=function(e,t){return et.inverse(et.transpose(e,cSe),t)};et.equals=function(e,t){return e===t||l(e)&&l(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]};et.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n};et.IDENTITY=Object.freeze(new et(1,0,0,0,1,0,0,0,1));et.ZERO=Object.freeze(new et(0,0,0,0,0,0,0,0,0));et.COLUMN0ROW0=0;et.COLUMN0ROW1=1;et.COLUMN0ROW2=2;et.COLUMN1ROW0=3;et.COLUMN1ROW1=4;et.COLUMN1ROW2=5;et.COLUMN2ROW0=6;et.COLUMN2ROW1=7;et.COLUMN2ROW2=8;Object.defineProperties(et.prototype,{length:{get:function(){return et.packedLength}}});et.prototype.clone=function(e){return et.clone(this,e)};et.prototype.equals=function(e){return et.equals(this,e)};et.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]};et.prototype.equalsEpsilon=function(e,t){return et.equalsEpsilon(this,e,t)};et.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]}) (${this[1]}, ${this[4]}, ${this[7]}) (${this[2]}, ${this[5]}, ${this[8]})`};var $=et;function $e(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){this[0]=y(e,0),this[1]=y(o,0),this[2]=y(c,0),this[3]=y(p,0),this[4]=y(t,0),this[5]=y(r,0),this[6]=y(u,0),this[7]=y(g,0),this[8]=y(n,0),this[9]=y(s,0),this[10]=y(f,0),this[11]=y(m,0),this[12]=y(i,0),this[13]=y(a,0),this[14]=y(d,0),this[15]=y(x,0)}$e.packedLength=16;$e.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t};$e.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new $e),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n};$e.packArray=function(e,t){let n=e.length,i=n*16;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)$e.pack(e[o],t,o*16);return t};$e.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/16:t=new Array(n/16);for(let i=0;i<n;i+=16){let o=i/16;t[o]=$e.unpack(e,i,t[o])}return t};$e.clone=function(e,t){if(l(e))return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new $e(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])};$e.fromArray=$e.unpack;$e.fromColumnMajorArray=function(e,t){return $e.clone(e,t)};$e.fromRowMajorArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new $e(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])};$e.fromRotationTranslation=function(e,t,n){return t=y(t,h.ZERO),l(n)?(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=0,n[4]=e[3],n[5]=e[4],n[6]=e[5],n[7]=0,n[8]=e[6],n[9]=e[7],n[10]=e[8],n[11]=0,n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=1,n):new $e(e[0],e[3],e[6],t.x,e[1],e[4],e[7],t.y,e[2],e[5],e[8],t.z,0,0,0,1)};$e.fromTranslationQuaternionRotationScale=function(e,t,n,i){l(i)||(i=new $e);let o=n.x,r=n.y,s=n.z,a=t.x*t.x,c=t.x*t.y,u=t.x*t.z,f=t.x*t.w,d=t.y*t.y,p=t.y*t.z,g=t.y*t.w,m=t.z*t.z,x=t.z*t.w,b=t.w*t.w,T=a-d-m+b,C=2*(c-x),A=2*(u+g),E=2*(c+x),v=-a+d-m+b,D=2*(p-f),O=2*(u-g),I=2*(p+f),L=-a-d+m+b;return i[0]=T*o,i[1]=E*o,i[2]=O*o,i[3]=0,i[4]=C*r,i[5]=v*r,i[6]=I*r,i[7]=0,i[8]=A*s,i[9]=D*s,i[10]=L*s,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,i};$e.fromTranslationRotationScale=function(e,t){return $e.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)};$e.fromTranslation=function(e,t){return $e.fromRotationTranslation($.IDENTITY,e,t)};$e.fromScale=function(e,t){return l(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new $e(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)};$e.fromUniformScale=function(e,t){return l(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new $e(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};$e.fromRotation=function(e,t){return l(t)||(t=new $e),t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t};var BA=new h,kA=new h,$v=new h;$e.fromCamera=function(e,t){let n=e.position,i=e.direction,o=e.up;h.normalize(i,BA),h.normalize(h.cross(BA,o,kA),kA),h.normalize(h.cross(kA,BA,$v),$v);let r=kA.x,s=kA.y,a=kA.z,c=BA.x,u=BA.y,f=BA.z,d=$v.x,p=$v.y,g=$v.z,m=n.x,x=n.y,b=n.z,T=r*-m+s*-x+a*-b,C=d*-m+p*-x+g*-b,A=c*m+u*x+f*b;return l(t)?(t[0]=r,t[1]=d,t[2]=-c,t[3]=0,t[4]=s,t[5]=p,t[6]=-u,t[7]=0,t[8]=a,t[9]=g,t[10]=-f,t[11]=0,t[12]=T,t[13]=C,t[14]=A,t[15]=1,t):new $e(r,s,a,T,d,p,g,C,-c,-u,-f,A,0,0,0,1)};$e.computePerspectiveFieldOfView=function(e,t,n,i,o){let s=1/Math.tan(e*.5),a=s/t,c=(i+n)/(n-i),u=2*i*n/(n-i);return o[0]=a,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=-1,o[12]=0,o[13]=0,o[14]=u,o[15]=0,o};$e.computeOrthographicOffCenter=function(e,t,n,i,o,r,s){let a=1/(t-e),c=1/(i-n),u=1/(r-o),f=-(t+e)*a,d=-(i+n)*c,p=-(r+o)*u;return a*=2,c*=2,u*=-2,s[0]=a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=c,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=u,s[11]=0,s[12]=f,s[13]=d,s[14]=p,s[15]=1,s};$e.computePerspectiveOffCenter=function(e,t,n,i,o,r,s){let a=2*o/(t-e),c=2*o/(i-n),u=(t+e)/(t-e),f=(i+n)/(i-n),d=-(r+o)/(r-o),p=-1,g=-2*r*o/(r-o);return s[0]=a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=c,s[6]=0,s[7]=0,s[8]=u,s[9]=f,s[10]=d,s[11]=p,s[12]=0,s[13]=0,s[14]=g,s[15]=0,s};$e.computeInfinitePerspectiveOffCenter=function(e,t,n,i,o,r){let s=2*o/(t-e),a=2*o/(i-n),c=(t+e)/(t-e),u=(i+n)/(i-n),f=-1,d=-1,p=-2*o;return r[0]=s,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=a,r[6]=0,r[7]=0,r[8]=c,r[9]=u,r[10]=f,r[11]=d,r[12]=0,r[13]=0,r[14]=p,r[15]=0,r};$e.computeViewportTransformation=function(e,t,n,i){l(i)||(i=new $e),e=y(e,y.EMPTY_OBJECT);let o=y(e.x,0),r=y(e.y,0),s=y(e.width,0),a=y(e.height,0);t=y(t,0),n=y(n,1);let c=s*.5,u=a*.5,f=(n-t)*.5,d=c,p=u,g=f,m=o+c,x=r+u,b=t+f,T=1;return i[0]=d,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=p,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=g,i[11]=0,i[12]=m,i[13]=x,i[14]=b,i[15]=T,i};$e.computeView=function(e,t,n,i,o){return o[0]=i.x,o[1]=n.x,o[2]=-t.x,o[3]=0,o[4]=i.y,o[5]=n.y,o[6]=-t.y,o[7]=0,o[8]=i.z,o[9]=n.z,o[10]=-t.z,o[11]=0,o[12]=-h.dot(i,e),o[13]=-h.dot(n,e),o[14]=h.dot(t,e),o[15]=1,o};$e.toArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]};$e.getElementIndex=function(e,t){return e*4+t};$e.getColumn=function(e,t,n){let i=t*4,o=e[i],r=e[i+1],s=e[i+2],a=e[i+3];return n.x=o,n.y=r,n.z=s,n.w=a,n};$e.setColumn=function(e,t,n,i){i=$e.clone(e,i);let o=t*4;return i[o]=n.x,i[o+1]=n.y,i[o+2]=n.z,i[o+3]=n.w,i};$e.getRow=function(e,t,n){let i=e[t],o=e[t+4],r=e[t+8],s=e[t+12];return n.x=i,n.y=o,n.z=r,n.w=s,n};$e.setRow=function(e,t,n,i){return i=$e.clone(e,i),i[t]=n.x,i[t+4]=n.y,i[t+8]=n.z,i[t+12]=n.w,i};$e.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var lSe=new h;$e.setScale=function(e,t,n){let i=$e.getScale(e,lSe),o=t.x/i.x,r=t.y/i.y,s=t.z/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3],n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*r,n[7]=e[7],n[8]=e[8]*s,n[9]=e[9]*s,n[10]=e[10]*s,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var uSe=new h;$e.setUniformScale=function(e,t,n){let i=$e.getScale(e,uSe),o=t/i.x,r=t/i.y,s=t/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3],n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*r,n[7]=e[7],n[8]=e[8]*s,n[9]=e[9]*s,n[10]=e[10]*s,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var rG=new h;$e.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],rG)),t.y=h.magnitude(h.fromElements(e[4],e[5],e[6],rG)),t.z=h.magnitude(h.fromElements(e[8],e[9],e[10],rG)),t};var QQ=new h;$e.getMaximumScale=function(e){return $e.getScale(e,QQ),h.maximumComponent(QQ)};var fSe=new h;$e.setRotation=function(e,t,n){let i=$e.getScale(e,fSe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.x,n[3]=e[3],n[4]=t[3]*i.y,n[5]=t[4]*i.y,n[6]=t[5]*i.y,n[7]=e[7],n[8]=t[6]*i.z,n[9]=t[7]*i.z,n[10]=t[8]*i.z,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var dSe=new h;$e.getRotation=function(e,t){let n=$e.getScale(e,dSe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[4]/n.y,t[4]=e[5]/n.y,t[5]=e[6]/n.y,t[6]=e[8]/n.z,t[7]=e[9]/n.z,t[8]=e[10]/n.z,t};$e.multiply=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[3],a=e[4],c=e[5],u=e[6],f=e[7],d=e[8],p=e[9],g=e[10],m=e[11],x=e[12],b=e[13],T=e[14],C=e[15],A=t[0],E=t[1],v=t[2],D=t[3],O=t[4],I=t[5],L=t[6],N=t[7],_=t[8],S=t[9],w=t[10],P=t[11],M=t[12],B=t[13],U=t[14],V=t[15],G=i*A+a*E+d*v+x*D,k=o*A+c*E+p*v+b*D,Y=r*A+u*E+g*v+T*D,W=s*A+f*E+m*v+C*D,Q=i*O+a*I+d*L+x*N,j=o*O+c*I+p*L+b*N,K=r*O+u*I+g*L+T*N,Z=s*O+f*I+m*L+C*N,he=i*_+a*S+d*w+x*P,be=o*_+c*S+p*w+b*P,re=r*_+u*S+g*w+T*P,_e=s*_+f*S+m*w+C*P,xe=i*M+a*B+d*U+x*V,Ce=o*M+c*B+p*U+b*V,we=r*M+u*B+g*U+T*V,Oe=s*M+f*B+m*U+C*V;return n[0]=G,n[1]=k,n[2]=Y,n[3]=W,n[4]=Q,n[5]=j,n[6]=K,n[7]=Z,n[8]=he,n[9]=be,n[10]=re,n[11]=_e,n[12]=xe,n[13]=Ce,n[14]=we,n[15]=Oe,n};$e.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n};$e.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n};$e.multiplyTransformation=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],u=e[8],f=e[9],d=e[10],p=e[12],g=e[13],m=e[14],x=t[0],b=t[1],T=t[2],C=t[4],A=t[5],E=t[6],v=t[8],D=t[9],O=t[10],I=t[12],L=t[13],N=t[14],_=i*x+s*b+u*T,S=o*x+a*b+f*T,w=r*x+c*b+d*T,P=i*C+s*A+u*E,M=o*C+a*A+f*E,B=r*C+c*A+d*E,U=i*v+s*D+u*O,V=o*v+a*D+f*O,G=r*v+c*D+d*O,k=i*I+s*L+u*N+p,Y=o*I+a*L+f*N+g,W=r*I+c*L+d*N+m;return n[0]=_,n[1]=S,n[2]=w,n[3]=0,n[4]=P,n[5]=M,n[6]=B,n[7]=0,n[8]=U,n[9]=V,n[10]=G,n[11]=0,n[12]=k,n[13]=Y,n[14]=W,n[15]=1,n};$e.multiplyByMatrix3=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],u=e[8],f=e[9],d=e[10],p=t[0],g=t[1],m=t[2],x=t[3],b=t[4],T=t[5],C=t[6],A=t[7],E=t[8],v=i*p+s*g+u*m,D=o*p+a*g+f*m,O=r*p+c*g+d*m,I=i*x+s*b+u*T,L=o*x+a*b+f*T,N=r*x+c*b+d*T,_=i*C+s*A+u*E,S=o*C+a*A+f*E,w=r*C+c*A+d*E;return n[0]=v,n[1]=D,n[2]=O,n[3]=0,n[4]=I,n[5]=L,n[6]=N,n[7]=0,n[8]=_,n[9]=S,n[10]=w,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};$e.multiplyByTranslation=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=i*e[0]+o*e[4]+r*e[8]+e[12],a=i*e[1]+o*e[5]+r*e[9]+e[13],c=i*e[2]+o*e[6]+r*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=s,n[13]=a,n[14]=c,n[15]=e[15],n};$e.multiplyByScale=function(e,t,n){let i=t.x,o=t.y,r=t.z;return i===1&&o===1&&r===1?$e.clone(e,n):(n[0]=i*e[0],n[1]=i*e[1],n[2]=i*e[2],n[3]=e[3],n[4]=o*e[4],n[5]=o*e[5],n[6]=o*e[6],n[7]=e[7],n[8]=r*e[8],n[9]=r*e[9],n[10]=r*e[10],n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n)};$e.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3],n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7],n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};$e.multiplyByVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=t.w,a=e[0]*i+e[4]*o+e[8]*r+e[12]*s,c=e[1]*i+e[5]*o+e[9]*r+e[13]*s,u=e[2]*i+e[6]*o+e[10]*r+e[14]*s,f=e[3]*i+e[7]*o+e[11]*r+e[15]*s;return n.x=a,n.y=c,n.z=u,n.w=f,n};$e.multiplyByPointAsVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[4]*o+e[8]*r,a=e[1]*i+e[5]*o+e[9]*r,c=e[2]*i+e[6]*o+e[10]*r;return n.x=s,n.y=a,n.z=c,n};$e.multiplyByPoint=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[4]*o+e[8]*r+e[12],a=e[1]*i+e[5]*o+e[9]*r+e[13],c=e[2]*i+e[6]*o+e[10]*r+e[14];return n.x=s,n.y=a,n.z=c,n};$e.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n};$e.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t};$e.transpose=function(e,t){let n=e[1],i=e[2],o=e[3],r=e[6],s=e[7],a=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=i,t[9]=r,t[10]=e[10],t[11]=e[14],t[12]=o,t[13]=s,t[14]=a,t[15]=e[15],t};$e.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t};$e.equals=function(e,t){return e===t||l(e)&&l(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]};$e.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n};$e.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t};$e.getMatrix3=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var hSe=new $,mSe=new $,pSe=new oe,_Se=new oe(0,0,0,1);$e.inverse=function(e,t){let n=e[0],i=e[4],o=e[8],r=e[12],s=e[1],a=e[5],c=e[9],u=e[13],f=e[2],d=e[6],p=e[10],g=e[14],m=e[3],x=e[7],b=e[11],T=e[15],C=p*T,A=g*b,E=d*T,v=g*x,D=d*b,O=p*x,I=f*T,L=g*m,N=f*b,_=p*m,S=f*x,w=d*m,P=C*a+v*c+D*u-(A*a+E*c+O*u),M=A*s+I*c+_*u-(C*s+L*c+N*u),B=E*s+L*a+S*u-(v*s+I*a+w*u),U=O*s+N*a+w*c-(D*s+_*a+S*c),V=A*i+E*o+O*r-(C*i+v*o+D*r),G=C*n+L*o+N*r-(A*n+I*o+_*r),k=v*n+I*i+w*r-(E*n+L*i+S*r),Y=D*n+_*i+S*o-(O*n+N*i+w*o);C=o*u,A=r*c,E=i*u,v=r*a,D=i*c,O=o*a,I=n*u,L=r*s,N=n*c,_=o*s,S=n*a,w=i*s;let W=C*x+v*b+D*T-(A*x+E*b+O*T),Q=A*m+I*b+_*T-(C*m+L*b+N*T),j=E*m+L*x+S*T-(v*m+I*x+w*T),K=O*m+N*x+w*b-(D*m+_*x+S*b),Z=E*p+O*g+A*d-(D*g+C*d+v*p),he=N*g+C*f+L*p-(I*p+_*g+A*f),be=I*d+w*g+v*f-(S*g+E*f+L*d),re=S*p+D*f+_*d-(N*d+w*p+O*f),_e=n*P+i*M+o*B+r*U;if(Math.abs(_e)<R.EPSILON21){if($.equalsEpsilon($e.getMatrix3(e,hSe),mSe,R.EPSILON7)&&oe.equals($e.getRow(e,3,pSe),_Se))return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=0,t[11]=0,t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=1,t;throw new le("matrix is not invertible because its determinate is zero.")}return _e=1/_e,t[0]=P*_e,t[1]=M*_e,t[2]=B*_e,t[3]=U*_e,t[4]=V*_e,t[5]=G*_e,t[6]=k*_e,t[7]=Y*_e,t[8]=W*_e,t[9]=Q*_e,t[10]=j*_e,t[11]=K*_e,t[12]=Z*_e,t[13]=he*_e,t[14]=be*_e,t[15]=re*_e,t};$e.inverseTransformation=function(e,t){let n=e[0],i=e[1],o=e[2],r=e[4],s=e[5],a=e[6],c=e[8],u=e[9],f=e[10],d=e[12],p=e[13],g=e[14],m=-n*d-i*p-o*g,x=-r*d-s*p-a*g,b=-c*d-u*p-f*g;return t[0]=n,t[1]=r,t[2]=c,t[3]=0,t[4]=i,t[5]=s,t[6]=u,t[7]=0,t[8]=o,t[9]=a,t[10]=f,t[11]=0,t[12]=m,t[13]=x,t[14]=b,t[15]=1,t};var gSe=new $e;$e.inverseTranspose=function(e,t){return $e.inverse($e.transpose(e,gSe),t)};$e.IDENTITY=Object.freeze(new $e(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1));$e.ZERO=Object.freeze(new $e(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));$e.COLUMN0ROW0=0;$e.COLUMN0ROW1=1;$e.COLUMN0ROW2=2;$e.COLUMN0ROW3=3;$e.COLUMN1ROW0=4;$e.COLUMN1ROW1=5;$e.COLUMN1ROW2=6;$e.COLUMN1ROW3=7;$e.COLUMN2ROW0=8;$e.COLUMN2ROW1=9;$e.COLUMN2ROW2=10;$e.COLUMN2ROW3=11;$e.COLUMN3ROW0=12;$e.COLUMN3ROW1=13;$e.COLUMN3ROW2=14;$e.COLUMN3ROW3=15;Object.defineProperties($e.prototype,{length:{get:function(){return $e.packedLength}}});$e.prototype.clone=function(e){return $e.clone(this,e)};$e.prototype.equals=function(e){return $e.equals(this,e)};$e.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]};$e.prototype.equalsEpsilon=function(e,t){return $e.equalsEpsilon(this,e,t)};$e.prototype.toString=function(){return`(${this[0]}, ${this[4]}, ${this[8]}, ${this[12]}) (${this[1]}, ${this[5]}, ${this[9]}, ${this[13]}) (${this[2]}, ${this[6]}, ${this[10]}, ${this[14]}) (${this[3]}, ${this[7]}, ${this[11]}, ${this[15]})`};var F=$e;var vg,Ar={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},bl={};Object.defineProperties(bl,{element:{get:function(){if(bl.supportsFullscreen())return document[Ar.fullscreenElement]}},changeEventName:{get:function(){if(bl.supportsFullscreen())return Ar.fullscreenchange}},errorEventName:{get:function(){if(bl.supportsFullscreen())return Ar.fullscreenerror}},enabled:{get:function(){if(bl.supportsFullscreen())return document[Ar.fullscreenEnabled]}},fullscreen:{get:function(){if(bl.supportsFullscreen())return bl.element!==null}}});bl.supportsFullscreen=function(){if(l(vg))return vg;vg=!1;let e=document.body;if(typeof e.requestFullscreen=="function")return Ar.requestFullscreen="requestFullscreen",Ar.exitFullscreen="exitFullscreen",Ar.fullscreenEnabled="fullscreenEnabled",Ar.fullscreenElement="fullscreenElement",Ar.fullscreenchange="fullscreenchange",Ar.fullscreenerror="fullscreenerror",vg=!0,vg;let t=["webkit","moz","o","ms","khtml"],n;for(let i=0,o=t.length;i<o;++i){let r=t[i];n=`${r}RequestFullscreen`,typeof e[n]=="function"?(Ar.requestFullscreen=n,vg=!0):(n=`${r}RequestFullScreen`,typeof e[n]=="function"&&(Ar.requestFullscreen=n,vg=!0)),n=`${r}ExitFullscreen`,typeof document[n]=="function"?Ar.exitFullscreen=n:(n=`${r}CancelFullScreen`,typeof document[n]=="function"&&(Ar.exitFullscreen=n)),n=`${r}FullscreenEnabled`,document[n]!==void 0?Ar.fullscreenEnabled=n:(n=`${r}FullScreenEnabled`,document[n]!==void 0&&(Ar.fullscreenEnabled=n)),n=`${r}FullscreenElement`,document[n]!==void 0?Ar.fullscreenElement=n:(n=`${r}FullScreenElement`,document[n]!==void 0&&(Ar.fullscreenElement=n)),n=`${r}fullscreenchange`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenChange"),Ar.fullscreenchange=n),n=`${r}fullscreenerror`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenError"),Ar.fullscreenerror=n)}return vg};bl.requestFullscreen=function(e,t){bl.supportsFullscreen()&&e[Ar.requestFullscreen]({vrDisplay:t})};bl.exitFullscreen=function(){bl.supportsFullscreen()&&document[Ar.exitFullscreen]()};bl._names=Ar;var hr=bl;var Qa;typeof navigator<"u"?Qa=navigator:Qa={};function ix(e){let t=e.split(".");for(let n=0,i=t.length;n<i;++n)t[n]=parseInt(t[n],10);return t}var Kk,JQ;function fG(){if(!l(Kk)&&(Kk=!1,!tV())){let e=/ Chrome\/([\.0-9]+)/.exec(Qa.userAgent);e!==null&&(Kk=!0,JQ=ix(e[1]))}return Kk}function ySe(){return fG()&&JQ}var Zk,eJ;function tJ(){if(!l(Zk)&&(Zk=!1,!fG()&&!tV()&&/ Safari\/[\.0-9]+/.test(Qa.userAgent))){let e=/ Version\/([\.0-9]+)/.exec(Qa.userAgent);e!==null&&(Zk=!0,eJ=ix(e[1]))}return Zk}function xSe(){return tJ()&&eJ}var $k,lG;function nJ(){if(!l($k)){$k=!1;let e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(Qa.userAgent);e!==null&&($k=!0,lG=ix(e[1]),lG.isNightly=!!e[2])}return $k}function bSe(){return nJ()&&lG}var Qv,uG;function iJ(){if(!l(Qv)){Qv=!1;let e;Qa.appName==="Microsoft Internet Explorer"?(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(Qa.userAgent),e!==null&&(Qv=!0,uG=ix(e[1]))):Qa.appName==="Netscape"&&(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(Qa.userAgent),e!==null&&(Qv=!0,uG=ix(e[1])))}return Qv}function TSe(){return iJ()&&uG}var Qk,oJ;function tV(){if(!l(Qk)){Qk=!1;let e=/ Edg\/([\.0-9]+)/.exec(Qa.userAgent);e!==null&&(Qk=!0,oJ=ix(e[1]))}return Qk}function ASe(){return tV()&&oJ}var Jk,dG;function nV(){if(!l(Jk)){Jk=!1;let e=/Firefox\/([\.0-9]+)/.exec(Qa.userAgent);e!==null&&(Jk=!0,dG=ix(e[1]))}return Jk}var sG;function CSe(){return l(sG)||(sG=/Windows/i.test(Qa.appVersion)),sG}var aG;function ESe(){return l(aG)||(aG=navigator.platform==="iPhone"||navigator.platform==="iPod"||navigator.platform==="iPad"),aG}function SSe(){return nV()&&dG}var cG;function vSe(){return l(cG)||(cG=!nV()&&typeof PointerEvent<"u"&&(!l(Qa.pointerEnabled)||Qa.pointerEnabled)),cG}var rJ,eV;function sJ(){if(!l(eV)){let e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");let t=e.style.imageRendering;eV=l(t)&&t!=="",eV&&(rJ=t)}return eV}function wSe(){return sJ()?rJ:void 0}function Nc(){return Nc._result}Nc._promise=void 0;Nc._result=void 0;Nc.initialize=function(){return l(Nc._promise)||(Nc._promise=new Promise(e=>{let t=new Image;t.onload=function(){Nc._result=t.width>0&&t.height>0,e(Nc._result)},t.onerror=function(){Nc._result=!1,e(Nc._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),Nc._promise};Object.defineProperties(Nc,{initialized:{get:function(){return l(Nc._result)}}});var VA=[];typeof ArrayBuffer<"u"&&(VA.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&VA.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&VA.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&VA.push(BigInt64Array),typeof BigUint64Array<"u"&&VA.push(BigUint64Array));var lf={isChrome:fG,chromeVersion:ySe,isSafari:tJ,safariVersion:xSe,isWebkit:nJ,webkitVersion:bSe,isInternetExplorer:iJ,internetExplorerVersion:TSe,isEdge:tV,edgeVersion:ASe,isFirefox:nV,firefoxVersion:SSe,isWindows:CSe,isIPadOrIOS:ESe,hardwareConcurrency:y(Qa.hardwareConcurrency,3),supportsPointerEvents:vSe,supportsImageRenderingPixelated:sJ,supportsWebP:Nc,imageRenderingValue:wSe,typedArrayTypes:VA};lf.supportsBasis=function(e){return lf.supportsWebAssembly()&&e.context.supportsBasis};lf.supportsFullscreen=function(){return hr.supportsFullscreen()};lf.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};lf.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};lf.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};lf.supportsBigInt=function(){return typeof BigInt<"u"};lf.supportsWebWorkers=function(){return typeof Worker<"u"};lf.supportsWebAssembly=function(){return typeof WebAssembly<"u"};lf.supportsWebgl2=function(e){return e.context.webgl2};lf.supportsEsmWebWorkers=function(){return!nV()||parseInt(dG)>=114};var Vt=lf;function tt(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0),this.w=y(i,0)}var Jv=new h;tt.fromAxisAngle=function(e,t,n){let i=t/2,o=Math.sin(i);Jv=h.normalize(e,Jv);let r=Jv.x*o,s=Jv.y*o,a=Jv.z*o,c=Math.cos(i);return l(n)?(n.x=r,n.y=s,n.z=a,n.w=c,n):new tt(r,s,a,c)};var DSe=[1,2,0],PSe=new Array(3);tt.fromRotationMatrix=function(e,t){let n,i,o,r,s,a=e[$.COLUMN0ROW0],c=e[$.COLUMN1ROW1],u=e[$.COLUMN2ROW2],f=a+c+u;if(f>0)n=Math.sqrt(f+1),s=.5*n,n=.5/n,i=(e[$.COLUMN1ROW2]-e[$.COLUMN2ROW1])*n,o=(e[$.COLUMN2ROW0]-e[$.COLUMN0ROW2])*n,r=(e[$.COLUMN0ROW1]-e[$.COLUMN1ROW0])*n;else{let d=DSe,p=0;c>a&&(p=1),u>a&&u>c&&(p=2);let g=d[p],m=d[g];n=Math.sqrt(e[$.getElementIndex(p,p)]-e[$.getElementIndex(g,g)]-e[$.getElementIndex(m,m)]+1);let x=PSe;x[p]=.5*n,n=.5/n,s=(e[$.getElementIndex(m,g)]-e[$.getElementIndex(g,m)])*n,x[g]=(e[$.getElementIndex(g,p)]+e[$.getElementIndex(p,g)])*n,x[m]=(e[$.getElementIndex(m,p)]+e[$.getElementIndex(p,m)])*n,i=-x[0],o=-x[1],r=-x[2]}return l(t)?(t.x=i,t.y=o,t.z=r,t.w=s,t):new tt(i,o,r,s)};var aJ=new tt,cJ=new tt,hG=new tt,lJ=new tt;tt.fromHeadingPitchRoll=function(e,t){return lJ=tt.fromAxisAngle(h.UNIT_X,e.roll,aJ),hG=tt.fromAxisAngle(h.UNIT_Y,-e.pitch,t),t=tt.multiply(hG,lJ,hG),cJ=tt.fromAxisAngle(h.UNIT_Z,-e.heading,aJ),tt.multiply(cJ,t,t)};var iV=new h,mG=new h,Td=new tt,uJ=new tt,oV=new tt;tt.packedLength=4;tt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};tt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new tt),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};tt.packedInterpolationLength=3;tt.convertPackedArrayForInterpolation=function(e,t,n,i){tt.unpack(e,n*4,oV),tt.conjugate(oV,oV);for(let o=0,r=n-t+1;o<r;o++){let s=o*3;tt.unpack(e,(t+o)*4,Td),tt.multiply(Td,oV,Td),Td.w<0&&tt.negate(Td,Td),tt.computeAxis(Td,iV);let a=tt.computeAngle(Td);l(i)||(i=[]),i[s]=iV.x*a,i[s+1]=iV.y*a,i[s+2]=iV.z*a}};tt.unpackInterpolationResult=function(e,t,n,i,o){l(o)||(o=new tt),h.fromArray(e,0,mG);let r=h.magnitude(mG);return tt.unpack(t,i*4,uJ),r===0?tt.clone(tt.IDENTITY,Td):tt.fromAxisAngle(mG,r,Td),tt.multiply(Td,uJ,o)};tt.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new tt(e.x,e.y,e.z,e.w)};tt.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t};tt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};tt.magnitude=function(e){return Math.sqrt(tt.magnitudeSquared(e))};tt.normalize=function(e,t){let n=1/tt.magnitude(e),i=e.x*n,o=e.y*n,r=e.z*n,s=e.w*n;return t.x=i,t.y=o,t.z=r,t.w=s,t};tt.inverse=function(e,t){let n=tt.magnitudeSquared(e);return t=tt.conjugate(e,t),tt.multiplyByScalar(t,1/n,t)};tt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};tt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};tt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};tt.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};tt.multiply=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=e.w,a=t.x,c=t.y,u=t.z,f=t.w,d=s*a+i*f+o*u-r*c,p=s*c-i*u+o*f+r*a,g=s*u+i*c-o*a+r*f,m=s*f-i*a-o*c-r*u;return n.x=d,n.y=p,n.z=g,n.w=m,n};tt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};tt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};tt.computeAxis=function(e,t){let n=e.w;if(Math.abs(n-1)<R.EPSILON6||Math.abs(n+1)<R.EPSILON6)return t.x=1,t.y=t.z=0,t;let i=1/Math.sqrt(1-n*n);return t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t};tt.computeAngle=function(e){return Math.abs(e.w-1)<R.EPSILON6?0:2*Math.acos(e.w)};var pG=new tt;tt.lerp=function(e,t,n,i){return pG=tt.multiplyByScalar(t,n,pG),i=tt.multiplyByScalar(e,1-n,i),tt.add(pG,i,i)};var fJ=new tt,_G=new tt,gG=new tt;tt.slerp=function(e,t,n,i){let o=tt.dot(e,t),r=t;if(o<0&&(o=-o,r=fJ=tt.negate(t,fJ)),1-o<R.EPSILON6)return tt.lerp(e,r,n,i);let s=Math.acos(o);return _G=tt.multiplyByScalar(e,Math.sin((1-n)*s),_G),gG=tt.multiplyByScalar(r,Math.sin(n*s),gG),i=tt.add(_G,gG,i),tt.multiplyByScalar(i,1/Math.sin(s),i)};tt.log=function(e,t){let n=R.acosClamped(e.w),i=0;return n!==0&&(i=n/Math.sin(n)),h.multiplyByScalar(e,i,t)};tt.exp=function(e,t){let n=h.magnitude(e),i=0;return n!==0&&(i=Math.sin(n)/n),t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t.w=Math.cos(n),t};var ISe=new h,RSe=new h,ew=new tt,UA=new tt;tt.computeInnerQuadrangle=function(e,t,n,i){let o=tt.conjugate(t,ew);tt.multiply(o,n,UA);let r=tt.log(UA,ISe);tt.multiply(o,e,UA);let s=tt.log(UA,RSe);return h.add(r,s,r),h.multiplyByScalar(r,.25,r),h.negate(r,r),tt.exp(r,ew),tt.multiply(t,ew,i)};tt.squad=function(e,t,n,i,o,r){let s=tt.slerp(e,t,o,ew),a=tt.slerp(n,i,o,UA);return tt.slerp(s,a,2*o*(1-o),r)};var OSe=new tt,dJ=1.9011074535173003,rV=Vt.supportsTypedArrays()?new Float32Array(8):[],sV=Vt.supportsTypedArrays()?new Float32Array(8):[],mp=Vt.supportsTypedArrays()?new Float32Array(8):[],pp=Vt.supportsTypedArrays()?new Float32Array(8):[];for(let e=0;e<7;++e){let t=e+1,n=2*t+1;rV[e]=1/(t*n),sV[e]=t/n}rV[7]=dJ/(8*17);sV[7]=dJ*8/17;tt.fastSlerp=function(e,t,n,i){let o=tt.dot(e,t),r;o>=0?r=1:(r=-1,o=-o);let s=o-1,a=1-n,c=n*n,u=a*a;for(let g=7;g>=0;--g)mp[g]=(rV[g]*c-sV[g])*s,pp[g]=(rV[g]*u-sV[g])*s;let f=r*n*(1+mp[0]*(1+mp[1]*(1+mp[2]*(1+mp[3]*(1+mp[4]*(1+mp[5]*(1+mp[6]*(1+mp[7])))))))),d=a*(1+pp[0]*(1+pp[1]*(1+pp[2]*(1+pp[3]*(1+pp[4]*(1+pp[5]*(1+pp[6]*(1+pp[7])))))))),p=tt.multiplyByScalar(e,d,OSe);return tt.multiplyByScalar(t,f,i),tt.add(p,i,i)};tt.fastSquad=function(e,t,n,i,o,r){let s=tt.fastSlerp(e,t,o,ew),a=tt.fastSlerp(n,i,o,UA);return tt.fastSlerp(s,a,2*o*(1-o),r)};tt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};tt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n};tt.ZERO=Object.freeze(new tt(0,0,0,0));tt.IDENTITY=Object.freeze(new tt(0,0,0,1));tt.prototype.clone=function(e){return tt.clone(this,e)};tt.prototype.equals=function(e){return tt.equals(this,e)};tt.prototype.equalsEpsilon=function(e,t){return tt.equalsEpsilon(this,e,t)};tt.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Me=tt;var qi={},yG={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},zA={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},xG={},Tl={east:new h,north:new h,up:new h,west:new h,south:new h,down:new h},wg=new h,Dg=new h,Pg=new h;qi.localFrameToFixedFrameGenerator=function(e,t){if(!yG.hasOwnProperty(e)||!yG[e].hasOwnProperty(t))throw new de("firstAxis and secondAxis must be east, north, up, west, south or down.");let n=yG[e][t],i,o=e+t;return l(xG[o])?i=xG[o]:(i=function(r,s,a){if(l(a)||(a=new F),h.equalsEpsilon(r,h.ZERO,R.EPSILON14))h.unpack(zA[e],0,wg),h.unpack(zA[t],0,Dg),h.unpack(zA[n],0,Pg);else if(R.equalsEpsilon(r.x,0,R.EPSILON14)&&R.equalsEpsilon(r.y,0,R.EPSILON14)){let c=R.sign(r.z);h.unpack(zA[e],0,wg),e!=="east"&&e!=="west"&&h.multiplyByScalar(wg,c,wg),h.unpack(zA[t],0,Dg),t!=="east"&&t!=="west"&&h.multiplyByScalar(Dg,c,Dg),h.unpack(zA[n],0,Pg),n!=="east"&&n!=="west"&&h.multiplyByScalar(Pg,c,Pg)}else{s=y(s,te.WGS84),s.geodeticSurfaceNormal(r,Tl.up);let c=Tl.up,u=Tl.east;u.x=-r.y,u.y=r.x,u.z=0,h.normalize(u,Tl.east),h.cross(c,u,Tl.north),h.multiplyByScalar(Tl.up,-1,Tl.down),h.multiplyByScalar(Tl.east,-1,Tl.west),h.multiplyByScalar(Tl.north,-1,Tl.south),wg=Tl[e],Dg=Tl[t],Pg=Tl[n]}return a[0]=wg.x,a[1]=wg.y,a[2]=wg.z,a[3]=0,a[4]=Dg.x,a[5]=Dg.y,a[6]=Dg.z,a[7]=0,a[8]=Pg.x,a[9]=Pg.y,a[10]=Pg.z,a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a},xG[o]=i),i};qi.eastNorthUpToFixedFrame=qi.localFrameToFixedFrameGenerator("east","north");qi.northEastDownToFixedFrame=qi.localFrameToFixedFrameGenerator("north","east");qi.northUpEastToFixedFrame=qi.localFrameToFixedFrameGenerator("north","up");qi.northWestUpToFixedFrame=qi.localFrameToFixedFrameGenerator("north","west");var MSe=new Me,LSe=new h(1,1,1),NSe=new F;qi.headingPitchRollToFixedFrame=function(e,t,n,i,o){i=y(i,qi.eastNorthUpToFixedFrame);let r=Me.fromHeadingPitchRoll(t,MSe),s=F.fromTranslationQuaternionRotationScale(h.ZERO,r,LSe,NSe);return o=i(e,n,o),F.multiply(o,s,o)};var FSe=new F,BSe=new $;qi.headingPitchRollQuaternion=function(e,t,n,i,o){let r=qi.headingPitchRollToFixedFrame(e,t,n,i,FSe),s=F.getMatrix3(r,BSe);return Me.fromRotationMatrix(s,o)};var kSe=new h(1,1,1),VSe=new h,hJ=new F,USe=new F,zSe=new $,HSe=new Me;qi.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=y(t,te.WGS84),n=y(n,qi.eastNorthUpToFixedFrame),l(i)||(i=new $a);let o=F.getTranslation(e,VSe);if(h.equals(o,h.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;let r=F.inverseTransformation(n(o,t,hJ),hJ),s=F.setScale(e,kSe,USe);s=F.setTranslation(s,h.ZERO,s),r=F.multiply(r,s,r);let a=Me.fromRotationMatrix(F.getMatrix3(r,zSe),HSe);return a=Me.normalize(a,a),$a.fromQuaternion(a,i)};var GSe=6*3600+41*60+50.54841,WSe=8640184812866e-6,jSe=.093104,qSe=-62e-7,YSe=11772758384668e-32,XSe=72921158553e-15,KSe=R.TWO_PI/86400,aV=new J;qi.computeTemeToPseudoFixedMatrix=function(e,t){aV=J.addSeconds(e,-J.computeTaiMinusUtc(e),aV);let n=aV.dayNumber,i=aV.secondsOfDay,o,r=n-2451545;i>=43200?o=(r+.5)/Xn.DAYS_PER_JULIAN_CENTURY:o=(r-.5)/Xn.DAYS_PER_JULIAN_CENTURY;let a=(GSe+o*(WSe+o*(jSe+o*qSe)))*KSe%R.TWO_PI,c=XSe+YSe*(n-24515455e-1),u=(i+Xn.SECONDS_PER_DAY*.5)%Xn.SECONDS_PER_DAY,f=a+c*u,d=Math.cos(f),p=Math.sin(f);return l(t)?(t[0]=d,t[1]=-p,t[2]=0,t[3]=p,t[4]=d,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new $(d,p,0,-p,d,0,0,0,1)};qi.iau2006XysData=new Zv;qi.earthOrientationParameters=Kv.NONE;var AG=32.184,ZSe=2451545;qi.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+AG,i=e.stop.dayNumber,o=e.stop.secondsOfDay+AG;return qi.iau2006XysData.preload(t,n,i,o)};qi.computeIcrfToFixedMatrix=function(e,t){l(t)||(t=new $);let n=qi.computeFixedToIcrfMatrix(e,t);if(l(n))return $.transpose(n,t)};var $Se=new nx(0,0,0),QSe=new Cg(0,0,0,0,0,0),bG=new $,TG=new $;qi.computeFixedToIcrfMatrix=function(e,t){l(t)||(t=new $);let n=qi.earthOrientationParameters.compute(e,QSe);if(!l(n))return;let i=e.dayNumber,o=e.secondsOfDay+AG,r=qi.iau2006XysData.computeXysRadians(i,o,$Se);if(!l(r))return;let s=r.x+n.xPoleOffset,a=r.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-s*s-a*a)),u=bG;u[0]=1-c*s*s,u[3]=-c*s*a,u[6]=s,u[1]=-c*s*a,u[4]=1-c*a*a,u[7]=a,u[2]=-s,u[5]=-a,u[8]=1-c*(s*s+a*a);let f=$.fromRotationZ(-r.s,TG),d=$.multiply(u,f,bG),p=e.dayNumber,g=e.secondsOfDay-J.computeTaiMinusUtc(e)+n.ut1MinusUtc,m=p-2451545,x=g/Xn.SECONDS_PER_DAY,b=.779057273264+x+.00273781191135448*(m+x);b=b%1*R.TWO_PI;let T=$.fromRotationZ(b,TG),C=$.multiply(d,T,bG),A=Math.cos(n.xPoleWander),E=Math.cos(n.yPoleWander),v=Math.sin(n.xPoleWander),D=Math.sin(n.yPoleWander),O=i-ZSe+o/Xn.SECONDS_PER_DAY;O/=36525;let I=-47e-6*O*R.RADIANS_PER_DEGREE/3600,L=Math.cos(I),N=Math.sin(I),_=TG;return _[0]=A*L,_[1]=A*N,_[2]=v,_[3]=-E*N+D*v*L,_[4]=E*L+D*v*N,_[5]=-D*A,_[6]=-D*N-E*v*L,_[7]=D*L-E*v*N,_[8]=E*A,$.multiply(C,_,t)};var JSe=new oe;qi.pointToWindowCoordinates=function(e,t,n,i){return i=qi.pointToGLWindowCoordinates(e,t,n,i),i.y=2*t[5]-i.y,i};qi.pointToGLWindowCoordinates=function(e,t,n,i){l(i)||(i=new z);let o=JSe;return F.multiplyByVector(e,oe.fromElements(n.x,n.y,n.z,1,o),o),oe.multiplyByScalar(o,1/o.w,o),F.multiplyByVector(t,o,o),z.fromCartesian4(o,i)};var eve=new h,tve=new h,nve=new h;qi.rotationMatrixFromPositionVelocity=function(e,t,n,i){let o=y(n,te.WGS84).geodeticSurfaceNormal(e,eve),r=h.cross(t,o,tve);h.equalsEpsilon(r,h.ZERO,R.EPSILON6)&&(r=h.clone(h.UNIT_X,r));let s=h.cross(r,t,nve);return h.normalize(s,s),h.cross(t,s,r),h.negate(r,r),h.normalize(r,r),l(i)||(i=new $),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=r.x,i[4]=r.y,i[5]=r.z,i[6]=s.x,i[7]=s.y,i[8]=s.z,i};var mJ=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),pJ=new fe,CG=new h,ive=new h,ove=new $,EG=new F,_J=new F;qi.basisTo2D=function(e,t,n){let i=F.getTranslation(t,ive),o=e.ellipsoid,r;if(h.equals(i,h.ZERO))r=h.clone(h.ZERO,CG);else{let f=o.cartesianToCartographic(i,pJ);r=e.project(f,CG),h.fromElements(r.z,r.x,r.y,r)}let s=qi.eastNorthUpToFixedFrame(i,o,EG),a=F.inverseTransformation(s,_J),c=F.getMatrix3(t,ove),u=F.multiplyByMatrix3(a,c,n);return F.multiply(mJ,u,n),F.setTranslation(n,r,n),n};qi.wgs84To2DModelMatrix=function(e,t,n){let i=e.ellipsoid,o=qi.eastNorthUpToFixedFrame(t,i,EG),r=F.inverseTransformation(o,_J),s=i.cartesianToCartographic(t,pJ),a=e.project(s,CG);h.fromElements(a.z,a.x,a.y,a);let c=F.fromTranslation(a,EG);return F.multiply(mJ,r,n),F.multiply(c,n,n),n};var wt=qi;function Dn(e,t,n,i){this.west=y(e,0),this.south=y(t,0),this.east=y(n,0),this.north=y(i,0)}Object.defineProperties(Dn.prototype,{width:{get:function(){return Dn.computeWidth(this)}},height:{get:function(){return Dn.computeHeight(this)}}});Dn.packedLength=4;Dn.pack=function(e,t,n){return n=y(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t};Dn.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Dn),n.west=e[t++],n.south=e[t++],n.east=e[t++],n.north=e[t],n};Dn.computeWidth=function(e){let t=e.east,n=e.west;return t<n&&(t+=R.TWO_PI),t-n};Dn.computeHeight=function(e){return e.north-e.south};Dn.fromDegrees=function(e,t,n,i,o){return e=R.toRadians(y(e,0)),t=R.toRadians(y(t,0)),n=R.toRadians(y(n,0)),i=R.toRadians(y(i,0)),l(o)?(o.west=e,o.south=t,o.east=n,o.north=i,o):new Dn(e,t,n,i)};Dn.fromRadians=function(e,t,n,i,o){return l(o)?(o.west=y(e,0),o.south=y(t,0),o.east=y(n,0),o.north=y(i,0),o):new Dn(e,t,n,i)};Dn.fromCartographicArray=function(e,t){let n=Number.MAX_VALUE,i=-Number.MAX_VALUE,o=Number.MAX_VALUE,r=-Number.MAX_VALUE,s=Number.MAX_VALUE,a=-Number.MAX_VALUE;for(let c=0,u=e.length;c<u;c++){let f=e[c];n=Math.min(n,f.longitude),i=Math.max(i,f.longitude),s=Math.min(s,f.latitude),a=Math.max(a,f.latitude);let d=f.longitude>=0?f.longitude:f.longitude+R.TWO_PI;o=Math.min(o,d),r=Math.max(r,d)}return i-n>r-o&&(n=o,i=r,i>R.PI&&(i=i-R.TWO_PI),n>R.PI&&(n=n-R.TWO_PI)),l(t)?(t.west=n,t.south=s,t.east=i,t.north=a,t):new Dn(n,s,i,a)};Dn.fromCartesianArray=function(e,t,n){t=y(t,te.WGS84);let i=Number.MAX_VALUE,o=-Number.MAX_VALUE,r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=Number.MAX_VALUE,c=-Number.MAX_VALUE;for(let u=0,f=e.length;u<f;u++){let d=t.cartesianToCartographic(e[u]);i=Math.min(i,d.longitude),o=Math.max(o,d.longitude),a=Math.min(a,d.latitude),c=Math.max(c,d.latitude);let p=d.longitude>=0?d.longitude:d.longitude+R.TWO_PI;r=Math.min(r,p),s=Math.max(s,p)}return o-i>s-r&&(i=r,o=s,o>R.PI&&(o=o-R.TWO_PI),i>R.PI&&(i=i-R.TWO_PI)),l(n)?(n.west=i,n.south=a,n.east=o,n.north=c,n):new Dn(i,a,o,c)};var rve=new h,sve=new h,ave=new h,cve=new h,lve=new h,SG=new Array(5);for(let e=0;e<SG.length;++e)SG[e]=new h;Dn.fromBoundingSphere=function(e,t,n){let i=e.center,o=e.radius;if(l(t)||(t=te.WGS84),l(n)||(n=new Dn),h.equals(i,h.ZERO))return Dn.clone(Dn.MAX_VALUE,n),n;let r=wt.eastNorthUpToFixedFrame(i,t,rve),s=F.multiplyByPointAsVector(r,h.UNIT_X,sve);h.normalize(s,s);let a=F.multiplyByPointAsVector(r,h.UNIT_Y,ave);h.normalize(a,a),h.multiplyByScalar(a,o,a),h.multiplyByScalar(s,o,s);let c=h.negate(a,lve),u=h.negate(s,cve),f=SG,d=f[0];return h.add(i,a,d),d=f[1],h.add(i,u,d),d=f[2],h.add(i,c,d),d=f[3],h.add(i,s,d),f[4]=i,Dn.fromCartesianArray(f,t,n)};Dn.clone=function(e,t){if(l(e))return l(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new Dn(e.west,e.south,e.east,e.north)};Dn.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n};Dn.prototype.clone=function(e){return Dn.clone(this,e)};Dn.prototype.equals=function(e){return Dn.equals(this,e)};Dn.equals=function(e,t){return e===t||l(e)&&l(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north};Dn.prototype.equalsEpsilon=function(e,t){return Dn.equalsEpsilon(this,e,t)};Dn.validate=function(e){};Dn.southwest=function(e,t){return l(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new fe(e.west,e.south)};Dn.northwest=function(e,t){return l(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new fe(e.west,e.north)};Dn.northeast=function(e,t){return l(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new fe(e.east,e.north)};Dn.southeast=function(e,t){return l(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new fe(e.east,e.south)};Dn.center=function(e,t){let n=e.east,i=e.west;n<i&&(n+=R.TWO_PI);let o=R.negativePiToPi((i+n)*.5),r=(e.south+e.north)*.5;return l(t)?(t.longitude=o,t.latitude=r,t.height=0,t):new fe(o,r)};Dn.intersection=function(e,t,n){let i=e.east,o=e.west,r=t.east,s=t.west;i<o&&r>0?i+=R.TWO_PI:r<s&&i>0&&(r+=R.TWO_PI),i<o&&s<0?s+=R.TWO_PI:r<s&&o<0&&(o+=R.TWO_PI);let a=R.negativePiToPi(Math.max(o,s)),c=R.negativePiToPi(Math.min(i,r));if((e.west<e.east||t.west<t.east)&&c<=a)return;let u=Math.max(e.south,t.south),f=Math.min(e.north,t.north);if(!(u>=f))return l(n)?(n.west=a,n.south=u,n.east=c,n.north=f,n):new Dn(a,u,c,f)};Dn.simpleIntersection=function(e,t,n){let i=Math.max(e.west,t.west),o=Math.max(e.south,t.south),r=Math.min(e.east,t.east),s=Math.min(e.north,t.north);if(!(o>=s||i>=r))return l(n)?(n.west=i,n.south=o,n.east=r,n.north=s,n):new Dn(i,o,r,s)};Dn.union=function(e,t,n){l(n)||(n=new Dn);let i=e.east,o=e.west,r=t.east,s=t.west;i<o&&r>0?i+=R.TWO_PI:r<s&&i>0&&(r+=R.TWO_PI),i<o&&s<0?s+=R.TWO_PI:r<s&&o<0&&(o+=R.TWO_PI);let a=R.negativePiToPi(Math.min(o,s)),c=R.negativePiToPi(Math.max(i,r));return n.west=a,n.south=Math.min(e.south,t.south),n.east=c,n.north=Math.max(e.north,t.north),n};Dn.expand=function(e,t,n){return l(n)||(n=new Dn),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n};Dn.contains=function(e,t){let n=t.longitude,i=t.latitude,o=e.west,r=e.east;return r<o&&(r+=R.TWO_PI,n<0&&(n+=R.TWO_PI)),(n>o||R.equalsEpsilon(n,o,R.EPSILON14))&&(n<r||R.equalsEpsilon(n,r,R.EPSILON14))&&i>=e.south&&i<=e.north};var uve=new fe;Dn.subsample=function(e,t,n,i){t=y(t,te.WGS84),n=y(n,0),l(i)||(i=[]);let o=0,r=e.north,s=e.south,a=e.east,c=e.west,u=uve;u.height=n,u.longitude=c,u.latitude=r,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=a,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.latitude=s,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=c,i[o]=t.cartographicToCartesian(u,i[o]),o++,r<0?u.latitude=r:s>0?u.latitude=s:u.latitude=0;for(let f=1;f<8;++f)u.longitude=-Math.PI+f*R.PI_OVER_TWO,Dn.contains(e,u)&&(i[o]=t.cartographicToCartesian(u,i[o]),o++);return u.latitude===0&&(u.longitude=c,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=a,i[o]=t.cartographicToCartesian(u,i[o]),o++),i.length=o,i};Dn.subsection=function(e,t,n,i,o,r){if(l(r)||(r=new Dn),e.west<=e.east){let a=e.east-e.west;r.west=e.west+t*a,r.east=e.west+i*a}else{let a=R.TWO_PI+e.east-e.west;r.west=R.negativePiToPi(e.west+t*a),r.east=R.negativePiToPi(e.west+i*a)}let s=e.north-e.south;return r.south=e.south+n*s,r.north=e.south+o*s,t===1&&(r.west=e.east),i===1&&(r.east=e.east),n===1&&(r.south=e.north),o===1&&(r.north=e.north),r};Dn.MAX_VALUE=Object.freeze(new Dn(-Math.PI,-R.PI_OVER_TWO,Math.PI,R.PI_OVER_TWO));var se=Dn;function Cr(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.width=y(n,0),this.height=y(i,0)}Cr.packedLength=4;Cr.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.width,t[n]=e.height,t};Cr.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Cr),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n};Cr.fromPoints=function(e,t){if(l(t)||(t=new Cr),!l(e)||e.length===0)return t.x=0,t.y=0,t.width=0,t.height=0,t;let n=e.length,i=e[0].x,o=e[0].y,r=e[0].x,s=e[0].y;for(let a=1;a<n;a++){let c=e[a],u=c.x,f=c.y;i=Math.min(u,i),r=Math.max(u,r),o=Math.min(f,o),s=Math.max(f,s)}return t.x=i,t.y=o,t.width=r-i,t.height=s-o,t};var fve=new Ci,dve=new fe,hve=new fe;Cr.fromRectangle=function(e,t,n){if(l(n)||(n=new Cr),!l(e))return n.x=0,n.y=0,n.width=0,n.height=0,n;t=y(t,fve);let i=t.project(se.southwest(e,dve)),o=t.project(se.northeast(e,hve));return z.subtract(o,i,o),n.x=i.x,n.y=i.y,n.width=o.x,n.height=o.y,n};Cr.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height,t):new Cr(e.x,e.y,e.width,e.height)};Cr.union=function(e,t,n){l(n)||(n=new Cr);let i=Math.min(e.x,t.x),o=Math.min(e.y,t.y),r=Math.max(e.x+e.width,t.x+t.width),s=Math.max(e.y+e.height,t.y+t.height);return n.x=i,n.y=o,n.width=r-i,n.height=s-o,n};Cr.expand=function(e,t,n){n=Cr.clone(e,n);let i=t.x-n.x,o=t.y-n.y;return i>n.width?n.width=i:i<0&&(n.width-=i,n.x=t.x),o>n.height?n.height=o:o<0&&(n.height-=o,n.y=t.y),n};Cr.intersect=function(e,t){let n=e.x,i=e.y,o=t.x,r=t.y;return n>o+t.width||n+e.width<o||i+e.height<r||i>r+t.height?Gt.OUTSIDE:Gt.INTERSECTING};Cr.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height};Cr.prototype.clone=function(e){return Cr.clone(this,e)};Cr.prototype.intersect=function(e){return Cr.intersect(this,e)};Cr.prototype.equals=function(e){return Cr.equals(this,e)};var Ge=Cr;function vG(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}function ie(e,t,n,i){this.red=y(e,1),this.green=y(t,1),this.blue=y(n,1),this.alpha=y(i,1)}ie.fromCartesian4=function(e,t){return l(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new ie(e.x,e.y,e.z,e.w)};ie.fromBytes=function(e,t,n,i,o){return e=ie.byteToFloat(y(e,255)),t=ie.byteToFloat(y(t,255)),n=ie.byteToFloat(y(n,255)),i=ie.byteToFloat(y(i,255)),l(o)?(o.red=e,o.green=t,o.blue=n,o.alpha=i,o):new ie(e,t,n,i)};ie.fromAlpha=function(e,t,n){return l(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new ie(e.red,e.green,e.blue,t)};var wG,DG,_p;Vt.supportsTypedArrays()&&(wG=new ArrayBuffer(4),DG=new Uint32Array(wG),_p=new Uint8Array(wG));ie.fromRgba=function(e,t){return DG[0]=e,ie.fromBytes(_p[0],_p[1],_p[2],_p[3],t)};ie.fromHsl=function(e,t,n,i,o){e=y(e,0)%1,t=y(t,0),n=y(n,0),i=y(i,1);let r=n,s=n,a=n;if(t!==0){let c;n<.5?c=n*(1+t):c=n+t-n*t;let u=2*n-c;r=vG(u,c,e+1/3),s=vG(u,c,e),a=vG(u,c,e-1/3)}return l(o)?(o.red=r,o.green=s,o.blue=a,o.alpha=i,o):new ie(r,s,a,i)};ie.fromRandom=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.red;if(!l(n)){let s=y(e.minimumRed,0),a=y(e.maximumRed,1);n=s+R.nextRandomNumber()*(a-s)}let i=e.green;if(!l(i)){let s=y(e.minimumGreen,0),a=y(e.maximumGreen,1);i=s+R.nextRandomNumber()*(a-s)}let o=e.blue;if(!l(o)){let s=y(e.minimumBlue,0),a=y(e.maximumBlue,1);o=s+R.nextRandomNumber()*(a-s)}let r=e.alpha;if(!l(r)){let s=y(e.minimumAlpha,0),a=y(e.maximumAlpha,1);r=s+R.nextRandomNumber()*(a-s)}return l(t)?(t.red=n,t.green=i,t.blue=o,t.alpha=r,t):new ie(n,i,o,r)};var mve=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,pve=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,_ve=/^rgba?\s*\(\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i,gve=/^hsla?\s*\(\s*([0-9.]+)\s*[,\s]+\s*([0-9.]+%)\s*[,\s]+\s*([0-9.]+%)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i;ie.fromCssColorString=function(e,t){l(t)||(t=new ie),e=e.trim();let n=ie[e.toUpperCase()];if(l(n))return ie.clone(n,t),t;let i=mve.exec(e);return i!==null?(t.red=parseInt(i[1],16)/15,t.green=parseInt(i[2],16)/15,t.blue=parseInt(i[3],16)/15,t.alpha=parseInt(y(i[4],"f"),16)/15,t):(i=pve.exec(e),i!==null?(t.red=parseInt(i[1],16)/255,t.green=parseInt(i[2],16)/255,t.blue=parseInt(i[3],16)/255,t.alpha=parseInt(y(i[4],"ff"),16)/255,t):(i=_ve.exec(e),i!==null?(t.red=parseFloat(i[1])/(i[1].substr(-1)==="%"?100:255),t.green=parseFloat(i[2])/(i[2].substr(-1)==="%"?100:255),t.blue=parseFloat(i[3])/(i[3].substr(-1)==="%"?100:255),t.alpha=parseFloat(y(i[4],"1.0")),t):(i=gve.exec(e),i!==null?ie.fromHsl(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,parseFloat(y(i[4],"1.0")),t):(t=void 0,t))))};ie.packedLength=4;ie.pack=function(e,t,n){return n=y(n,0),t[n++]=e.red,t[n++]=e.green,t[n++]=e.blue,t[n]=e.alpha,t};ie.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ie),n.red=e[t++],n.green=e[t++],n.blue=e[t++],n.alpha=e[t],n};ie.byteToFloat=function(e){return e/255};ie.floatToByte=function(e){return e===1?255:e*256|0};ie.clone=function(e,t){if(l(e))return l(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new ie(e.red,e.green,e.blue,e.alpha)};ie.equals=function(e,t){return e===t||l(e)&&l(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha};ie.equalsArray=function(e,t,n){return e.red===t[n]&&e.green===t[n+1]&&e.blue===t[n+2]&&e.alpha===t[n+3]};ie.prototype.clone=function(e){return ie.clone(this,e)};ie.prototype.equals=function(e){return ie.equals(this,e)};ie.prototype.equalsEpsilon=function(e,t){return this===e||l(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t};ie.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`};ie.prototype.toCssColorString=function(){let e=ie.floatToByte(this.red),t=ie.floatToByte(this.green),n=ie.floatToByte(this.blue);return this.alpha===1?`rgb(${e},${t},${n})`:`rgba(${e},${t},${n},${this.alpha})`};ie.prototype.toCssHexString=function(){let e=ie.floatToByte(this.red).toString(16);e.length<2&&(e=`0${e}`);let t=ie.floatToByte(this.green).toString(16);t.length<2&&(t=`0${t}`);let n=ie.floatToByte(this.blue).toString(16);if(n.length<2&&(n=`0${n}`),this.alpha<1){let i=ie.floatToByte(this.alpha).toString(16);return i.length<2&&(i=`0${i}`),`#${e}${t}${n}${i}`}return`#${e}${t}${n}`};ie.prototype.toBytes=function(e){let t=ie.floatToByte(this.red),n=ie.floatToByte(this.green),i=ie.floatToByte(this.blue),o=ie.floatToByte(this.alpha);return l(e)?(e[0]=t,e[1]=n,e[2]=i,e[3]=o,e):[t,n,i,o]};ie.prototype.toRgba=function(){return _p[0]=ie.floatToByte(this.red),_p[1]=ie.floatToByte(this.green),_p[2]=ie.floatToByte(this.blue),_p[3]=ie.floatToByte(this.alpha),DG[0]};ie.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t};ie.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t};ie.prototype.withAlpha=function(e,t){return ie.fromAlpha(this,e,t)};ie.add=function(e,t,n){return n.red=e.red+t.red,n.green=e.green+t.green,n.blue=e.blue+t.blue,n.alpha=e.alpha+t.alpha,n};ie.subtract=function(e,t,n){return n.red=e.red-t.red,n.green=e.green-t.green,n.blue=e.blue-t.blue,n.alpha=e.alpha-t.alpha,n};ie.multiply=function(e,t,n){return n.red=e.red*t.red,n.green=e.green*t.green,n.blue=e.blue*t.blue,n.alpha=e.alpha*t.alpha,n};ie.divide=function(e,t,n){return n.red=e.red/t.red,n.green=e.green/t.green,n.blue=e.blue/t.blue,n.alpha=e.alpha/t.alpha,n};ie.mod=function(e,t,n){return n.red=e.red%t.red,n.green=e.green%t.green,n.blue=e.blue%t.blue,n.alpha=e.alpha%t.alpha,n};ie.lerp=function(e,t,n,i){return i.red=R.lerp(e.red,t.red,n),i.green=R.lerp(e.green,t.green,n),i.blue=R.lerp(e.blue,t.blue,n),i.alpha=R.lerp(e.alpha,t.alpha,n),i};ie.multiplyByScalar=function(e,t,n){return n.red=e.red*t,n.green=e.green*t,n.blue=e.blue*t,n.alpha=e.alpha*t,n};ie.divideByScalar=function(e,t,n){return n.red=e.red/t,n.green=e.green/t,n.blue=e.blue/t,n.alpha=e.alpha/t,n};ie.ALICEBLUE=Object.freeze(ie.fromCssColorString("#F0F8FF"));ie.ANTIQUEWHITE=Object.freeze(ie.fromCssColorString("#FAEBD7"));ie.AQUA=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.AQUAMARINE=Object.freeze(ie.fromCssColorString("#7FFFD4"));ie.AZURE=Object.freeze(ie.fromCssColorString("#F0FFFF"));ie.BEIGE=Object.freeze(ie.fromCssColorString("#F5F5DC"));ie.BISQUE=Object.freeze(ie.fromCssColorString("#FFE4C4"));ie.BLACK=Object.freeze(ie.fromCssColorString("#000000"));ie.BLANCHEDALMOND=Object.freeze(ie.fromCssColorString("#FFEBCD"));ie.BLUE=Object.freeze(ie.fromCssColorString("#0000FF"));ie.BLUEVIOLET=Object.freeze(ie.fromCssColorString("#8A2BE2"));ie.BROWN=Object.freeze(ie.fromCssColorString("#A52A2A"));ie.BURLYWOOD=Object.freeze(ie.fromCssColorString("#DEB887"));ie.CADETBLUE=Object.freeze(ie.fromCssColorString("#5F9EA0"));ie.CHARTREUSE=Object.freeze(ie.fromCssColorString("#7FFF00"));ie.CHOCOLATE=Object.freeze(ie.fromCssColorString("#D2691E"));ie.CORAL=Object.freeze(ie.fromCssColorString("#FF7F50"));ie.CORNFLOWERBLUE=Object.freeze(ie.fromCssColorString("#6495ED"));ie.CORNSILK=Object.freeze(ie.fromCssColorString("#FFF8DC"));ie.CRIMSON=Object.freeze(ie.fromCssColorString("#DC143C"));ie.CYAN=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.DARKBLUE=Object.freeze(ie.fromCssColorString("#00008B"));ie.DARKCYAN=Object.freeze(ie.fromCssColorString("#008B8B"));ie.DARKGOLDENROD=Object.freeze(ie.fromCssColorString("#B8860B"));ie.DARKGRAY=Object.freeze(ie.fromCssColorString("#A9A9A9"));ie.DARKGREEN=Object.freeze(ie.fromCssColorString("#006400"));ie.DARKGREY=ie.DARKGRAY;ie.DARKKHAKI=Object.freeze(ie.fromCssColorString("#BDB76B"));ie.DARKMAGENTA=Object.freeze(ie.fromCssColorString("#8B008B"));ie.DARKOLIVEGREEN=Object.freeze(ie.fromCssColorString("#556B2F"));ie.DARKORANGE=Object.freeze(ie.fromCssColorString("#FF8C00"));ie.DARKORCHID=Object.freeze(ie.fromCssColorString("#9932CC"));ie.DARKRED=Object.freeze(ie.fromCssColorString("#8B0000"));ie.DARKSALMON=Object.freeze(ie.fromCssColorString("#E9967A"));ie.DARKSEAGREEN=Object.freeze(ie.fromCssColorString("#8FBC8F"));ie.DARKSLATEBLUE=Object.freeze(ie.fromCssColorString("#483D8B"));ie.DARKSLATEGRAY=Object.freeze(ie.fromCssColorString("#2F4F4F"));ie.DARKSLATEGREY=ie.DARKSLATEGRAY;ie.DARKTURQUOISE=Object.freeze(ie.fromCssColorString("#00CED1"));ie.DARKVIOLET=Object.freeze(ie.fromCssColorString("#9400D3"));ie.DEEPPINK=Object.freeze(ie.fromCssColorString("#FF1493"));ie.DEEPSKYBLUE=Object.freeze(ie.fromCssColorString("#00BFFF"));ie.DIMGRAY=Object.freeze(ie.fromCssColorString("#696969"));ie.DIMGREY=ie.DIMGRAY;ie.DODGERBLUE=Object.freeze(ie.fromCssColorString("#1E90FF"));ie.FIREBRICK=Object.freeze(ie.fromCssColorString("#B22222"));ie.FLORALWHITE=Object.freeze(ie.fromCssColorString("#FFFAF0"));ie.FORESTGREEN=Object.freeze(ie.fromCssColorString("#228B22"));ie.FUCHSIA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.GAINSBORO=Object.freeze(ie.fromCssColorString("#DCDCDC"));ie.GHOSTWHITE=Object.freeze(ie.fromCssColorString("#F8F8FF"));ie.GOLD=Object.freeze(ie.fromCssColorString("#FFD700"));ie.GOLDENROD=Object.freeze(ie.fromCssColorString("#DAA520"));ie.GRAY=Object.freeze(ie.fromCssColorString("#808080"));ie.GREEN=Object.freeze(ie.fromCssColorString("#008000"));ie.GREENYELLOW=Object.freeze(ie.fromCssColorString("#ADFF2F"));ie.GREY=ie.GRAY;ie.HONEYDEW=Object.freeze(ie.fromCssColorString("#F0FFF0"));ie.HOTPINK=Object.freeze(ie.fromCssColorString("#FF69B4"));ie.INDIANRED=Object.freeze(ie.fromCssColorString("#CD5C5C"));ie.INDIGO=Object.freeze(ie.fromCssColorString("#4B0082"));ie.IVORY=Object.freeze(ie.fromCssColorString("#FFFFF0"));ie.KHAKI=Object.freeze(ie.fromCssColorString("#F0E68C"));ie.LAVENDER=Object.freeze(ie.fromCssColorString("#E6E6FA"));ie.LAVENDAR_BLUSH=Object.freeze(ie.fromCssColorString("#FFF0F5"));ie.LAWNGREEN=Object.freeze(ie.fromCssColorString("#7CFC00"));ie.LEMONCHIFFON=Object.freeze(ie.fromCssColorString("#FFFACD"));ie.LIGHTBLUE=Object.freeze(ie.fromCssColorString("#ADD8E6"));ie.LIGHTCORAL=Object.freeze(ie.fromCssColorString("#F08080"));ie.LIGHTCYAN=Object.freeze(ie.fromCssColorString("#E0FFFF"));ie.LIGHTGOLDENRODYELLOW=Object.freeze(ie.fromCssColorString("#FAFAD2"));ie.LIGHTGRAY=Object.freeze(ie.fromCssColorString("#D3D3D3"));ie.LIGHTGREEN=Object.freeze(ie.fromCssColorString("#90EE90"));ie.LIGHTGREY=ie.LIGHTGRAY;ie.LIGHTPINK=Object.freeze(ie.fromCssColorString("#FFB6C1"));ie.LIGHTSEAGREEN=Object.freeze(ie.fromCssColorString("#20B2AA"));ie.LIGHTSKYBLUE=Object.freeze(ie.fromCssColorString("#87CEFA"));ie.LIGHTSLATEGRAY=Object.freeze(ie.fromCssColorString("#778899"));ie.LIGHTSLATEGREY=ie.LIGHTSLATEGRAY;ie.LIGHTSTEELBLUE=Object.freeze(ie.fromCssColorString("#B0C4DE"));ie.LIGHTYELLOW=Object.freeze(ie.fromCssColorString("#FFFFE0"));ie.LIME=Object.freeze(ie.fromCssColorString("#00FF00"));ie.LIMEGREEN=Object.freeze(ie.fromCssColorString("#32CD32"));ie.LINEN=Object.freeze(ie.fromCssColorString("#FAF0E6"));ie.MAGENTA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.MAROON=Object.freeze(ie.fromCssColorString("#800000"));ie.MEDIUMAQUAMARINE=Object.freeze(ie.fromCssColorString("#66CDAA"));ie.MEDIUMBLUE=Object.freeze(ie.fromCssColorString("#0000CD"));ie.MEDIUMORCHID=Object.freeze(ie.fromCssColorString("#BA55D3"));ie.MEDIUMPURPLE=Object.freeze(ie.fromCssColorString("#9370DB"));ie.MEDIUMSEAGREEN=Object.freeze(ie.fromCssColorString("#3CB371"));ie.MEDIUMSLATEBLUE=Object.freeze(ie.fromCssColorString("#7B68EE"));ie.MEDIUMSPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FA9A"));ie.MEDIUMTURQUOISE=Object.freeze(ie.fromCssColorString("#48D1CC"));ie.MEDIUMVIOLETRED=Object.freeze(ie.fromCssColorString("#C71585"));ie.MIDNIGHTBLUE=Object.freeze(ie.fromCssColorString("#191970"));ie.MINTCREAM=Object.freeze(ie.fromCssColorString("#F5FFFA"));ie.MISTYROSE=Object.freeze(ie.fromCssColorString("#FFE4E1"));ie.MOCCASIN=Object.freeze(ie.fromCssColorString("#FFE4B5"));ie.NAVAJOWHITE=Object.freeze(ie.fromCssColorString("#FFDEAD"));ie.NAVY=Object.freeze(ie.fromCssColorString("#000080"));ie.OLDLACE=Object.freeze(ie.fromCssColorString("#FDF5E6"));ie.OLIVE=Object.freeze(ie.fromCssColorString("#808000"));ie.OLIVEDRAB=Object.freeze(ie.fromCssColorString("#6B8E23"));ie.ORANGE=Object.freeze(ie.fromCssColorString("#FFA500"));ie.ORANGERED=Object.freeze(ie.fromCssColorString("#FF4500"));ie.ORCHID=Object.freeze(ie.fromCssColorString("#DA70D6"));ie.PALEGOLDENROD=Object.freeze(ie.fromCssColorString("#EEE8AA"));ie.PALEGREEN=Object.freeze(ie.fromCssColorString("#98FB98"));ie.PALETURQUOISE=Object.freeze(ie.fromCssColorString("#AFEEEE"));ie.PALEVIOLETRED=Object.freeze(ie.fromCssColorString("#DB7093"));ie.PAPAYAWHIP=Object.freeze(ie.fromCssColorString("#FFEFD5"));ie.PEACHPUFF=Object.freeze(ie.fromCssColorString("#FFDAB9"));ie.PERU=Object.freeze(ie.fromCssColorString("#CD853F"));ie.PINK=Object.freeze(ie.fromCssColorString("#FFC0CB"));ie.PLUM=Object.freeze(ie.fromCssColorString("#DDA0DD"));ie.POWDERBLUE=Object.freeze(ie.fromCssColorString("#B0E0E6"));ie.PURPLE=Object.freeze(ie.fromCssColorString("#800080"));ie.RED=Object.freeze(ie.fromCssColorString("#FF0000"));ie.ROSYBROWN=Object.freeze(ie.fromCssColorString("#BC8F8F"));ie.ROYALBLUE=Object.freeze(ie.fromCssColorString("#4169E1"));ie.SADDLEBROWN=Object.freeze(ie.fromCssColorString("#8B4513"));ie.SALMON=Object.freeze(ie.fromCssColorString("#FA8072"));ie.SANDYBROWN=Object.freeze(ie.fromCssColorString("#F4A460"));ie.SEAGREEN=Object.freeze(ie.fromCssColorString("#2E8B57"));ie.SEASHELL=Object.freeze(ie.fromCssColorString("#FFF5EE"));ie.SIENNA=Object.freeze(ie.fromCssColorString("#A0522D"));ie.SILVER=Object.freeze(ie.fromCssColorString("#C0C0C0"));ie.SKYBLUE=Object.freeze(ie.fromCssColorString("#87CEEB"));ie.SLATEBLUE=Object.freeze(ie.fromCssColorString("#6A5ACD"));ie.SLATEGRAY=Object.freeze(ie.fromCssColorString("#708090"));ie.SLATEGREY=ie.SLATEGRAY;ie.SNOW=Object.freeze(ie.fromCssColorString("#FFFAFA"));ie.SPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FF7F"));ie.STEELBLUE=Object.freeze(ie.fromCssColorString("#4682B4"));ie.TAN=Object.freeze(ie.fromCssColorString("#D2B48C"));ie.TEAL=Object.freeze(ie.fromCssColorString("#008080"));ie.THISTLE=Object.freeze(ie.fromCssColorString("#D8BFD8"));ie.TOMATO=Object.freeze(ie.fromCssColorString("#FF6347"));ie.TURQUOISE=Object.freeze(ie.fromCssColorString("#40E0D0"));ie.VIOLET=Object.freeze(ie.fromCssColorString("#EE82EE"));ie.WHEAT=Object.freeze(ie.fromCssColorString("#F5DEB3"));ie.WHITE=Object.freeze(ie.fromCssColorString("#FFFFFF"));ie.WHITESMOKE=Object.freeze(ie.fromCssColorString("#F5F5F5"));ie.YELLOW=Object.freeze(ie.fromCssColorString("#FFFF00"));ie.YELLOWGREEN=Object.freeze(ie.fromCssColorString("#9ACD32"));ie.TRANSPARENT=Object.freeze(new ie(0,0,0,0));var H=ie;function yve(){return!0}function xve(e,t){t=y(t,"This object was destroyed, i.e., destroy() was called.");function n(){}for(let i in e)typeof e[i]=="function"&&(e[i]=n);e.isDestroyed=yve}var ue=xve;function lu(e,t){e=y(e,0),this._near=e,t=y(t,Number.MAX_VALUE),this._far=t}Object.defineProperties(lu.prototype,{near:{get:function(){return this._near},set:function(e){this._near=e}},far:{get:function(){return this._far},set:function(e){this._far=e}}});lu.packedLength=2;lu.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n]=e.far,t};lu.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new lu),n.near=e[t++],n.far=e[t],n};lu.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.far===t.far};lu.clone=function(e,t){if(l(e))return l(t)||(t=new lu),t.near=e.near,t.far=e.far,t};lu.prototype.clone=function(e){return lu.clone(this,e)};lu.prototype.equals=function(e){return lu.equals(this,e)};var It=lu;function uf(e,t,n,i){this.near=y(e,0),this.nearValue=y(t,0),this.far=y(n,1),this.farValue=y(i,0)}uf.clone=function(e,t){if(l(e))return l(t)?(t.near=e.near,t.nearValue=e.nearValue,t.far=e.far,t.farValue=e.farValue,t):new uf(e.near,e.nearValue,e.far,e.farValue)};uf.packedLength=4;uf.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n++]=e.nearValue,t[n++]=e.far,t[n]=e.farValue,t};uf.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new uf),n.near=e[t++],n.nearValue=e[t++],n.far=e[t++],n.farValue=e[t],n};uf.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.nearValue===t.nearValue&&e.far===t.far&&e.farValue===t.farValue};uf.prototype.clone=function(e){return uf.clone(this,e)};uf.prototype.equals=function(e){return uf.equals(this,e)};var Mt=uf;var ox={NONE:0,CLAMP_TO_GROUND:1,RELATIVE_TO_GROUND:2,CLAMP_TO_TERRAIN:3,RELATIVE_TO_TERRAIN:4,CLAMP_TO_3D_TILE:5,RELATIVE_TO_3D_TILE:6},qe=Object.freeze(ox);function ff(e){return e===ox.CLAMP_TO_GROUND||e===ox.CLAMP_TO_3D_TILE||e===ox.CLAMP_TO_TERRAIN}function HA(e){return e===ox.RELATIVE_TO_GROUND||e===ox.RELATIVE_TO_3D_TILE||e===ox.RELATIVE_TO_TERRAIN}var bve={CENTER:0,LEFT:1,RIGHT:-1},di=Object.freeze(bve);var Tve={CENTER:0,BOTTOM:1,BASELINE:2,TOP:-1},Rn=Object.freeze(Tve);var Ave={DONE:0,PENDING:1,FAILED:2},at=Object.freeze(Ave);function Ad(){de.throwInstantiationError()}Object.defineProperties(Ad.prototype,{isConstant:{get:de.throwInstantiationError},definitionChanged:{get:de.throwInstantiationError}});Ad.prototype.getValue=de.throwInstantiationError;Ad.prototype.equals=de.throwInstantiationError;Ad.equals=function(e,t){return e===t||l(e)&&e.equals(t)};Ad.arrayEquals=function(e,t){if(e===t)return!0;if(!l(e)||!l(t)||e.length!==t.length)return!1;let n=e.length;for(let i=0;i<n;i++)if(!Ad.equals(e[i],t[i]))return!1;return!0};Ad.isConstant=function(e){return!l(e)||e.isConstant};Ad.getValueOrUndefined=function(e,t,n){return l(e)?e.getValue(t,n):void 0};Ad.getValueOrDefault=function(e,t,n,i){return l(e)?y(e.getValue(t,i),n):n};Ad.getValueOrClonedDefault=function(e,t,n,i){let o;return l(e)&&(o=e.getValue(t,i)),l(o)||(o=n.clone(o)),o};var q=Ad;var Cve=H.WHITE,Eve=h.ZERO,Sve=qe.NONE,vve=z.ZERO,wve=1,Dve=0,Pve=h.ZERO,Ive=di.CENTER,Rve=Rn.CENTER,Ove=!1,Mve=new h,Lve=new H,Nve=new h,Fve=new z,Bve=new Mt,kve=new Mt,Vve=new Mt,Uve=new Ge,zve=new It;function gJ(e){this.entity=e,this.billboard=void 0,this.textureValue=void 0}function Ig(e,t){t.collectionChanged.addEventListener(Ig.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new bt,this._onCollectionChanged(t,t.values,[],[])}Ig.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._billboard,c,u=r.billboard,f=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),d;if(f&&(d=q.getValueOrUndefined(s._position,e,Mve),c=q.getValueOrUndefined(a._image,e),f=l(d)&&l(c)),!f){PG(r,s,n);continue}q.isConstant(s._position)||(n._clusterDirty=!0),l(u)||(u=n.getBillboard(s),u.id=s,u.image=void 0,r.billboard=u),u.show=f,(!l(u.image)||r.textureValue!==c)&&(u.image=c,r.textureValue=c),u.position=d,u.color=q.getValueOrDefault(a._color,e,Cve,Lve),u.eyeOffset=q.getValueOrDefault(a._eyeOffset,e,Eve,Nve),u.heightReference=q.getValueOrDefault(a._heightReference,e,Sve),u.pixelOffset=q.getValueOrDefault(a._pixelOffset,e,vve,Fve),u.scale=q.getValueOrDefault(a._scale,e,wve),u.rotation=q.getValueOrDefault(a._rotation,e,Dve),u.alignedAxis=q.getValueOrDefault(a._alignedAxis,e,Pve),u.horizontalOrigin=q.getValueOrDefault(a._horizontalOrigin,e,Ive),u.verticalOrigin=q.getValueOrDefault(a._verticalOrigin,e,Rve),u.width=q.getValueOrUndefined(a._width,e),u.height=q.getValueOrUndefined(a._height,e),u.scaleByDistance=q.getValueOrUndefined(a._scaleByDistance,e,Bve),u.translucencyByDistance=q.getValueOrUndefined(a._translucencyByDistance,e,kve),u.pixelOffsetScaleByDistance=q.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,Vve),u.sizeInMeters=q.getValueOrDefault(a._sizeInMeters,e,Ove),u.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e,zve),u.disableDepthTestDistance=q.getValueOrUndefined(a._disableDepthTestDistance,e);let p=q.getValueOrUndefined(a._imageSubRegion,e,Uve);l(p)&&u.setImageSubRegion(u._imageId,p)}return!0};Ig.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!l(n.billboard))return at.FAILED;let i=n.billboard;if(i.heightReference===qe.NONE)t.center=h.clone(i.position,t.center);else{if(!l(i._clampedPosition))return at.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,at.DONE};Ig.prototype.isDestroyed=function(){return!1};Ig.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Ig.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeBillboard(e[t]);return ue(this)};Ig.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._billboard)&&l(r._position)&&s.set(r.id,new gJ(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._billboard)&&l(r._position)?s.contains(r.id)||s.set(r.id,new gJ(r)):(PG(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],PG(s.get(r.id),r,a),s.remove(r.id)};function PG(e,t,n){l(e)&&(e.billboard=void 0,n.removeBillboard(t))}var tw=Ig;function Hve(e,t){this.start=y(e,0),this.stop=y(t,0)}var Ta=Hve;function mn(e,t){this.center=h.clone(y(e,h.ZERO)),this.radius=y(t,0)}var OG=new h,MG=new h,LG=new h,NG=new h,FG=new h,BG=new h,kG=new h,Ks=new h,VG=new h,UG=new h,zG=new h,HG=new h,Gve=4/3*R.PI;mn.fromPoints=function(e,t){if(l(t)||(t=new mn),!l(e)||e.length===0)return t.center=h.clone(h.ZERO,t.center),t.radius=0,t;let n=h.clone(e[0],kG),i=h.clone(n,OG),o=h.clone(n,MG),r=h.clone(n,LG),s=h.clone(n,NG),a=h.clone(n,FG),c=h.clone(n,BG),u=e.length,f;for(f=1;f<u;f++){h.clone(e[f],n);let I=n.x,L=n.y,N=n.z;I<i.x&&h.clone(n,i),I>s.x&&h.clone(n,s),L<o.y&&h.clone(n,o),L>a.y&&h.clone(n,a),N<r.z&&h.clone(n,r),N>c.z&&h.clone(n,c)}let d=h.magnitudeSquared(h.subtract(s,i,Ks)),p=h.magnitudeSquared(h.subtract(a,o,Ks)),g=h.magnitudeSquared(h.subtract(c,r,Ks)),m=i,x=s,b=d;p>b&&(b=p,m=o,x=a),g>b&&(b=g,m=r,x=c);let T=VG;T.x=(m.x+x.x)*.5,T.y=(m.y+x.y)*.5,T.z=(m.z+x.z)*.5;let C=h.magnitudeSquared(h.subtract(x,T,Ks)),A=Math.sqrt(C),E=UG;E.x=i.x,E.y=o.y,E.z=r.z;let v=zG;v.x=s.x,v.y=a.y,v.z=c.z;let D=h.midpoint(E,v,HG),O=0;for(f=0;f<u;f++){h.clone(e[f],n);let I=h.magnitude(h.subtract(n,D,Ks));I>O&&(O=I);let L=h.magnitudeSquared(h.subtract(n,T,Ks));if(L>C){let N=Math.sqrt(L);A=(A+N)*.5,C=A*A;let _=N-A;T.x=(A*T.x+_*n.x)/N,T.y=(A*T.y+_*n.y)/N,T.z=(A*T.z+_*n.z)/N}}return A<O?(h.clone(T,t.center),t.radius=A):(h.clone(D,t.center),t.radius=O),t};var Wve=new Ci,jve=new h,qve=new h,IG=new fe,RG=new fe;mn.fromRectangle2D=function(e,t,n){return mn.fromRectangleWithHeights2D(e,t,0,0,n)};mn.fromRectangleWithHeights2D=function(e,t,n,i,o){if(l(o)||(o=new mn),!l(e))return o.center=h.clone(h.ZERO,o.center),o.radius=0,o;t=y(t,Wve),se.southwest(e,IG),IG.height=n,se.northeast(e,RG),RG.height=i;let r=t.project(IG,jve),s=t.project(RG,qve),a=s.x-r.x,c=s.y-r.y,u=s.z-r.z;o.radius=Math.sqrt(a*a+c*c+u*u)*.5;let f=o.center;return f.x=r.x+a*.5,f.y=r.y+c*.5,f.z=r.z+u*.5,o};var Yve=[];mn.fromRectangle3D=function(e,t,n,i){if(t=y(t,te.WGS84),n=y(n,0),l(i)||(i=new mn),!l(e))return i.center=h.clone(h.ZERO,i.center),i.radius=0,i;let o=se.subsample(e,t,n,Yve);return mn.fromPoints(o,i)};mn.fromVertices=function(e,t,n,i){if(l(i)||(i=new mn),!l(e)||e.length===0)return i.center=h.clone(h.ZERO,i.center),i.radius=0,i;t=y(t,h.ZERO),n=y(n,3);let o=kG;o.x=e[0]+t.x,o.y=e[1]+t.y,o.z=e[2]+t.z;let r=h.clone(o,OG),s=h.clone(o,MG),a=h.clone(o,LG),c=h.clone(o,NG),u=h.clone(o,FG),f=h.clone(o,BG),d=e.length,p;for(p=0;p<d;p+=n){let N=e[p]+t.x,_=e[p+1]+t.y,S=e[p+2]+t.z;o.x=N,o.y=_,o.z=S,N<r.x&&h.clone(o,r),N>c.x&&h.clone(o,c),_<s.y&&h.clone(o,s),_>u.y&&h.clone(o,u),S<a.z&&h.clone(o,a),S>f.z&&h.clone(o,f)}let g=h.magnitudeSquared(h.subtract(c,r,Ks)),m=h.magnitudeSquared(h.subtract(u,s,Ks)),x=h.magnitudeSquared(h.subtract(f,a,Ks)),b=r,T=c,C=g;m>C&&(C=m,b=s,T=u),x>C&&(C=x,b=a,T=f);let A=VG;A.x=(b.x+T.x)*.5,A.y=(b.y+T.y)*.5,A.z=(b.z+T.z)*.5;let E=h.magnitudeSquared(h.subtract(T,A,Ks)),v=Math.sqrt(E),D=UG;D.x=r.x,D.y=s.y,D.z=a.z;let O=zG;O.x=c.x,O.y=u.y,O.z=f.z;let I=h.midpoint(D,O,HG),L=0;for(p=0;p<d;p+=n){o.x=e[p]+t.x,o.y=e[p+1]+t.y,o.z=e[p+2]+t.z;let N=h.magnitude(h.subtract(o,I,Ks));N>L&&(L=N);let _=h.magnitudeSquared(h.subtract(o,A,Ks));if(_>E){let S=Math.sqrt(_);v=(v+S)*.5,E=v*v;let w=S-v;A.x=(v*A.x+w*o.x)/S,A.y=(v*A.y+w*o.y)/S,A.z=(v*A.z+w*o.z)/S}}return v<L?(h.clone(A,i.center),i.radius=v):(h.clone(I,i.center),i.radius=L),i};mn.fromEncodedCartesianVertices=function(e,t,n){if(l(n)||(n=new mn),!l(e)||!l(t)||e.length!==t.length||e.length===0)return n.center=h.clone(h.ZERO,n.center),n.radius=0,n;let i=kG;i.x=e[0]+t[0],i.y=e[1]+t[1],i.z=e[2]+t[2];let o=h.clone(i,OG),r=h.clone(i,MG),s=h.clone(i,LG),a=h.clone(i,NG),c=h.clone(i,FG),u=h.clone(i,BG),f=e.length,d;for(d=0;d<f;d+=3){let L=e[d]+t[d],N=e[d+1]+t[d+1],_=e[d+2]+t[d+2];i.x=L,i.y=N,i.z=_,L<o.x&&h.clone(i,o),L>a.x&&h.clone(i,a),N<r.y&&h.clone(i,r),N>c.y&&h.clone(i,c),_<s.z&&h.clone(i,s),_>u.z&&h.clone(i,u)}let p=h.magnitudeSquared(h.subtract(a,o,Ks)),g=h.magnitudeSquared(h.subtract(c,r,Ks)),m=h.magnitudeSquared(h.subtract(u,s,Ks)),x=o,b=a,T=p;g>T&&(T=g,x=r,b=c),m>T&&(T=m,x=s,b=u);let C=VG;C.x=(x.x+b.x)*.5,C.y=(x.y+b.y)*.5,C.z=(x.z+b.z)*.5;let A=h.magnitudeSquared(h.subtract(b,C,Ks)),E=Math.sqrt(A),v=UG;v.x=o.x,v.y=r.y,v.z=s.z;let D=zG;D.x=a.x,D.y=c.y,D.z=u.z;let O=h.midpoint(v,D,HG),I=0;for(d=0;d<f;d+=3){i.x=e[d]+t[d],i.y=e[d+1]+t[d+1],i.z=e[d+2]+t[d+2];let L=h.magnitude(h.subtract(i,O,Ks));L>I&&(I=L);let N=h.magnitudeSquared(h.subtract(i,C,Ks));if(N>A){let _=Math.sqrt(N);E=(E+_)*.5,A=E*E;let S=_-E;C.x=(E*C.x+S*i.x)/_,C.y=(E*C.y+S*i.y)/_,C.z=(E*C.z+S*i.z)/_}}return E<I?(h.clone(C,n.center),n.radius=E):(h.clone(O,n.center),n.radius=I),n};mn.fromCornerPoints=function(e,t,n){l(n)||(n=new mn);let i=h.midpoint(e,t,n.center);return n.radius=h.distance(i,t),n};mn.fromEllipsoid=function(e,t){return l(t)||(t=new mn),h.clone(h.ZERO,t.center),t.radius=e.maximumRadius,t};var Xve=new h;mn.fromBoundingSpheres=function(e,t){if(l(t)||(t=new mn),!l(e)||e.length===0)return t.center=h.clone(h.ZERO,t.center),t.radius=0,t;let n=e.length;if(n===1)return mn.clone(e[0],t);if(n===2)return mn.union(e[0],e[1],t);let i=[],o;for(o=0;o<n;o++)i.push(e[o].center);t=mn.fromPoints(i,t);let r=t.center,s=t.radius;for(o=0;o<n;o++){let a=e[o];s=Math.max(s,h.distance(r,a.center,Xve)+a.radius)}return t.radius=s,t};var Kve=new h,Zve=new h,$ve=new h;mn.fromOrientedBoundingBox=function(e,t){l(t)||(t=new mn);let n=e.halfAxes,i=$.getColumn(n,0,Kve),o=$.getColumn(n,1,Zve),r=$.getColumn(n,2,$ve);return h.add(i,o,i),h.add(i,r,i),t.center=h.clone(e.center,t.center),t.radius=h.magnitude(i),t};var Qve=new h,Jve=new h;mn.fromTransformation=function(e,t){l(t)||(t=new mn);let n=F.getTranslation(e,Qve),i=F.getScale(e,Jve),o=.5*h.magnitude(i);return t.center=h.clone(n,t.center),t.radius=o,t};mn.clone=function(e,t){if(l(e))return l(t)?(t.center=h.clone(e.center,t.center),t.radius=e.radius,t):new mn(e.center,e.radius)};mn.packedLength=4;mn.pack=function(e,t,n){n=y(n,0);let i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t};mn.unpack=function(e,t,n){t=y(t,0),l(n)||(n=new mn);let i=n.center;return i.x=e[t++],i.y=e[t++],i.z=e[t++],n.radius=e[t],n};var ewe=new h,twe=new h;mn.union=function(e,t,n){l(n)||(n=new mn);let i=e.center,o=e.radius,r=t.center,s=t.radius,a=h.subtract(r,i,ewe),c=h.magnitude(a);if(o>=c+s)return e.clone(n),n;if(s>=c+o)return t.clone(n),n;let u=(o+c+s)*.5,f=h.multiplyByScalar(a,(-o+u)/c,twe);return h.add(f,i,f),h.clone(f,n.center),n.radius=u,n};var nwe=new h;mn.expand=function(e,t,n){n=mn.clone(e,n);let i=h.magnitude(h.subtract(t,n.center,nwe));return i>n.radius&&(n.radius=i),n};mn.intersectPlane=function(e,t){let n=e.center,i=e.radius,o=t.normal,r=h.dot(o,n)+t.distance;return r<-i?Gt.OUTSIDE:r<i?Gt.INTERSECTING:Gt.INSIDE};mn.transform=function(e,t,n){return l(n)||(n=new mn),n.center=F.multiplyByPoint(t,e.center,n.center),n.radius=F.getMaximumScale(t)*e.radius,n};var iwe=new h;mn.distanceSquaredTo=function(e,t){let n=h.subtract(e.center,t,iwe),i=h.magnitude(n)-e.radius;return i<=0?0:i*i};mn.transformWithoutScale=function(e,t,n){return l(n)||(n=new mn),n.center=F.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var owe=new h;mn.computePlaneDistances=function(e,t,n,i){l(i)||(i=new Ta);let o=h.subtract(e.center,t,owe),r=h.dot(n,o);return i.start=r-e.radius,i.stop=r+e.radius,i};var yJ=new h,rwe=new h,swe=new h,awe=new h,cwe=new h,lwe=new fe,xJ=new Array(8);for(let e=0;e<8;++e)xJ[e]=new h;var uwe=new Ci;mn.projectTo2D=function(e,t,n){t=y(t,uwe);let i=t.ellipsoid,o=e.center,r=e.radius,s;h.equals(o,h.ZERO)?s=h.clone(h.UNIT_X,yJ):s=i.geodeticSurfaceNormal(o,yJ);let a=h.cross(h.UNIT_Z,s,rwe);h.normalize(a,a);let c=h.cross(s,a,swe);h.normalize(c,c),h.multiplyByScalar(s,r,s),h.multiplyByScalar(c,r,c),h.multiplyByScalar(a,r,a);let u=h.negate(c,cwe),f=h.negate(a,awe),d=xJ,p=d[0];h.add(s,c,p),h.add(p,a,p),p=d[1],h.add(s,c,p),h.add(p,f,p),p=d[2],h.add(s,u,p),h.add(p,f,p),p=d[3],h.add(s,u,p),h.add(p,a,p),h.negate(s,s),p=d[4],h.add(s,c,p),h.add(p,a,p),p=d[5],h.add(s,c,p),h.add(p,f,p),p=d[6],h.add(s,u,p),h.add(p,f,p),p=d[7],h.add(s,u,p),h.add(p,a,p);let g=d.length;for(let T=0;T<g;++T){let C=d[T];h.add(o,C,C);let A=i.cartesianToCartographic(C,lwe);t.project(A,C)}n=mn.fromPoints(d,n),o=n.center;let m=o.x,x=o.y,b=o.z;return o.x=b,o.y=m,o.z=x,n};mn.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)};mn.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&e.radius===t.radius};mn.prototype.intersectPlane=function(e){return mn.intersectPlane(this,e)};mn.prototype.distanceSquaredTo=function(e){return mn.distanceSquaredTo(this,e)};mn.prototype.computePlaneDistances=function(e,t,n){return mn.computePlaneDistances(this,e,t,n)};mn.prototype.isOccluded=function(e){return mn.isOccluded(this,e)};mn.prototype.equals=function(e){return mn.equals(this,e)};mn.prototype.clone=function(e){return mn.clone(this,e)};mn.prototype.volume=function(){let e=this.radius;return Gve*e*e*e};var ae=mn;var fwe={DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGBA_ASTC_4x4_WEBGL:37808,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_BPTC_UNORM:36492,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047},ee=Object.freeze(fwe);var En={BYTE:ee.BYTE,UNSIGNED_BYTE:ee.UNSIGNED_BYTE,SHORT:ee.SHORT,UNSIGNED_SHORT:ee.UNSIGNED_SHORT,INT:ee.INT,UNSIGNED_INT:ee.UNSIGNED_INT,FLOAT:ee.FLOAT,DOUBLE:ee.DOUBLE};En.getSizeInBytes=function(e){switch(e){case En.BYTE:return Int8Array.BYTES_PER_ELEMENT;case En.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case En.SHORT:return Int16Array.BYTES_PER_ELEMENT;case En.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case En.INT:return Int32Array.BYTES_PER_ELEMENT;case En.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case En.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case En.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}};En.fromTypedArray=function(e){if(e instanceof Int8Array)return En.BYTE;if(e instanceof Uint8Array)return En.UNSIGNED_BYTE;if(e instanceof Int16Array)return En.SHORT;if(e instanceof Uint16Array)return En.UNSIGNED_SHORT;if(e instanceof Int32Array)return En.INT;if(e instanceof Uint32Array)return En.UNSIGNED_INT;if(e instanceof Float32Array)return En.FLOAT;if(e instanceof Float64Array)return En.DOUBLE};En.validate=function(e){return l(e)&&(e===En.BYTE||e===En.UNSIGNED_BYTE||e===En.SHORT||e===En.UNSIGNED_SHORT||e===En.INT||e===En.UNSIGNED_INT||e===En.FLOAT||e===En.DOUBLE)};En.createTypedArray=function(e,t){switch(e){case En.BYTE:return new Int8Array(t);case En.UNSIGNED_BYTE:return new Uint8Array(t);case En.SHORT:return new Int16Array(t);case En.UNSIGNED_SHORT:return new Uint16Array(t);case En.INT:return new Int32Array(t);case En.UNSIGNED_INT:return new Uint32Array(t);case En.FLOAT:return new Float32Array(t);case En.DOUBLE:return new Float64Array(t)}};En.createArrayBufferView=function(e,t,n,i){switch(n=y(n,0),i=y(i,(t.byteLength-n)/En.getSizeInBytes(e)),e){case En.BYTE:return new Int8Array(t,n,i);case En.UNSIGNED_BYTE:return new Uint8Array(t,n,i);case En.SHORT:return new Int16Array(t,n,i);case En.UNSIGNED_SHORT:return new Uint16Array(t,n,i);case En.INT:return new Int32Array(t,n,i);case En.UNSIGNED_INT:return new Uint32Array(t,n,i);case En.FLOAT:return new Float32Array(t,n,i);case En.DOUBLE:return new Float64Array(t,n,i)}};En.fromName=function(e){switch(e){case"BYTE":return En.BYTE;case"UNSIGNED_BYTE":return En.UNSIGNED_BYTE;case"SHORT":return En.SHORT;case"UNSIGNED_SHORT":return En.UNSIGNED_SHORT;case"INT":return En.INT;case"UNSIGNED_INT":return En.UNSIGNED_INT;case"FLOAT":return En.FLOAT;case"DOUBLE":return En.DOUBLE}};var X=Object.freeze(En);var dwe={NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3},df=Object.freeze(dwe);function Yt(e,t,n,i){this[0]=y(e,0),this[1]=y(n,0),this[2]=y(t,0),this[3]=y(i,0)}Yt.packedLength=4;Yt.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t};Yt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Yt),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n};Yt.packArray=function(e,t){let n=e.length,i=n*4;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Yt.pack(e[o],t,o*4);return t};Yt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let o=i/4;t[o]=Yt.unpack(e,i,t[o])}return t};Yt.clone=function(e,t){if(l(e))return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new Yt(e[0],e[2],e[1],e[3])};Yt.fromArray=Yt.unpack;Yt.fromColumnMajorArray=function(e,t){return Yt.clone(e,t)};Yt.fromRowMajorArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new Yt(e[0],e[1],e[2],e[3])};Yt.fromScale=function(e,t){return l(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new Yt(e.x,0,0,e.y)};Yt.fromUniformScale=function(e,t){return l(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new Yt(e,0,0,e)};Yt.fromRotation=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new Yt(n,-i,i,n)};Yt.toArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]};Yt.getElementIndex=function(e,t){return e*2+t};Yt.getColumn=function(e,t,n){let i=t*2,o=e[i],r=e[i+1];return n.x=o,n.y=r,n};Yt.setColumn=function(e,t,n,i){i=Yt.clone(e,i);let o=t*2;return i[o]=n.x,i[o+1]=n.y,i};Yt.getRow=function(e,t,n){let i=e[t],o=e[t+2];return n.x=i,n.y=o,n};Yt.setRow=function(e,t,n,i){return i=Yt.clone(e,i),i[t]=n.x,i[t+2]=n.y,i};var hwe=new z;Yt.setScale=function(e,t,n){let i=Yt.getScale(e,hwe),o=t.x/i.x,r=t.y/i.y;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*r,n[3]=e[3]*r,n};var mwe=new z;Yt.setUniformScale=function(e,t,n){let i=Yt.getScale(e,mwe),o=t/i.x,r=t/i.y;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*r,n[3]=e[3]*r,n};var bJ=new z;Yt.getScale=function(e,t){return t.x=z.magnitude(z.fromElements(e[0],e[1],bJ)),t.y=z.magnitude(z.fromElements(e[2],e[3],bJ)),t};var TJ=new z;Yt.getMaximumScale=function(e){return Yt.getScale(e,TJ),z.maximumComponent(TJ)};var pwe=new z;Yt.setRotation=function(e,t,n){let i=Yt.getScale(e,pwe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.y,n[3]=t[3]*i.y,n};var _we=new z;Yt.getRotation=function(e,t){let n=Yt.getScale(e,_we);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.y,t[3]=e[3]/n.y,t};Yt.multiply=function(e,t,n){let i=e[0]*t[0]+e[2]*t[1],o=e[0]*t[2]+e[2]*t[3],r=e[1]*t[0]+e[3]*t[1],s=e[1]*t[2]+e[3]*t[3];return n[0]=i,n[1]=r,n[2]=o,n[3]=s,n};Yt.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n};Yt.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n};Yt.multiplyByVector=function(e,t,n){let i=e[0]*t.x+e[2]*t.y,o=e[1]*t.x+e[3]*t.y;return n.x=i,n.y=o,n};Yt.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};Yt.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n};Yt.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};Yt.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t};Yt.transpose=function(e,t){let n=e[0],i=e[2],o=e[1],r=e[3];return t[0]=n,t[1]=i,t[2]=o,t[3]=r,t};Yt.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t};Yt.equals=function(e,t){return e===t||l(e)&&l(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]};Yt.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]};Yt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n};Yt.IDENTITY=Object.freeze(new Yt(1,0,0,1));Yt.ZERO=Object.freeze(new Yt(0,0,0,0));Yt.COLUMN0ROW0=0;Yt.COLUMN0ROW1=1;Yt.COLUMN1ROW0=2;Yt.COLUMN1ROW1=3;Object.defineProperties(Yt.prototype,{length:{get:function(){return Yt.packedLength}}});Yt.prototype.clone=function(e){return Yt.clone(this,e)};Yt.prototype.equals=function(e){return Yt.equals(this,e)};Yt.prototype.equalsEpsilon=function(e,t){return Yt.equalsEpsilon(this,e,t)};Yt.prototype.toString=function(){return`(${this[0]}, ${this[2]}) (${this[1]}, ${this[3]})`};var Qi=Yt;var Aa={POINTS:ee.POINTS,LINES:ee.LINES,LINE_LOOP:ee.LINE_LOOP,LINE_STRIP:ee.LINE_STRIP,TRIANGLES:ee.TRIANGLES,TRIANGLE_STRIP:ee.TRIANGLE_STRIP,TRIANGLE_FAN:ee.TRIANGLE_FAN};Aa.isLines=function(e){return e===Aa.LINES||e===Aa.LINE_LOOP||e===Aa.LINE_STRIP};Aa.isTriangles=function(e){return e===Aa.TRIANGLES||e===Aa.TRIANGLE_STRIP||e===Aa.TRIANGLE_FAN};Aa.validate=function(e){return e===Aa.POINTS||e===Aa.LINES||e===Aa.LINE_LOOP||e===Aa.LINE_STRIP||e===Aa.TRIANGLES||e===Aa.TRIANGLE_STRIP||e===Aa.TRIANGLE_FAN};var Le=Object.freeze(Aa);function GG(e){e=y(e,y.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=y(e.primitiveType,Le.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=y(e.geometryType,df.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}GG.computeNumberOfVertices=function(e){let t=-1;for(let n in e.attributes)if(e.attributes.hasOwnProperty(n)&&l(e.attributes[n])&&l(e.attributes[n].values)){let i=e.attributes[n];t=i.values.length/i.componentsPerAttribute}return t};var gwe=new fe,ywe=new h,AJ=new F,xwe=[new fe,new fe,new fe],bwe=[new z,new z,new z],Twe=[new z,new z,new z],Awe=new h,Cwe=new Me,Ewe=new F,Swe=new Qi;GG._textureCoordinateRotationPoints=function(e,t,n,i){let o,r=se.center(i,gwe),s=fe.toCartesian(r,n,ywe),a=wt.eastNorthUpToFixedFrame(s,n,AJ),c=F.inverse(a,AJ),u=bwe,f=xwe;f[0].longitude=i.west,f[0].latitude=i.south,f[1].longitude=i.west,f[1].latitude=i.north,f[2].longitude=i.east,f[2].latitude=i.south;let d=Awe;for(o=0;o<3;o++)fe.toCartesian(f[o],n,d),d=F.multiplyByPointAsVector(c,d,d),u[o].x=d.x,u[o].y=d.y;let p=Me.fromAxisAngle(h.UNIT_Z,-t,Cwe),g=$.fromQuaternion(p,Ewe),m=e.length,x=Number.POSITIVE_INFINITY,b=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY,C=Number.NEGATIVE_INFINITY;for(o=0;o<m;o++)d=F.multiplyByPointAsVector(c,e[o],d),d=$.multiplyByVector(g,d,d),x=Math.min(x,d.x),b=Math.min(b,d.y),T=Math.max(T,d.x),C=Math.max(C,d.y);let A=Qi.fromRotation(t,Swe),E=Twe;E[0].x=x,E[0].y=b,E[1].x=x,E[1].y=C,E[2].x=T,E[2].y=b;let v=u[0],D=u[2].x-v.x,O=u[1].y-v.y;for(o=0;o<3;o++){let S=E[o];Qi.multiplyByVector(A,S,S),S.x=(S.x-v.x)/D,S.y=(S.y-v.y)/O}let I=E[0],L=E[1],N=E[2],_=new Array(6);return z.pack(I,_),z.pack(L,_,2),z.pack(N,_,4),_};var st=GG;function vwe(e){e=y(e,y.EMPTY_OBJECT),this.componentDatatype=e.componentDatatype,this.componentsPerAttribute=e.componentsPerAttribute,this.normalize=y(e.normalize,!1),this.values=e.values}var ve=vwe;function wwe(e){e=y(e,y.EMPTY_OBJECT),this.position=e.position,this.normal=e.normal,this.st=e.st,this.bitangent=e.bitangent,this.tangent=e.tangent,this.color=e.color}var fn=wwe;var Dwe={NONE:0,TOP:1,ALL:2},an=Object.freeze(Dwe);function rs(e){e=y(e,y.EMPTY_OBJECT),this.position=y(e.position,!1),this.normal=y(e.normal,!1),this.st=y(e.st,!1),this.bitangent=y(e.bitangent,!1),this.tangent=y(e.tangent,!1),this.color=y(e.color,!1)}rs.POSITION_ONLY=Object.freeze(new rs({position:!0}));rs.POSITION_AND_NORMAL=Object.freeze(new rs({position:!0,normal:!0}));rs.POSITION_NORMAL_AND_ST=Object.freeze(new rs({position:!0,normal:!0,st:!0}));rs.POSITION_AND_ST=Object.freeze(new rs({position:!0,st:!0}));rs.POSITION_AND_COLOR=Object.freeze(new rs({position:!0,color:!0}));rs.ALL=Object.freeze(new rs({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0}));rs.DEFAULT=rs.POSITION_NORMAL_AND_ST;rs.packedLength=6;rs.pack=function(e,t,n){return n=y(n,0),t[n++]=e.position?1:0,t[n++]=e.normal?1:0,t[n++]=e.st?1:0,t[n++]=e.tangent?1:0,t[n++]=e.bitangent?1:0,t[n]=e.color?1:0,t};rs.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new rs),n.position=e[t++]===1,n.normal=e[t++]===1,n.st=e[t++]===1,n.tangent=e[t++]===1,n.bitangent=e[t++]===1,n.color=e[t]===1,n};rs.clone=function(e,t){if(l(e))return l(t)||(t=new rs),t.position=e.position,t.normal=e.normal,t.st=e.st,t.tangent=e.tangent,t.bitangent=e.bitangent,t.color=e.color,t};var Ie=rs;var Pwe=new h;function uu(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum,i=y(e.vertexFormat,Ie.DEFAULT);this._minimum=h.clone(t),this._maximum=h.clone(n),this._vertexFormat=i,this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxGeometry"}uu.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new uu({minimum:h.negate(n,new h),maximum:n,vertexFormat:e.vertexFormat,offsetAttribute:e.offsetAttribute})};uu.fromAxisAlignedBoundingBox=function(e){return new uu({minimum:e.minimum,maximum:e.maximum})};uu.packedLength=2*h.packedLength+Ie.packedLength+1;uu.pack=function(e,t,n){return n=y(n,0),h.pack(e._minimum,t,n),h.pack(e._maximum,t,n+h.packedLength),Ie.pack(e._vertexFormat,t,n+2*h.packedLength),t[n+2*h.packedLength+Ie.packedLength]=y(e._offsetAttribute,-1),t};var EJ=new h,SJ=new h,vJ=new Ie,CJ={minimum:EJ,maximum:SJ,vertexFormat:vJ,offsetAttribute:void 0};uu.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,EJ),o=h.unpack(e,t+h.packedLength,SJ),r=Ie.unpack(e,t+2*h.packedLength,vJ),s=e[t+2*h.packedLength+Ie.packedLength];return l(n)?(n._minimum=h.clone(i,n._minimum),n._maximum=h.clone(o,n._maximum),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._offsetAttribute=s===-1?void 0:s,n):(CJ.offsetAttribute=s===-1?void 0:s,new uu(CJ))};uu.createGeometry=function(e){let t=e._minimum,n=e._maximum,i=e._vertexFormat;if(h.equals(t,n))return;let o=new fn,r,s;if(i.position&&(i.st||i.normal||i.tangent||i.bitangent)){if(i.position&&(s=new Float64Array(6*4*3),s[0]=t.x,s[1]=t.y,s[2]=n.z,s[3]=n.x,s[4]=t.y,s[5]=n.z,s[6]=n.x,s[7]=n.y,s[8]=n.z,s[9]=t.x,s[10]=n.y,s[11]=n.z,s[12]=t.x,s[13]=t.y,s[14]=t.z,s[15]=n.x,s[16]=t.y,s[17]=t.z,s[18]=n.x,s[19]=n.y,s[20]=t.z,s[21]=t.x,s[22]=n.y,s[23]=t.z,s[24]=n.x,s[25]=t.y,s[26]=t.z,s[27]=n.x,s[28]=n.y,s[29]=t.z,s[30]=n.x,s[31]=n.y,s[32]=n.z,s[33]=n.x,s[34]=t.y,s[35]=n.z,s[36]=t.x,s[37]=t.y,s[38]=t.z,s[39]=t.x,s[40]=n.y,s[41]=t.z,s[42]=t.x,s[43]=n.y,s[44]=n.z,s[45]=t.x,s[46]=t.y,s[47]=n.z,s[48]=t.x,s[49]=n.y,s[50]=t.z,s[51]=n.x,s[52]=n.y,s[53]=t.z,s[54]=n.x,s[55]=n.y,s[56]=n.z,s[57]=t.x,s[58]=n.y,s[59]=n.z,s[60]=t.x,s[61]=t.y,s[62]=t.z,s[63]=n.x,s[64]=t.y,s[65]=t.z,s[66]=n.x,s[67]=t.y,s[68]=n.z,s[69]=t.x,s[70]=t.y,s[71]=n.z,o.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})),i.normal){let u=new Float32Array(72);u[0]=0,u[1]=0,u[2]=1,u[3]=0,u[4]=0,u[5]=1,u[6]=0,u[7]=0,u[8]=1,u[9]=0,u[10]=0,u[11]=1,u[12]=0,u[13]=0,u[14]=-1,u[15]=0,u[16]=0,u[17]=-1,u[18]=0,u[19]=0,u[20]=-1,u[21]=0,u[22]=0,u[23]=-1,u[24]=1,u[25]=0,u[26]=0,u[27]=1,u[28]=0,u[29]=0,u[30]=1,u[31]=0,u[32]=0,u[33]=1,u[34]=0,u[35]=0,u[36]=-1,u[37]=0,u[38]=0,u[39]=-1,u[40]=0,u[41]=0,u[42]=-1,u[43]=0,u[44]=0,u[45]=-1,u[46]=0,u[47]=0,u[48]=0,u[49]=1,u[50]=0,u[51]=0,u[52]=1,u[53]=0,u[54]=0,u[55]=1,u[56]=0,u[57]=0,u[58]=1,u[59]=0,u[60]=0,u[61]=-1,u[62]=0,u[63]=0,u[64]=-1,u[65]=0,u[66]=0,u[67]=-1,u[68]=0,u[69]=0,u[70]=-1,u[71]=0,o.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}if(i.st){let u=new Float32Array(48);u[0]=0,u[1]=0,u[2]=1,u[3]=0,u[4]=1,u[5]=1,u[6]=0,u[7]=1,u[8]=1,u[9]=0,u[10]=0,u[11]=0,u[12]=0,u[13]=1,u[14]=1,u[15]=1,u[16]=0,u[17]=0,u[18]=1,u[19]=0,u[20]=1,u[21]=1,u[22]=0,u[23]=1,u[24]=1,u[25]=0,u[26]=0,u[27]=0,u[28]=0,u[29]=1,u[30]=1,u[31]=1,u[32]=1,u[33]=0,u[34]=0,u[35]=0,u[36]=0,u[37]=1,u[38]=1,u[39]=1,u[40]=0,u[41]=0,u[42]=1,u[43]=0,u[44]=1,u[45]=1,u[46]=0,u[47]=1,o.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:u})}if(i.tangent){let u=new Float32Array(72);u[0]=1,u[1]=0,u[2]=0,u[3]=1,u[4]=0,u[5]=0,u[6]=1,u[7]=0,u[8]=0,u[9]=1,u[10]=0,u[11]=0,u[12]=-1,u[13]=0,u[14]=0,u[15]=-1,u[16]=0,u[17]=0,u[18]=-1,u[19]=0,u[20]=0,u[21]=-1,u[22]=0,u[23]=0,u[24]=0,u[25]=1,u[26]=0,u[27]=0,u[28]=1,u[29]=0,u[30]=0,u[31]=1,u[32]=0,u[33]=0,u[34]=1,u[35]=0,u[36]=0,u[37]=-1,u[38]=0,u[39]=0,u[40]=-1,u[41]=0,u[42]=0,u[43]=-1,u[44]=0,u[45]=0,u[46]=-1,u[47]=0,u[48]=-1,u[49]=0,u[50]=0,u[51]=-1,u[52]=0,u[53]=0,u[54]=-1,u[55]=0,u[56]=0,u[57]=-1,u[58]=0,u[59]=0,u[60]=1,u[61]=0,u[62]=0,u[63]=1,u[64]=0,u[65]=0,u[66]=1,u[67]=0,u[68]=0,u[69]=1,u[70]=0,u[71]=0,o.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}if(i.bitangent){let u=new Float32Array(72);u[0]=0,u[1]=1,u[2]=0,u[3]=0,u[4]=1,u[5]=0,u[6]=0,u[7]=1,u[8]=0,u[9]=0,u[10]=1,u[11]=0,u[12]=0,u[13]=1,u[14]=0,u[15]=0,u[16]=1,u[17]=0,u[18]=0,u[19]=1,u[20]=0,u[21]=0,u[22]=1,u[23]=0,u[24]=0,u[25]=0,u[26]=1,u[27]=0,u[28]=0,u[29]=1,u[30]=0,u[31]=0,u[32]=1,u[33]=0,u[34]=0,u[35]=1,u[36]=0,u[37]=0,u[38]=1,u[39]=0,u[40]=0,u[41]=1,u[42]=0,u[43]=0,u[44]=1,u[45]=0,u[46]=0,u[47]=1,u[48]=0,u[49]=0,u[50]=1,u[51]=0,u[52]=0,u[53]=1,u[54]=0,u[55]=0,u[56]=1,u[57]=0,u[58]=0,u[59]=1,u[60]=0,u[61]=0,u[62]=1,u[63]=0,u[64]=0,u[65]=1,u[66]=0,u[67]=0,u[68]=1,u[69]=0,u[70]=0,u[71]=1,o.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}r=new Uint16Array(6*2*3),r[0]=0,r[1]=1,r[2]=2,r[3]=0,r[4]=2,r[5]=3,r[6]=6,r[7]=5,r[8]=4,r[9]=7,r[10]=6,r[11]=4,r[12]=8,r[13]=9,r[14]=10,r[15]=8,r[16]=10,r[17]=11,r[18]=14,r[19]=13,r[20]=12,r[21]=15,r[22]=14,r[23]=12,r[24]=18,r[25]=17,r[26]=16,r[27]=19,r[28]=18,r[29]=16,r[30]=20,r[31]=21,r[32]=22,r[33]=20,r[34]=22,r[35]=23}else s=new Float64Array(8*3),s[0]=t.x,s[1]=t.y,s[2]=t.z,s[3]=n.x,s[4]=t.y,s[5]=t.z,s[6]=n.x,s[7]=n.y,s[8]=t.z,s[9]=t.x,s[10]=n.y,s[11]=t.z,s[12]=t.x,s[13]=t.y,s[14]=n.z,s[15]=n.x,s[16]=t.y,s[17]=n.z,s[18]=n.x,s[19]=n.y,s[20]=n.z,s[21]=t.x,s[22]=n.y,s[23]=n.z,o.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s}),r=new Uint16Array(6*2*3),r[0]=4,r[1]=5,r[2]=6,r[3]=4,r[4]=6,r[5]=7,r[6]=1,r[7]=0,r[8]=3,r[9]=1,r[10]=3,r[11]=2,r[12]=1,r[13]=6,r[14]=5,r[15]=1,r[16]=2,r[17]=6,r[18]=2,r[19]=3,r[20]=7,r[21]=2,r[22]=7,r[23]=6,r[24]=3,r[25]=0,r[26]=4,r[27]=3,r[28]=4,r[29]=7,r[30]=0,r[31]=1,r[32]=5,r[33]=0,r[34]=5,r[35]=4;let a=h.subtract(n,t,Pwe),c=h.magnitude(a)*.5;if(l(e._offsetAttribute)){let u=s.length,f=e._offsetAttribute===an.NONE?0:1,d=new Uint8Array(u/3).fill(f);o.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return new st({attributes:o,indices:r,primitiveType:Le.TRIANGLES,boundingSphere:new ae(h.ZERO,c),offsetAttribute:e._offsetAttribute})};var WG;uu.getUnitBox=function(){return l(WG)||(WG=uu.createGeometry(uu.fromDimensions({dimensions:new h(1,1,1),vertexFormat:Ie.POSITION_ONLY}))),WG};var Al=uu;var Iwe=new h;function Zh(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum;this._min=h.clone(t),this._max=h.clone(n),this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxOutlineGeometry"}Zh.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new Zh({minimum:h.negate(n,new h),maximum:n,offsetAttribute:e.offsetAttribute})};Zh.fromAxisAlignedBoundingBox=function(e){return new Zh({minimum:e.minimum,maximum:e.maximum})};Zh.packedLength=2*h.packedLength+1;Zh.pack=function(e,t,n){return n=y(n,0),h.pack(e._min,t,n),h.pack(e._max,t,n+h.packedLength),t[n+h.packedLength*2]=y(e._offsetAttribute,-1),t};var DJ=new h,PJ=new h,wJ={minimum:DJ,maximum:PJ,offsetAttribute:void 0};Zh.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,DJ),o=h.unpack(e,t+h.packedLength,PJ),r=e[t+h.packedLength*2];return l(n)?(n._min=h.clone(i,n._min),n._max=h.clone(o,n._max),n._offsetAttribute=r===-1?void 0:r,n):(wJ.offsetAttribute=r===-1?void 0:r,new Zh(wJ))};Zh.createGeometry=function(e){let t=e._min,n=e._max;if(h.equals(t,n))return;let i=new fn,o=new Uint16Array(12*2),r=new Float64Array(8*3);r[0]=t.x,r[1]=t.y,r[2]=t.z,r[3]=n.x,r[4]=t.y,r[5]=t.z,r[6]=n.x,r[7]=n.y,r[8]=t.z,r[9]=t.x,r[10]=n.y,r[11]=t.z,r[12]=t.x,r[13]=t.y,r[14]=n.z,r[15]=n.x,r[16]=t.y,r[17]=n.z,r[18]=n.x,r[19]=n.y,r[20]=n.z,r[21]=t.x,r[22]=n.y,r[23]=n.z,i.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:r}),o[0]=4,o[1]=5,o[2]=5,o[3]=6,o[4]=6,o[5]=7,o[6]=7,o[7]=4,o[8]=0,o[9]=1,o[10]=1,o[11]=2,o[12]=2,o[13]=3,o[14]=3,o[15]=0,o[16]=0,o[17]=4,o[18]=1,o[19]=5,o[20]=2,o[21]=6,o[22]=3,o[23]=7;let s=h.subtract(n,t,Iwe),a=h.magnitude(s)*.5;if(l(e._offsetAttribute)){let c=r.length,u=e._offsetAttribute===an.NONE?0:1,f=new Uint8Array(c/3).fill(u);i.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}return new st({attributes:i,indices:o,primitiveType:Le.LINES,boundingSphere:new ae(h.ZERO,a),offsetAttribute:e._offsetAttribute})};var Cd=Zh;function GA(e,t,n,i){e=y(e,1),t=y(t,1),n=y(n,1),i=y(i,1),this.value=new Uint8Array([H.floatToByte(e),H.floatToByte(t),H.floatToByte(n),H.floatToByte(i)])}Object.defineProperties(GA.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 4}},normalize:{get:function(){return!0}}});GA.fromColor=function(e){return new GA(e.red,e.green,e.blue,e.alpha)};GA.toValue=function(e,t){return l(t)?e.toBytes(t):new Uint8Array(e.toBytes())};GA.equals=function(e,t){return e===t||l(e)&&l(t)&&e.value[0]===t.value[0]&&e.value[1]===t.value[1]&&e.value[2]===t.value[2]&&e.value[3]===t.value[3]};var zt=GA;function nw(e,t){e=y(e,0),t=y(t,Number.MAX_VALUE),this.value=new Float32Array([e,t])}Object.defineProperties(nw.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 2}},normalize:{get:function(){return!1}}});nw.fromDistanceDisplayCondition=function(e){return new nw(e.near,e.far)};nw.toValue=function(e,t){return l(t)?(t[0]=e.near,t[1]=e.far,t):new Float32Array([e.near,e.far])};var kn=nw;function Rwe(e){e=y(e,y.EMPTY_OBJECT),this.geometry=e.geometry,this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=y(e.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}var xt=Rwe;function Xo(e){e=y(e,y.EMPTY_OBJECT),this.start=l(e.start)?J.clone(e.start):new J,this.stop=l(e.stop)?J.clone(e.stop):new J,this.data=e.data,this.isStartIncluded=y(e.isStartIncluded,!0),this.isStopIncluded=y(e.isStopIncluded,!0)}Object.defineProperties(Xo.prototype,{isEmpty:{get:function(){let e=J.compare(this.stop,this.start);return e<0||e===0&&(!this.isStartIncluded||!this.isStopIncluded)}}});var WA={start:void 0,stop:void 0,isStartIncluded:void 0,isStopIncluded:void 0,data:void 0};Xo.fromIso8601=function(e,t){let n=e.iso8601.split("/");if(n.length!==2)throw new de("options.iso8601 is an invalid ISO 8601 interval.");let i=J.fromIso8601(n[0]),o=J.fromIso8601(n[1]),r=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=e.data;return l(t)?(t.start=i,t.stop=o,t.isStartIncluded=r,t.isStopIncluded=s,t.data=a,t):(WA.start=i,WA.stop=o,WA.isStartIncluded=r,WA.isStopIncluded=s,WA.data=a,new Xo(WA))};Xo.toIso8601=function(e,t){return`${J.toIso8601(e.start,t)}/${J.toIso8601(e.stop,t)}`};Xo.clone=function(e,t){if(l(e))return l(t)?(t.start=e.start,t.stop=e.stop,t.isStartIncluded=e.isStartIncluded,t.isStopIncluded=e.isStopIncluded,t.data=e.data,t):new Xo(e)};Xo.equals=function(e,t,n){return e===t||l(e)&&l(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&J.equals(e.start,t.start)&&J.equals(e.stop,t.stop)&&(e.data===t.data||l(n)&&n(e.data,t.data)))};Xo.equalsEpsilon=function(e,t,n,i){return n=y(n,0),e===t||l(e)&&l(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&J.equalsEpsilon(e.start,t.start,n)&&J.equalsEpsilon(e.stop,t.stop,n)&&(e.data===t.data||l(i)&&i(e.data,t.data)))};Xo.intersect=function(e,t,n,i){if(!l(t))return Xo.clone(Xo.EMPTY,n);let o=e.start,r=e.stop,s=t.start,a=t.stop,c=J.greaterThanOrEquals(s,o)&&J.greaterThanOrEquals(r,s),u=!c&&J.lessThanOrEquals(s,o)&&J.lessThanOrEquals(o,a);if(!c&&!u)return Xo.clone(Xo.EMPTY,n);let f=e.isStartIncluded,d=e.isStopIncluded,p=t.isStartIncluded,g=t.isStopIncluded,m=J.lessThan(r,a);return l(n)||(n=new Xo),n.start=c?s:o,n.isStartIncluded=f&&p||!J.equals(s,o)&&(c&&p||u&&f),n.stop=m?r:a,n.isStopIncluded=m?d:d&&g||!J.equals(a,r)&&g,n.data=l(i)?i(e.data,t.data):e.data,n};Xo.contains=function(e,t){if(e.isEmpty)return!1;let n=J.compare(e.start,t);if(n===0)return e.isStartIncluded;let i=J.compare(t,e.stop);return i===0?e.isStopIncluded:n<0&&i<0};Xo.prototype.clone=function(e){return Xo.clone(this,e)};Xo.prototype.equals=function(e,t){return Xo.equals(this,e,t)};Xo.prototype.equalsEpsilon=function(e,t,n){return Xo.equalsEpsilon(this,e,t,n)};Xo.prototype.toString=function(){return Xo.toIso8601(this)};Xo.EMPTY=Object.freeze(new Xo({start:new J,stop:new J,isStartIncluded:!1,isStopIncluded:!1}));var Tn=Xo;var IJ=Object.freeze(J.fromIso8601("0000-01-01T00:00:00Z")),RJ=Object.freeze(J.fromIso8601("9999-12-31T24:00:00Z")),Owe=Object.freeze(new Tn({start:IJ,stop:RJ})),Mwe={MINIMUM_VALUE:IJ,MAXIMUM_VALUE:RJ,MAXIMUM_INTERVAL:Owe},Ue=Mwe;function iw(e,t,n){e=y(e,0),t=y(t,0),n=y(n,0),this.value=new Float32Array([e,t,n])}Object.defineProperties(iw.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}});iw.fromCartesian3=function(e){return new iw(e.x,e.y,e.z)};iw.toValue=function(e,t){return l(t)||(t=new Float32Array([e.x,e.y,e.z])),t[0]=e.x,t[1]=e.y,t[2]=e.z,t};var Yi=iw;function cV(e){e=y(e,!0),this.value=cV.toValue(e)}Object.defineProperties(cV.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 1}},normalize:{get:function(){return!1}}});cV.toValue=function(e,t){return l(t)?(t[0]=e,t):new Uint8Array([e])};var gn=cV;var ow=`in vec3 v_positionEC; in vec3 v_normalEC; in vec3 v_tangentEC; in vec3 v_bitangentEC; in vec2 v_st; void main() { vec3 positionToEyeEC = -v_positionEC; mat3 tangentToEyeMatrix = czm_tangentToEyeSpaceMatrix(v_normalEC, v_tangentEC, v_bitangentEC); vec3 normalEC = normalize(v_normalEC); #ifdef FACE_FORWARD normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); #endif czm_materialInput materialInput; materialInput.normalEC = normalEC; materialInput.tangentToEyeMatrix = tangentToEyeMatrix; materialInput.positionToEyeEC = positionToEyeEC; materialInput.st = v_st; czm_material material = czm_getMaterial(materialInput); #ifdef FLAT out_FragColor = vec4(material.diffuse + material.emission, material.alpha); #else out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); #endif } `;var rw=`in vec3 position3DHigh; in vec3 position3DLow; in vec3 normal; in vec3 tangent; in vec3 bitangent; in vec2 st; in float batchId; out vec3 v_positionEC; out vec3 v_normalEC; out vec3 v_tangentEC; out vec3 v_bitangentEC; out vec2 v_st; void main() { vec4 p = czm_computePosition(); v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates v_normalEC = czm_normal * normal; // normal in eye coordinates v_tangentEC = czm_normal * tangent; // tangent in eye coordinates v_bitangentEC = czm_normal * bitangent; // bitangent in eye coordinates v_st = st; gl_Position = czm_modelViewProjectionRelativeToEye * p; } `;var sw=`in vec3 v_positionEC; in vec3 v_normalEC; void main() { vec3 positionToEyeEC = -v_positionEC; vec3 normalEC = normalize(v_normalEC); #ifdef FACE_FORWARD normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); #endif czm_materialInput materialInput; materialInput.normalEC = normalEC; materialInput.positionToEyeEC = positionToEyeEC; czm_material material = czm_getMaterial(materialInput); #ifdef FLAT out_FragColor = vec4(material.diffuse + material.emission, material.alpha); #else out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); #endif } `;var aw=`in vec3 position3DHigh; in vec3 position3DLow; in vec3 normal; in float batchId; out vec3 v_positionEC; out vec3 v_normalEC; void main() { vec4 p = czm_computePosition(); v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates v_normalEC = czm_normal * normal; // normal in eye coordinates gl_Position = czm_modelViewProjectionRelativeToEye * p; } `;var cw=`in vec3 v_positionEC; in vec3 v_normalEC; in vec2 v_st; void main() { vec3 positionToEyeEC = -v_positionEC; vec3 normalEC = normalize(v_normalEC); #ifdef FACE_FORWARD normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); #endif czm_materialInput materialInput; materialInput.normalEC = normalEC; materialInput.positionToEyeEC = positionToEyeEC; materialInput.st = v_st; czm_material material = czm_getMaterial(materialInput); #ifdef FLAT out_FragColor = vec4(material.diffuse + material.emission, material.alpha); #else out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); #endif } `;var lw=`in vec3 position3DHigh; in vec3 position3DLow; in vec3 normal; in vec2 st; in float batchId; out vec3 v_positionEC; out vec3 v_normalEC; out vec2 v_st; void main() { vec4 p = czm_computePosition(); v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates v_normalEC = czm_normal * normal; // normal in eye coordinates v_st = st; gl_Position = czm_modelViewProjectionRelativeToEye * p; } `;var Lwe={ADD:ee.FUNC_ADD,SUBTRACT:ee.FUNC_SUBTRACT,REVERSE_SUBTRACT:ee.FUNC_REVERSE_SUBTRACT,MIN:ee.MIN,MAX:ee.MAX},Ca=Object.freeze(Lwe);var Nwe={ZERO:ee.ZERO,ONE:ee.ONE,SOURCE_COLOR:ee.SRC_COLOR,ONE_MINUS_SOURCE_COLOR:ee.ONE_MINUS_SRC_COLOR,DESTINATION_COLOR:ee.DST_COLOR,ONE_MINUS_DESTINATION_COLOR:ee.ONE_MINUS_DST_COLOR,SOURCE_ALPHA:ee.SRC_ALPHA,ONE_MINUS_SOURCE_ALPHA:ee.ONE_MINUS_SRC_ALPHA,DESTINATION_ALPHA:ee.DST_ALPHA,ONE_MINUS_DESTINATION_ALPHA:ee.ONE_MINUS_DST_ALPHA,CONSTANT_COLOR:ee.CONSTANT_COLOR,ONE_MINUS_CONSTANT_COLOR:ee.ONE_MINUS_CONSTANT_COLOR,CONSTANT_ALPHA:ee.CONSTANT_ALPHA,ONE_MINUS_CONSTANT_ALPHA:ee.ONE_MINUS_CONSTANT_ALPHA,SOURCE_ALPHA_SATURATE:ee.SRC_ALPHA_SATURATE},To=Object.freeze(Nwe);var Fwe={DISABLED:Object.freeze({enabled:!1}),ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:Ca.ADD,equationAlpha:Ca.ADD,functionSourceRgb:To.SOURCE_ALPHA,functionSourceAlpha:To.ONE,functionDestinationRgb:To.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:To.ONE_MINUS_SOURCE_ALPHA}),PRE_MULTIPLIED_ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:Ca.ADD,equationAlpha:Ca.ADD,functionSourceRgb:To.ONE,functionSourceAlpha:To.ONE,functionDestinationRgb:To.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:To.ONE_MINUS_SOURCE_ALPHA}),ADDITIVE_BLEND:Object.freeze({enabled:!0,equationRgb:Ca.ADD,equationAlpha:Ca.ADD,functionSourceRgb:To.SOURCE_ALPHA,functionSourceAlpha:To.ONE,functionDestinationRgb:To.ONE,functionDestinationAlpha:To.ONE})},un=Object.freeze(Fwe);var Bwe={FRONT:ee.FRONT,BACK:ee.BACK,FRONT_AND_BACK:ee.FRONT_AND_BACK},hi=Object.freeze(Bwe);function jA(e){e=y(e,y.EMPTY_OBJECT),this.material=e.material,this.translucent=y(e.translucent,!0),this._vertexShaderSource=e.vertexShaderSource,this._fragmentShaderSource=e.fragmentShaderSource,this._renderState=e.renderState,this._closed=y(e.closed,!1)}Object.defineProperties(jA.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}}});jA.prototype.getFragmentShaderSource=function(){let e=[];return this.flat&&e.push("#define FLAT"),this.faceForward&&e.push("#define FACE_FORWARD"),l(this.material)&&e.push(this.material.shaderSource),e.push(this.fragmentShaderSource),e.join(` `)};jA.prototype.isTranslucent=function(){return l(this.material)&&this.material.isTranslucent()||!l(this.material)&&this.translucent};jA.prototype.getRenderState=function(){let e=this.isTranslucent(),t=He(this.renderState,!1);return e?(t.depthMask=!1,t.blending=un.ALPHA_BLEND):t.depthMask=!0,t};jA.getDefaultRenderState=function(e,t,n){let i={depthTest:{enabled:!0}};return e&&(i.depthMask=!1,i.blending=un.ALPHA_BLEND),t&&(i.cull={enabled:!0,face:hi.BACK}),l(n)&&(i=_t(n,i,!0)),i};var Ji=jA;function kwe(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}var Hn=kwe;function qA(e,t,n,i,o){this._format=e,this._datatype=t,this._width=n,this._height=i,this._buffer=o}Object.defineProperties(qA.prototype,{internalFormat:{get:function(){return this._format}},pixelDatatype:{get:function(){return this._datatype}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},bufferView:{get:function(){return this._buffer}}});qA.clone=function(e){if(l(e))return new qA(e._format,e._datatype,e._width,e._height,e._buffer)};qA.prototype.clone=function(){return qA.clone(this)};var uw=qA;var OJ=wo(au(),1);function MJ(){if(!l(Zs._canTransferArrayBuffer)){let e=YG("transferTypedArrayTest");e.postMessage=y(e.webkitPostMessage,e.postMessage);let t=99,n=new Int8Array([t]);try{e.postMessage({array:n},[n.buffer])}catch{return Zs._canTransferArrayBuffer=!1,Zs._canTransferArrayBuffer}Zs._canTransferArrayBuffer=new Promise(i=>{e.onmessage=function(o){let r=o.data.array,s=l(r)&&r[0]===t;i(s),e.terminate(),Zs._canTransferArrayBuffer=s}})}return Zs._canTransferArrayBuffer}var qG=new pe;function jG(e){let t;try{t=new Blob([e],{type:"application/javascript"})}catch{let o=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,r=new o;r.append(e),t=r.getBlob("application/javascript")}return(window.URL||window.webkitURL).createObjectURL(t)}function YG(e){let t=new OJ.default(e),n=t.scheme().length!==0&&t.fragment().length===0,i=e.replace(/\.js$/,""),o={},r,s;if(Sg(e))s=e;else if(!n){let a=en(`${Zs._workerModulePrefix}/${i}.js`);Sg(a)&&(s=a)}if(s){let a=`import "${s}";`;return r=jG(a),o.type="module",new Worker(r,o)}if(!n&&typeof CESIUM_WORKERS<"u"){let a=` importScripts("${jG(CESIUM_WORKERS)}"); CesiumWorkers["${i}"](); `;return r=jG(a),new Worker(r,o)}if(r=e,n||(r=en(`${Zs._workerModulePrefix+i}.js`)),!Vt.supportsEsmWebWorkers())throw new le("This browser is not supported. Please update your browser to continue.");return o.type="module",new Worker(r,o)}async function Vwe(e,t){let n={modulePath:void 0,wasmBinaryFile:void 0,wasmBinary:void 0};if(!Vt.supportsWebAssembly()){if(!l(t.fallbackModulePath))throw new le(`This browser does not support Web Assembly, and no backup module was provided for ${e._workerPath}`);return n.modulePath=en(t.fallbackModulePath),n}n.wasmBinaryFile=en(t.wasmBinaryFile);let i=await De.fetchArrayBuffer({url:n.wasmBinaryFile});return n.wasmBinary=i,n}function Zs(e,t){this._workerPath=e,this._maximumActiveTasks=y(t,Number.POSITIVE_INFINITY),this._activeTasks=0,this._nextID=0,this._webAssemblyPromise=void 0}var Uwe=(e,t,n,i)=>{let o=({data:r})=>{if(r.id===t){if(l(r.error)){let s=r.error;s.name==="RuntimeError"?(s=new le(r.error.message),s.stack=r.error.stack):s.name==="DeveloperError"?(s=new de(r.error.message),s.stack=r.error.stack):s.name==="Error"&&(s=new Error(r.error.message),s.stack=r.error.stack),qG.raiseEvent(s),i(s)}else qG.raiseEvent(),n(r.result);e.removeEventListener("message",o)}};return o},zwe=[];async function Hwe(e,t,n){let i=await Promise.resolve(MJ());l(n)?i||(n.length=0):n=zwe;let o=e._nextID++,r=new Promise((s,a)=>{e._worker.addEventListener("message",Uwe(e._worker,o,s,a))});return e._worker.postMessage({id:o,baseUrl:en.getCesiumBaseUrl().url,parameters:t,canTransferArrayBuffer:i},n),r}async function Gwe(e,t,n){++e._activeTasks;try{let i=await Hwe(e,t,n);return--e._activeTasks,i}catch(i){throw--e._activeTasks,i}}Zs.prototype.scheduleTask=function(e,t){if(l(this._worker)||(this._worker=YG(this._workerPath)),!(this._activeTasks>=this._maximumActiveTasks))return Gwe(this,e,t)};Zs.prototype.initWebAssemblyModule=async function(e){if(l(this._webAssemblyPromise))return this._webAssemblyPromise;let t=async()=>{let n=this._worker=YG(this._workerPath),i=await Vwe(this,e),o=await Promise.resolve(MJ()),r,s=i.wasmBinary;l(s)&&o&&(r=[s]);let a=new Promise((c,u)=>{n.onmessage=function({data:f}){l(f)?c(f.result):u(new le("Could not configure wasm module"))}});return n.postMessage({canTransferArrayBuffer:o,parameters:{webAssemblyConfig:i}},r),a};return this._webAssemblyPromise=t(),this._webAssemblyPromise};Zs.prototype.isDestroyed=function(){return!1};Zs.prototype.destroy=function(){return l(this._worker)&&this._worker.terminate(),ue(this)};Zs.taskCompletedEvent=qG;Zs._defaultWorkerModulePrefix="Workers/";Zs._workerModulePrefix=Zs._defaultWorkerModulePrefix;Zs._canTransferArrayBuffer=void 0;var mi=Zs;function gp(){}gp._transcodeTaskProcessor=new mi("transcodeKTX2",Number.POSITIVE_INFINITY);gp._readyPromise=void 0;function Wwe(){let e=gp._transcodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/basis_transcoder.wasm"}).then(function(t){if(t)return gp._transcodeTaskProcessor;throw new le("KTX2 transcoder could not be initialized.")});gp._readyPromise=e}gp.transcode=function(e,t){return l(gp._readyPromise)||Wwe(),gp._readyPromise.then(function(n){let i;if(e instanceof ArrayBuffer){let o=new Uint8Array(e);return i={supportedTargetFormats:t,ktx2Buffer:o},n.scheduleTask(i,[e])}return i={supportedTargetFormats:t,ktx2Buffer:e},n.scheduleTask(i,[e.buffer])}).then(function(n){let i=n.length,o=Object.keys(n[0]),r=o.length,s;for(s=0;s<i;s++){let a=n[s];for(let c=0;c<r;c++){let u=a[o[c]];a[o[c]]=new uw(u.internalFormat,u.datatype,u.width,u.height,u.levelBuffer)}}if(r===1){for(s=0;s<i;++s)n[s]=n[s][o[0]];i===1&&(n=n[0])}return n}).catch(function(n){throw n})};var fw=gp;var LJ;NJ.setKTX2SupportedFormats=function(e,t,n,i,o,r){LJ={s3tc:e,pvrtc:t,astc:n,etc:i,etc1:o,bc7:r}};function NJ(e){let t;return e instanceof ArrayBuffer||ArrayBuffer.isView(e)?t=Promise.resolve(e):t=De.createIfNeeded(e).fetchArrayBuffer(),t.then(function(n){return fw.transcode(n,LJ)})}var Cl=NJ;var Ei={UNSIGNED_BYTE:ee.UNSIGNED_BYTE,UNSIGNED_SHORT:ee.UNSIGNED_SHORT,UNSIGNED_INT:ee.UNSIGNED_INT,FLOAT:ee.FLOAT,HALF_FLOAT:ee.HALF_FLOAT_OES,UNSIGNED_INT_24_8:ee.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:ee.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:ee.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:ee.UNSIGNED_SHORT_5_6_5};Ei.toWebGLConstant=function(e,t){switch(e){case Ei.UNSIGNED_BYTE:return ee.UNSIGNED_BYTE;case Ei.UNSIGNED_SHORT:return ee.UNSIGNED_SHORT;case Ei.UNSIGNED_INT:return ee.UNSIGNED_INT;case Ei.FLOAT:return ee.FLOAT;case Ei.HALF_FLOAT:return t.webgl2?ee.HALF_FLOAT:ee.HALF_FLOAT_OES;case Ei.UNSIGNED_INT_24_8:return ee.UNSIGNED_INT_24_8;case Ei.UNSIGNED_SHORT_4_4_4_4:return ee.UNSIGNED_SHORT_4_4_4_4;case Ei.UNSIGNED_SHORT_5_5_5_1:return ee.UNSIGNED_SHORT_5_5_5_1;case Ei.UNSIGNED_SHORT_5_6_5:return Ei.UNSIGNED_SHORT_5_6_5}};Ei.isPacked=function(e){return e===Ei.UNSIGNED_INT_24_8||e===Ei.UNSIGNED_SHORT_4_4_4_4||e===Ei.UNSIGNED_SHORT_5_5_5_1||e===Ei.UNSIGNED_SHORT_5_6_5};Ei.sizeInBytes=function(e){switch(e){case Ei.UNSIGNED_BYTE:return 1;case Ei.UNSIGNED_SHORT:case Ei.UNSIGNED_SHORT_4_4_4_4:case Ei.UNSIGNED_SHORT_5_5_5_1:case Ei.UNSIGNED_SHORT_5_6_5:case Ei.HALF_FLOAT:return 2;case Ei.UNSIGNED_INT:case Ei.FLOAT:case Ei.UNSIGNED_INT_24_8:return 4}};Ei.validate=function(e){return e===Ei.UNSIGNED_BYTE||e===Ei.UNSIGNED_SHORT||e===Ei.UNSIGNED_INT||e===Ei.FLOAT||e===Ei.HALF_FLOAT||e===Ei.UNSIGNED_INT_24_8||e===Ei.UNSIGNED_SHORT_4_4_4_4||e===Ei.UNSIGNED_SHORT_5_5_5_1||e===Ei.UNSIGNED_SHORT_5_6_5};var We=Object.freeze(Ei);var it={DEPTH_COMPONENT:ee.DEPTH_COMPONENT,DEPTH_STENCIL:ee.DEPTH_STENCIL,ALPHA:ee.ALPHA,RED:ee.RED,RG:ee.RG,RGB:ee.RGB,RGBA:ee.RGBA,LUMINANCE:ee.LUMINANCE,LUMINANCE_ALPHA:ee.LUMINANCE_ALPHA,RGB_DXT1:ee.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:ee.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:ee.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:ee.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:ee.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:ee.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:ee.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:ee.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:ee.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:ee.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:ee.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:ee.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:ee.COMPRESSED_RGBA_BPTC_UNORM};it.componentsLength=function(e){switch(e){case it.RGB:return 3;case it.RGBA:return 4;case it.LUMINANCE_ALPHA:case it.RG:return 2;case it.ALPHA:case it.RED:case it.LUMINANCE:return 1;default:return 1}};it.validate=function(e){return e===it.DEPTH_COMPONENT||e===it.DEPTH_STENCIL||e===it.ALPHA||e===it.RED||e===it.RG||e===it.RGB||e===it.RGBA||e===it.LUMINANCE||e===it.LUMINANCE_ALPHA||e===it.RGB_DXT1||e===it.RGBA_DXT1||e===it.RGBA_DXT3||e===it.RGBA_DXT5||e===it.RGB_PVRTC_4BPPV1||e===it.RGB_PVRTC_2BPPV1||e===it.RGBA_PVRTC_4BPPV1||e===it.RGBA_PVRTC_2BPPV1||e===it.RGBA_ASTC||e===it.RGB_ETC1||e===it.RGB8_ETC2||e===it.RGBA8_ETC2_EAC||e===it.RGBA_BC7};it.isColorFormat=function(e){return e===it.RED||e===it.ALPHA||e===it.RGB||e===it.RGBA||e===it.LUMINANCE||e===it.LUMINANCE_ALPHA};it.isDepthFormat=function(e){return e===it.DEPTH_COMPONENT||e===it.DEPTH_STENCIL};it.isCompressedFormat=function(e){return e===it.RGB_DXT1||e===it.RGBA_DXT1||e===it.RGBA_DXT3||e===it.RGBA_DXT5||e===it.RGB_PVRTC_4BPPV1||e===it.RGB_PVRTC_2BPPV1||e===it.RGBA_PVRTC_4BPPV1||e===it.RGBA_PVRTC_2BPPV1||e===it.RGBA_ASTC||e===it.RGB_ETC1||e===it.RGB8_ETC2||e===it.RGBA8_ETC2_EAC||e===it.RGBA_BC7};it.isDXTFormat=function(e){return e===it.RGB_DXT1||e===it.RGBA_DXT1||e===it.RGBA_DXT3||e===it.RGBA_DXT5};it.isPVRTCFormat=function(e){return e===it.RGB_PVRTC_4BPPV1||e===it.RGB_PVRTC_2BPPV1||e===it.RGBA_PVRTC_4BPPV1||e===it.RGBA_PVRTC_2BPPV1};it.isASTCFormat=function(e){return e===it.RGBA_ASTC};it.isETC1Format=function(e){return e===it.RGB_ETC1};it.isETC2Format=function(e){return e===it.RGB8_ETC2||e===it.RGBA8_ETC2_EAC};it.isBC7Format=function(e){return e===it.RGBA_BC7};it.compressedTextureSizeInBytes=function(e,t,n){switch(e){case it.RGB_DXT1:case it.RGBA_DXT1:case it.RGB_ETC1:case it.RGB8_ETC2:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*8;case it.RGBA_DXT3:case it.RGBA_DXT5:case it.RGBA_ASTC:case it.RGBA8_ETC2_EAC:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*16;case it.RGB_PVRTC_4BPPV1:case it.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(t,8)*Math.max(n,8)*4+7)/8);case it.RGB_PVRTC_2BPPV1:case it.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(t,16)*Math.max(n,8)*2+7)/8);case it.RGBA_BC7:return Math.ceil(t/4)*Math.ceil(n/4)*16;default:return 0}};it.textureSizeInBytes=function(e,t,n,i){let o=it.componentsLength(e);return We.isPacked(t)&&(o=1),o*We.sizeInBytes(t)*n*i};it.alignmentInBytes=function(e,t,n){let i=it.textureSizeInBytes(e,t,n,1)%4;return i===0?4:i===2?2:1};it.createTypedArray=function(e,t,n,i){let o,r=We.sizeInBytes(t);r===Uint8Array.BYTES_PER_ELEMENT?o=Uint8Array:r===Uint16Array.BYTES_PER_ELEMENT?o=Uint16Array:r===Float32Array.BYTES_PER_ELEMENT&&t===We.FLOAT?o=Float32Array:o=Uint32Array;let s=it.componentsLength(e)*n*i;return new o(s)};it.flipY=function(e,t,n,i,o){if(o===1)return e;let r=it.createTypedArray(t,n,i,o),s=it.componentsLength(t),a=i*s;for(let c=0;c<o;++c){let u=c*i*s,f=(o-c-1)*i*s;for(let d=0;d<a;++d)r[f+d]=e[u+d]}return r};it.toInternalFormat=function(e,t,n){if(!n.webgl2)return e;if(e===it.DEPTH_STENCIL)return ee.DEPTH24_STENCIL8;if(e===it.DEPTH_COMPONENT){if(t===We.UNSIGNED_SHORT)return ee.DEPTH_COMPONENT16;if(t===We.UNSIGNED_INT)return ee.DEPTH_COMPONENT24}if(t===We.FLOAT)switch(e){case it.RGBA:return ee.RGBA32F;case it.RGB:return ee.RGB32F;case it.RG:return ee.RG32F;case it.RED:return ee.R32F}if(t===We.HALF_FLOAT)switch(e){case it.RGBA:return ee.RGBA16F;case it.RGB:return ee.RGB16F;case it.RG:return ee.RG16F;case it.RED:return ee.R16F}return e};var nt=Object.freeze(it);var mr={_maximumCombinedTextureImageUnits:0,_maximumCubeMapSize:0,_maximumFragmentUniformVectors:0,_maximumTextureImageUnits:0,_maximumRenderbufferSize:0,_maximumTextureSize:0,_maximumVaryingVectors:0,_maximumVertexAttributes:0,_maximumVertexTextureImageUnits:0,_maximumVertexUniformVectors:0,_minimumAliasedLineWidth:0,_maximumAliasedLineWidth:0,_minimumAliasedPointSize:0,_maximumAliasedPointSize:0,_maximumViewportWidth:0,_maximumViewportHeight:0,_maximumTextureFilterAnisotropy:0,_maximumDrawBuffers:0,_maximumColorAttachments:0,_maximumSamples:0,_highpFloatSupported:!1,_highpIntSupported:!1};Object.defineProperties(mr,{maximumCombinedTextureImageUnits:{get:function(){return mr._maximumCombinedTextureImageUnits}},maximumCubeMapSize:{get:function(){return mr._maximumCubeMapSize}},maximumFragmentUniformVectors:{get:function(){return mr._maximumFragmentUniformVectors}},maximumTextureImageUnits:{get:function(){return mr._maximumTextureImageUnits}},maximumRenderbufferSize:{get:function(){return mr._maximumRenderbufferSize}},maximumTextureSize:{get:function(){return mr._maximumTextureSize}},maximumVaryingVectors:{get:function(){return mr._maximumVaryingVectors}},maximumVertexAttributes:{get:function(){return mr._maximumVertexAttributes}},maximumVertexTextureImageUnits:{get:function(){return mr._maximumVertexTextureImageUnits}},maximumVertexUniformVectors:{get:function(){return mr._maximumVertexUniformVectors}},minimumAliasedLineWidth:{get:function(){return mr._minimumAliasedLineWidth}},maximumAliasedLineWidth:{get:function(){return mr._maximumAliasedLineWidth}},minimumAliasedPointSize:{get:function(){return mr._minimumAliasedPointSize}},maximumAliasedPointSize:{get:function(){return mr._maximumAliasedPointSize}},maximumViewportWidth:{get:function(){return mr._maximumViewportWidth}},maximumViewportHeight:{get:function(){return mr._maximumViewportHeight}},maximumTextureFilterAnisotropy:{get:function(){return mr._maximumTextureFilterAnisotropy}},maximumDrawBuffers:{get:function(){return mr._maximumDrawBuffers}},maximumColorAttachments:{get:function(){return mr._maximumColorAttachments}},maximumSamples:{get:function(){return mr._maximumSamples}},highpFloatSupported:{get:function(){return mr._highpFloatSupported}},highpIntSupported:{get:function(){return mr._highpIntSupported}}});var Nt=mr;function lV(e,t,n,i,o,r,s,a,c,u,f){this._context=e,this._texture=t,this._textureTarget=n,this._targetFace=i,this._pixelDatatype=s,this._internalFormat=o,this._pixelFormat=r,this._size=a,this._preMultiplyAlpha=c,this._flipY=u,this._initialized=f}Object.defineProperties(lV.prototype,{pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},_target:{get:function(){return this._targetFace}}});lV.prototype.copyFrom=function(e){let t=y(e.xOffset,0),n=y(e.yOffset,0),i=e.source,o=this._context._gl,r=this._textureTarget,s=this._targetFace;o.activeTexture(o.TEXTURE0),o.bindTexture(r,this._texture);let a=i.width,c=i.height,u=i.arrayBufferView,f=this._size,d=this._pixelFormat,p=this._internalFormat,g=this._pixelDatatype,m=this._preMultiplyAlpha,x=this._flipY,b=y(e.skipColorSpaceConversion,!1),T=4;l(u)&&(T=nt.alignmentInBytes(d,g,a)),o.pixelStorei(o.UNPACK_ALIGNMENT,T),b?o.pixelStorei(o.UNPACK_COLORSPACE_CONVERSION_WEBGL,o.NONE):o.pixelStorei(o.UNPACK_COLORSPACE_CONVERSION_WEBGL,o.BROWSER_DEFAULT_WEBGL);let C=!1;if(!this._initialized){if(t===0&&n===0&&a===f&&c===f)l(u)?(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),x&&(u=nt.flipY(u,d,g,f,f)),o.texImage2D(s,0,p,f,f,0,d,We.toWebGLConstant(g,this._context),u)):(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,x),o.texImage2D(s,0,p,d,We.toWebGLConstant(g,this._context),i)),C=!0;else{o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1);let A=nt.createTypedArray(d,g,f,f);o.texImage2D(s,0,p,f,f,0,d,We.toWebGLConstant(g,this._context),A)}this._initialized=!0}C||(l(u)?(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),x&&(u=nt.flipY(u,d,g,a,c)),o.texSubImage2D(s,0,t,n,a,c,d,We.toWebGLConstant(g,this._context),u)):(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,x),o.texSubImage2D(s,0,t,n,d,We.toWebGLConstant(g,this._context),i))),o.bindTexture(r,null)};lV.prototype.copyFromFramebuffer=function(e,t,n,i,o,r){e=y(e,0),t=y(t,0),n=y(n,0),i=y(i,0),o=y(o,this._size),r=y(r,this._size);let s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.copyTexSubImage2D(this._targetFace,0,e,t,n,i,o,r),s.bindTexture(a,null),this._initialized=!0};var $h=lV;var uV={DONT_CARE:ee.DONT_CARE,FASTEST:ee.FASTEST,NICEST:ee.NICEST,validate:function(e){return e===uV.DONT_CARE||e===uV.FASTEST||e===uV.NICEST}},Qh=Object.freeze(uV);var fV={NEAREST:ee.NEAREST,LINEAR:ee.LINEAR};fV.validate=function(e){return e===fV.NEAREST||e===fV.LINEAR};var li=Object.freeze(fV);var Rg={NEAREST:ee.NEAREST,LINEAR:ee.LINEAR,NEAREST_MIPMAP_NEAREST:ee.NEAREST_MIPMAP_NEAREST,LINEAR_MIPMAP_NEAREST:ee.LINEAR_MIPMAP_NEAREST,NEAREST_MIPMAP_LINEAR:ee.NEAREST_MIPMAP_LINEAR,LINEAR_MIPMAP_LINEAR:ee.LINEAR_MIPMAP_LINEAR};Rg.validate=function(e){return e===Rg.NEAREST||e===Rg.LINEAR||e===Rg.NEAREST_MIPMAP_NEAREST||e===Rg.LINEAR_MIPMAP_NEAREST||e===Rg.NEAREST_MIPMAP_LINEAR||e===Rg.LINEAR_MIPMAP_LINEAR};var nn=Object.freeze(Rg);var dV={CLAMP_TO_EDGE:ee.CLAMP_TO_EDGE,REPEAT:ee.REPEAT,MIRRORED_REPEAT:ee.MIRRORED_REPEAT,validate:function(e){return e===dV.CLAMP_TO_EDGE||e===dV.REPEAT||e===dV.MIRRORED_REPEAT}},An=Object.freeze(dV);function dw(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.wrapS,An.CLAMP_TO_EDGE),n=y(e.wrapT,An.CLAMP_TO_EDGE),i=y(e.minificationFilter,nn.LINEAR),o=y(e.magnificationFilter,li.LINEAR),r=l(e.maximumAnisotropy)?e.maximumAnisotropy:1;this._wrapS=t,this._wrapT=n,this._minificationFilter=i,this._magnificationFilter=o,this._maximumAnisotropy=r}Object.defineProperties(dw.prototype,{wrapS:{get:function(){return this._wrapS}},wrapT:{get:function(){return this._wrapT}},minificationFilter:{get:function(){return this._minificationFilter}},magnificationFilter:{get:function(){return this._magnificationFilter}},maximumAnisotropy:{get:function(){return this._maximumAnisotropy}}});dw.equals=function(e,t){return e===t||l(e)&&l(t)&&e._wrapS===t._wrapS&&e._wrapT===t._wrapT&&e._minificationFilter===t._minificationFilter&&e._magnificationFilter===t._magnificationFilter&&e._maximumAnisotropy===t._maximumAnisotropy};dw.NEAREST=Object.freeze(new dw({wrapS:An.CLAMP_TO_EDGE,wrapT:An.CLAMP_TO_EDGE,minificationFilter:nn.NEAREST,magnificationFilter:li.NEAREST}));var on=dw;function hw(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.source,i,o;if(l(n)){let C=[n.positiveX,n.negativeX,n.positiveY,n.negativeY,n.positiveZ,n.negativeZ];i=C[0].width,o=C[0].height}else i=e.width,o=e.height;let r=i,s=y(e.pixelDatatype,We.UNSIGNED_BYTE),a=y(e.pixelFormat,nt.RGBA),c=nt.toInternalFormat(a,s,t),u=nt.textureSizeInBytes(a,s,r,r)*6,f=e.preMultiplyAlpha||a===nt.RGB||a===nt.LUMINANCE,d=y(e.flipY,!0),p=y(e.skipColorSpaceConversion,!1),g=t._gl,m=g.TEXTURE_CUBE_MAP,x=g.createTexture();g.activeTexture(g.TEXTURE0),g.bindTexture(m,x);function b(C,A,E,v,D){let O=A.arrayBufferView;l(O)||(O=A.bufferView);let I=4;l(O)&&(I=nt.alignmentInBytes(a,s,i)),g.pixelStorei(g.UNPACK_ALIGNMENT,I),D?g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.NONE):g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.BROWSER_DEFAULT_WEBGL),l(O)?(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1),v&&(O=nt.flipY(O,a,s,r,r)),g.texImage2D(C,0,c,r,r,0,a,We.toWebGLConstant(s,t),O)):(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,E),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,v),g.texImage2D(C,0,c,a,We.toWebGLConstant(s,t),A))}l(n)?(b(g.TEXTURE_CUBE_MAP_POSITIVE_X,n.positiveX,f,d,p),b(g.TEXTURE_CUBE_MAP_NEGATIVE_X,n.negativeX,f,d,p),b(g.TEXTURE_CUBE_MAP_POSITIVE_Y,n.positiveY,f,d,p),b(g.TEXTURE_CUBE_MAP_NEGATIVE_Y,n.negativeY,f,d,p),b(g.TEXTURE_CUBE_MAP_POSITIVE_Z,n.positiveZ,f,d,p),b(g.TEXTURE_CUBE_MAP_NEGATIVE_Z,n.negativeZ,f,d,p)):(g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_X,0,c,r,r,0,a,We.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_X,0,c,r,r,0,a,We.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_Y,0,c,r,r,0,a,We.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_Y,0,c,r,r,0,a,We.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_Z,0,c,r,r,0,a,We.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_Z,0,c,r,r,0,a,We.toWebGLConstant(s,t),null)),g.bindTexture(m,null),this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=m,this._texture=x,this._pixelFormat=a,this._pixelDatatype=s,this._size=r,this._hasMipmap=!1,this._sizeInBytes=u,this._preMultiplyAlpha=f,this._flipY=d,this._sampler=void 0;let T=l(n);this._positiveX=new $h(t,x,m,g.TEXTURE_CUBE_MAP_POSITIVE_X,c,a,s,r,f,d,T),this._negativeX=new $h(t,x,m,g.TEXTURE_CUBE_MAP_NEGATIVE_X,c,a,s,r,f,d,T),this._positiveY=new $h(t,x,m,g.TEXTURE_CUBE_MAP_POSITIVE_Y,c,a,s,r,f,d,T),this._negativeY=new $h(t,x,m,g.TEXTURE_CUBE_MAP_NEGATIVE_Y,c,a,s,r,f,d,T),this._positiveZ=new $h(t,x,m,g.TEXTURE_CUBE_MAP_POSITIVE_Z,c,a,s,r,f,d,T),this._negativeZ=new $h(t,x,m,g.TEXTURE_CUBE_MAP_NEGATIVE_Z,c,a,s,r,f,d,T),this.sampler=l(e.sampler)?e.sampler:new on}Object.defineProperties(hw.prototype,{positiveX:{get:function(){return this._positiveX}},negativeX:{get:function(){return this._negativeX}},positiveY:{get:function(){return this._positiveY}},negativeY:{get:function(){return this._negativeY}},positiveZ:{get:function(){return this._positiveZ}},negativeZ:{get:function(){return this._negativeZ}},sampler:{get:function(){return this._sampler},set:function(e){let t=e.minificationFilter,n=e.magnificationFilter,i=t===nn.NEAREST_MIPMAP_NEAREST||t===nn.NEAREST_MIPMAP_LINEAR||t===nn.LINEAR_MIPMAP_NEAREST||t===nn.LINEAR_MIPMAP_LINEAR,o=this._context,r=this._pixelDatatype;(r===We.FLOAT&&!o.textureFloatLinear||r===We.HALF_FLOAT&&!o.textureHalfFloatLinear)&&(t=i?nn.NEAREST_MIPMAP_NEAREST:nn.NEAREST,n=li.NEAREST);let s=o._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.texParameteri(a,s.TEXTURE_MIN_FILTER,t),s.texParameteri(a,s.TEXTURE_MAG_FILTER,n),s.texParameteri(a,s.TEXTURE_WRAP_S,e.wrapS),s.texParameteri(a,s.TEXTURE_WRAP_T,e.wrapT),l(this._textureFilterAnisotropic)&&s.texParameteri(a,this._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,e.maximumAnisotropy),s.bindTexture(a,null),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},width:{get:function(){return this._size}},height:{get:function(){return this._size}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(this._sizeInBytes*4/3):this._sizeInBytes}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},_target:{get:function(){return this._textureTarget}}});hw.prototype.generateMipmap=function(e){e=y(e,Qh.DONT_CARE),this._hasMipmap=!0;let t=this._context._gl,n=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(n,this._texture),t.generateMipmap(n),t.bindTexture(n,null)};hw.prototype.isDestroyed=function(){return!1};hw.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),this._positiveX=ue(this._positiveX),this._negativeX=ue(this._negativeX),this._positiveY=ue(this._positiveY),this._negativeY=ue(this._negativeY),this._positiveZ=ue(this._positiveZ),this._negativeZ=ue(this._negativeZ),ue(this)};var Ja=hw;function Ed(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.width,i=e.height,o=e.source;l(o)&&(l(n)||(n=y(o.videoWidth,o.width)),l(i)||(i=y(o.videoHeight,o.height)));let r=y(e.pixelFormat,nt.RGBA),s=y(e.pixelDatatype,We.UNSIGNED_BYTE),a=nt.toInternalFormat(r,s,t),c=nt.isCompressedFormat(a),u=e.preMultiplyAlpha||r===nt.RGB||r===nt.LUMINANCE,f=y(e.flipY,!0),d=y(e.skipColorSpaceConversion,!1),p=!0,g=t._gl,m=g.TEXTURE_2D,x=g.createTexture();g.activeTexture(g.TEXTURE0),g.bindTexture(m,x);let b=4;if(l(o)&&l(o.arrayBufferView)&&!c&&(b=nt.alignmentInBytes(r,s,n)),g.pixelStorei(g.UNPACK_ALIGNMENT,b),d?g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.NONE):g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.BROWSER_DEFAULT_WEBGL),l(o))if(l(o.arrayBufferView)){g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1);let C=o.arrayBufferView,A,E,v;if(c){if(g.compressedTexImage2D(m,0,a,n,i,0,C),l(o.mipLevels))for(E=n,v=i,A=0;A<o.mipLevels.length;++A)E=Math.floor(E/2)|0,E<1&&(E=1),v=Math.floor(v/2)|0,v<1&&(v=1),g.compressedTexImage2D(m,A+1,a,E,v,0,o.mipLevels[A])}else if(f&&(C=nt.flipY(C,r,s,n,i)),g.texImage2D(m,0,a,n,i,0,r,We.toWebGLConstant(s,t),C),l(o.mipLevels))for(E=n,v=i,A=0;A<o.mipLevels.length;++A)E=Math.floor(E/2)|0,E<1&&(E=1),v=Math.floor(v/2)|0,v<1&&(v=1),g.texImage2D(m,A+1,a,E,v,0,r,We.toWebGLConstant(s,t),o.mipLevels[A])}else l(o.framebuffer)?(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1),o.framebuffer!==t.defaultFramebuffer&&o.framebuffer._bind(),g.copyTexImage2D(m,0,a,o.xOffset,o.yOffset,n,i,0),o.framebuffer!==t.defaultFramebuffer&&o.framebuffer._unBind()):(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,u),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,f),g.texImage2D(m,0,a,r,We.toWebGLConstant(s,t),o));else g.texImage2D(m,0,a,n,i,0,r,We.toWebGLConstant(s,t),null),p=!1;g.bindTexture(m,null);let T;c?T=nt.compressedTextureSizeInBytes(r,n,i):T=nt.textureSizeInBytes(r,s,n,i),this._id=Hn(),this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=m,this._texture=x,this._internalFormat=a,this._pixelFormat=r,this._pixelDatatype=s,this._width=n,this._height=i,this._dimensions=new z(n,i),this._hasMipmap=!1,this._sizeInBytes=T,this._preMultiplyAlpha=u,this._flipY=f,this._initialized=p,this._sampler=void 0,this.sampler=l(e.sampler)?e.sampler:new on}Ed.create=function(e){return new Ed(e)};Ed.fromFramebuffer=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=t._gl,i=y(e.pixelFormat,nt.RGB),o=y(e.framebufferXOffset,0),r=y(e.framebufferYOffset,0),s=y(e.width,n.drawingBufferWidth),a=y(e.height,n.drawingBufferHeight),c=e.framebuffer;return new Ed({context:t,width:s,height:a,pixelFormat:i,source:{framebuffer:l(c)?c:t.defaultFramebuffer,xOffset:o,yOffset:r,width:s,height:a}})};Object.defineProperties(Ed.prototype,{id:{get:function(){return this._id}},sampler:{get:function(){return this._sampler},set:function(e){let t=e.minificationFilter,n=e.magnificationFilter,i=this._context,o=this._pixelFormat,r=this._pixelDatatype,s=t===nn.NEAREST_MIPMAP_NEAREST||t===nn.NEAREST_MIPMAP_LINEAR||t===nn.LINEAR_MIPMAP_NEAREST||t===nn.LINEAR_MIPMAP_LINEAR;(r===We.FLOAT&&!i.textureFloatLinear||r===We.HALF_FLOAT&&!i.textureHalfFloatLinear)&&(t=s?nn.NEAREST_MIPMAP_NEAREST:nn.NEAREST,n=li.NEAREST),i.webgl2&&nt.isDepthFormat(o)&&(t=nn.NEAREST,n=li.NEAREST);let a=i._gl,c=this._textureTarget;a.activeTexture(a.TEXTURE0),a.bindTexture(c,this._texture),a.texParameteri(c,a.TEXTURE_MIN_FILTER,t),a.texParameteri(c,a.TEXTURE_MAG_FILTER,n),a.texParameteri(c,a.TEXTURE_WRAP_S,e.wrapS),a.texParameteri(c,a.TEXTURE_WRAP_T,e.wrapT),l(this._textureFilterAnisotropic)&&a.texParameteri(c,this._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,e.maximumAnisotropy),a.bindTexture(c,null),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},dimensions:{get:function(){return this._dimensions}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(this._sizeInBytes*4/3):this._sizeInBytes}},_target:{get:function(){return this._textureTarget}}});Ed.prototype.copyFrom=function(e){let t=y(e.xOffset,0),n=y(e.yOffset,0),i=e.source,o=this._context,r=o._gl,s=this._textureTarget;r.activeTexture(r.TEXTURE0),r.bindTexture(s,this._texture);let a=i.width,c=i.height,u=i.arrayBufferView,f=this._width,d=this._height,p=this._internalFormat,g=this._pixelFormat,m=this._pixelDatatype,x=this._preMultiplyAlpha,b=this._flipY,T=y(e.skipColorSpaceConversion,!1),C=4;l(u)&&(C=nt.alignmentInBytes(g,m,a)),r.pixelStorei(r.UNPACK_ALIGNMENT,C),T?r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,r.NONE):r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,r.BROWSER_DEFAULT_WEBGL);let A=!1;if(!this._initialized){if(t===0&&n===0&&a===f&&c===d)l(u)?(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),b&&(u=nt.flipY(u,g,m,f,d)),r.texImage2D(s,0,p,f,d,0,g,We.toWebGLConstant(m,o),u)):(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,b),r.texImage2D(s,0,p,g,We.toWebGLConstant(m,o),i)),A=!0;else{r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1);let E=nt.createTypedArray(g,m,f,d);r.texImage2D(s,0,p,f,d,0,g,We.toWebGLConstant(m,o),E)}this._initialized=!0}A||(l(u)?(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),b&&(u=nt.flipY(u,g,m,a,c)),r.texSubImage2D(s,0,t,n,a,c,g,We.toWebGLConstant(m,o),u)):(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,b),r.texSubImage2D(s,0,t,n,g,We.toWebGLConstant(m,o),i))),r.bindTexture(s,null)};Ed.prototype.copyFromFramebuffer=function(e,t,n,i,o,r){e=y(e,0),t=y(t,0),n=y(n,0),i=y(i,0),o=y(o,this._width),r=y(r,this._height);let s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.copyTexSubImage2D(a,0,e,t,n,i,o,r),s.bindTexture(a,null),this._initialized=!0};Ed.prototype.generateMipmap=function(e){e=y(e,Qh.DONT_CARE),this._hasMipmap=!0;let t=this._context._gl,n=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(n,this._texture),t.generateMipmap(n),t.bindTexture(n,null)};Ed.prototype.isDestroyed=function(){return!1};Ed.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),ue(this)};var Dt=Ed;var mw=`uniform sampler2D image; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); vec4 rampColor = texture(image, vec2(materialInput.aspect / (2.0 * czm_pi), 0.5)); rampColor = czm_gammaCorrect(rampColor); material.diffuse = rampColor.rgb; material.alpha = rampColor.a; return material; } `;var pw=`uniform sampler2D image; uniform float strength; uniform vec2 repeat; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); vec2 st = materialInput.st; vec2 centerPixel = fract(repeat * st); float centerBump = texture(image, centerPixel).channel; float imageWidth = float(imageDimensions.x); vec2 rightPixel = fract(repeat * (st + vec2(1.0 / imageWidth, 0.0))); float rightBump = texture(image, rightPixel).channel; float imageHeight = float(imageDimensions.y); vec2 leftPixel = fract(repeat * (st + vec2(0.0, 1.0 / imageHeight))); float topBump = texture(image, leftPixel).channel; vec3 normalTangentSpace = normalize(vec3(centerBump - rightBump, centerBump - topBump, clamp(1.0 - strength, 0.1, 1.0))); vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; material.normal = normalEC; material.diffuse = vec3(0.01); return material; } `;var _w=`uniform vec4 lightColor; uniform vec4 darkColor; uniform vec2 repeat; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); vec2 st = materialInput.st; // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights float b = mod(floor(repeat.s * st.s) + floor(repeat.t * st.t), 2.0); // 0.0 or 1.0 // Find the distance from the closest separator (region between two colors) float scaledWidth = fract(repeat.s * st.s); scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); float scaledHeight = fract(repeat.t * st.t); scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); float value = min(scaledWidth, scaledHeight); vec4 currentColor = mix(lightColor, darkColor, b); vec4 color = czm_antialias(lightColor, darkColor, currentColor, value, 0.03); color = czm_gammaCorrect(color); material.diffuse = color.rgb; material.alpha = color.a; return material; } `;var gw=`uniform vec4 lightColor; uniform vec4 darkColor; uniform vec2 repeat; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights float b = smoothstep(0.3, 0.32, length(fract(repeat * materialInput.st) - 0.5)); // 0.0 or 1.0 vec4 color = mix(lightColor, darkColor, b); color = czm_gammaCorrect(color); material.diffuse = color.rgb; material.alpha = color.a; return material; } `;var yw=`uniform sampler2D heights; uniform sampler2D colors; // This material expects heights to be sorted from lowest to highest. float getHeight(int idx, float invTexSize) { vec2 uv = vec2((float(idx) + 0.5) * invTexSize, 0.5); #ifdef OES_texture_float return texture(heights, uv).x; #else return czm_unpackFloat(texture(heights, uv)); #endif } czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); float height = materialInput.height; float invTexSize = 1.0 / float(heightsDimensions.x); float minHeight = getHeight(0, invTexSize); float maxHeight = getHeight(heightsDimensions.x - 1, invTexSize); // early-out when outside the height range if (height < minHeight || height > maxHeight) { material.diffuse = vec3(0.0); material.alpha = 0.0; return material; } // Binary search to find heights above and below. int idxBelow = 0; int idxAbove = heightsDimensions.x; float heightBelow = minHeight; float heightAbove = maxHeight; // while loop not allowed, so use for loop with max iterations. // maxIterations of 16 supports a texture size up to 65536 (2^16). const int maxIterations = 16; for (int i = 0; i < maxIterations; i++) { if (idxBelow >= idxAbove - 1) { break; } int idxMid = (idxBelow + idxAbove) / 2; float heightTex = getHeight(idxMid, invTexSize); if (height > heightTex) { idxBelow = idxMid; heightBelow = heightTex; } else { idxAbove = idxMid; heightAbove = heightTex; } } float lerper = heightBelow == heightAbove ? 1.0 : (height - heightBelow) / (heightAbove - heightBelow); vec2 colorUv = vec2(invTexSize * (float(idxBelow) + 0.5 + lerper), 0.5); vec4 color = texture(colors, colorUv); // undo preumultiplied alpha if (color.a > 0.0) { color.rgb /= color.a; } color.rgb = czm_gammaCorrect(color.rgb); material.diffuse = color.rgb; material.alpha = color.a; return material; } `;var xw=`uniform vec4 color; uniform float spacing; uniform float width; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); float distanceToContour = mod(materialInput.height, spacing); #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) float dxc = abs(dFdx(materialInput.height)); float dyc = abs(dFdy(materialInput.height)); float dF = max(dxc, dyc) * czm_pixelRatio * width; float alpha = (distanceToContour < dF) ? 1.0 : 0.0; #else // If no derivatives available (IE 10?), use pixel ratio float alpha = (distanceToContour < (czm_pixelRatio * width)) ? 1.0 : 0.0; #endif vec4 outColor = czm_gammaCorrect(vec4(color.rgb, alpha * color.a)); material.diffuse = outColor.rgb; material.alpha = outColor.a; return material; } `;var bw=`uniform sampler2D image; uniform float minimumHeight; uniform float maximumHeight; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); float scaledHeight = clamp((materialInput.height - minimumHeight) / (maximumHeight - minimumHeight), 0.0, 1.0); vec4 rampColor = texture(image, vec2(scaledHeight, 0.5)); rampColor = czm_gammaCorrect(rampColor); material.diffuse = rampColor.rgb; material.alpha = rampColor.a; return material; } `;var Tw=`uniform vec4 fadeInColor; uniform vec4 fadeOutColor; uniform float maximumDistance; uniform bool repeat; uniform vec2 fadeDirection; uniform vec2 time; float getTime(float t, float coord) { float scalar = 1.0 / maximumDistance; float q = distance(t, coord) * scalar; if (repeat) { float r = distance(t, coord + 1.0) * scalar; float s = distance(t, coord - 1.0) * scalar; q = min(min(r, s), q); } return clamp(q, 0.0, 1.0); } czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); vec2 st = materialInput.st; float s = getTime(time.x, st.s) * fadeDirection.s; float t = getTime(time.y, st.t) * fadeDirection.t; float u = length(vec2(s, t)); vec4 color = mix(fadeInColor, fadeOutColor, u); color = czm_gammaCorrect(color); material.emission = color.rgb; material.alpha = color.a; return material; } `;var Aw=`uniform vec4 color; uniform float cellAlpha; uniform vec2 lineCount; uniform vec2 lineThickness; uniform vec2 lineOffset; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); vec2 st = materialInput.st; float scaledWidth = fract(lineCount.s * st.s - lineOffset.s); scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); float scaledHeight = fract(lineCount.t * st.t - lineOffset.t); scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); float value; // Fuzz Factor - Controls blurriness of lines #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) const float fuzz = 1.2; vec2 thickness = (lineThickness * czm_pixelRatio) - 1.0; // From "3D Engine Design for Virtual Globes" by Cozzi and Ring, Listing 4.13. vec2 dx = abs(dFdx(st)); vec2 dy = abs(dFdy(st)); vec2 dF = vec2(max(dx.s, dy.s), max(dx.t, dy.t)) * lineCount; value = min( smoothstep(dF.s * thickness.s, dF.s * (fuzz + thickness.s), scaledWidth), smoothstep(dF.t * thickness.t, dF.t * (fuzz + thickness.t), scaledHeight)); #else // If no derivatives available (IE 10?), revert to view-dependent fuzz const float fuzz = 0.05; vec2 range = 0.5 - (lineThickness * 0.05); value = min( 1.0 - smoothstep(range.s, range.s + fuzz, scaledWidth), 1.0 - smoothstep(range.t, range.t + fuzz, scaledHeight)); #endif // Edges taken from RimLightingMaterial.glsl // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html float dRim = 1.0 - abs(dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC))); float sRim = smoothstep(0.8, 1.0, dRim); value *= (1.0 - sRim); vec4 halfColor; halfColor.rgb = color.rgb * 0.5; halfColor.a = color.a * (1.0 - ((1.0 - cellAlpha) * value)); halfColor = czm_gammaCorrect(halfColor); material.diffuse = halfColor.rgb; material.emission = halfColor.rgb; material.alpha = halfColor.a; return material; } `;var Cw=`uniform sampler2D image; uniform float strength; uniform vec2 repeat; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); vec4 textureValue = texture(image, fract(repeat * materialInput.st)); vec3 normalTangentSpace = textureValue.channels; normalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0; normalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0); normalTangentSpace = normalize(normalTangentSpace); vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; material.normal = normalEC; return material; } `;var Ew=`uniform vec4 color; float getPointOnLine(vec2 p0, vec2 p1, float x) { float slope = (p0.y - p1.y) / (p0.x - p1.x); return slope * (x - p0.x) + p0.y; } czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); vec2 st = materialInput.st; #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) float base = 1.0 - abs(fwidth(st.s)) * 10.0 * czm_pixelRatio; #else // If no derivatives available (IE 10?), 2.5% of the line will be the arrow head float base = 0.975; #endif vec2 center = vec2(1.0, 0.5); float ptOnUpperLine = getPointOnLine(vec2(base, 1.0), center, st.s); float ptOnLowerLine = getPointOnLine(vec2(base, 0.0), center, st.s); float halfWidth = 0.15; float s = step(0.5 - halfWidth, st.t); s *= 1.0 - step(0.5 + halfWidth, st.t); s *= 1.0 - step(base, st.s); float t = step(base, materialInput.st.s); t *= 1.0 - step(ptOnUpperLine, st.t); t *= step(ptOnLowerLine, st.t); // Find the distance from the closest separator (region between two colors) float dist; if (st.s < base) { float d1 = abs(st.t - (0.5 - halfWidth)); float d2 = abs(st.t - (0.5 + halfWidth)); dist = min(d1, d2); } else { float d1 = czm_infinity; if (st.t < 0.5 - halfWidth && st.t > 0.5 + halfWidth) { d1 = abs(st.s - base); } float d2 = abs(st.t - ptOnUpperLine); float d3 = abs(st.t - ptOnLowerLine); dist = min(min(d1, d2), d3); } vec4 outsideColor = vec4(0.0); vec4 currentColor = mix(outsideColor, color, clamp(s + t, 0.0, 1.0)); vec4 outColor = czm_antialias(outsideColor, color, currentColor, dist); outColor = czm_gammaCorrect(outColor); material.diffuse = outColor.rgb; material.alpha = outColor.a; return material; } `;var Sw=`uniform vec4 color; uniform vec4 gapColor; uniform float dashLength; uniform float dashPattern; in float v_polylineAngle; const float maskLength = 16.0; mat2 rotate(float rad) { float c = cos(rad); float s = sin(rad); return mat2( c, s, -s, c ); } czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); vec2 pos = rotate(v_polylineAngle) * gl_FragCoord.xy; // Get the relative position within the dash from 0 to 1 float dashPosition = fract(pos.x / (dashLength * czm_pixelRatio)); // Figure out the mask index. float maskIndex = floor(dashPosition * maskLength); // Test the bit mask. float maskTest = floor(dashPattern / pow(2.0, maskIndex)); vec4 fragColor = (mod(maskTest, 2.0) < 1.0) ? gapColor : color; if (fragColor.a < 0.005) { // matches 0/255 and 1/255 discard; } fragColor = czm_gammaCorrect(fragColor); material.emission = fragColor.rgb; material.alpha = fragColor.a; return material; } `;var vw=`uniform vec4 color; uniform float glowPower; uniform float taperPower; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); vec2 st = materialInput.st; float glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5); if (taperPower <= 0.99999) { glow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5)); } vec4 fragColor; fragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb); fragColor.a = clamp(0.0, 1.0, glow) * color.a; fragColor = czm_gammaCorrect(fragColor); material.emission = fragColor.rgb; material.alpha = fragColor.a; return material; } `;var ww=`uniform vec4 color; uniform vec4 outlineColor; uniform float outlineWidth; in float v_width; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); vec2 st = materialInput.st; float halfInteriorWidth = 0.5 * (v_width - outlineWidth) / v_width; float b = step(0.5 - halfInteriorWidth, st.t); b *= 1.0 - step(0.5 + halfInteriorWidth, st.t); // Find the distance from the closest separator (region between two colors) float d1 = abs(st.t - (0.5 - halfInteriorWidth)); float d2 = abs(st.t - (0.5 + halfInteriorWidth)); float dist = min(d1, d2); vec4 currentColor = mix(outlineColor, color, b); vec4 outColor = czm_antialias(outlineColor, color, currentColor, dist); outColor = czm_gammaCorrect(outColor); material.diffuse = outColor.rgb; material.alpha = outColor.a; return material; } `;var Dw=`uniform vec4 color; uniform vec4 rimColor; uniform float width; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html float d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC)); float s = smoothstep(1.0 - width, 1.0, d); vec4 outColor = czm_gammaCorrect(color); vec4 outRimColor = czm_gammaCorrect(rimColor); material.diffuse = outColor.rgb; material.emission = outRimColor.rgb * s; material.alpha = mix(outColor.a, outRimColor.a, s); return material; } `;var Pw=`uniform sampler2D image; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); vec4 rampColor = texture(image, vec2(materialInput.slope / (czm_pi / 2.0), 0.5)); rampColor = czm_gammaCorrect(rampColor); material.diffuse = rampColor.rgb; material.alpha = rampColor.a; return material; } `;var Iw=`uniform vec4 evenColor; uniform vec4 oddColor; uniform float offset; uniform float repeat; uniform bool horizontal; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); // Based on the Stripes Fragment Shader in the Orange Book (11.1.2) float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal)); float value = fract((coord - offset) * (repeat * 0.5)); float dist = min(value, min(abs(value - 0.5), 1.0 - value)); vec4 currentColor = mix(evenColor, oddColor, step(0.5, value)); vec4 color = czm_antialias(evenColor, oddColor, currentColor, dist); color = czm_gammaCorrect(color); material.diffuse = color.rgb; material.alpha = color.a; return material; } `;var Rw=`// Thanks for the contribution Jonas // http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog uniform sampler2D specularMap; uniform sampler2D normalMap; uniform vec4 baseWaterColor; uniform vec4 blendColor; uniform float frequency; uniform float animationSpeed; uniform float amplitude; uniform float specularIntensity; uniform float fadeFactor; czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); float time = czm_frameNumber * animationSpeed; // fade is a function of the distance from the fragment and the frequency of the waves float fade = max(1.0, (length(materialInput.positionToEyeEC) / 10000000000.0) * frequency * fadeFactor); float specularMapValue = texture(specularMap, materialInput.st).r; // note: not using directional motion at this time, just set the angle to 0.0; vec4 noise = czm_getWaterNoise(normalMap, materialInput.st * frequency, time, 0.0); vec3 normalTangentSpace = noise.xyz * vec3(1.0, 1.0, (1.0 / amplitude)); // fade out the normal perturbation as we move further from the water surface normalTangentSpace.xy /= fade; // attempt to fade out the normal perturbation as we approach non water areas (low specular map value) normalTangentSpace = mix(vec3(0.0, 0.0, 50.0), normalTangentSpace, specularMapValue); normalTangentSpace = normalize(normalTangentSpace); // get ratios for alignment of the new normal vector with a vector perpendicular to the tangent plane float tsPerturbationRatio = clamp(dot(normalTangentSpace, vec3(0.0, 0.0, 1.0)), 0.0, 1.0); // fade out water effect as specular map value decreases material.alpha = mix(blendColor.a, baseWaterColor.a, specularMapValue) * specularMapValue; // base color is a blend of the water and non-water color based on the value from the specular map // may need a uniform blend factor to better control this material.diffuse = mix(blendColor.rgb, baseWaterColor.rgb, specularMapValue); // diffuse highlights are based on how perturbed the normal is material.diffuse += (0.1 * tsPerturbationRatio); material.diffuse = material.diffuse; material.normal = normalize(materialInput.tangentToEyeMatrix * normalTangentSpace); material.specular = specularIntensity; material.shininess = 10.0; return material; } `;function je(e){this.type=void 0,this.shaderSource=void 0,this.materials=void 0,this.uniforms=void 0,this._uniforms=void 0,this.translucent=void 0,this._minificationFilter=y(e.minificationFilter,nn.LINEAR),this._magnificationFilter=y(e.magnificationFilter,li.LINEAR),this._strict=void 0,this._template=void 0,this._count=void 0,this._texturePaths={},this._loadedImages=[],this._loadedCubeMaps=[],this._textures={},this._updateFunctions=[],this._defaultTexture=void 0,jwe(e,this),Object.defineProperties(this,{type:{value:this.type,writable:!1}}),l(je._uniformList[this.type])||(je._uniformList[this.type]=Object.keys(this._uniforms))}je._uniformList={};je.fromType=function(e,t){let n=new je({fabric:{type:e}});if(l(t))for(let i in t)t.hasOwnProperty(i)&&(n.uniforms[i]=t[i]);return n};je.prototype.isTranslucent=function(){if(l(this.translucent))return typeof this.translucent=="function"?this.translucent():this.translucent;let e=!0,t=this._translucentFunctions,n=t.length;for(let i=0;i<n;++i){let o=t[i];if(typeof o=="function"?e=e&&o():e=e&&o,!e)break}return e};je.prototype.update=function(e){this._defaultTexture=e.defaultTexture;let t,n,i=this._loadedImages,o=i.length;for(t=0;t<o;++t){let c=i[t];n=c.id;let u=c.image,f;Array.isArray(u)&&(f=u.slice(1,u.length).map(function(x){return x.bufferView}),u=u[0]);let d=new on({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter}),p;l(u.internalFormat)?p=new Dt({context:e,pixelFormat:u.internalFormat,width:u.width,height:u.height,source:{arrayBufferView:u.bufferView,mipLevels:f},sampler:d}):p=new Dt({context:e,source:u,sampler:d});let g=this._textures[n];l(g)&&g!==this._defaultTexture&&g.destroy(),this._textures[n]=p;let m=`${n}Dimensions`;if(this.uniforms.hasOwnProperty(m)){let x=this.uniforms[m];x.x=p._width,x.y=p._height}}i.length=0;let r=this._loadedCubeMaps;for(o=r.length,t=0;t<o;++t){let c=r[t];n=c.id;let u=c.images,f=new Ja({context:e,source:{positiveX:u[0],negativeX:u[1],positiveY:u[2],negativeY:u[3],positiveZ:u[4],negativeZ:u[5]},sampler:new on({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter})});this._textures[n]=f}r.length=0;let s=this._updateFunctions;for(o=s.length,t=0;t<o;++t)s[t](this,e);let a=this.materials;for(let c in a)a.hasOwnProperty(c)&&a[c].update(e)};je.prototype.isDestroyed=function(){return!1};je.prototype.destroy=function(){let e=this._textures;for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];i!==this._defaultTexture&&i.destroy()}let t=this.materials;for(let n in t)t.hasOwnProperty(n)&&t[n].destroy();return ue(this)};function jwe(e,t){e=y(e,y.EMPTY_OBJECT),t._strict=y(e.strict,!1),t._count=y(e.count,0),t._template=He(y(e.fabric,y.EMPTY_OBJECT)),t._template.uniforms=He(y(t._template.uniforms,y.EMPTY_OBJECT)),t._template.materials=He(y(t._template.materials,y.EMPTY_OBJECT)),t.type=l(t._template.type)?t._template.type:Hn(),t.shaderSource="",t.materials={},t.uniforms={},t._uniforms={},t._translucentFunctions=[];let n,i=je._materialCache.getMaterial(t.type);if(l(i)){let r=He(i.fabric,!0);t._template=_t(t._template,r,!0),n=i.translucent}Kwe(t),l(i)||je._materialCache.addMaterial(t.type,t),$we(t),tDe(t),iDe(t);let o=t._translucentFunctions.length===0?!0:void 0;if(n=y(n,o),n=y(e.translucent,n),l(n))if(typeof n=="function"){let r=function(){return n(t)};t._translucentFunctions.push(r)}else t._translucentFunctions.push(n)}function XG(e,t,n,i){if(l(e)){for(let o in e)if(e.hasOwnProperty(o)){let r=t.indexOf(o)!==-1;(i&&!r||!i&&r)&&n(o,t)}}}function FJ(e,t){}function qwe(e,t){}var Ywe=["type","materials","uniforms","components","source"],Xwe=["diffuse","specular","shininess","normal","emission","alpha"];function Kwe(e){let t=e._template,n=t.uniforms,i=t.materials,o=t.components;XG(t,Ywe,FJ,!0),XG(o,Xwe,FJ,!0);let r=[];for(let s in i)i.hasOwnProperty(s)&&r.push(s);XG(n,r,qwe,!1)}function Zwe(e,t){let n=t._template.materials;for(let i in n)if(n.hasOwnProperty(i)&&e.indexOf(i)>-1)return!0;return!1}function $we(e){let t=e._template.components,n=e._template.source;if(l(n))e.shaderSource+=`${n} `;else{if(e.shaderSource+=`czm_material czm_getMaterial(czm_materialInput materialInput) { `,e.shaderSource+=`czm_material material = czm_getDefaultMaterial(materialInput); `,l(t)){let i=Object.keys(e._template.materials).length>0;for(let o in t)if(t.hasOwnProperty(o))if(o==="diffuse"||o==="emission"){let s=i&&Zwe(t[o],e)?t[o]:`czm_gammaCorrect(${t[o]})`;e.shaderSource+=`material.${o} = ${s}; `}else o==="alpha"?e.shaderSource+=`material.alpha = ${t.alpha}; `:e.shaderSource+=`material.${o} = ${t[o]}; `}e.shaderSource+=`return material; } `}}var BJ={mat2:Qi,mat3:$,mat4:F},Qwe=/\.ktx2$/i;function Jwe(e){let t;return function(n,i){let o=n.uniforms,r=o[e],s=t!==r,a=!l(r)||r===je.DefaultImageId;t=r;let c=n._textures[e],u,f;if(r instanceof HTMLVideoElement){if(r.readyState>=2){if(s&&l(c)&&(c!==i.defaultTexture&&c.destroy(),c=void 0),!l(c)||c===i.defaultTexture){let p=new on({minificationFilter:n._minificationFilter,magnificationFilter:n._magnificationFilter});c=new Dt({context:i,source:r,sampler:p}),n._textures[e]=c;return}c.copyFrom({source:r})}else l(c)||(n._textures[e]=i.defaultTexture);return}if(r instanceof Dt&&r!==c){n._texturePaths[e]=void 0;let p=n._textures[e];l(p)&&p!==n._defaultTexture&&p.destroy(),n._textures[e]=r,u=`${e}Dimensions`,o.hasOwnProperty(u)&&(f=o[u],f.x=r._width,f.y=r._height);return}if(s&&l(c)&&a&&(c!==n._defaultTexture&&c.destroy(),c=void 0),l(c)||(n._texturePaths[e]=void 0,c=n._textures[e]=n._defaultTexture,u=`${e}Dimensions`,o.hasOwnProperty(u)&&(f=o[u],f.x=c._width,f.y=c._height)),a)return;let d=r instanceof De;if(!l(n._texturePaths[e])||d&&r.url!==n._texturePaths[e].url||!d&&r!==n._texturePaths[e]){if(typeof r=="string"||d){let p=d?r:De.createIfNeeded(r),g;Qwe.test(p.url)?g=Cl(p.url):g=p.fetchImage(),Promise.resolve(g).then(function(m){n._loadedImages.push({id:e,image:m})}).catch(function(){l(c)&&c!==n._defaultTexture&&c.destroy(),n._textures[e]=n._defaultTexture})}else(r instanceof HTMLCanvasElement||r instanceof HTMLImageElement)&&n._loadedImages.push({id:e,image:r});n._texturePaths[e]=r}}}function eDe(e){return function(t,n){let i=t.uniforms[e];if(i instanceof Ja){let r=t._textures[e];r!==t._defaultTexture&&r.destroy(),t._texturePaths[e]=void 0,t._textures[e]=i;return}if(l(t._textures[e])||(t._texturePaths[e]=void 0,t._textures[e]=n.defaultCubeMap),i===je.DefaultCubeMapId)return;let o=i.positiveX+i.negativeX+i.positiveY+i.negativeY+i.positiveZ+i.negativeZ;if(o!==t._texturePaths[e]){let r=[De.createIfNeeded(i.positiveX).fetchImage(),De.createIfNeeded(i.negativeX).fetchImage(),De.createIfNeeded(i.positiveY).fetchImage(),De.createIfNeeded(i.negativeY).fetchImage(),De.createIfNeeded(i.positiveZ).fetchImage(),De.createIfNeeded(i.negativeZ).fetchImage()];Promise.all(r).then(function(s){t._loadedCubeMaps.push({id:e,images:s})}),t._texturePaths[e]=o}}}function tDe(e){let t=e._template.uniforms;for(let n in t)t.hasOwnProperty(n)&&kJ(e,n)}function kJ(e,t){let n=e._strict,i=e._template.uniforms,o=i[t],r=nDe(o),s;if(r==="channels")s=Ow(e,t,o,!1);else{if(r==="sampler2D"){let u=`${t}Dimensions`;oDe(e,u)>0&&(i[u]={type:"ivec3",x:1,y:1},kJ(e,u))}if(!new RegExp(`uniform\\s+${r}\\s+${t}\\s*;`).test(e.shaderSource)){let u=`uniform ${r} ${t};`;e.shaderSource=u+e.shaderSource}let c=`${t}_${e._count++}`;if(s=Ow(e,t,c),e.uniforms[t]=o,r==="sampler2D")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(Jwe(t));else if(r==="samplerCube")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(eDe(t));else if(r.indexOf("mat")!==-1){let u=new BJ[r];e._uniforms[c]=function(){return BJ[r].fromColumnMajorArray(e.uniforms[t],u)}}else e._uniforms[c]=function(){return e.uniforms[t]}}}function nDe(e){let t=e.type;if(!l(t)){let n=typeof e;if(n==="number")t="float";else if(n==="boolean")t="bool";else if(n==="string"||e instanceof De||e instanceof HTMLCanvasElement||e instanceof HTMLImageElement)/^([rgba]){1,4}$/i.test(e)?t="channels":e===je.DefaultCubeMapId?t="samplerCube":t="sampler2D";else if(n==="object")if(Array.isArray(e))(e.length===4||e.length===9||e.length===16)&&(t=`mat${Math.sqrt(e.length)}`);else{let i=0;for(let o in e)e.hasOwnProperty(o)&&(i+=1);i>=2&&i<=4?t=`vec${i}`:i===6&&(t="samplerCube")}}return t}function iDe(e){let t=e._strict,n=e._template.materials;for(let i in n)if(n.hasOwnProperty(i)){let o=new je({strict:t,fabric:n[i],count:e._count});e._count=o._count,e._uniforms=_t(e._uniforms,o._uniforms,!0),e.materials[i]=o,e._translucentFunctions=e._translucentFunctions.concat(o._translucentFunctions);let r="czm_getMaterial",s=`${r}_${e._count++}`;Ow(o,r,s),e.shaderSource=o.shaderSource+e.shaderSource;let a=`${s}(materialInput)`,c=Ow(e,i,a)}}function Ow(e,t,n,i){i=y(i,!0);let o=0,r="([\\w])?",s=`([\\w${i?".":""}])?`,a=new RegExp(s+t+r,"g");return e.shaderSource=e.shaderSource.replace(a,function(c,u,f){return u||f?c:(o+=1,n)}),o}function oDe(e,t,n){return Ow(e,t,t,n)}je._materialCache={_materials:{},addMaterial:function(e,t){this._materials[e]=t},getMaterial:function(e){return this._materials[e]}};je.DefaultImageId="czm_defaultImage";je.DefaultCubeMapId="czm_defaultCubeMap";je.ColorType="Color";je._materialCache.addMaterial(je.ColorType,{fabric:{type:je.ColorType,uniforms:{color:new H(1,0,0,.5)},components:{diffuse:"color.rgb",alpha:"color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});je.ImageType="Image";je._materialCache.addMaterial(je.ImageType,{fabric:{type:je.ImageType,uniforms:{image:je.DefaultImageId,repeat:new z(1,1),color:new H(1,1,1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).rgb * color.rgb",alpha:"texture(image, fract(repeat * materialInput.st)).a * color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});je.DiffuseMapType="DiffuseMap";je._materialCache.addMaterial(je.DiffuseMapType,{fabric:{type:je.DiffuseMapType,uniforms:{image:je.DefaultImageId,channels:"rgb",repeat:new z(1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});je.AlphaMapType="AlphaMap";je._materialCache.addMaterial(je.AlphaMapType,{fabric:{type:je.AlphaMapType,uniforms:{image:je.DefaultImageId,channel:"a",repeat:new z(1,1)},components:{alpha:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!0});je.SpecularMapType="SpecularMap";je._materialCache.addMaterial(je.SpecularMapType,{fabric:{type:je.SpecularMapType,uniforms:{image:je.DefaultImageId,channel:"r",repeat:new z(1,1)},components:{specular:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!1});je.EmissionMapType="EmissionMap";je._materialCache.addMaterial(je.EmissionMapType,{fabric:{type:je.EmissionMapType,uniforms:{image:je.DefaultImageId,channels:"rgb",repeat:new z(1,1)},components:{emission:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});je.BumpMapType="BumpMap";je._materialCache.addMaterial(je.BumpMapType,{fabric:{type:je.BumpMapType,uniforms:{image:je.DefaultImageId,channel:"r",strength:.8,repeat:new z(1,1)},source:pw},translucent:!1});je.NormalMapType="NormalMap";je._materialCache.addMaterial(je.NormalMapType,{fabric:{type:je.NormalMapType,uniforms:{image:je.DefaultImageId,channels:"rgb",strength:.8,repeat:new z(1,1)},source:Cw},translucent:!1});je.GridType="Grid";je._materialCache.addMaterial(je.GridType,{fabric:{type:je.GridType,uniforms:{color:new H(0,1,0,1),cellAlpha:.1,lineCount:new z(8,8),lineThickness:new z(1,1),lineOffset:new z(0,0)},source:Aw},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.cellAlpha<1}});je.StripeType="Stripe";je._materialCache.addMaterial(je.StripeType,{fabric:{type:je.StripeType,uniforms:{horizontal:!0,evenColor:new H(1,1,1,.5),oddColor:new H(0,0,1,.5),offset:0,repeat:5},source:Iw},translucent:function(e){let t=e.uniforms;return t.evenColor.alpha<1||t.oddColor.alpha<1}});je.CheckerboardType="Checkerboard";je._materialCache.addMaterial(je.CheckerboardType,{fabric:{type:je.CheckerboardType,uniforms:{lightColor:new H(1,1,1,.5),darkColor:new H(0,0,0,.5),repeat:new z(5,5)},source:_w},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});je.DotType="Dot";je._materialCache.addMaterial(je.DotType,{fabric:{type:je.DotType,uniforms:{lightColor:new H(1,1,0,.75),darkColor:new H(0,1,1,.75),repeat:new z(5,5)},source:gw},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});je.WaterType="Water";je._materialCache.addMaterial(je.WaterType,{fabric:{type:je.WaterType,uniforms:{baseWaterColor:new H(.2,.3,.6,1),blendColor:new H(0,1,.699,1),specularMap:je.DefaultImageId,normalMap:je.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1},source:Rw},translucent:function(e){let t=e.uniforms;return t.baseWaterColor.alpha<1||t.blendColor.alpha<1}});je.RimLightingType="RimLighting";je._materialCache.addMaterial(je.RimLightingType,{fabric:{type:je.RimLightingType,uniforms:{color:new H(1,0,0,.7),rimColor:new H(1,1,1,.4),width:.3},source:Dw},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.rimColor.alpha<1}});je.FadeType="Fade";je._materialCache.addMaterial(je.FadeType,{fabric:{type:je.FadeType,uniforms:{fadeInColor:new H(1,0,0,1),fadeOutColor:new H(0,0,0,0),maximumDistance:.5,repeat:!0,fadeDirection:{x:!0,y:!0},time:new z(.5,.5)},source:Tw},translucent:function(e){let t=e.uniforms;return t.fadeInColor.alpha<1||t.fadeOutColor.alpha<1}});je.PolylineArrowType="PolylineArrow";je._materialCache.addMaterial(je.PolylineArrowType,{fabric:{type:je.PolylineArrowType,uniforms:{color:new H(1,1,1,1)},source:Ew},translucent:!0});je.PolylineDashType="PolylineDash";je._materialCache.addMaterial(je.PolylineDashType,{fabric:{type:je.PolylineDashType,uniforms:{color:new H(1,0,1,1),gapColor:new H(0,0,0,0),dashLength:16,dashPattern:255},source:Sw},translucent:!0});je.PolylineGlowType="PolylineGlow";je._materialCache.addMaterial(je.PolylineGlowType,{fabric:{type:je.PolylineGlowType,uniforms:{color:new H(0,.5,1,1),glowPower:.25,taperPower:1},source:vw},translucent:!0});je.PolylineOutlineType="PolylineOutline";je._materialCache.addMaterial(je.PolylineOutlineType,{fabric:{type:je.PolylineOutlineType,uniforms:{color:new H(1,1,1,1),outlineColor:new H(1,0,0,1),outlineWidth:1},source:ww},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.outlineColor.alpha<1}});je.ElevationContourType="ElevationContour";je._materialCache.addMaterial(je.ElevationContourType,{fabric:{type:je.ElevationContourType,uniforms:{spacing:100,color:new H(1,0,0,1),width:1},source:xw},translucent:!1});je.ElevationRampType="ElevationRamp";je._materialCache.addMaterial(je.ElevationRampType,{fabric:{type:je.ElevationRampType,uniforms:{image:je.DefaultImageId,minimumHeight:0,maximumHeight:1e4},source:bw},translucent:!1});je.SlopeRampMaterialType="SlopeRamp";je._materialCache.addMaterial(je.SlopeRampMaterialType,{fabric:{type:je.SlopeRampMaterialType,uniforms:{image:je.DefaultImageId},source:Pw},translucent:!1});je.AspectRampMaterialType="AspectRamp";je._materialCache.addMaterial(je.AspectRampMaterialType,{fabric:{type:je.AspectRampMaterialType,uniforms:{image:je.DefaultImageId},source:mw},translucent:!1});je.ElevationBandType="ElevationBand";je._materialCache.addMaterial(je.ElevationBandType,{fabric:{type:je.ElevationBandType,uniforms:{heights:je.DefaultImageId,colors:je.DefaultImageId},source:yw},translucent:!0});var Vi=je;function rx(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.materialSupport,rx.MaterialSupport.TEXTURED);this.material=l(e.material)?e.material:Vi.fromType(Vi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,i.vertexShaderSource),this._fragmentShaderSource=y(e.fragmentShaderSource,i.fragmentShaderSource),this._renderState=Ji.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._materialSupport=i,this._vertexFormat=i.vertexFormat,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,!n)}Object.defineProperties(rx.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},materialSupport:{get:function(){return this._materialSupport}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});rx.prototype.getFragmentShaderSource=Ji.prototype.getFragmentShaderSource;rx.prototype.isTranslucent=Ji.prototype.isTranslucent;rx.prototype.getRenderState=Ji.prototype.getRenderState;rx.MaterialSupport={BASIC:Object.freeze({vertexFormat:Ie.POSITION_AND_NORMAL,vertexShaderSource:aw,fragmentShaderSource:sw}),TEXTURED:Object.freeze({vertexFormat:Ie.POSITION_NORMAL_AND_ST,vertexShaderSource:lw,fragmentShaderSource:cw}),ALL:Object.freeze({vertexFormat:Ie.ALL,vertexShaderSource:rw,fragmentShaderSource:ow})};var ro=rx;var Mw=`in vec3 v_positionEC; in vec3 v_normalEC; in vec4 v_color; void main() { vec3 positionToEyeEC = -v_positionEC; vec3 normalEC = normalize(v_normalEC); #ifdef FACE_FORWARD normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); #endif vec4 color = czm_gammaCorrect(v_color); czm_materialInput materialInput; materialInput.normalEC = normalEC; materialInput.positionToEyeEC = positionToEyeEC; czm_material material = czm_getDefaultMaterial(materialInput); material.diffuse = color.rgb; material.alpha = color.a; out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); } `;var Lw=`in vec3 position3DHigh; in vec3 position3DLow; in vec3 normal; in vec4 color; in float batchId; out vec3 v_positionEC; out vec3 v_normalEC; out vec4 v_color; void main() { vec4 p = czm_computePosition(); v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates v_normalEC = czm_normal * normal; // normal in eye coordinates v_color = color; gl_Position = czm_modelViewProjectionRelativeToEye * p; } `;var sx=`in vec4 v_color; void main() { out_FragColor = czm_gammaCorrect(v_color); } `;var Nw=`in vec3 position3DHigh; in vec3 position3DLow; in vec4 color; in float batchId; out vec4 v_color; void main() { vec4 p = czm_computePosition(); v_color = color; gl_Position = czm_modelViewProjectionRelativeToEye * p; } `;function yp(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.flat,!1),o=i?Nw:Lw,r=i?sx:Mw,s=i?yp.FLAT_VERTEX_FORMAT:yp.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,o),this._fragmentShaderSource=y(e.fragmentShaderSource,r),this._renderState=Ji.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=s,this._flat=i,this._faceForward=y(e.faceForward,!n)}Object.defineProperties(yp.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});yp.VERTEX_FORMAT=Ie.POSITION_AND_NORMAL;yp.FLAT_VERTEX_FORMAT=Ie.POSITION_ONLY;yp.prototype.getFragmentShaderSource=Ji.prototype.getFragmentShaderSource;yp.prototype.isTranslucent=Ji.prototype.isTranslucent;yp.prototype.getRenderState=Ji.prototype.getRenderState;var cn=yp;function YA(e){this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(YA.prototype,{isConstant:{get:function(){return q.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color")});YA.prototype.getType=function(e){return"Color"};YA.prototype.getValue=function(e,t){return l(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,H.WHITE,t.color),t};YA.prototype.equals=function(e){return this===e||e instanceof YA&&q.equals(this._color,e._color)};var kt=YA;function Og(e){e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,te.WGS84),this._rectangle=y(e.rectangle,se.MAX_VALUE),this._projection=new Ci(this._ellipsoid),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(Og.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});Og.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};Og.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};Og.prototype.rectangleToNativeRectangle=function(e,t){let n=R.toDegrees(e.west),i=R.toDegrees(e.south),o=R.toDegrees(e.east),r=R.toDegrees(e.north);return l(t)?(t.west=n,t.south=i,t.east=o,t.north=r,t):new se(n,i,o,r)};Og.prototype.tileXYToNativeRectangle=function(e,t,n,i){let o=this.tileXYToRectangle(e,t,n,i);return o.west=R.toDegrees(o.west),o.south=R.toDegrees(o.south),o.east=R.toDegrees(o.east),o.north=R.toDegrees(o.north),o};Og.prototype.tileXYToRectangle=function(e,t,n,i){let o=this._rectangle,r=this.getNumberOfXTilesAtLevel(n),s=this.getNumberOfYTilesAtLevel(n),a=o.width/r,c=e*a+o.west,u=(e+1)*a+o.west,f=o.height/s,d=o.north-t*f,p=o.north-(t+1)*f;return l(i)||(i=new se(c,p,u,d)),i.west=c,i.south=p,i.east=u,i.north=d,i};Og.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!se.contains(i,e))return;let o=this.getNumberOfXTilesAtLevel(t),r=this.getNumberOfYTilesAtLevel(t),s=i.width/o,a=i.height/r,c=e.longitude;i.east<i.west&&(c+=R.TWO_PI);let u=(c-i.west)/s|0;u>=o&&(u=o-1);let f=(i.north-e.latitude)/a|0;return f>=r&&(f=r-1),l(n)?(n.x=u,n.y=f,n):new z(u,f)};var Ui=Og;var VJ=new h,UJ=new h,zJ=new fe,KG=new h,rDe=new h,HJ=new ae,sDe=new Ui,Fw=[new fe,new fe,new fe,new fe],Bw=new z,zr={};zr.initialize=function(){let e=zr._initPromise;return l(e)||(e=De.fetchJson(en("Assets/approximateTerrainHeights.json")).then(function(t){zr._terrainHeights=t}),zr._initPromise=e),e};zr.getMinimumMaximumHeights=function(e,t){t=y(t,te.WGS84);let n=GJ(e),i=zr._defaultMinTerrainHeight,o=zr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=zr._terrainHeights[r];l(s)&&(i=s[0],o=s[1]),t.cartographicToCartesian(se.northeast(e,zJ),VJ),t.cartographicToCartesian(se.southwest(e,zJ),UJ),h.midpoint(UJ,VJ,KG);let a=t.scaleToGeodeticSurface(KG,rDe);if(l(a)){let c=h.distance(KG,a);i=Math.min(i,-c)}else i=zr._defaultMinTerrainHeight}return i=Math.max(zr._defaultMinTerrainHeight,i),{minimumTerrainHeight:i,maximumTerrainHeight:o}};zr.getBoundingSphere=function(e,t){t=y(t,te.WGS84);let n=GJ(e),i=zr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=zr._terrainHeights[r];l(s)&&(i=s[1])}let o=ae.fromRectangle3D(e,t,0);return ae.fromRectangle3D(e,t,i,HJ),ae.union(o,HJ,o)};function GJ(e){fe.fromRadians(e.east,e.north,0,Fw[0]),fe.fromRadians(e.west,e.north,0,Fw[1]),fe.fromRadians(e.east,e.south,0,Fw[2]),fe.fromRadians(e.west,e.south,0,Fw[3]);let t=0,n=0,i=0,o=0,r=zr._terrainHeightsMaxLevel,s;for(s=0;s<=r;++s){let a=!1;for(let c=0;c<4;++c){let u=Fw[c];if(sDe.positionToTileXY(u,s,Bw),c===0)i=Bw.x,o=Bw.y;else if(i!==Bw.x||o!==Bw.y){a=!0;break}}if(a)break;t=i,n=o}if(s!==0)return{x:t,y:n,level:s>r?r:s-1}}zr._terrainHeightsMaxLevel=6;zr._defaultMaxTerrainHeight=9e3;zr._defaultMinTerrainHeight=-1e5;zr._terrainHeights=void 0;zr._initPromise=void 0;Object.defineProperties(zr,{initialized:{get:function(){return l(zr._terrainHeights)}}});var ci=zr;function Fc(e,t,n){this.minimum=h.clone(y(e,h.ZERO)),this.maximum=h.clone(y(t,h.ZERO)),l(n)?n=h.clone(n):n=h.midpoint(this.minimum,this.maximum,new h),this.center=n}Fc.fromCorners=function(e,t,n){return l(n)||(n=new Fc),n.minimum=h.clone(e,n.minimum),n.maximum=h.clone(t,n.maximum),n.center=h.midpoint(e,t,n.center),n};Fc.fromPoints=function(e,t){if(l(t)||(t=new Fc),!l(e)||e.length===0)return t.minimum=h.clone(h.ZERO,t.minimum),t.maximum=h.clone(h.ZERO,t.maximum),t.center=h.clone(h.ZERO,t.center),t;let n=e[0].x,i=e[0].y,o=e[0].z,r=e[0].x,s=e[0].y,a=e[0].z,c=e.length;for(let d=1;d<c;d++){let p=e[d],g=p.x,m=p.y,x=p.z;n=Math.min(g,n),r=Math.max(g,r),i=Math.min(m,i),s=Math.max(m,s),o=Math.min(x,o),a=Math.max(x,a)}let u=t.minimum;u.x=n,u.y=i,u.z=o;let f=t.maximum;return f.x=r,f.y=s,f.z=a,t.center=h.midpoint(u,f,t.center),t};Fc.clone=function(e,t){if(l(e))return l(t)?(t.minimum=h.clone(e.minimum,t.minimum),t.maximum=h.clone(e.maximum,t.maximum),t.center=h.clone(e.center,t.center),t):new Fc(e.minimum,e.maximum,e.center)};Fc.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&h.equals(e.minimum,t.minimum)&&h.equals(e.maximum,t.maximum)};var hV=new h;Fc.intersectPlane=function(e,t){hV=h.subtract(e.maximum,e.minimum,hV);let n=h.multiplyByScalar(hV,.5,hV),i=t.normal,o=n.x*Math.abs(i.x)+n.y*Math.abs(i.y)+n.z*Math.abs(i.z),r=h.dot(e.center,i)+t.distance;return r-o>0?Gt.INSIDE:r+o<0?Gt.OUTSIDE:Gt.INTERSECTING};Fc.prototype.clone=function(e){return Fc.clone(this,e)};Fc.prototype.intersectPlane=function(e){return Fc.intersectPlane(this,e)};Fc.prototype.equals=function(e){return Fc.equals(this,e)};var Mg=Fc;var ZG={};ZG.computeDiscriminant=function(e,t,n){return t*t-4*e*n};function WJ(e,t,n){let i=e+t;return R.sign(e)!==R.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}ZG.computeRealRoots=function(e,t,n){let i;if(e===0)return t===0?[]:[-n/t];if(t===0){if(n===0)return[0,0];let c=Math.abs(n),u=Math.abs(e);if(c<u&&c/u<R.EPSILON14)return[0,0];if(c>u&&u/c<R.EPSILON14)return[];if(i=-n/e,i<0)return[];let f=Math.sqrt(i);return[-f,f]}else if(n===0)return i=-t/e,i<0?[i,0]:[0,i];let o=t*t,r=4*e*n,s=WJ(o,-r,R.EPSILON14);if(s<0)return[];let a=-.5*WJ(t,R.sign(t)*Math.sqrt(s),R.EPSILON14);return t>0?[a/e,n/a]:[n/a,a/e]};var Bc=ZG;var QG={};QG.computeDiscriminant=function(e,t,n,i){let o=e*e,r=t*t,s=n*n,a=i*i;return 18*e*t*n*i+r*s-27*o*a-4*(e*s*n+r*t*i)};function $G(e,t,n,i){let o=e,r=t/3,s=n/3,a=i,c=o*s,u=r*a,f=r*r,d=s*s,p=o*s-f,g=o*a-r*s,m=r*a-d,x=4*p*m-g*g,b,T;if(x<0){let Y,W,Q;f*u>=c*d?(Y=o,W=p,Q=-2*r*p+o*g):(Y=a,W=m,Q=-a*g+2*s*m);let K=-(Q<0?-1:1)*Math.abs(Y)*Math.sqrt(-x);T=-Q+K;let Z=T/2,he=Z<0?-Math.pow(-Z,1/3):Math.pow(Z,1/3),be=T===K?-he:-W/he;return b=W<=0?he+be:-Q/(he*he+be*be+W),f*u>=c*d?[(b-r)/o]:[-a/(b+s)]}let C=p,A=-2*r*p+o*g,E=m,v=-a*g+2*s*m,D=Math.sqrt(x),O=Math.sqrt(3)/2,I=Math.abs(Math.atan2(o*D,-A)/3);b=2*Math.sqrt(-C);let L=Math.cos(I);T=b*L;let N=b*(-L/2-O*Math.sin(I)),_=T+N>2*r?T-r:N-r,S=o,w=_/S;I=Math.abs(Math.atan2(a*D,-v)/3),b=2*Math.sqrt(-E),L=Math.cos(I),T=b*L,N=b*(-L/2-O*Math.sin(I));let P=-a,M=T+N<2*s?T+s:N+s,B=P/M,U=S*M,V=-_*M-S*P,G=_*P,k=(s*V-r*G)/(-r*V+s*U);return w<=k?w<=B?k<=B?[w,k,B]:[w,B,k]:[B,w,k]:w<=B?[k,w,B]:k<=B?[k,B,w]:[B,k,w]}QG.computeRealRoots=function(e,t,n,i){let o,r;if(e===0)return Bc.computeRealRoots(t,n,i);if(t===0){if(n===0){if(i===0)return[0,0,0];r=-i/e;let s=r<0?-Math.pow(-r,1/3):Math.pow(r,1/3);return[s,s,s]}else if(i===0)return o=Bc.computeRealRoots(e,0,n),o.Length===0?[0]:[o[0],0,o[1]];return $G(e,0,n,i)}else{if(n===0)return i===0?(r=-t/e,r<0?[r,0,0]:[0,0,r]):$G(e,t,0,i);if(i===0)return o=Bc.computeRealRoots(e,t,n),o.length===0?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]}return $G(e,t,n,i)};var ax=QG;var JG={};JG.computeDiscriminant=function(e,t,n,i,o){let r=e*e,s=r*e,a=t*t,c=a*t,u=n*n,f=u*n,d=i*i,p=d*i,g=o*o,m=g*o;return a*u*d-4*c*p-4*e*f*d+18*e*t*n*p-27*r*d*d+256*s*m+o*(18*c*n*i-4*a*f+16*e*u*u-80*e*t*u*i-6*e*a*d+144*r*n*d)+g*(144*e*a*n-27*a*a-128*r*u-192*r*t*i)};function Sd(e,t,n,i){let o=e*e,r=t-3*o/8,s=n-t*e/2+o*e/8,a=i-n*e/4+t*o/16-3*o*o/256,c=ax.computeRealRoots(1,2*r,r*r-4*a,-s*s);if(c.length>0){let u=-e/4,f=c[c.length-1];if(Math.abs(f)<R.EPSILON14){let d=Bc.computeRealRoots(1,r,a);if(d.length===2){let p=d[0],g=d[1],m;if(p>=0&&g>=0){let x=Math.sqrt(p),b=Math.sqrt(g);return[u-b,u-x,u+x,u+b]}else{if(p>=0&&g<0)return m=Math.sqrt(p),[u-m,u+m];if(p<0&&g>=0)return m=Math.sqrt(g),[u-m,u+m]}}return[]}else if(f>0){let d=Math.sqrt(f),p=(r+f-s/d)/2,g=(r+f+s/d)/2,m=Bc.computeRealRoots(1,d,p),x=Bc.computeRealRoots(1,-d,g);return m.length!==0?(m[0]+=u,m[1]+=u,x.length!==0?(x[0]+=u,x[1]+=u,m[1]<=x[0]?[m[0],m[1],x[0],x[1]]:x[1]<=m[0]?[x[0],x[1],m[0],m[1]]:m[0]>=x[0]&&m[1]<=x[1]?[x[0],m[0],m[1],x[1]]:x[0]>=m[0]&&x[1]<=m[1]?[m[0],x[0],x[1],m[1]]:m[0]>x[0]&&m[0]<x[1]?[x[0],m[0],x[1],m[1]]:[m[0],x[0],m[1],x[1]]):m):x.length!==0?(x[0]+=u,x[1]+=u,x):[]}}return[]}function kw(e,t,n,i){let o=n*n,r=t*t,s=e*e,a=-2*t,c=n*e+r-4*i,u=s*i-n*t*e+o,f=ax.computeRealRoots(1,a,c,u);if(f.length>0){let d=f[0],p=t-d,g=p*p,m=e/2,x=p/2,b=g-4*i,T=g+4*Math.abs(i),C=s-4*d,A=s+4*Math.abs(d),E,v;if(d<0||b*A<C*T){let S=Math.sqrt(C);E=S/2,v=S===0?0:(e*x-n)/S}else{let S=Math.sqrt(b);E=S===0?0:(e*x-n)/S,v=S/2}let D,O;m===0&&E===0?(D=0,O=0):R.sign(m)===R.sign(E)?(D=m+E,O=d/D):(O=m-E,D=d/O);let I,L;x===0&&v===0?(I=0,L=0):R.sign(x)===R.sign(v)?(I=x+v,L=i/I):(L=x-v,I=i/L);let N=Bc.computeRealRoots(1,D,I),_=Bc.computeRealRoots(1,O,L);if(N.length!==0)return _.length!==0?N[1]<=_[0]?[N[0],N[1],_[0],_[1]]:_[1]<=N[0]?[_[0],_[1],N[0],N[1]]:N[0]>=_[0]&&N[1]<=_[1]?[_[0],N[0],N[1],_[1]]:_[0]>=N[0]&&_[1]<=N[1]?[N[0],_[0],_[1],N[1]]:N[0]>_[0]&&N[0]<_[1]?[_[0],N[0],_[1],N[1]]:[N[0],_[0],N[1],_[1]]:N;if(_.length!==0)return _}return[]}JG.computeRealRoots=function(e,t,n,i,o){if(Math.abs(e)<R.EPSILON15)return ax.computeRealRoots(t,n,i,o);let r=t/e,s=n/e,a=i/e,c=o/e,u=r<0?1:0;switch(u+=s<0?u+1:u,u+=a<0?u+1:u,u+=c<0?u+1:u,u){case 0:return Sd(r,s,a,c);case 1:return kw(r,s,a,c);case 2:return kw(r,s,a,c);case 3:return Sd(r,s,a,c);case 4:return Sd(r,s,a,c);case 5:return kw(r,s,a,c);case 6:return Sd(r,s,a,c);case 7:return Sd(r,s,a,c);case 8:return kw(r,s,a,c);case 9:return Sd(r,s,a,c);case 10:return Sd(r,s,a,c);case 11:return kw(r,s,a,c);case 12:return Sd(r,s,a,c);case 13:return Sd(r,s,a,c);case 14:return Sd(r,s,a,c);case 15:return Sd(r,s,a,c);default:return}};var Vw=JG;function mV(e,t){t=h.clone(y(t,h.ZERO)),h.equals(t,h.ZERO)||h.normalize(t,t),this.origin=h.clone(y(e,h.ZERO)),this.direction=t}mV.clone=function(e,t){if(l(e))return l(t)?(t.origin=h.clone(e.origin),t.direction=h.clone(e.direction),t):new mV(e.origin,e.direction)};mV.getPoint=function(e,t,n){return l(n)||(n=new h),n=h.multiplyByScalar(e.direction,t,n),h.add(e.origin,n,n)};var pn=mV;var No={};No.rayPlane=function(e,t,n){l(n)||(n=new h);let i=e.origin,o=e.direction,r=t.normal,s=h.dot(r,o);if(Math.abs(s)<R.EPSILON15)return;let a=(-t.distance-h.dot(r,i))/s;if(!(a<0))return n=h.multiplyByScalar(o,a,n),h.add(i,n,n)};var aDe=new h,cDe=new h,QJ=new h,jJ=new h,qJ=new h;No.rayTriangleParametric=function(e,t,n,i,o){o=y(o,!1);let r=e.origin,s=e.direction,a=h.subtract(n,t,aDe),c=h.subtract(i,t,cDe),u=h.cross(s,c,QJ),f=h.dot(a,u),d,p,g,m,x;if(o){if(f<R.EPSILON6||(d=h.subtract(r,t,jJ),g=h.dot(d,u),g<0||g>f)||(p=h.cross(d,a,qJ),m=h.dot(s,p),m<0||g+m>f))return;x=h.dot(c,p)/f}else{if(Math.abs(f)<R.EPSILON6)return;let b=1/f;if(d=h.subtract(r,t,jJ),g=h.dot(d,u)*b,g<0||g>1||(p=h.cross(d,a,qJ),m=h.dot(s,p)*b,m<0||g+m>1))return;x=h.dot(c,p)*b}return x};No.rayTriangle=function(e,t,n,i,o,r){let s=No.rayTriangleParametric(e,t,n,i,o);if(!(!l(s)||s<0))return l(r)||(r=new h),h.multiplyByScalar(e.direction,s,r),h.add(e.origin,r,r)};var lDe=new pn;No.lineSegmentTriangle=function(e,t,n,i,o,r,s){let a=lDe;h.clone(e,a.origin),h.subtract(t,e,a.direction),h.normalize(a.direction,a.direction);let c=No.rayTriangleParametric(a,n,i,o,r);if(!(!l(c)||c<0||c>h.distance(e,t)))return l(s)||(s=new h),h.multiplyByScalar(a.direction,c,s),h.add(a.origin,s,s)};function uDe(e,t,n,i){let o=t*t-4*e*n;if(o<0)return;if(o>0){let s=1/(2*e),a=Math.sqrt(o),c=(-t+a)*s,u=(-t-a)*s;return c<u?(i.root0=c,i.root1=u):(i.root0=u,i.root1=c),i}let r=-t/(2*e);if(r!==0)return i.root0=i.root1=r,i}var fDe={root0:0,root1:0};function JJ(e,t,n){l(n)||(n=new Ta);let i=e.origin,o=e.direction,r=t.center,s=t.radius*t.radius,a=h.subtract(i,r,QJ),c=h.dot(o,o),u=2*h.dot(o,a),f=h.magnitudeSquared(a)-s,d=uDe(c,u,f,fDe);if(l(d))return n.start=d.root0,n.stop=d.root1,n}No.raySphere=function(e,t,n){if(n=JJ(e,t,n),!(!l(n)||n.stop<0))return n.start=Math.max(n.start,0),n};var dDe=new pn;No.lineSegmentSphere=function(e,t,n,i){let o=dDe;h.clone(e,o.origin);let r=h.subtract(t,e,o.direction),s=h.magnitude(r);if(h.normalize(r,r),i=JJ(o,n,i),!(!l(i)||i.stop<0||i.start>s))return i.start=Math.max(i.start,0),i.stop=Math.min(i.stop,s),i};var hDe=new h,mDe=new h;No.rayEllipsoid=function(e,t){let n=t.oneOverRadii,i=h.multiplyComponents(n,e.origin,hDe),o=h.multiplyComponents(n,e.direction,mDe),r=h.magnitudeSquared(i),s=h.dot(i,o),a,c,u,f,d;if(r>1){if(s>=0)return;let p=s*s;if(a=r-1,c=h.magnitudeSquared(o),u=c*a,p<u)return;if(p>u){f=s*s-u,d=-s+Math.sqrt(f);let m=d/c,x=a/d;return m<x?new Ta(m,x):{start:x,stop:m}}let g=Math.sqrt(a/c);return new Ta(g,g)}else if(r<1)return a=r-1,c=h.magnitudeSquared(o),u=c*a,f=s*s-u,d=-s+Math.sqrt(f),new Ta(0,d/c);if(s<0)return c=h.magnitudeSquared(o),new Ta(0,-s/c)};function cx(e,t,n){let i=e+t;return R.sign(e)!==R.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}No.quadraticVectorExpression=function(e,t,n,i,o){let r=i*i,s=o*o,a=(e[$.COLUMN1ROW1]-e[$.COLUMN2ROW2])*s,c=o*(i*cx(e[$.COLUMN1ROW0],e[$.COLUMN0ROW1],R.EPSILON15)+t.y),u=e[$.COLUMN0ROW0]*r+e[$.COLUMN2ROW2]*s+i*t.x+n,f=s*cx(e[$.COLUMN2ROW1],e[$.COLUMN1ROW2],R.EPSILON15),d=o*(i*cx(e[$.COLUMN2ROW0],e[$.COLUMN0ROW2])+t.z),p,g=[];if(d===0&&f===0){if(p=Bc.computeRealRoots(a,c,u),p.length===0)return g;let I=p[0],L=Math.sqrt(Math.max(1-I*I,0));if(g.push(new h(i,o*I,o*-L)),g.push(new h(i,o*I,o*L)),p.length===2){let N=p[1],_=Math.sqrt(Math.max(1-N*N,0));g.push(new h(i,o*N,o*-_)),g.push(new h(i,o*N,o*_))}return g}let m=d*d,x=f*f,b=a*a,T=d*f,C=b+x,A=2*(c*a+T),E=2*u*a+c*c-x+m,v=2*(u*c-T),D=u*u-m;if(C===0&&A===0&&E===0&&v===0)return g;p=Vw.computeRealRoots(C,A,E,v,D);let O=p.length;if(O===0)return g;for(let I=0;I<O;++I){let L=p[I],N=L*L,_=Math.max(1-N,0),S=Math.sqrt(_),w;R.sign(a)===R.sign(u)?w=cx(a*N+u,c*L,R.EPSILON12):R.sign(u)===R.sign(c*L)?w=cx(a*N,c*L+u,R.EPSILON12):w=cx(a*N+c*L,u,R.EPSILON12);let P=cx(f*L,d,R.EPSILON15),M=w*P;M<0?g.push(new h(i,o*L,o*S)):M>0?g.push(new h(i,o*L,o*-S)):S!==0?(g.push(new h(i,o*L,o*-S)),g.push(new h(i,o*L,o*S)),++I):g.push(new h(i,o*L,o*S))}return g};var e6=new h,YJ=new h,XJ=new h,pV=new h,pDe=new h,_De=new $,gDe=new $,yDe=new $,xDe=new $,bDe=new $,KJ=new $,ZJ=new $,$J=new h,TDe=new h,ADe=new fe;No.grazingAltitudeLocation=function(e,t){let n=e.origin,i=e.direction;if(!h.equals(n,h.ZERO)){let D=t.geodeticSurfaceNormal(n,e6);if(h.dot(i,D)>=0)return n}let o=l(this.rayEllipsoid(e,t)),r=t.transformPositionToScaledSpace(i,e6),s=h.normalize(r,r),a=h.mostOrthogonalAxis(r,pV),c=h.normalize(h.cross(a,s,YJ),YJ),u=h.normalize(h.cross(s,c,XJ),XJ),f=_De;f[0]=s.x,f[1]=s.y,f[2]=s.z,f[3]=c.x,f[4]=c.y,f[5]=c.z,f[6]=u.x,f[7]=u.y,f[8]=u.z;let d=$.transpose(f,gDe),p=$.fromScale(t.radii,yDe),g=$.fromScale(t.oneOverRadii,xDe),m=bDe;m[0]=0,m[1]=-i.z,m[2]=i.y,m[3]=i.z,m[4]=0,m[5]=-i.x,m[6]=-i.y,m[7]=i.x,m[8]=0;let x=$.multiply($.multiply(d,g,KJ),m,KJ),b=$.multiply($.multiply(x,p,ZJ),f,ZJ),T=$.multiplyByVector(x,n,pDe),C=No.quadraticVectorExpression(b,h.negate(T,e6),0,0,1),A,E,v=C.length;if(v>0){let D=h.clone(h.ZERO,TDe),O=Number.NEGATIVE_INFINITY;for(let L=0;L<v;++L){A=$.multiplyByVector(p,$.multiplyByVector(f,C[L],$J),$J);let N=h.normalize(h.subtract(A,n,pV),pV),_=h.dot(N,i);_>O&&(O=_,D=h.clone(A,D))}let I=t.cartesianToCartographic(D,ADe);return O=R.clamp(O,0,1),E=h.magnitude(h.subtract(D,n,pV))*Math.sqrt(1-O*O),E=o?-E:E,I.height=E,t.cartographicToCartesian(I,new h)}};var CDe=new h;No.lineSegmentPlane=function(e,t,n,i){l(i)||(i=new h);let o=h.subtract(t,e,CDe),r=n.normal,s=h.dot(r,o);if(Math.abs(s)<R.EPSILON6)return;let a=h.dot(r,e),c=-(n.distance+a)/s;if(!(c<0||c>1))return h.multiplyByScalar(o,c,i),h.add(e,i,i),i};No.trianglePlaneIntersection=function(e,t,n,i){let o=i.normal,r=i.distance,s=h.dot(o,e)+r<0,a=h.dot(o,t)+r<0,c=h.dot(o,n)+r<0,u=0;u+=s?1:0,u+=a?1:0,u+=c?1:0;let f,d;if((u===1||u===2)&&(f=new h,d=new h),u===1){if(s)return No.lineSegmentPlane(e,t,i,f),No.lineSegmentPlane(e,n,i,d),{positions:[e,t,n,f,d],indices:[0,3,4,1,2,4,1,4,3]};if(a)return No.lineSegmentPlane(t,n,i,f),No.lineSegmentPlane(t,e,i,d),{positions:[e,t,n,f,d],indices:[1,3,4,2,0,4,2,4,3]};if(c)return No.lineSegmentPlane(n,e,i,f),No.lineSegmentPlane(n,t,i,d),{positions:[e,t,n,f,d],indices:[2,3,4,0,1,4,0,4,3]}}else if(u===2)if(s)if(a){if(!c)return No.lineSegmentPlane(e,n,i,f),No.lineSegmentPlane(t,n,i,d),{positions:[e,t,n,f,d],indices:[0,1,4,0,4,3,2,3,4]}}else return No.lineSegmentPlane(n,t,i,f),No.lineSegmentPlane(e,t,i,d),{positions:[e,t,n,f,d],indices:[2,0,4,2,4,3,1,3,4]};else return No.lineSegmentPlane(t,e,i,f),No.lineSegmentPlane(n,e,i,d),{positions:[e,t,n,f,d],indices:[1,2,4,1,4,3,0,3,4]}};var Qn=No;function Is(e,t){this.normal=h.clone(e),this.distance=t}Is.fromPointNormal=function(e,t,n){let i=-h.dot(t,e);return l(n)?(h.clone(t,n.normal),n.distance=i,n):new Is(t,i)};var EDe=new h;Is.fromCartesian4=function(e,t){let n=h.fromCartesian4(e,EDe),i=e.w;return l(t)?(h.clone(n,t.normal),t.distance=i,t):new Is(n,i)};Is.getPointDistance=function(e,t){return h.dot(e.normal,t)+e.distance};var SDe=new h;Is.projectPointOntoPlane=function(e,t,n){l(n)||(n=new h);let i=Is.getPointDistance(e,t),o=h.multiplyByScalar(e.normal,i,SDe);return h.subtract(t,o,n)};var vDe=new F,wDe=new oe,DDe=new h;Is.transform=function(e,t,n){let i=e.normal,o=e.distance,r=F.inverseTranspose(t,vDe),s=oe.fromElements(i.x,i.y,i.z,o,wDe);s=F.multiplyByVector(r,s,s);let a=h.fromCartesian4(s,DDe);return s=oe.divideByScalar(s,h.magnitude(a),s),Is.fromCartesian4(s,n)};Is.clone=function(e,t){return l(t)?(h.clone(e.normal,t.normal),t.distance=e.distance,t):new Is(e.normal,e.distance)};Is.equals=function(e,t){return e.distance===t.distance&&h.equals(e.normal,t.normal)};Is.ORIGIN_XY_PLANE=Object.freeze(new Is(h.UNIT_Z,0));Is.ORIGIN_YZ_PLANE=Object.freeze(new Is(h.UNIT_X,0));Is.ORIGIN_ZX_PLANE=Object.freeze(new Is(h.UNIT_Y,0));var ln=Is;var t6=new oe;function Jh(e,t){t=y(t,te.WGS84),e=t.scaleToGeodeticSurface(e);let n=wt.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=h.fromCartesian4(F.getColumn(n,0,t6)),this._yAxis=h.fromCartesian4(F.getColumn(n,1,t6));let i=h.fromCartesian4(F.getColumn(n,2,t6));this._plane=ln.fromPointNormal(e,i)}Object.defineProperties(Jh.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var PDe=new Mg;Jh.fromPoints=function(e,t){let n=Mg.fromPoints(e,PDe);return new Jh(n.center,t)};var eee=new pn,_V=new h;Jh.prototype.projectPointOntoPlane=function(e,t){let n=eee;n.origin=e,h.normalize(e,n.direction);let i=Qn.rayPlane(n,this._plane,_V);if(l(i)||(h.negate(n.direction,n.direction),i=Qn.rayPlane(n,this._plane,_V)),l(i)){let o=h.subtract(i,this._origin,i),r=h.dot(this._xAxis,o),s=h.dot(this._yAxis,o);return l(t)?(t.x=r,t.y=s,t):new z(r,s)}};Jh.prototype.projectPointsOntoPlane=function(e,t){l(t)||(t=[]);let n=0,i=e.length;for(let o=0;o<i;o++){let r=this.projectPointOntoPlane(e[o],t[n]);l(r)&&(t[n]=r,n++)}return t.length=n,t};Jh.prototype.projectPointToNearestOnPlane=function(e,t){l(t)||(t=new z);let n=eee;n.origin=e,h.clone(this._plane.normal,n.direction);let i=Qn.rayPlane(n,this._plane,_V);l(i)||(h.negate(n.direction,n.direction),i=Qn.rayPlane(n,this._plane,_V));let o=h.subtract(i,this._origin,i),r=h.dot(this._xAxis,o),s=h.dot(this._yAxis,o);return t.x=r,t.y=s,t};Jh.prototype.projectPointsToNearestOnPlane=function(e,t){l(t)||(t=[]);let n=e.length;t.length=n;for(let i=0;i<n;i++)t[i]=this.projectPointToNearestOnPlane(e[i],t[i]);return t};var IDe=new h;Jh.prototype.projectPointOntoEllipsoid=function(e,t){l(t)||(t=new h);let n=this._ellipsoid,i=this._origin,o=this._xAxis,r=this._yAxis,s=IDe;return h.multiplyByScalar(o,e.x,s),t=h.add(i,s,t),h.multiplyByScalar(r,e.y,s),h.add(t,s,t),n.scaleToGeocentricSurface(t,t),t};Jh.prototype.projectPointsOntoEllipsoid=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;++i)t[i]=this.projectPointOntoEllipsoid(e[i],t[i]);return t};var Hr=Jh;function Li(e,t){this.center=h.clone(y(e,h.ZERO)),this.halfAxes=$.clone(y(t,$.ZERO))}Li.packedLength=h.packedLength+$.packedLength;Li.pack=function(e,t,n){return n=y(n,0),h.pack(e.center,t,n),$.pack(e.halfAxes,t,n+h.packedLength),t};Li.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Li),h.unpack(e,t,n.center),$.unpack(e,t+h.packedLength,n.halfAxes),n};var RDe=new h,ODe=new h,MDe=new h,LDe=new h,NDe=new h,FDe=new h,BDe=new $,kDe={unitary:new $,diagonal:new $};Li.fromPoints=function(e,t){if(l(t)||(t=new Li),!l(e)||e.length===0)return t.halfAxes=$.ZERO,t.center=h.ZERO,t;let n,i=e.length,o=h.clone(e[0],RDe);for(n=1;n<i;n++)h.add(o,e[n],o);let r=1/i;h.multiplyByScalar(o,r,o);let s=0,a=0,c=0,u=0,f=0,d=0,p;for(n=0;n<i;n++)p=h.subtract(e[n],o,ODe),s+=p.x*p.x,a+=p.x*p.y,c+=p.x*p.z,u+=p.y*p.y,f+=p.y*p.z,d+=p.z*p.z;s*=r,a*=r,c*=r,u*=r,f*=r,d*=r;let g=BDe;g[0]=s,g[1]=a,g[2]=c,g[3]=a,g[4]=u,g[5]=f,g[6]=c,g[7]=f,g[8]=d;let m=$.computeEigenDecomposition(g,kDe),x=$.clone(m.unitary,t.halfAxes),b=$.getColumn(x,0,LDe),T=$.getColumn(x,1,NDe),C=$.getColumn(x,2,FDe),A=-Number.MAX_VALUE,E=-Number.MAX_VALUE,v=-Number.MAX_VALUE,D=Number.MAX_VALUE,O=Number.MAX_VALUE,I=Number.MAX_VALUE;for(n=0;n<i;n++)p=e[n],A=Math.max(h.dot(b,p),A),E=Math.max(h.dot(T,p),E),v=Math.max(h.dot(C,p),v),D=Math.min(h.dot(b,p),D),O=Math.min(h.dot(T,p),O),I=Math.min(h.dot(C,p),I);b=h.multiplyByScalar(b,.5*(D+A),b),T=h.multiplyByScalar(T,.5*(O+E),T),C=h.multiplyByScalar(C,.5*(I+v),C);let L=h.add(b,T,t.center);h.add(L,C,L);let N=MDe;return N.x=A-D,N.y=E-O,N.z=v-I,h.multiplyByScalar(N,.5,N),$.multiplyByScale(t.halfAxes,N,t.halfAxes),t};var see=new h,VDe=new h;function tee(e,t,n,i,o,r,s,a,c,u,f){l(f)||(f=new Li);let d=f.halfAxes;$.setColumn(d,0,t,d),$.setColumn(d,1,n,d),$.setColumn(d,2,i,d);let p=see;p.x=(o+r)/2,p.y=(s+a)/2,p.z=(c+u)/2;let g=VDe;g.x=(r-o)/2,g.y=(a-s)/2,g.z=(u-c)/2;let m=f.center;return p=$.multiplyByVector(d,p,p),h.add(e,p,m),$.multiplyByScale(d,g,d),f}var nee=new fe,UDe=new h,zDe=new fe,HDe=new fe,GDe=new fe,WDe=new fe,jDe=new fe,qDe=new h,iee=new h,YDe=new h,oee=new h,XDe=new h,KDe=new z,ZDe=new z,$De=new z,QDe=new z,JDe=new z,ePe=new h,tPe=new h,nPe=new h,iPe=new h,oPe=new z,rPe=new h,sPe=new h,aPe=new h,cPe=new ln(h.UNIT_X,0);Li.fromRectangle=function(e,t,n,i,o){t=y(t,0),n=y(n,0),i=y(i,te.WGS84);let r,s,a,c,u,f,d;if(e.width<=R.PI){let O=se.center(e,nee),I=i.cartographicToCartesian(O,UDe),L=new Hr(I,i);d=L.plane;let N=O.longitude,_=e.south<0&&e.north>0?0:O.latitude,S=fe.fromRadians(N,e.north,n,zDe),w=fe.fromRadians(e.west,e.north,n,HDe),P=fe.fromRadians(e.west,_,n,GDe),M=fe.fromRadians(e.west,e.south,n,WDe),B=fe.fromRadians(N,e.south,n,jDe),U=i.cartographicToCartesian(S,qDe),V=i.cartographicToCartesian(w,iee),G=i.cartographicToCartesian(P,YDe),k=i.cartographicToCartesian(M,oee),Y=i.cartographicToCartesian(B,XDe),W=L.projectPointToNearestOnPlane(U,KDe),Q=L.projectPointToNearestOnPlane(V,ZDe),j=L.projectPointToNearestOnPlane(G,$De),K=L.projectPointToNearestOnPlane(k,QDe),Z=L.projectPointToNearestOnPlane(Y,JDe);return r=Math.min(Q.x,j.x,K.x),s=-r,c=Math.max(Q.y,W.y),a=Math.min(K.y,Z.y),w.height=M.height=t,V=i.cartographicToCartesian(w,iee),k=i.cartographicToCartesian(M,oee),u=Math.min(ln.getPointDistance(d,V),ln.getPointDistance(d,k)),f=n,tee(L.origin,L.xAxis,L.yAxis,L.zAxis,r,s,a,c,u,f,o)}let p=e.south>0,g=e.north<0,m=p?e.south:g?e.north:0,x=se.center(e,nee).longitude,b=h.fromRadians(x,m,n,i,ePe);b.z=0;let C=Math.abs(b.x)<R.EPSILON10&&Math.abs(b.y)<R.EPSILON10?h.UNIT_X:h.normalize(b,tPe),A=h.UNIT_Z,E=h.cross(C,A,nPe);d=ln.fromPointNormal(b,C,cPe);let v=h.fromRadians(x+R.PI_OVER_TWO,m,n,i,iPe);s=h.dot(ln.projectPointOntoPlane(d,v,oPe),E),r=-s,c=h.fromRadians(0,e.north,g?t:n,i,rPe).z,a=h.fromRadians(0,e.south,p?t:n,i,sPe).z;let D=h.fromRadians(e.east,m,n,i,aPe);return u=ln.getPointDistance(d,D),f=0,tee(b,E,A,C,r,s,a,c,u,f,o)};Li.fromTransformation=function(e,t){return l(t)||(t=new Li),t.center=F.getTranslation(e,t.center),t.halfAxes=F.getMatrix3(e,t.halfAxes),t.halfAxes=$.multiplyByScalar(t.halfAxes,.5,t.halfAxes),t};Li.clone=function(e,t){if(l(e))return l(t)?(h.clone(e.center,t.center),$.clone(e.halfAxes,t.halfAxes),t):new Li(e.center,e.halfAxes)};Li.intersectPlane=function(e,t){let n=e.center,i=t.normal,o=e.halfAxes,r=i.x,s=i.y,a=i.z,c=Math.abs(r*o[$.COLUMN0ROW0]+s*o[$.COLUMN0ROW1]+a*o[$.COLUMN0ROW2])+Math.abs(r*o[$.COLUMN1ROW0]+s*o[$.COLUMN1ROW1]+a*o[$.COLUMN1ROW2])+Math.abs(r*o[$.COLUMN2ROW0]+s*o[$.COLUMN2ROW1]+a*o[$.COLUMN2ROW2]),u=h.dot(i,n)+t.distance;return u<=-c?Gt.OUTSIDE:u>=c?Gt.INSIDE:Gt.INTERSECTING};var aee=new h,cee=new h,lee=new h,lPe=new h,ree=new h,uPe=new h;Li.distanceSquaredTo=function(e,t){let n=h.subtract(t,e.center,see),i=e.halfAxes,o=$.getColumn(i,0,aee),r=$.getColumn(i,1,cee),s=$.getColumn(i,2,lee),a=h.magnitude(o),c=h.magnitude(r),u=h.magnitude(s),f=!0,d=!0,p=!0;a>0?h.divideByScalar(o,a,o):f=!1,c>0?h.divideByScalar(r,c,r):d=!1,u>0?h.divideByScalar(s,u,s):p=!1;let g=!f+!d+!p,m,x,b;if(g===1){let E=o;m=r,x=s,d?p||(E=s,x=o):(E=r,m=o),b=h.cross(m,x,ree),E===o?o=b:E===r?r=b:E===s&&(s=b)}else if(g===2){m=o,d?m=r:p&&(m=s);let E=h.UNIT_Y;E.equalsEpsilon(m,R.EPSILON3)&&(E=h.UNIT_X),x=h.cross(m,E,lPe),h.normalize(x,x),b=h.cross(m,x,ree),h.normalize(b,b),m===o?(r=x,s=b):m===r?(s=x,o=b):m===s&&(o=x,r=b)}else g===3&&(o=h.UNIT_X,r=h.UNIT_Y,s=h.UNIT_Z);let T=uPe;T.x=h.dot(n,o),T.y=h.dot(n,r),T.z=h.dot(n,s);let C=0,A;return T.x<-a?(A=T.x+a,C+=A*A):T.x>a&&(A=T.x-a,C+=A*A),T.y<-c?(A=T.y+c,C+=A*A):T.y>c&&(A=T.y-c,C+=A*A),T.z<-u?(A=T.z+u,C+=A*A):T.z>u&&(A=T.z-u,C+=A*A),C};var fPe=new h,dPe=new h;Li.computePlaneDistances=function(e,t,n,i){l(i)||(i=new Ta);let o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=e.center,a=e.halfAxes,c=$.getColumn(a,0,aee),u=$.getColumn(a,1,cee),f=$.getColumn(a,2,lee),d=h.add(c,u,fPe);h.add(d,f,d),h.add(d,s,d);let p=h.subtract(d,t,dPe),g=h.dot(n,p);return o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.add(d,u,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.subtract(d,u,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.subtract(d,u,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.add(d,u,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.add(d,u,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.subtract(d,u,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.subtract(d,u,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),i.start=o,i.stop=r,i};var hPe=new h,mPe=new h,pPe=new h;Li.computeCorners=function(e,t){l(t)||(t=[new h,new h,new h,new h,new h,new h,new h,new h]);let n=e.center,i=e.halfAxes,o=$.getColumn(i,0,hPe),r=$.getColumn(i,1,mPe),s=$.getColumn(i,2,pPe);return h.clone(n,t[0]),h.subtract(t[0],o,t[0]),h.subtract(t[0],r,t[0]),h.subtract(t[0],s,t[0]),h.clone(n,t[1]),h.subtract(t[1],o,t[1]),h.subtract(t[1],r,t[1]),h.add(t[1],s,t[1]),h.clone(n,t[2]),h.subtract(t[2],o,t[2]),h.add(t[2],r,t[2]),h.subtract(t[2],s,t[2]),h.clone(n,t[3]),h.subtract(t[3],o,t[3]),h.add(t[3],r,t[3]),h.add(t[3],s,t[3]),h.clone(n,t[4]),h.add(t[4],o,t[4]),h.subtract(t[4],r,t[4]),h.subtract(t[4],s,t[4]),h.clone(n,t[5]),h.add(t[5],o,t[5]),h.subtract(t[5],r,t[5]),h.add(t[5],s,t[5]),h.clone(n,t[6]),h.add(t[6],o,t[6]),h.add(t[6],r,t[6]),h.subtract(t[6],s,t[6]),h.clone(n,t[7]),h.add(t[7],o,t[7]),h.add(t[7],r,t[7]),h.add(t[7],s,t[7]),t};var _Pe=new $;Li.computeTransformation=function(e,t){l(t)||(t=new F);let n=e.center,i=$.multiplyByUniformScale(e.halfAxes,2,_Pe);return F.fromRotationTranslation(i,n,t)};var gPe=new ae;Li.isOccluded=function(e,t){let n=ae.fromOrientedBoundingBox(e,gPe);return!t.isBoundingSphereVisible(n)};Li.prototype.intersectPlane=function(e){return Li.intersectPlane(this,e)};Li.prototype.distanceSquaredTo=function(e){return Li.distanceSquaredTo(this,e)};Li.prototype.computePlaneDistances=function(e,t,n){return Li.computePlaneDistances(this,e,t,n)};Li.prototype.computeCorners=function(e){return Li.computeCorners(this,e)};Li.prototype.computeTransformation=function(e){return Li.computeTransformation(this,e)};Li.prototype.isOccluded=function(e){return Li.isOccluded(this,e)};Li.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&$.equals(e.halfAxes,t.halfAxes)};Li.prototype.clone=function(e){return Li.clone(this,e)};Li.prototype.equals=function(e){return Li.equals(this,e)};var Sn=Li;var gV={};gV.getHeight=function(e,t,n){return(e-n)*t+n};var yPe=new fe;gV.getPosition=function(e,t,n,i,o){let r=t.cartesianToCartographic(e,yPe);if(!l(r))return h.clone(e,o);let s=gV.getHeight(r.height,n,i);return h.fromRadians(r.longitude,r.latitude,s,t,o)};var pr=gV;var _r={CULL:1,OCCLUDE:2,EXECUTE_IN_CLOSEST_FRUSTUM:4,DEBUG_SHOW_BOUNDING_VOLUME:8,CAST_SHADOWS:16,RECEIVE_SHADOWS:32,PICK_ONLY:64,DEPTH_FOR_TRANSLUCENT_CLASSIFICATION:128};function Uw(e){e=y(e,y.EMPTY_OBJECT),this._boundingVolume=e.boundingVolume,this._orientedBoundingBox=e.orientedBoundingBox,this._modelMatrix=e.modelMatrix,this._primitiveType=y(e.primitiveType,Le.TRIANGLES),this._vertexArray=e.vertexArray,this._count=e.count,this._offset=y(e.offset,0),this._instanceCount=y(e.instanceCount,0),this._shaderProgram=e.shaderProgram,this._uniformMap=e.uniformMap,this._renderState=e.renderState,this._framebuffer=e.framebuffer,this._pass=e.pass,this._owner=e.owner,this._debugOverlappingFrustums=0,this._pickId=e.pickId,this._flags=0,this.cull=y(e.cull,!0),this.occlude=y(e.occlude,!0),this.executeInClosestFrustum=y(e.executeInClosestFrustum,!1),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.castShadows=y(e.castShadows,!1),this.receiveShadows=y(e.receiveShadows,!1),this.pickOnly=y(e.pickOnly,!1),this.depthForTranslucentClassification=y(e.depthForTranslucentClassification,!1),this.dirty=!0,this.lastDirtyTime=0,this.derivedCommands={}}function ec(e,t){return(e._flags&t)===t}function Lg(e,t,n){n?e._flags|=t:e._flags&=~t}Object.defineProperties(Uw.prototype,{boundingVolume:{get:function(){return this._boundingVolume},set:function(e){this._boundingVolume!==e&&(this._boundingVolume=e,this.dirty=!0)}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox},set:function(e){this._orientedBoundingBox!==e&&(this._orientedBoundingBox=e,this.dirty=!0)}},cull:{get:function(){return ec(this,_r.CULL)},set:function(e){ec(this,_r.CULL)!==e&&(Lg(this,_r.CULL,e),this.dirty=!0)}},occlude:{get:function(){return ec(this,_r.OCCLUDE)},set:function(e){ec(this,_r.OCCLUDE)!==e&&(Lg(this,_r.OCCLUDE,e),this.dirty=!0)}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix!==e&&(this._modelMatrix=e,this.dirty=!0)}},primitiveType:{get:function(){return this._primitiveType},set:function(e){this._primitiveType!==e&&(this._primitiveType=e,this.dirty=!0)}},vertexArray:{get:function(){return this._vertexArray},set:function(e){this._vertexArray!==e&&(this._vertexArray=e,this.dirty=!0)}},count:{get:function(){return this._count},set:function(e){this._count!==e&&(this._count=e,this.dirty=!0)}},offset:{get:function(){return this._offset},set:function(e){this._offset!==e&&(this._offset=e,this.dirty=!0)}},instanceCount:{get:function(){return this._instanceCount},set:function(e){this._instanceCount!==e&&(this._instanceCount=e,this.dirty=!0)}},shaderProgram:{get:function(){return this._shaderProgram},set:function(e){this._shaderProgram!==e&&(this._shaderProgram=e,this.dirty=!0)}},castShadows:{get:function(){return ec(this,_r.CAST_SHADOWS)},set:function(e){ec(this,_r.CAST_SHADOWS)!==e&&(Lg(this,_r.CAST_SHADOWS,e),this.dirty=!0)}},receiveShadows:{get:function(){return ec(this,_r.RECEIVE_SHADOWS)},set:function(e){ec(this,_r.RECEIVE_SHADOWS)!==e&&(Lg(this,_r.RECEIVE_SHADOWS,e),this.dirty=!0)}},uniformMap:{get:function(){return this._uniformMap},set:function(e){this._uniformMap!==e&&(this._uniformMap=e,this.dirty=!0)}},renderState:{get:function(){return this._renderState},set:function(e){this._renderState!==e&&(this._renderState=e,this.dirty=!0)}},framebuffer:{get:function(){return this._framebuffer},set:function(e){this._framebuffer!==e&&(this._framebuffer=e,this.dirty=!0)}},pass:{get:function(){return this._pass},set:function(e){this._pass!==e&&(this._pass=e,this.dirty=!0)}},executeInClosestFrustum:{get:function(){return ec(this,_r.EXECUTE_IN_CLOSEST_FRUSTUM)},set:function(e){ec(this,_r.EXECUTE_IN_CLOSEST_FRUSTUM)!==e&&(Lg(this,_r.EXECUTE_IN_CLOSEST_FRUSTUM,e),this.dirty=!0)}},owner:{get:function(){return this._owner},set:function(e){this._owner!==e&&(this._owner=e,this.dirty=!0)}},debugShowBoundingVolume:{get:function(){return ec(this,_r.DEBUG_SHOW_BOUNDING_VOLUME)},set:function(e){ec(this,_r.DEBUG_SHOW_BOUNDING_VOLUME)!==e&&(Lg(this,_r.DEBUG_SHOW_BOUNDING_VOLUME,e),this.dirty=!0)}},debugOverlappingFrustums:{get:function(){return this._debugOverlappingFrustums},set:function(e){this._debugOverlappingFrustums!==e&&(this._debugOverlappingFrustums=e,this.dirty=!0)}},pickId:{get:function(){return this._pickId},set:function(e){this._pickId!==e&&(this._pickId=e,this.dirty=!0)}},pickOnly:{get:function(){return ec(this,_r.PICK_ONLY)},set:function(e){ec(this,_r.PICK_ONLY)!==e&&(Lg(this,_r.PICK_ONLY,e),this.dirty=!0)}},depthForTranslucentClassification:{get:function(){return ec(this,_r.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)},set:function(e){ec(this,_r.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)!==e&&(Lg(this,_r.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION,e),this.dirty=!0)}}});Uw.shallowClone=function(e,t){if(l(e))return l(t)||(t=new Uw),t._boundingVolume=e._boundingVolume,t._orientedBoundingBox=e._orientedBoundingBox,t._modelMatrix=e._modelMatrix,t._primitiveType=e._primitiveType,t._vertexArray=e._vertexArray,t._count=e._count,t._offset=e._offset,t._instanceCount=e._instanceCount,t._shaderProgram=e._shaderProgram,t._uniformMap=e._uniformMap,t._renderState=e._renderState,t._framebuffer=e._framebuffer,t._pass=e._pass,t._owner=e._owner,t._debugOverlappingFrustums=e._debugOverlappingFrustums,t._pickId=e._pickId,t._flags=e._flags,t.dirty=!0,t.lastDirtyTime=0,t};Uw.prototype.execute=function(e,t){e.draw(this,t)};var Ze=Uw;var xPe={ENVIRONMENT:0,COMPUTE:1,GLOBE:2,TERRAIN_CLASSIFICATION:3,CESIUM_3D_TILE:4,CESIUM_3D_TILE_CLASSIFICATION:5,CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW:6,OPAQUE:7,TRANSLUCENT:8,VOXELS:9,OVERLAY:10,NUMBER_OF_PASSES:11},Ee=Object.freeze(xPe);var yV={CLOCKWISE:ee.CW,COUNTER_CLOCKWISE:ee.CCW};yV.validate=function(e){return e===yV.CLOCKWISE||e===yV.COUNTER_CLOCKWISE};var ss=Object.freeze(yV);function uee(e){if(typeof e!="object"||e===null)return e;let t,n=Object.keys(e);for(let i=0;i<n.length;i++)t=n[i],e.hasOwnProperty(t)&&t!=="_applyFunctions"&&(e[t]=uee(e[t]));return Object.freeze(e)}var n6=uee;function tm(e){let t=y(e,y.EMPTY_OBJECT),n=y(t.cull,y.EMPTY_OBJECT),i=y(t.polygonOffset,y.EMPTY_OBJECT),o=y(t.scissorTest,y.EMPTY_OBJECT),r=y(o.rectangle,y.EMPTY_OBJECT),s=y(t.depthRange,y.EMPTY_OBJECT),a=y(t.depthTest,y.EMPTY_OBJECT),c=y(t.colorMask,y.EMPTY_OBJECT),u=y(t.blending,y.EMPTY_OBJECT),f=y(u.color,y.EMPTY_OBJECT),d=y(t.stencilTest,y.EMPTY_OBJECT),p=y(d.frontOperation,y.EMPTY_OBJECT),g=y(d.backOperation,y.EMPTY_OBJECT),m=y(t.sampleCoverage,y.EMPTY_OBJECT),x=t.viewport;this.frontFace=y(t.frontFace,ss.COUNTER_CLOCKWISE),this.cull={enabled:y(n.enabled,!1),face:y(n.face,ee.BACK)},this.lineWidth=y(t.lineWidth,1),this.polygonOffset={enabled:y(i.enabled,!1),factor:y(i.factor,0),units:y(i.units,0)},this.scissorTest={enabled:y(o.enabled,!1),rectangle:Ge.clone(r)},this.depthRange={near:y(s.near,0),far:y(s.far,1)},this.depthTest={enabled:y(a.enabled,!1),func:y(a.func,ee.LESS)},this.colorMask={red:y(c.red,!0),green:y(c.green,!0),blue:y(c.blue,!0),alpha:y(c.alpha,!0)},this.depthMask=y(t.depthMask,!0),this.stencilMask=y(t.stencilMask,-1),this.blending={enabled:y(u.enabled,!1),color:new H(y(f.red,0),y(f.green,0),y(f.blue,0),y(f.alpha,0)),equationRgb:y(u.equationRgb,ee.FUNC_ADD),equationAlpha:y(u.equationAlpha,ee.FUNC_ADD),functionSourceRgb:y(u.functionSourceRgb,ee.ONE),functionSourceAlpha:y(u.functionSourceAlpha,ee.ONE),functionDestinationRgb:y(u.functionDestinationRgb,ee.ZERO),functionDestinationAlpha:y(u.functionDestinationAlpha,ee.ZERO)},this.stencilTest={enabled:y(d.enabled,!1),frontFunction:y(d.frontFunction,ee.ALWAYS),backFunction:y(d.backFunction,ee.ALWAYS),reference:y(d.reference,0),mask:y(d.mask,-1),frontOperation:{fail:y(p.fail,ee.KEEP),zFail:y(p.zFail,ee.KEEP),zPass:y(p.zPass,ee.KEEP)},backOperation:{fail:y(g.fail,ee.KEEP),zFail:y(g.zFail,ee.KEEP),zPass:y(g.zPass,ee.KEEP)}},this.sampleCoverage={enabled:y(m.enabled,!1),value:y(m.value,1),invert:y(m.invert,!1)},this.viewport=l(x)?new Ge(x.x,x.y,x.width,x.height):void 0,this.id=0,this._applyFunctions=[]}var bPe=0,em={};tm.fromCache=function(e){let t=JSON.stringify(e),n=em[t];if(l(n))return++n.referenceCount,n.state;let i=new tm(e),o=JSON.stringify(i);return n=em[o],l(n)||(i.id=bPe++,n={referenceCount:0,state:i},em[o]=n),++n.referenceCount,em[t]={referenceCount:1,state:n.state},n.state};tm.removeFromCache=function(e){let t=new tm(e),n=JSON.stringify(t),i=em[n],o=JSON.stringify(e),r=em[o];l(r)&&(--r.referenceCount,r.referenceCount===0&&(delete em[o],l(i)&&--i.referenceCount)),l(i)&&i.referenceCount===0&&delete em[n]};tm.getCache=function(){return em};tm.clearCache=function(){em={}};function lx(e,t,n){n?e.enable(t):e.disable(t)}function fee(e,t){e.frontFace(t.frontFace)}function dee(e,t){let n=t.cull,i=n.enabled;lx(e,e.CULL_FACE,i),i&&e.cullFace(n.face)}function hee(e,t){e.lineWidth(t.lineWidth)}function mee(e,t){let n=t.polygonOffset,i=n.enabled;lx(e,e.POLYGON_OFFSET_FILL,i),i&&e.polygonOffset(n.factor,n.units)}function pee(e,t,n){let i=t.scissorTest,o=l(n.scissorTest)?n.scissorTest.enabled:i.enabled;if(lx(e,e.SCISSOR_TEST,o),o){let r=l(n.scissorTest)?n.scissorTest.rectangle:i.rectangle;e.scissor(r.x,r.y,r.width,r.height)}}function _ee(e,t){let n=t.depthRange;e.depthRange(n.near,n.far)}function gee(e,t){let n=t.depthTest,i=n.enabled;lx(e,e.DEPTH_TEST,i),i&&e.depthFunc(n.func)}function yee(e,t){let n=t.colorMask;e.colorMask(n.red,n.green,n.blue,n.alpha)}function xee(e,t){e.depthMask(t.depthMask)}function bee(e,t){e.stencilMask(t.stencilMask)}function TPe(e,t){e.blendColor(t.red,t.green,t.blue,t.alpha)}function Tee(e,t,n){let i=t.blending,o=l(n.blendingEnabled)?n.blendingEnabled:i.enabled;lx(e,e.BLEND,o),o&&(TPe(e,i.color),e.blendEquationSeparate(i.equationRgb,i.equationAlpha),e.blendFuncSeparate(i.functionSourceRgb,i.functionDestinationRgb,i.functionSourceAlpha,i.functionDestinationAlpha))}function Aee(e,t){let n=t.stencilTest,i=n.enabled;if(lx(e,e.STENCIL_TEST,i),i){let o=n.frontFunction,r=n.backFunction,s=n.reference,a=n.mask;e.stencilFunc(o,s,a),e.stencilFuncSeparate(e.BACK,r,s,a),e.stencilFuncSeparate(e.FRONT,o,s,a);let c=n.frontOperation,u=c.fail,f=c.zFail,d=c.zPass;e.stencilOpSeparate(e.FRONT,u,f,d);let p=n.backOperation,g=p.fail,m=p.zFail,x=p.zPass;e.stencilOpSeparate(e.BACK,g,m,x)}}function Cee(e,t){let n=t.sampleCoverage,i=n.enabled;lx(e,e.SAMPLE_COVERAGE,i),i&&e.sampleCoverage(n.value,n.invert)}var APe=new Ge;function Eee(e,t,n){let i=y(t.viewport,n.viewport);l(i)||(i=APe,i.width=n.context.drawingBufferWidth,i.height=n.context.drawingBufferHeight),n.context.uniformState.viewport=i,e.viewport(i.x,i.y,i.width,i.height)}tm.apply=function(e,t,n){fee(e,t),dee(e,t),hee(e,t),mee(e,t),_ee(e,t),gee(e,t),yee(e,t),xee(e,t),bee(e,t),Aee(e,t),Cee(e,t),pee(e,t,n),Tee(e,t,n),Eee(e,t,n)};function CPe(e,t){let n=[];return e.frontFace!==t.frontFace&&n.push(fee),(e.cull.enabled!==t.cull.enabled||e.cull.face!==t.cull.face)&&n.push(dee),e.lineWidth!==t.lineWidth&&n.push(hee),(e.polygonOffset.enabled!==t.polygonOffset.enabled||e.polygonOffset.factor!==t.polygonOffset.factor||e.polygonOffset.units!==t.polygonOffset.units)&&n.push(mee),(e.depthRange.near!==t.depthRange.near||e.depthRange.far!==t.depthRange.far)&&n.push(_ee),(e.depthTest.enabled!==t.depthTest.enabled||e.depthTest.func!==t.depthTest.func)&&n.push(gee),(e.colorMask.red!==t.colorMask.red||e.colorMask.green!==t.colorMask.green||e.colorMask.blue!==t.colorMask.blue||e.colorMask.alpha!==t.colorMask.alpha)&&n.push(yee),e.depthMask!==t.depthMask&&n.push(xee),e.stencilMask!==t.stencilMask&&n.push(bee),(e.stencilTest.enabled!==t.stencilTest.enabled||e.stencilTest.frontFunction!==t.stencilTest.frontFunction||e.stencilTest.backFunction!==t.stencilTest.backFunction||e.stencilTest.reference!==t.stencilTest.reference||e.stencilTest.mask!==t.stencilTest.mask||e.stencilTest.frontOperation.fail!==t.stencilTest.frontOperation.fail||e.stencilTest.frontOperation.zFail!==t.stencilTest.frontOperation.zFail||e.stencilTest.backOperation.fail!==t.stencilTest.backOperation.fail||e.stencilTest.backOperation.zFail!==t.stencilTest.backOperation.zFail||e.stencilTest.backOperation.zPass!==t.stencilTest.backOperation.zPass)&&n.push(Aee),(e.sampleCoverage.enabled!==t.sampleCoverage.enabled||e.sampleCoverage.value!==t.sampleCoverage.value||e.sampleCoverage.invert!==t.sampleCoverage.invert)&&n.push(Cee),n}tm.partialApply=function(e,t,n,i,o,r){if(t!==n){let f=n._applyFunctions[t.id];l(f)||(f=CPe(t,n),n._applyFunctions[t.id]=f);let d=f.length;for(let p=0;p<d;++p)f[p](e,n)}let s=l(i.scissorTest)?i.scissorTest:t.scissorTest,a=l(o.scissorTest)?o.scissorTest:n.scissorTest;(s!==a||r)&&pee(e,n,o);let c=l(i.blendingEnabled)?i.blendingEnabled:t.blending.enabled,u=l(o.blendingEnabled)?o.blendingEnabled:n.blending.enabled;(c!==u||u&&t.blending!==n.blending)&&Tee(e,n,o),(t!==n||i!==o||i.context!==o.context)&&Eee(e,n,o)};tm.getState=function(e){return{frontFace:e.frontFace,cull:{enabled:e.cull.enabled,face:e.cull.face},lineWidth:e.lineWidth,polygonOffset:{enabled:e.polygonOffset.enabled,factor:e.polygonOffset.factor,units:e.polygonOffset.units},scissorTest:{enabled:e.scissorTest.enabled,rectangle:Ge.clone(e.scissorTest.rectangle)},depthRange:{near:e.depthRange.near,far:e.depthRange.far},depthTest:{enabled:e.depthTest.enabled,func:e.depthTest.func},colorMask:{red:e.colorMask.red,green:e.colorMask.green,blue:e.colorMask.blue,alpha:e.colorMask.alpha},depthMask:e.depthMask,stencilMask:e.stencilMask,blending:{enabled:e.blending.enabled,color:H.clone(e.blending.color),equationRgb:e.blending.equationRgb,equationAlpha:e.blending.equationAlpha,functionSourceRgb:e.blending.functionSourceRgb,functionSourceAlpha:e.blending.functionSourceAlpha,functionDestinationRgb:e.blending.functionDestinationRgb,functionDestinationAlpha:e.blending.functionDestinationAlpha},stencilTest:{enabled:e.stencilTest.enabled,frontFunction:e.stencilTest.frontFunction,backFunction:e.stencilTest.backFunction,reference:e.stencilTest.reference,mask:e.stencilTest.mask,frontOperation:{fail:e.stencilTest.frontOperation.fail,zFail:e.stencilTest.frontOperation.zFail,zPass:e.stencilTest.frontOperation.zPass},backOperation:{fail:e.stencilTest.backOperation.fail,zFail:e.stencilTest.backOperation.zFail,zPass:e.stencilTest.backOperation.zPass}},sampleCoverage:{enabled:e.sampleCoverage.enabled,value:e.sampleCoverage.value,invert:e.sampleCoverage.invert},viewport:l(e.viewport)?Ge.clone(e.viewport):void 0}};var Ve=tm;var EPe=new h;function St(e){this._size=e.size,this._datatype=e.datatype,this.getValue=e.getValue}var $s={};$s[ee.FLOAT]="float";$s[ee.FLOAT_VEC2]="vec2";$s[ee.FLOAT_VEC3]="vec3";$s[ee.FLOAT_VEC4]="vec4";$s[ee.INT]="int";$s[ee.INT_VEC2]="ivec2";$s[ee.INT_VEC3]="ivec3";$s[ee.INT_VEC4]="ivec4";$s[ee.BOOL]="bool";$s[ee.BOOL_VEC2]="bvec2";$s[ee.BOOL_VEC3]="bvec3";$s[ee.BOOL_VEC4]="bvec4";$s[ee.FLOAT_MAT2]="mat2";$s[ee.FLOAT_MAT3]="mat3";$s[ee.FLOAT_MAT4]="mat4";$s[ee.SAMPLER_2D]="sampler2D";$s[ee.SAMPLER_CUBE]="samplerCube";St.prototype.getDeclaration=function(e){let t=`uniform ${$s[this._datatype]} ${e}`,n=this._size;return n===1?t+=";":t+=`[${n.toString()}];`,t};var SPe={czm_viewport:new St({size:1,datatype:ee.FLOAT_VEC4,getValue:function(e){return e.viewportCartesian4}}),czm_viewportOrthographic:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.viewportOrthographic}}),czm_viewportTransformation:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.viewportTransformation}}),czm_globeDepthTexture:new St({size:1,datatype:ee.SAMPLER_2D,getValue:function(e){return e.globeDepthTexture}}),czm_model:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.model}}),czm_inverseModel:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseModel}}),czm_view:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.view}}),czm_view3D:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.view3D}}),czm_viewRotation:new St({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.viewRotation}}),czm_viewRotation3D:new St({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.viewRotation3D}}),czm_inverseView:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseView}}),czm_inverseView3D:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseView3D}}),czm_inverseViewRotation:new St({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation}}),czm_inverseViewRotation3D:new St({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation3D}}),czm_projection:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.projection}}),czm_inverseProjection:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseProjection}}),czm_infiniteProjection:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.infiniteProjection}}),czm_modelView:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelView}}),czm_modelView3D:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelView3D}}),czm_modelViewRelativeToEye:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelViewRelativeToEye}}),czm_inverseModelView:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseModelView}}),czm_inverseModelView3D:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseModelView3D}}),czm_viewProjection:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.viewProjection}}),czm_inverseViewProjection:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseViewProjection}}),czm_modelViewProjection:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelViewProjection}}),czm_inverseModelViewProjection:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.inverseModelViewProjection}}),czm_modelViewProjectionRelativeToEye:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelViewProjectionRelativeToEye}}),czm_modelViewInfiniteProjection:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelViewInfiniteProjection}}),czm_orthographicIn3D:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.orthographicIn3D?1:0}}),czm_normal:new St({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.normal}}),czm_normal3D:new St({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.normal3D}}),czm_inverseNormal:new St({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.inverseNormal}}),czm_inverseNormal3D:new St({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.inverseNormal3D}}),czm_eyeHeight:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.eyeHeight}}),czm_eyeHeight2D:new St({size:1,datatype:ee.FLOAT_VEC2,getValue:function(e){return e.eyeHeight2D}}),czm_eyeEllipsoidNormalEC:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.eyeEllipsoidNormalEC}}),czm_eyeEllipsoidCurvature:new St({size:1,datatype:ee.FLOAT_VEC2,getValue:function(e){return e.eyeEllipsoidCurvature}}),czm_modelToEnu:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.modelToEnu}}),czm_enuToModel:new St({size:1,datatype:ee.FLOAT_MAT4,getValue:function(e){return e.enuToModel}}),czm_entireFrustum:new St({size:1,datatype:ee.FLOAT_VEC2,getValue:function(e){return e.entireFrustum}}),czm_currentFrustum:new St({size:1,datatype:ee.FLOAT_VEC2,getValue:function(e){return e.currentFrustum}}),czm_frustumPlanes:new St({size:1,datatype:ee.FLOAT_VEC4,getValue:function(e){return e.frustumPlanes}}),czm_farDepthFromNearPlusOne:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.farDepthFromNearPlusOne}}),czm_log2FarDepthFromNearPlusOne:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.log2FarDepthFromNearPlusOne}}),czm_oneOverLog2FarDepthFromNearPlusOne:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.oneOverLog2FarDepthFromNearPlusOne}}),czm_sunPositionWC:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sunPositionWC}}),czm_sunPositionColumbusView:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sunPositionColumbusView}}),czm_sunDirectionEC:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sunDirectionEC}}),czm_sunDirectionWC:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sunDirectionWC}}),czm_moonDirectionEC:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.moonDirectionEC}}),czm_lightDirectionEC:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.lightDirectionEC}}),czm_lightDirectionWC:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.lightDirectionWC}}),czm_lightColor:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.lightColor}}),czm_lightColorHdr:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.lightColorHdr}}),czm_encodedCameraPositionMCHigh:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCHigh}}),czm_encodedCameraPositionMCLow:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCLow}}),czm_viewerPositionWC:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return F.getTranslation(e.inverseView,EPe)}}),czm_frameNumber:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.frameState.frameNumber}}),czm_morphTime:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.frameState.morphTime}}),czm_sceneMode:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.frameState.mode}}),czm_pass:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.pass}}),czm_backgroundColor:new St({size:1,datatype:ee.FLOAT_VEC4,getValue:function(e){return e.backgroundColor}}),czm_brdfLut:new St({size:1,datatype:ee.SAMPLER_2D,getValue:function(e){return e.brdfLut}}),czm_environmentMap:new St({size:1,datatype:ee.SAMPLER_CUBE,getValue:function(e){return e.environmentMap}}),czm_specularEnvironmentMaps:new St({size:1,datatype:ee.SAMPLER_2D,getValue:function(e){return e.specularEnvironmentMaps}}),czm_specularEnvironmentMapSize:new St({size:1,datatype:ee.FLOAT_VEC2,getValue:function(e){return e.specularEnvironmentMapsDimensions}}),czm_specularEnvironmentMapsMaximumLOD:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.specularEnvironmentMapsMaximumLOD}}),czm_sphericalHarmonicCoefficients:new St({size:9,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.sphericalHarmonicCoefficients}}),czm_temeToPseudoFixed:new St({size:1,datatype:ee.FLOAT_MAT3,getValue:function(e){return e.temeToPseudoFixedMatrix}}),czm_pixelRatio:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.pixelRatio}}),czm_fogDensity:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.fogDensity}}),czm_fogMinimumBrightness:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.fogMinimumBrightness}}),czm_atmosphereHsbShift:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.atmosphereHsbShift}}),czm_atmosphereLightIntensity:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.atmosphereLightIntensity}}),czm_atmosphereRayleighCoefficient:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.atmosphereRayleighCoefficient}}),czm_atmosphereRayleighScaleHeight:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.atmosphereRayleighScaleHeight}}),czm_atmosphereMieCoefficient:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.atmosphereMieCoefficient}}),czm_atmosphereMieScaleHeight:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.atmosphereMieScaleHeight}}),czm_atmosphereMieAnisotropy:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.atmosphereMieAnisotropy}}),czm_atmosphereDynamicLighting:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.atmosphereDynamicLighting}}),czm_splitPosition:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.splitPosition}}),czm_geometricToleranceOverMeter:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.geometricToleranceOverMeter}}),czm_minimumDisableDepthTestDistance:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.minimumDisableDepthTestDistance}}),czm_invertClassificationColor:new St({size:1,datatype:ee.FLOAT_VEC4,getValue:function(e){return e.invertClassificationColor}}),czm_gamma:new St({size:1,datatype:ee.FLOAT,getValue:function(e){return e.gamma}}),czm_ellipsoidRadii:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.radii}}),czm_ellipsoidInverseRadii:new St({size:1,datatype:ee.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.oneOverRadii}})},xp=SPe;function vPe(e,t,n,i){switch(t.type){case e.FLOAT:return new See(e,t,n,i);case e.FLOAT_VEC2:return new vee(e,t,n,i);case e.FLOAT_VEC3:return new wee(e,t,n,i);case e.FLOAT_VEC4:return new Dee(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new i6(e,t,n,i);case e.INT:case e.BOOL:return new Pee(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new Iee(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new Ree(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new Oee(e,t,n,i);case e.FLOAT_MAT2:return new Mee(e,t,n,i);case e.FLOAT_MAT3:return new Lee(e,t,n,i);case e.FLOAT_MAT4:return new Nee(e,t,n,i);default:throw new le(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function See(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}See.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1f(this._location,this.value))};function vee(e,t,n,i){this.name=n,this.value=void 0,this._value=new z,this._gl=e,this._location=i}vee.prototype.set=function(){let e=this.value;z.equals(e,this._value)||(z.clone(e,this._value),this._gl.uniform2f(this._location,e.x,e.y))};function wee(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}wee.prototype.set=function(){let e=this.value;l(e.red)?H.equals(e,this._value)||(this._value=H.clone(e,this._value),this._gl.uniform3f(this._location,e.red,e.green,e.blue)):l(e.x)&&(h.equals(e,this._value)||(this._value=h.clone(e,this._value),this._gl.uniform3f(this._location,e.x,e.y,e.z)))};function Dee(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}Dee.prototype.set=function(){let e=this.value;l(e.red)?H.equals(e,this._value)||(this._value=H.clone(e,this._value),this._gl.uniform4f(this._location,e.red,e.green,e.blue,e.alpha)):l(e.x)&&(oe.equals(e,this._value)||(this._value=oe.clone(e,this._value),this._gl.uniform4f(this._location,e.x,e.y,e.z,e.w)))};function i6(e,t,n,i){this.name=n,this.value=void 0,this._gl=e,this._location=i,this.textureUnitIndex=void 0}i6.prototype.set=function(){let e=this._gl;e.activeTexture(e.TEXTURE0+this.textureUnitIndex);let t=this.value;e.bindTexture(t._target,t._texture)};i6.prototype._setSampler=function(e){return this.textureUnitIndex=e,this._gl.uniform1i(this._location,e),e+1};function Pee(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}Pee.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1i(this._location,this.value))};function Iee(e,t,n,i){this.name=n,this.value=void 0,this._value=new z,this._gl=e,this._location=i}Iee.prototype.set=function(){let e=this.value;z.equals(e,this._value)||(z.clone(e,this._value),this._gl.uniform2i(this._location,e.x,e.y))};function Ree(e,t,n,i){this.name=n,this.value=void 0,this._value=new h,this._gl=e,this._location=i}Ree.prototype.set=function(){let e=this.value;h.equals(e,this._value)||(h.clone(e,this._value),this._gl.uniform3i(this._location,e.x,e.y,e.z))};function Oee(e,t,n,i){this.name=n,this.value=void 0,this._value=new oe,this._gl=e,this._location=i}Oee.prototype.set=function(){let e=this.value;oe.equals(e,this._value)||(oe.clone(e,this._value),this._gl.uniform4i(this._location,e.x,e.y,e.z,e.w))};var wPe=new Float32Array(4);function Mee(e,t,n,i){this.name=n,this.value=void 0,this._value=new Qi,this._gl=e,this._location=i}Mee.prototype.set=function(){if(!Qi.equalsArray(this.value,this._value,0)){Qi.clone(this.value,this._value);let e=Qi.toArray(this.value,wPe);this._gl.uniformMatrix2fv(this._location,!1,e)}};var DPe=new Float32Array(9);function Lee(e,t,n,i){this.name=n,this.value=void 0,this._value=new $,this._gl=e,this._location=i}Lee.prototype.set=function(){if(!$.equalsArray(this.value,this._value,0)){$.clone(this.value,this._value);let e=$.toArray(this.value,DPe);this._gl.uniformMatrix3fv(this._location,!1,e)}};var PPe=new Float32Array(16);function Nee(e,t,n,i){this.name=n,this.value=void 0,this._value=new F,this._gl=e,this._location=i}Nee.prototype.set=function(){if(!F.equalsArray(this.value,this._value,0)){F.clone(this.value,this._value);let e=F.toArray(this.value,PPe);this._gl.uniformMatrix4fv(this._location,!1,e)}};var zw=vPe;function IPe(e,t,n,i){switch(t.type){case e.FLOAT:return new Fee(e,t,n,i);case e.FLOAT_VEC2:return new Bee(e,t,n,i);case e.FLOAT_VEC3:return new kee(e,t,n,i);case e.FLOAT_VEC4:return new Vee(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new o6(e,t,n,i);case e.INT:case e.BOOL:return new Uee(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new zee(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new Hee(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new Gee(e,t,n,i);case e.FLOAT_MAT2:return new Wee(e,t,n,i);case e.FLOAT_MAT3:return new jee(e,t,n,i);case e.FLOAT_MAT4:return new qee(e,t,n,i);default:throw new le(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function Fee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o),this._gl=e,this._location=i[0]}Fee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1;for(let o=0;o<t;++o){let r=e[o];r!==n[o]&&(n[o]=r,i=!0)}i&&this._gl.uniform1fv(this._location,n)};function Bee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*2),this._gl=e,this._location=i[0]}Bee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];z.equalsArray(s,n,o)||(z.pack(s,n,o),i=!0),o+=2}i&&this._gl.uniform2fv(this._location,n)};function kee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*3),this._gl=e,this._location=i[0]}kee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];l(s.red)?(s.red!==n[o]||s.green!==n[o+1]||s.blue!==n[o+2])&&(n[o]=s.red,n[o+1]=s.green,n[o+2]=s.blue,i=!0):l(s.x)&&(h.equalsArray(s,n,o)||(h.pack(s,n,o),i=!0)),o+=3}i&&this._gl.uniform3fv(this._location,n)};function Vee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*4),this._gl=e,this._location=i[0]}Vee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];l(s.red)?H.equalsArray(s,n,o)||(H.pack(s,n,o),i=!0):l(s.x)&&(oe.equalsArray(s,n,o)||(oe.pack(s,n,o),i=!0)),o+=4}i&&this._gl.uniform4fv(this._location,n)};function o6(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o),this._gl=e,this._locations=i,this.textureUnitIndex=void 0}o6.prototype.set=function(){let e=this._gl,t=e.TEXTURE0+this.textureUnitIndex,n=this.value,i=n.length;for(let o=0;o<i;++o){let r=n[o];e.activeTexture(t+o),e.bindTexture(r._target,r._texture)}};o6.prototype._setSampler=function(e){this.textureUnitIndex=e;let t=this._locations,n=t.length;for(let i=0;i<n;++i){let o=e+i;this._gl.uniform1i(t[i],o)}return e+n};function Uee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o),this._gl=e,this._location=i[0]}Uee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1;for(let o=0;o<t;++o){let r=e[o];r!==n[o]&&(n[o]=r,i=!0)}i&&this._gl.uniform1iv(this._location,n)};function zee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*2),this._gl=e,this._location=i[0]}zee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];z.equalsArray(s,n,o)||(z.pack(s,n,o),i=!0),o+=2}i&&this._gl.uniform2iv(this._location,n)};function Hee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*3),this._gl=e,this._location=i[0]}Hee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];h.equalsArray(s,n,o)||(h.pack(s,n,o),i=!0),o+=3}i&&this._gl.uniform3iv(this._location,n)};function Gee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*4),this._gl=e,this._location=i[0]}Gee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];oe.equalsArray(s,n,o)||(oe.pack(s,n,o),i=!0),o+=4}i&&this._gl.uniform4iv(this._location,n)};function Wee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*4),this._gl=e,this._location=i[0]}Wee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];Qi.equalsArray(s,n,o)||(Qi.pack(s,n,o),i=!0),o+=4}i&&this._gl.uniformMatrix2fv(this._location,!1,n)};function jee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*9),this._gl=e,this._location=i[0]}jee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];$.equalsArray(s,n,o)||($.pack(s,n,o),i=!0),o+=9}i&&this._gl.uniformMatrix3fv(this._location,!1,n)};function qee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*16),this._gl=e,this._location=i[0]}qee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];F.equalsArray(s,n,o)||(F.pack(s,n,o),i=!0),o+=16}i&&this._gl.uniformMatrix4fv(this._location,!1,n)};var Hw=IPe;var RPe=0;function bp(e){let t=e.vertexShaderText,n=e.fragmentShaderText;typeof spector<"u"&&(t=t.replace(/^#line/gm,"//#line"),n=n.replace(/^#line/gm,"//#line"));let i=OPe(t,n);this._gl=e.gl,this._logShaderCompilation=e.logShaderCompilation,this._debugShaders=e.debugShaders,this._attributeLocations=e.attributeLocations,this._program=void 0,this._numberOfVertexAttributes=void 0,this._vertexAttributes=void 0,this._uniformsByName=void 0,this._uniforms=void 0,this._automaticUniforms=void 0,this._manualUniforms=void 0,this._duplicateUniformNames=i.duplicateUniformNames,this._cachedShader=void 0,this.maximumTextureUnitIndex=void 0,this._vertexShaderSource=e.vertexShaderSource,this._vertexShaderText=e.vertexShaderText,this._fragmentShaderSource=e.fragmentShaderSource,this._fragmentShaderText=i.fragmentShaderText,this.id=RPe++}bp.fromCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.getShaderProgram(e)};bp.replaceCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.replaceShaderProgram(e)};Object.defineProperties(bp.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},vertexAttributes:{get:function(){return xV(this),this._vertexAttributes}},numberOfVertexAttributes:{get:function(){return xV(this),this._numberOfVertexAttributes}},allUniforms:{get:function(){return xV(this),this._uniformsByName}}});function Yee(e){let t=[],n=e.match(/uniform.*?(?![^{]*})(?=[=\[;])/g);if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o].trim(),s=r.slice(r.lastIndexOf(" ")+1);t.push(s)}}return t}function OPe(e,t){let n={};if(!Nt.highpFloatSupported||!Nt.highpIntSupported){let i,o,r,s,a=Yee(e),c=Yee(t),u=a.length,f=c.length;for(i=0;i<u;i++)for(o=0;o<f;o++)if(a[i]===c[o]){r=a[i],s=`czm_mediump_${r}`;let d=new RegExp(`${r}\\b`,"g");t=t.replace(d,s),n[s]=r}}return{fragmentShaderText:t,duplicateUniformNames:n}}var nm="[Cesium WebGL] ";function MPe(e,t){let n=t._vertexShaderText,i=t._fragmentShaderText,o=e.createShader(e.VERTEX_SHADER);e.shaderSource(o,n),e.compileShader(o);let r=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(r,i),e.compileShader(r);let s=e.createProgram();e.attachShader(s,o),e.attachShader(s,r);let a=t._attributeLocations;if(l(a))for(let p in a)a.hasOwnProperty(p)&&e.bindAttribLocation(s,a[p],p);e.linkProgram(s);let c;if(e.getProgramParameter(s,e.LINK_STATUS))return t._logShaderCompilation&&(c=e.getShaderInfoLog(o),l(c)&&c.length>0&&console.log(`${nm}Vertex shader compile log: ${c}`),c=e.getShaderInfoLog(r),l(c)&&c.length>0&&console.log(`${nm}Fragment shader compile log: ${c}`),c=e.getProgramInfoLog(s),l(c)&&c.length>0&&console.log(`${nm}Shader program link log: ${c}`)),e.deleteShader(o),e.deleteShader(r),s;let u,f=t._debugShaders;throw e.getShaderParameter(r,e.COMPILE_STATUS)?e.getShaderParameter(o,e.COMPILE_STATUS)?(c=e.getProgramInfoLog(s),console.error(`${nm}Shader program link log: ${c}`),d(o,"vertex"),d(r,"fragment"),u=`Program failed to link. Link log: ${c}`):(c=e.getShaderInfoLog(o),console.error(`${nm}Vertex shader compile log: ${c}`),console.error(`${nm} Vertex shader source: ${n}`),u=`Vertex shader failed to compile. Compile log: ${c}`):(c=e.getShaderInfoLog(r),console.error(`${nm}Fragment shader compile log: ${c}`),console.error(`${nm} Fragment shader source: ${i}`),u=`Fragment shader failed to compile. Compile log: ${c}`),e.deleteShader(o),e.deleteShader(r),e.deleteProgram(s),new le(u);function d(p,g){if(!l(f))return;let m=f.getTranslatedShaderSource(p);if(m===""){console.error(`${nm}${g} shader translation failed.`);return}console.error(`${nm}Translated ${g} shaderSource: ${m}`)}}function LPe(e,t,n){let i={};for(let o=0;o<n;++o){let r=e.getActiveAttrib(t,o),s=e.getAttribLocation(t,r.name);i[r.name]={name:r.name,type:r.type,index:s}}return i}function NPe(e,t){let n={},i=[],o=[],r=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(let s=0;s<r;++s){let a=e.getActiveUniform(t,s),c="[0]",u=a.name.indexOf(c,a.name.length-c.length)!==-1?a.name.slice(0,a.name.length-3):a.name;if(u.indexOf("gl_")!==0)if(a.name.indexOf("[")<0){let f=e.getUniformLocation(t,u);if(f!==null){let d=zw(e,a,u,f);n[u]=d,i.push(d),d._setSampler&&o.push(d)}}else{let f,d,p,g,m=u.indexOf("[");if(m>=0){if(f=n[u.slice(0,m)],!l(f))continue;d=f._locations,d.length<=1&&(p=f.value,g=e.getUniformLocation(t,u),g!==null&&(d.push(g),p.push(e.getUniform(t,g))))}else{d=[];for(let x=0;x<a.size;++x)g=e.getUniformLocation(t,`${u}[${x}]`),g!==null&&d.push(g);f=Hw(e,a,u,d),n[u]=f,i.push(f),f._setSampler&&o.push(f)}}}return{uniformsByName:n,uniforms:i,samplerUniforms:o}}function FPe(e,t){let n=[],i=[];for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=o,a=e._duplicateUniformNames[s];l(a)&&(r.name=a,s=a);let c=xp[s];l(c)?n.push({uniform:r,automaticUniform:c}):i.push(r)}return{automaticUniforms:n,manualUniforms:i}}function BPe(e,t,n){e.useProgram(t);let i=0,o=n.length;for(let r=0;r<o;++r)i=n[r]._setSampler(i);return e.useProgram(null),i}function xV(e){l(e._program)||Xee(e)}function Xee(e){let t=e._program,n=e._gl,i=MPe(n,e,e._debugShaders),o=n.getProgramParameter(i,n.ACTIVE_ATTRIBUTES),r=NPe(n,i),s=FPe(e,r.uniformsByName);e._program=i,e._numberOfVertexAttributes=o,e._vertexAttributes=LPe(n,i,o),e._uniformsByName=r.uniformsByName,e._uniforms=r.uniforms,e._automaticUniforms=s.automaticUniforms,e._manualUniforms=s.manualUniforms,e.maximumTextureUnitIndex=BPe(n,i,r.samplerUniforms),t&&e._gl.deleteProgram(t),typeof spector<"u"&&(e._program.__SPECTOR_rebuildProgram=function(a,c,u,f){let d=e._vertexShaderText,p=e._fragmentShaderText,g=/ ! = /g;e._vertexShaderText=a.replace(g," != "),e._fragmentShaderText=c.replace(g," != ");try{Xee(e),u(e._program)}catch(m){e._vertexShaderText=d,e._fragmentShaderText=p;let b=/(?:Compile|Link) error: ([^]*)/.exec(m.message);f(b?b[1]:m.message)}})}bp.prototype._bind=function(){xV(this),this._gl.useProgram(this._program)};bp.prototype._setUniforms=function(e,t,n){let i,o;if(l(e)){let a=this._manualUniforms;for(i=a.length,o=0;o<i;++o){let c=a[o];c.value=e[c.name]()}}let r=this._automaticUniforms;for(i=r.length,o=0;o<i;++o){let a=r[o];a.uniform.value=a.automaticUniform.getValue(t)}let s=this._uniforms;for(i=s.length,o=0;o<i;++o)s[o].set();if(n){let a=this._gl,c=this._program;a.validateProgram(c)}};bp.prototype.isDestroyed=function(){return!1};bp.prototype.destroy=function(){this._cachedShader.cache.releaseShaderProgram(this)};bp.prototype.finalDestroy=function(){return this._gl.deleteProgram(this._program),ue(this)};var $t=bp;var Gw=`/** * A built-in GLSL floating-point constant for converting radians to degrees. * * @alias czm_degreesPerRadian * @glslConstant * * @see CesiumMath.DEGREES_PER_RADIAN * * @example * // GLSL declaration * const float czm_degreesPerRadian = ...; * * // Example * float deg = czm_degreesPerRadian * rad; */ const float czm_degreesPerRadian = 57.29577951308232; `;var Ww=`/** * A built-in GLSL vec2 constant for defining the depth range. * This is a workaround to a bug where IE11 does not implement gl_DepthRange. * * @alias czm_depthRange * @glslConstant * * @example * // GLSL declaration * float depthRangeNear = czm_depthRange.near; * float depthRangeFar = czm_depthRange.far; * */ const czm_depthRangeStruct czm_depthRange = czm_depthRangeStruct(0.0, 1.0); `;var jw=`/** * 0.1 * * @name czm_epsilon1 * @glslConstant */ const float czm_epsilon1 = 0.1; `;var qw=`/** * 0.01 * * @name czm_epsilon2 * @glslConstant */ const float czm_epsilon2 = 0.01; `;var Yw=`/** * 0.001 * * @name czm_epsilon3 * @glslConstant */ const float czm_epsilon3 = 0.001; `;var Xw=`/** * 0.0001 * * @name czm_epsilon4 * @glslConstant */ const float czm_epsilon4 = 0.0001; `;var Kw=`/** * 0.00001 * * @name czm_epsilon5 * @glslConstant */ const float czm_epsilon5 = 0.00001; `;var Zw=`/** * 0.000001 * * @name czm_epsilon6 * @glslConstant */ const float czm_epsilon6 = 0.000001; `;var $w=`/** * 0.0000001 * * @name czm_epsilon7 * @glslConstant */ const float czm_epsilon7 = 0.0000001; `;var Qw=`/** * DOC_TBA * * @name czm_infinity * @glslConstant */ const float czm_infinity = 5906376272000.0; // Distance from the Sun to Pluto in meters. TODO: What is best given lowp, mediump, and highp? `;var Jw=`/** * A built-in GLSL floating-point constant for <code>1/pi</code>. * * @alias czm_oneOverPi * @glslConstant * * @see CesiumMath.ONE_OVER_PI * * @example * // GLSL declaration * const float czm_oneOverPi = ...; * * // Example * float pi = 1.0 / czm_oneOverPi; */ const float czm_oneOverPi = 0.3183098861837907; `;var eD=`/** * A built-in GLSL floating-point constant for <code>1/2pi</code>. * * @alias czm_oneOverTwoPi * @glslConstant * * @see CesiumMath.ONE_OVER_TWO_PI * * @example * // GLSL declaration * const float czm_oneOverTwoPi = ...; * * // Example * float pi = 2.0 * czm_oneOverTwoPi; */ const float czm_oneOverTwoPi = 0.15915494309189535; `;var tD=`/** * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE} * * @name czm_passCesium3DTile * @glslConstant * * @see czm_pass */ const float czm_passCesium3DTile = 4.0; `;var nD=`/** * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION} * * @name czm_passCesium3DTileClassification * @glslConstant * * @see czm_pass */ const float czm_passCesium3DTileClassification = 5.0; `;var iD=`/** * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW} * * @name czm_passCesium3DTileClassificationIgnoreShow * @glslConstant * * @see czm_pass */ const float czm_passCesium3DTileClassificationIgnoreShow = 6.0; `;var oD=`/** * The automatic GLSL constant for {@link Pass#CLASSIFICATION} * * @name czm_passClassification * @glslConstant * * @see czm_pass */ const float czm_passClassification = 7.0; `;var rD=`/** * The automatic GLSL constant for {@link Pass#COMPUTE} * * @name czm_passCompute * @glslConstant * * @see czm_pass */ const float czm_passCompute = 1.0; `;var sD=`/** * The automatic GLSL constant for {@link Pass#ENVIRONMENT} * * @name czm_passEnvironment * @glslConstant * * @see czm_pass */ const float czm_passEnvironment = 0.0; `;var aD=`/** * The automatic GLSL constant for {@link Pass#GLOBE} * * @name czm_passGlobe * @glslConstant * * @see czm_pass */ const float czm_passGlobe = 2.0; `;var cD=`/** * The automatic GLSL constant for {@link Pass#OPAQUE} * * @name czm_passOpaque * @glslConstant * * @see czm_pass */ const float czm_passOpaque = 7.0; `;var lD=`/** * The automatic GLSL constant for {@link Pass#OVERLAY} * * @name czm_passOverlay * @glslConstant * * @see czm_pass */ const float czm_passOverlay = 10.0; `;var uD=`/** * The automatic GLSL constant for {@link Pass#TERRAIN_CLASSIFICATION} * * @name czm_passTerrainClassification * @glslConstant * * @see czm_pass */ const float czm_passTerrainClassification = 3.0; `;var fD=`/** * The automatic GLSL constant for {@link Pass#TRANSLUCENT} * * @name czm_passTranslucent * @glslConstant * * @see czm_pass */ const float czm_passTranslucent = 8.0; `;var dD=`/** * The automatic GLSL constant for {@link Pass#VOXELS} * * @name czm_passVoxels * @glslConstant * * @see czm_pass */ const float czm_passVoxels = 9.0; `;var hD=`/** * A built-in GLSL floating-point constant for <code>Math.PI</code>. * * @alias czm_pi * @glslConstant * * @see CesiumMath.PI * * @example * // GLSL declaration * const float czm_pi = ...; * * // Example * float twoPi = 2.0 * czm_pi; */ const float czm_pi = 3.141592653589793; `;var mD=`/** * A built-in GLSL floating-point constant for <code>pi/4</code>. * * @alias czm_piOverFour * @glslConstant * * @see CesiumMath.PI_OVER_FOUR * * @example * // GLSL declaration * const float czm_piOverFour = ...; * * // Example * float pi = 4.0 * czm_piOverFour; */ const float czm_piOverFour = 0.7853981633974483; `;var pD=`/** * A built-in GLSL floating-point constant for <code>pi/6</code>. * * @alias czm_piOverSix * @glslConstant * * @see CesiumMath.PI_OVER_SIX * * @example * // GLSL declaration * const float czm_piOverSix = ...; * * // Example * float pi = 6.0 * czm_piOverSix; */ const float czm_piOverSix = 0.5235987755982988; `;var _D=`/** * A built-in GLSL floating-point constant for <code>pi/3</code>. * * @alias czm_piOverThree * @glslConstant * * @see CesiumMath.PI_OVER_THREE * * @example * // GLSL declaration * const float czm_piOverThree = ...; * * // Example * float pi = 3.0 * czm_piOverThree; */ const float czm_piOverThree = 1.0471975511965976; `;var gD=`/** * A built-in GLSL floating-point constant for <code>pi/2</code>. * * @alias czm_piOverTwo * @glslConstant * * @see CesiumMath.PI_OVER_TWO * * @example * // GLSL declaration * const float czm_piOverTwo = ...; * * // Example * float pi = 2.0 * czm_piOverTwo; */ const float czm_piOverTwo = 1.5707963267948966; `;var yD=`/** * A built-in GLSL floating-point constant for converting degrees to radians. * * @alias czm_radiansPerDegree * @glslConstant * * @see CesiumMath.RADIANS_PER_DEGREE * * @example * // GLSL declaration * const float czm_radiansPerDegree = ...; * * // Example * float rad = czm_radiansPerDegree * deg; */ const float czm_radiansPerDegree = 0.017453292519943295; `;var xD=`/** * The constant identifier for the 2D {@link SceneMode} * * @name czm_sceneMode2D * @glslConstant * @see czm_sceneMode * @see czm_sceneModeColumbusView * @see czm_sceneMode3D * @see czm_sceneModeMorphing */ const float czm_sceneMode2D = 2.0; `;var bD=`/** * The constant identifier for the 3D {@link SceneMode} * * @name czm_sceneMode3D * @glslConstant * @see czm_sceneMode * @see czm_sceneMode2D * @see czm_sceneModeColumbusView * @see czm_sceneModeMorphing */ const float czm_sceneMode3D = 3.0; `;var TD=`/** * The constant identifier for the Columbus View {@link SceneMode} * * @name czm_sceneModeColumbusView * @glslConstant * @see czm_sceneMode * @see czm_sceneMode2D * @see czm_sceneMode3D * @see czm_sceneModeMorphing */ const float czm_sceneModeColumbusView = 1.0; `;var AD=`/** * The constant identifier for the Morphing {@link SceneMode} * * @name czm_sceneModeMorphing * @glslConstant * @see czm_sceneMode * @see czm_sceneMode2D * @see czm_sceneModeColumbusView * @see czm_sceneMode3D */ const float czm_sceneModeMorphing = 0.0; `;var CD=`/** * A built-in GLSL floating-point constant for one solar radius. * * @alias czm_solarRadius * @glslConstant * * @see CesiumMath.SOLAR_RADIUS * * @example * // GLSL declaration * const float czm_solarRadius = ...; */ const float czm_solarRadius = 695500000.0; `;var ED=`/** * A built-in GLSL floating-point constant for <code>3pi/2</code>. * * @alias czm_threePiOver2 * @glslConstant * * @see CesiumMath.THREE_PI_OVER_TWO * * @example * // GLSL declaration * const float czm_threePiOver2 = ...; * * // Example * float pi = (2.0 / 3.0) * czm_threePiOver2; */ const float czm_threePiOver2 = 4.71238898038469; `;var SD=`/** * A built-in GLSL floating-point constant for <code>2pi</code>. * * @alias czm_twoPi * @glslConstant * * @see CesiumMath.TWO_PI * * @example * // GLSL declaration * const float czm_twoPi = ...; * * // Example * float pi = czm_twoPi / 2.0; */ const float czm_twoPi = 6.283185307179586; `;var vD=`/** * The maximum latitude, in radians, both North and South, supported by a Web Mercator * (EPSG:3857) projection. Technically, the Mercator projection is defined * for any latitude up to (but not including) 90 degrees, but it makes sense * to cut it off sooner because it grows exponentially with increasing latitude. * The logic behind this particular cutoff value, which is the one used by * Google Maps, Bing Maps, and Esri, is that it makes the projection * square. That is, the rectangle is equal in the X and Y directions. * * The constant value is computed as follows: * czm_pi * 0.5 - (2.0 * atan(exp(-czm_pi))) * * @name czm_webMercatorMaxLatitude * @glslConstant */ const float czm_webMercatorMaxLatitude = 1.4844222297453324; `;var wD=`/** * @name czm_depthRangeStruct * @glslStruct */ struct czm_depthRangeStruct { float near; float far; }; `;var DD=`/** * Holds material information that can be used for lighting. Returned by all czm_getMaterial functions. * * @name czm_material * @glslStruct * * @property {vec3} diffuse Incoming light that scatters evenly in all directions. * @property {float} specular Intensity of incoming light reflecting in a single direction. * @property {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. * @property {vec3} normal Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. * @property {vec3} emission Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. */ struct czm_material { vec3 diffuse; float specular; float shininess; vec3 normal; vec3 emission; float alpha; }; `;var PD=`/** * Used as input to every material's czm_getMaterial function. * * @name czm_materialInput * @glslStruct * * @property {float} s 1D texture coordinates. * @property {vec2} st 2D texture coordinates. * @property {vec3} str 3D texture coordinates. * @property {vec3} normalEC Unperturbed surface normal in eye coordinates. * @property {mat3} tangentToEyeMatrix Matrix for converting a tangent space normal to eye space. * @property {vec3} positionToEyeEC Vector from the fragment to the eye in eye coordinates. The magnitude is the distance in meters from the fragment to the eye. * @property {float} height The height of the terrain in meters above or below the WGS84 ellipsoid. Only available for globe materials. * @property {float} slope The slope of the terrain in radians. 0 is flat; pi/2 is vertical. Only available for globe materials. * @property {float} aspect The aspect of the terrain in radians. 0 is East, pi/2 is North, pi is West, 3pi/2 is South. Only available for globe materials. */ struct czm_materialInput { float s; vec2 st; vec3 str; vec3 normalEC; mat3 tangentToEyeMatrix; vec3 positionToEyeEC; float height; float slope; float aspect; }; `;var ID=`/** * Struct for representing a material for a {@link Model}. The model * rendering pipeline will pass this struct between material, custom shaders, * and lighting stages. This is not to be confused with {@link czm_material} * which is used by the older Fabric materials system, although they are similar. * <p> * All color values (diffuse, specular, emissive) are in linear color space. * </p> * * @name czm_modelMaterial * @glslStruct * * @property {vec3} diffuse Incoming light that scatters evenly in all directions. * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. * @property {vec3} specular Color of reflected light at normal incidence in PBR materials. This is sometimes referred to as f0 in the literature. * @property {float} roughness A number from 0.0 to 1.0 representing how rough the surface is. Values near 0.0 produce glossy surfaces, while values near 1.0 produce rough surfaces. * @property {vec3} normalEC Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. * @property {float} occlusion Ambient occlusion recieved at this point on the material. 1.0 means fully lit, 0.0 means fully occluded. * @property {vec3} emissive Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. */ struct czm_modelMaterial { vec3 diffuse; float alpha; vec3 specular; float roughness; vec3 normalEC; float occlusion; vec3 emissive; #ifdef USE_SPECULAR float specularWeight; #endif #ifdef USE_ANISOTROPY vec3 anisotropicT; vec3 anisotropicB; float anisotropyStrength; #endif #ifdef USE_CLEARCOAT float clearcoatFactor; float clearcoatRoughness; vec3 clearcoatNormal; // Add clearcoatF0 when KHR_materials_ior is implemented #endif }; `;var RD=`/** * Struct for representing the output of a custom vertex shader. * * @name czm_modelVertexOutput * @glslStruct * * @see {@link CustomShader} * @see {@link Model} * * @property {vec3} positionMC The position of the vertex in model coordinates * @property {float} pointSize A custom value for gl_PointSize. This is only used for point primitives. */ struct czm_modelVertexOutput { vec3 positionMC; float pointSize; }; `;var OD=`/** * DOC_TBA * * @name czm_ray * @glslStruct */ struct czm_ray { vec3 origin; vec3 direction; }; `;var MD=`/** * DOC_TBA * * @name czm_raySegment * @glslStruct */ struct czm_raySegment { float start; float stop; }; /** * DOC_TBA * * @name czm_emptyRaySegment * @glslConstant */ const czm_raySegment czm_emptyRaySegment = czm_raySegment(-czm_infinity, -czm_infinity); /** * DOC_TBA * * @name czm_fullRaySegment * @glslConstant */ const czm_raySegment czm_fullRaySegment = czm_raySegment(0.0, czm_infinity); `;var LD=`struct czm_shadowParameters { #ifdef USE_CUBE_MAP_SHADOW vec3 texCoords; #else vec2 texCoords; #endif float depthBias; float depth; float nDotL; vec2 texelStepSize; float normalShadingSmooth; float darkness; }; `;var ND=`/** * Converts an HSB color (hue, saturation, brightness) to RGB * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} * * @name czm_HSBToRGB * @glslFunction * * @param {vec3} hsb The color in HSB. * * @returns {vec3} The color in RGB. * * @example * vec3 hsb = czm_RGBToHSB(rgb); * hsb.z *= 0.1; * rgb = czm_HSBToRGB(hsb); */ const vec4 K_HSB2RGB = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); vec3 czm_HSBToRGB(vec3 hsb) { vec3 p = abs(fract(hsb.xxx + K_HSB2RGB.xyz) * 6.0 - K_HSB2RGB.www); return hsb.z * mix(K_HSB2RGB.xxx, clamp(p - K_HSB2RGB.xxx, 0.0, 1.0), hsb.y); } `;var FD=`/** * Converts an HSL color (hue, saturation, lightness) to RGB * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} * * @name czm_HSLToRGB * @glslFunction * * @param {vec3} rgb The color in HSL. * * @returns {vec3} The color in RGB. * * @example * vec3 hsl = czm_RGBToHSL(rgb); * hsl.z *= 0.1; * rgb = czm_HSLToRGB(hsl); */ vec3 hueToRGB(float hue) { float r = abs(hue * 6.0 - 3.0) - 1.0; float g = 2.0 - abs(hue * 6.0 - 2.0); float b = 2.0 - abs(hue * 6.0 - 4.0); return clamp(vec3(r, g, b), 0.0, 1.0); } vec3 czm_HSLToRGB(vec3 hsl) { vec3 rgb = hueToRGB(hsl.x); float c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y; return (rgb - 0.5) * c + hsl.z; } `;var BD=`/** * Converts an RGB color to HSB (hue, saturation, brightness) * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} * * @name czm_RGBToHSB * @glslFunction * * @param {vec3} rgb The color in RGB. * * @returns {vec3} The color in HSB. * * @example * vec3 hsb = czm_RGBToHSB(rgb); * hsb.z *= 0.1; * rgb = czm_HSBToRGB(hsb); */ const vec4 K_RGB2HSB = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); vec3 czm_RGBToHSB(vec3 rgb) { vec4 p = mix(vec4(rgb.bg, K_RGB2HSB.wz), vec4(rgb.gb, K_RGB2HSB.xy), step(rgb.b, rgb.g)); vec4 q = mix(vec4(p.xyw, rgb.r), vec4(rgb.r, p.yzx), step(p.x, rgb.r)); float d = q.x - min(q.w, q.y); return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + czm_epsilon7)), d / (q.x + czm_epsilon7), q.x); } `;var kD=`/** * Converts an RGB color to HSL (hue, saturation, lightness) * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} * * @name czm_RGBToHSL * @glslFunction * * @param {vec3} rgb The color in RGB. * * @returns {vec3} The color in HSL. * * @example * vec3 hsl = czm_RGBToHSL(rgb); * hsl.z *= 0.1; * rgb = czm_HSLToRGB(hsl); */ vec3 RGBtoHCV(vec3 rgb) { // Based on work by Sam Hocevar and Emil Persson vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0 / 3.0) : vec4(rgb.gb, 0.0, -1.0 / 3.0); vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx); float c = q.x - min(q.w, q.y); float h = abs((q.w - q.y) / (6.0 * c + czm_epsilon7) + q.z); return vec3(h, c, q.x); } vec3 czm_RGBToHSL(vec3 rgb) { vec3 hcv = RGBtoHCV(rgb); float l = hcv.z - hcv.y * 0.5; float s = hcv.y / (1.0 - abs(l * 2.0 - 1.0) + czm_epsilon7); return vec3(hcv.x, s, l); } `;var VD=`/** * Converts an RGB color to CIE Yxy. * <p>The conversion is described in * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} * </p> * * @name czm_RGBToXYZ * @glslFunction * * @param {vec3} rgb The color in RGB. * * @returns {vec3} The color in CIE Yxy. * * @example * vec3 xyz = czm_RGBToXYZ(rgb); * xyz.x = max(xyz.x - luminanceThreshold, 0.0); * rgb = czm_XYZToRGB(xyz); */ vec3 czm_RGBToXYZ(vec3 rgb) { const mat3 RGB2XYZ = mat3(0.4124, 0.2126, 0.0193, 0.3576, 0.7152, 0.1192, 0.1805, 0.0722, 0.9505); vec3 xyz = RGB2XYZ * rgb; vec3 Yxy; Yxy.r = xyz.g; float temp = dot(vec3(1.0), xyz); Yxy.gb = xyz.rg / temp; return Yxy; } `;var UD=`/** * Converts a CIE Yxy color to RGB. * <p>The conversion is described in * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} * </p> * * @name czm_XYZToRGB * @glslFunction * * @param {vec3} Yxy The color in CIE Yxy. * * @returns {vec3} The color in RGB. * * @example * vec3 xyz = czm_RGBToXYZ(rgb); * xyz.x = max(xyz.x - luminanceThreshold, 0.0); * rgb = czm_XYZToRGB(xyz); */ vec3 czm_XYZToRGB(vec3 Yxy) { const mat3 XYZ2RGB = mat3( 3.2405, -0.9693, 0.0556, -1.5371, 1.8760, -0.2040, -0.4985, 0.0416, 1.0572); vec3 xyz; xyz.r = Yxy.r * Yxy.g / Yxy.b; xyz.g = Yxy.r; xyz.b = Yxy.r * (1.0 - Yxy.g - Yxy.b) / Yxy.b; return XYZ2RGB * xyz; } `;var zD=`// See: // https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/ vec3 czm_acesTonemapping(vec3 color) { float g = 0.985; float a = 0.065; float b = 0.0001; float c = 0.433; float d = 0.238; color = (color * (color + a) - b) / (color * (g * color + c) + d); color = clamp(color, 0.0, 1.0); return color; } `;var HD=`/** * @private */ float czm_alphaWeight(float a) { float z = (gl_FragCoord.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; // See Weighted Blended Order-Independent Transparency for examples of different weighting functions: // http://jcgt.org/published/0002/02/09/ return pow(a + 0.01, 4.0) + max(1e-2, min(3.0 * 1e3, 0.003 / (1e-5 + pow(abs(z) / 200.0, 4.0)))); } `;var GD=`/** * Procedural anti-aliasing by blurring two colors that meet at a sharp edge. * * @name czm_antialias * @glslFunction * * @param {vec4} color1 The color on one side of the edge. * @param {vec4} color2 The color on the other side of the edge. * @param {vec4} currentcolor The current color, either <code>color1</code> or <code>color2</code>. * @param {float} dist The distance to the edge in texture coordinates. * @param {float} [fuzzFactor=0.1] Controls the blurriness between the two colors. * @returns {vec4} The anti-aliased color. * * @example * // GLSL declarations * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor); * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist); * * // get the color for a material that has a sharp edge at the line y = 0.5 in texture space * float dist = abs(textureCoordinates.t - 0.5); * vec4 currentColor = mix(bottomColor, topColor, step(0.5, textureCoordinates.t)); * vec4 color = czm_antialias(bottomColor, topColor, currentColor, dist, 0.1); */ vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor) { float val1 = clamp(dist / fuzzFactor, 0.0, 1.0); float val2 = clamp((dist - 0.5) / fuzzFactor, 0.0, 1.0); val1 = val1 * (1.0 - val2); val1 = val1 * val1 * (3.0 - (2.0 * val1)); val1 = pow(val1, 0.5); //makes the transition nicer vec4 midColor = (color1 + color2) * 0.5; return mix(midColor, currentColor, val1); } vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist) { return czm_antialias(color1, color2, currentColor, dist, 0.1); } `;var WD=`/** * Apply a HSB color shift to an RGB color. * * @param {vec3} rgb The color in RGB space. * @param {vec3} hsbShift The amount to shift each component. The xyz components correspond to hue, saturation, and brightness. Shifting the hue by +/- 1.0 corresponds to shifting the hue by a full cycle. Saturation and brightness are clamped between 0 and 1 after the adjustment * @param {bool} ignoreBlackPixels If true, black pixels will be unchanged. This is necessary in some shaders such as atmosphere-related effects. * * @return {vec3} The RGB color after shifting in HSB space and clamping saturation and brightness to a valid range. */ vec3 czm_applyHSBShift(vec3 rgb, vec3 hsbShift, bool ignoreBlackPixels) { // Convert rgb color to hsb vec3 hsb = czm_RGBToHSB(rgb); // Perform hsb shift // Hue cycles around so no clamp is needed. hsb.x += hsbShift.x; // hue hsb.y = clamp(hsb.y + hsbShift.y, 0.0, 1.0); // saturation // brightness // // Some shaders such as atmosphere-related effects need to leave black // pixels unchanged if (ignoreBlackPixels) { hsb.z = hsb.z > czm_epsilon7 ? hsb.z + hsbShift.z : 0.0; } else { hsb.z = hsb.z + hsbShift.z; } hsb.z = clamp(hsb.z, 0.0, 1.0); // Convert shifted hsb back to rgb return czm_HSBToRGB(hsb); } `;var jD=`/** * Approximately computes spherical coordinates given a normal. * Uses approximate inverse trigonometry for speed and consistency, * since inverse trigonometry can differ from vendor-to-vendor and when compared with the CPU. * * @name czm_approximateSphericalCoordinates * @glslFunction * * @param {vec3} normal arbitrary-length normal. * * @returns {vec2} Approximate latitude and longitude spherical coordinates. */ vec2 czm_approximateSphericalCoordinates(vec3 normal) { // Project into plane with vertical for latitude float latitudeApproximation = czm_fastApproximateAtan(sqrt(normal.x * normal.x + normal.y * normal.y), normal.z); float longitudeApproximation = czm_fastApproximateAtan(normal.x, normal.y); return vec2(latitudeApproximation, longitudeApproximation); } `;var qD=`/** * Compute a rational approximation to tanh(x) * * @param {float} x A real number input * @returns {float} An approximation for tanh(x) */ float czm_approximateTanh(float x) { float x2 = x * x; return max(-1.0, min(1.0, x * (27.0 + x2) / (27.0 + 9.0 * x2))); } `;var YD=`/** * Determines if the fragment is back facing * * @name czm_backFacing * @glslFunction * * @returns {bool} <code>true</code> if the fragment is back facing; otherwise, <code>false</code>. */ bool czm_backFacing() { // !gl_FrontFacing doesn't work as expected on Mac/Intel so use the more verbose form instead. See https://github.com/CesiumGS/cesium/pull/8494. return gl_FrontFacing == false; } `;var XD=`/** * Branchless ternary operator to be used when it's inexpensive to explicitly * evaluate both possibilities for a float expression. * * @name czm_branchFreeTernary * @glslFunction * * @param {bool} comparison A comparison statement * @param {float} a Value to return if the comparison is true. * @param {float} b Value to return if the comparison is false. * * @returns {float} equivalent of comparison ? a : b */ float czm_branchFreeTernary(bool comparison, float a, float b) { float useA = float(comparison); return a * useA + b * (1.0 - useA); } /** * Branchless ternary operator to be used when it's inexpensive to explicitly * evaluate both possibilities for a vec2 expression. * * @name czm_branchFreeTernary * @glslFunction * * @param {bool} comparison A comparison statement * @param {vec2} a Value to return if the comparison is true. * @param {vec2} b Value to return if the comparison is false. * * @returns {vec2} equivalent of comparison ? a : b */ vec2 czm_branchFreeTernary(bool comparison, vec2 a, vec2 b) { float useA = float(comparison); return a * useA + b * (1.0 - useA); } /** * Branchless ternary operator to be used when it's inexpensive to explicitly * evaluate both possibilities for a vec3 expression. * * @name czm_branchFreeTernary * @glslFunction * * @param {bool} comparison A comparison statement * @param {vec3} a Value to return if the comparison is true. * @param {vec3} b Value to return if the comparison is false. * * @returns {vec3} equivalent of comparison ? a : b */ vec3 czm_branchFreeTernary(bool comparison, vec3 a, vec3 b) { float useA = float(comparison); return a * useA + b * (1.0 - useA); } /** * Branchless ternary operator to be used when it's inexpensive to explicitly * evaluate both possibilities for a vec4 expression. * * @name czm_branchFreeTernary * @glslFunction * * @param {bool} comparison A comparison statement * @param {vec3} a Value to return if the comparison is true. * @param {vec3} b Value to return if the comparison is false. * * @returns {vec3} equivalent of comparison ? a : b */ vec4 czm_branchFreeTernary(bool comparison, vec4 a, vec4 b) { float useA = float(comparison); return a * useA + b * (1.0 - useA); } `;var KD=` vec4 czm_cascadeColor(vec4 weights) { return vec4(1.0, 0.0, 0.0, 1.0) * weights.x + vec4(0.0, 1.0, 0.0, 1.0) * weights.y + vec4(0.0, 0.0, 1.0, 1.0) * weights.z + vec4(1.0, 0.0, 1.0, 1.0) * weights.w; } `;var ZD=` uniform vec4 shadowMap_cascadeDistances; float czm_cascadeDistance(vec4 weights) { return dot(shadowMap_cascadeDistances, weights); } `;var $D=` uniform mat4 shadowMap_cascadeMatrices[4]; mat4 czm_cascadeMatrix(vec4 weights) { return shadowMap_cascadeMatrices[0] * weights.x + shadowMap_cascadeMatrices[1] * weights.y + shadowMap_cascadeMatrices[2] * weights.z + shadowMap_cascadeMatrices[3] * weights.w; } `;var QD=` uniform vec4 shadowMap_cascadeSplits[2]; vec4 czm_cascadeWeights(float depthEye) { // One component is set to 1.0 and all others set to 0.0. vec4 near = step(shadowMap_cascadeSplits[0], vec4(depthEye)); vec4 far = step(depthEye, shadowMap_cascadeSplits[1]); return near * far; } `;var JD=`float getSignedDistance(vec2 uv, highp sampler2D clippingDistance) { float signedDistance = texture(clippingDistance, uv).r; return (signedDistance - 0.5) * 2.0; } void czm_clipPolygons(highp sampler2D clippingDistance, int extentsLength, vec2 clippingPosition, int regionIndex) { // Position is completely outside of polygons bounds vec2 rectUv = clippingPosition; if (regionIndex < 0 || rectUv.x <= 0.0 || rectUv.y <= 0.0 || rectUv.x >= 1.0 || rectUv.y >= 1.0) { #ifdef CLIPPING_INVERSE discard; #endif return; } vec2 clippingDistanceTextureDimensions = vec2(textureSize(clippingDistance, 0)); vec2 sampleOffset = max(1.0 / clippingDistanceTextureDimensions, vec2(0.005)); float dimension = float(extentsLength); if (extentsLength > 2) { dimension = ceil(log2(float(extentsLength))); } vec2 textureOffset = vec2(mod(float(regionIndex), dimension), floor(float(regionIndex) / dimension)) / dimension; vec2 uv = textureOffset + rectUv / dimension; float signedDistance = getSignedDistance(uv, clippingDistance); #ifdef CLIPPING_INVERSE if (signedDistance > 0.0) { discard; } #else if (signedDistance < 0.0) { discard; } #endif } `;var eP=`/** * DOC_TBA * * @name czm_columbusViewMorph * @glslFunction */ vec4 czm_columbusViewMorph(vec4 position2D, vec4 position3D, float time) { // Just linear for now. vec3 p = mix(position2D.xyz, position3D.xyz, time); return vec4(p, 1.0); } `;var tP=`/** * Compute the atmosphere color, applying Rayleigh and Mie scattering. This * builtin uses automatic uniforms so the atmophere settings are synced with the * state of the Scene, even in other contexts like Model. * * @name czm_computeAtmosphereColor * @glslFunction * * @param {vec3} positionWC Position of the fragment in world coords (low precision) * @param {vec3} lightDirection Light direction from the sun or other light source. * @param {vec3} rayleighColor The Rayleigh scattering color computed by a scattering function * @param {vec3} mieColor The Mie scattering color computed by a scattering function * @param {float} opacity The opacity computed by a scattering function. */ vec4 czm_computeAtmosphereColor( vec3 positionWC, vec3 lightDirection, vec3 rayleighColor, vec3 mieColor, float opacity ) { // Setup the primary ray: from the camera position to the vertex position. vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); float cosAngle = dot(cameraToPositionWCDirection, lightDirection); float cosAngleSq = cosAngle * cosAngle; float G = czm_atmosphereMieAnisotropy; float GSq = G * G; // The Rayleigh phase function. float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); // The Mie phase function. float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); // The final color is generated by combining the effects of the Rayleigh and Mie scattering. vec3 rayleigh = rayleighPhase * rayleighColor; vec3 mie = miePhase * mieColor; vec3 color = (rayleigh + mie) * czm_atmosphereLightIntensity; return vec4(color, opacity); } `;var nP=`/** * Compute atmosphere scattering for the ground atmosphere and fog. This method * uses automatic uniforms so it is always synced with the scene settings. * * @name czm_computeGroundAtmosphereScattering * @glslfunction * * @param {vec3} positionWC The position of the fragment in world coordinates. * @param {vec3} lightDirection The direction of the light to calculate the scattering from. * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. * @param {vec3} mieColor The variable the Mie scattering will be written to. * @param {float} opacity The variable the transmittance will be written to. */ void czm_computeGroundAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) { vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); float atmosphereInnerRadius = length(positionWC); czm_computeScattering( primaryRay, length(cameraToPositionWC), lightDirection, atmosphereInnerRadius, rayleighColor, mieColor, opacity ); } `;var iP=`/** * Returns a position in model coordinates relative to eye taking into * account the current scene mode: 3D, 2D, or Columbus view. * <p> * This uses standard position attributes, <code>position3DHigh</code>, * <code>position3DLow</code>, <code>position2DHigh</code>, and <code>position2DLow</code>, * and should be used when writing a vertex shader for an {@link Appearance}. * </p> * * @name czm_computePosition * @glslFunction * * @returns {vec4} The position relative to eye. * * @example * vec4 p = czm_computePosition(); * v_positionEC = (czm_modelViewRelativeToEye * p).xyz; * gl_Position = czm_modelViewProjectionRelativeToEye * p; * * @see czm_translateRelativeToEye */ vec4 czm_computePosition(); `;var oP=`/** * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as * the transmittance value for the ray. This function uses automatic uniforms * so the atmosphere settings are always synced with the current scene. * * @name czm_computeScattering * @glslfunction * * @param {czm_ray} primaryRay The ray from the camera to the position. * @param {float} primaryRayLength The length of the primary ray. * @param {vec3} lightDirection The direction of the light to calculate the scattering from. * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. * @param {vec3} mieColor The variable the Mie scattering will be written to. * @param {float} opacity The variable the transmittance will be written to. */ void czm_computeScattering( czm_ray primaryRay, float primaryRayLength, vec3 lightDirection, float atmosphereInnerRadius, out vec3 rayleighColor, out vec3 mieColor, out float opacity ) { const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters. const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled. const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. // Initialize the default scattering amounts to 0. rayleighColor = vec3(0.0); mieColor = vec3(0.0); opacity = 0.0; float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; vec3 origin = vec3(0.0); // Calculate intersection from the camera to the outer ring of the atmosphere. czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius); // Return empty colors if no intersection with the atmosphere geometry. if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) { rayleighColor = vec3(1.0, 0.0, 1.0); return; } // To deal with smaller values of PRIMARY_STEPS (e.g. 4) // we implement a split strategy: sky or horizon. // For performance reasons, instead of a if/else branch // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0 float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength); // Value close to 0.0: close to the horizon // Value close to 1.0: above in the sky float w_stop_gt_lprl = 0.5 * (1.0 + czm_approximateTanh(x)); // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere. float start_0 = primaryRayAtmosphereIntersect.start; primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0); // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller. primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength)); // For the number of ray steps, distinguish inside or outside atmosphere (outer space) // (1) from outer space we have to use more ray steps to get a realistic rendering // (2) within atmosphere we need fewer steps for faster rendering float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + czm_approximateTanh(x_o_a)); int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled. int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere. float rayPositionLength = primaryRayAtmosphereIntersect.start; // (1) Outside the atmosphere: constant rayStepLength // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength; float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0)); float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS)); vec3 rayleighAccumulation = vec3(0.0); vec3 mieAccumulation = vec3(0.0); vec2 opticalDepth = vec2(0.0); vec2 heightScale = vec2(czm_atmosphereRayleighScaleHeight, czm_atmosphereMieScaleHeight); // Sample positions on the primary ray. for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) { // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot // loop with non-constant condition, so it has to break early instead if (i >= PRIMARY_STEPS) { break; } // Calculate sample position along viewpoint ray. vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); // Calculate height of sample position above ellipsoid. float sampleHeight = length(samplePosition) - atmosphereInnerRadius; // Calculate and accumulate density of particles at the sample position. vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; opticalDepth += sampleDensity; // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. czm_ray lightRay = czm_ray(samplePosition, lightDirection); czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); float lightPositionLength = 0.0; vec2 lightOpticalDepth = vec2(0.0); // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot // loop with non-constant condition, so it has to break early instead if (j >= LIGHT_STEPS) { break; } // Calculate sample position along light ray. vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); // Calculate height of the light sample position above ellipsoid. float lightHeight = length(lightPosition) - atmosphereInnerRadius; // Calculate density of photons at the light sample position. lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; // Increment distance on light ray. lightPositionLength += lightStepLength; } // Compute attenuation via the primary ray and the light ray. vec3 attenuation = exp(-((czm_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (czm_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); // Accumulate the scattering. rayleighAccumulation += sampleDensity.x * attenuation; mieAccumulation += sampleDensity.y * attenuation; // Increment distance on primary ray. rayPositionLength += (rayStepLength += rayStepLengthIncrease); } // Compute the scattering amount. rayleighColor = czm_atmosphereRayleighCoefficient * rayleighAccumulation; mieColor = czm_atmosphereMieCoefficient * mieAccumulation; // Compute the transmittance i.e. how much light is passing through the atmosphere. opacity = length(exp(-((czm_atmosphereMieCoefficient * opticalDepth.y) + (czm_atmosphereRayleighCoefficient * opticalDepth.x)))); } `;var rP=`/** * @private */ vec2 cordic(float angle) { // Scale the vector by the appropriate factor for the 24 iterations to follow. vec2 vector = vec2(6.0725293500888267e-1, 0.0); // Iteration 1 float sense = (angle < 0.0) ? -1.0 : 1.0; // float factor = sense * 1.0; // 2^-0 mat2 rotation = mat2(1.0, sense, -sense, 1.0); vector = rotation * vector; angle -= sense * 7.8539816339744828e-1; // atan(2^-0) // Iteration 2 sense = (angle < 0.0) ? -1.0 : 1.0; float factor = sense * 5.0e-1; // 2^-1 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 4.6364760900080609e-1; // atan(2^-1) // Iteration 3 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 2.5e-1; // 2^-2 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 2.4497866312686414e-1; // atan(2^-2) // Iteration 4 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 1.25e-1; // 2^-3 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 1.2435499454676144e-1; // atan(2^-3) // Iteration 5 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 6.25e-2; // 2^-4 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 6.2418809995957350e-2; // atan(2^-4) // Iteration 6 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 3.125e-2; // 2^-5 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 3.1239833430268277e-2; // atan(2^-5) // Iteration 7 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 1.5625e-2; // 2^-6 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 1.5623728620476831e-2; // atan(2^-6) // Iteration 8 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 7.8125e-3; // 2^-7 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 7.8123410601011111e-3; // atan(2^-7) // Iteration 9 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 3.90625e-3; // 2^-8 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 3.9062301319669718e-3; // atan(2^-8) // Iteration 10 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 1.953125e-3; // 2^-9 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 1.9531225164788188e-3; // atan(2^-9) // Iteration 11 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 9.765625e-4; // 2^-10 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 9.7656218955931946e-4; // atan(2^-10) // Iteration 12 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 4.8828125e-4; // 2^-11 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 4.8828121119489829e-4; // atan(2^-11) // Iteration 13 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 2.44140625e-4; // 2^-12 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 2.4414062014936177e-4; // atan(2^-12) // Iteration 14 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 1.220703125e-4; // 2^-13 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 1.2207031189367021e-4; // atan(2^-13) // Iteration 15 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 6.103515625e-5; // 2^-14 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 6.1035156174208773e-5; // atan(2^-14) // Iteration 16 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 3.0517578125e-5; // 2^-15 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 3.0517578115526096e-5; // atan(2^-15) // Iteration 17 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 1.52587890625e-5; // 2^-16 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 1.5258789061315762e-5; // atan(2^-16) // Iteration 18 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 7.62939453125e-6; // 2^-17 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 7.6293945311019700e-6; // atan(2^-17) // Iteration 19 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 3.814697265625e-6; // 2^-18 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 3.8146972656064961e-6; // atan(2^-18) // Iteration 20 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 1.9073486328125e-6; // 2^-19 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 1.9073486328101870e-6; // atan(2^-19) // Iteration 21 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 9.5367431640625e-7; // 2^-20 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 9.5367431640596084e-7; // atan(2^-20) // Iteration 22 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 4.76837158203125e-7; // 2^-21 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 4.7683715820308884e-7; // atan(2^-21) // Iteration 23 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 2.384185791015625e-7; // 2^-22 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; angle -= sense * 2.3841857910155797e-7; // atan(2^-22) // Iteration 24 sense = (angle < 0.0) ? -1.0 : 1.0; factor = sense * 1.1920928955078125e-7; // 2^-23 rotation[0][1] = factor; rotation[1][0] = -factor; vector = rotation * vector; // angle -= sense * 1.1920928955078068e-7; // atan(2^-23) return vector; } /** * Computes the cosine and sine of the provided angle using the CORDIC algorithm. * * @name czm_cosineAndSine * @glslFunction * * @param {float} angle The angle in radians. * * @returns {vec2} The resulting cosine of the angle (as the x coordinate) and sine of the angle (as the y coordinate). * * @example * vec2 v = czm_cosineAndSine(czm_piOverSix); * float cosine = v.x; * float sine = v.y; */ vec2 czm_cosineAndSine(float angle) { if (angle < -czm_piOverTwo || angle > czm_piOverTwo) { if (angle < 0.0) { return -cordic(angle + czm_pi); } else { return -cordic(angle - czm_pi); } } else { return cordic(angle); } } `;var sP=`/** * Decompresses texture coordinates that were packed into a single float. * * @name czm_decompressTextureCoordinates * @glslFunction * * @param {float} encoded The compressed texture coordinates. * @returns {vec2} The decompressed texture coordinates. */ vec2 czm_decompressTextureCoordinates(float encoded) { float temp = encoded / 4096.0; float xZeroTo4095 = floor(temp); float stx = xZeroTo4095 / 4095.0; float sty = (encoded - xZeroTo4095 * 4096.0) / 4095.0; return vec2(stx, sty); } `;var aP=`// emulated noperspective #if (__VERSION__ == 300 || defined(GL_EXT_frag_depth)) && !defined(LOG_DEPTH) out float v_WindowZ; #endif /** * Emulates GL_DEPTH_CLAMP, which is not available in WebGL 1 or 2. * GL_DEPTH_CLAMP clamps geometry that is outside the near and far planes, * capping the shadow volume. More information here: * https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_clamp.txt. * * When GL_EXT_frag_depth is available we emulate GL_DEPTH_CLAMP by ensuring * no geometry gets clipped by setting the clip space z value to 0.0 and then * sending the unaltered screen space z value (using emulated noperspective * interpolation) to the frag shader where it is clamped to [0,1] and then * written with gl_FragDepth (see czm_writeDepthClamp). This technique is based on: * https://stackoverflow.com/questions/5960757/how-to-emulate-gl-depth-clamp-nv. * * When GL_EXT_frag_depth is not available, which is the case on some mobile * devices, we must attempt to fix this only in the vertex shader. * The approach is to clamp the z value to the far plane, which closes the * shadow volume but also distorts the geometry, so there can still be artifacts * on frustum seams. * * @name czm_depthClamp * @glslFunction * * @param {vec4} coords The vertex in clip coordinates. * @returns {vec4} The modified vertex. * * @example * gl_Position = czm_depthClamp(czm_modelViewProjection * vec4(position, 1.0)); * * @see czm_writeDepthClamp */ vec4 czm_depthClamp(vec4 coords) { #ifndef LOG_DEPTH #if __VERSION__ == 300 || defined(GL_EXT_frag_depth) v_WindowZ = (0.5 * (coords.z / coords.w) + 0.5) * coords.w; coords.z = 0.0; #else coords.z = min(coords.z, coords.w); #endif #endif return coords; } `;var cP=`/** * Computes a 3x3 rotation matrix that transforms vectors from an ellipsoid's east-north-up coordinate system * to eye coordinates. In east-north-up coordinates, x points east, y points north, and z points along the * surface normal. East-north-up can be used as an ellipsoid's tangent space for operations such as bump mapping. * <br /><br /> * The ellipsoid is assumed to be centered at the model coordinate's origin. * * @name czm_eastNorthUpToEyeCoordinates * @glslFunction * * @param {vec3} positionMC The position on the ellipsoid in model coordinates. * @param {vec3} normalEC The normalized ellipsoid surface normal, at <code>positionMC</code>, in eye coordinates. * * @returns {mat3} A 3x3 rotation matrix that transforms vectors from the east-north-up coordinate system to eye coordinates. * * @example * // Transform a vector defined in the east-north-up coordinate * // system, (0, 0, 1) which is the surface normal, to eye * // coordinates. * mat3 m = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); * vec3 normalEC = m * vec3(0.0, 0.0, 1.0); */ mat3 czm_eastNorthUpToEyeCoordinates(vec3 positionMC, vec3 normalEC) { vec3 tangentMC = normalize(vec3(-positionMC.y, positionMC.x, 0.0)); // normalized surface tangent in model coordinates vec3 tangentEC = normalize(czm_normal3D * tangentMC); // normalized surface tangent in eye coordinates vec3 bitangentEC = normalize(cross(normalEC, tangentEC)); // normalized surface bitangent in eye coordinates return mat3( tangentEC.x, tangentEC.y, tangentEC.z, bitangentEC.x, bitangentEC.y, bitangentEC.z, normalEC.x, normalEC.y, normalEC.z); } `;var lP=`/** * DOC_TBA * * @name czm_ellipsoidContainsPoint * @glslFunction * */ bool czm_ellipsoidContainsPoint(vec3 ellipsoid_inverseRadii, vec3 point) { vec3 scaled = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(point, 1.0)).xyz; return (dot(scaled, scaled) <= 1.0); } `;var uP=`/** * DOC_TBA * * @name czm_ellipsoidWgs84TextureCoordinates * @glslFunction */ vec2 czm_ellipsoidWgs84TextureCoordinates(vec3 normal) { return vec2(atan(normal.y, normal.x) * czm_oneOverTwoPi + 0.5, asin(normal.z) * czm_oneOverPi + 0.5); } `;var fP=`/** * Compares <code>left</code> and <code>right</code> componentwise. Returns <code>true</code> * if they are within <code>epsilon</code> and <code>false</code> otherwise. The inputs * <code>left</code> and <code>right</code> can be <code>float</code>s, <code>vec2</code>s, * <code>vec3</code>s, or <code>vec4</code>s. * * @name czm_equalsEpsilon * @glslFunction * * @param {} left The first vector. * @param {} right The second vector. * @param {float} epsilon The epsilon to use for equality testing. * @returns {bool} <code>true</code> if the components are within <code>epsilon</code> and <code>false</code> otherwise. * * @example * // GLSL declarations * bool czm_equalsEpsilon(float left, float right, float epsilon); * bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon); * bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon); * bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon); */ bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon) { return all(lessThanEqual(abs(left - right), vec4(epsilon))); } bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon) { return all(lessThanEqual(abs(left - right), vec3(epsilon))); } bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon) { return all(lessThanEqual(abs(left - right), vec2(epsilon))); } bool czm_equalsEpsilon(float left, float right, float epsilon) { return (abs(left - right) <= epsilon); } `;var dP=`/** * DOC_TBA * * @name czm_eyeOffset * @glslFunction * * @param {vec4} positionEC DOC_TBA. * @param {vec3} eyeOffset DOC_TBA. * * @returns {vec4} DOC_TBA. */ vec4 czm_eyeOffset(vec4 positionEC, vec3 eyeOffset) { // This equation is approximate in x and y. vec4 p = positionEC; vec4 zEyeOffset = normalize(p) * eyeOffset.z; p.xy += eyeOffset.xy + zEyeOffset.xy; p.z += zEyeOffset.z; return p; } `;var hP=`/** * Transforms a position from eye to window coordinates. The transformation * from eye to clip coordinates is done using {@link czm_projection}. * The transform from normalized device coordinates to window coordinates is * done using {@link czm_viewportTransformation}, which assumes a depth range * of <code>near = 0</code> and <code>far = 1</code>. * <br /><br /> * This transform is useful when there is a need to manipulate window coordinates * in a vertex shader as done by {@link BillboardCollection}. * * @name czm_eyeToWindowCoordinates * @glslFunction * * @param {vec4} position The position in eye coordinates to transform. * * @returns {vec4} The transformed position in window coordinates. * * @see czm_modelToWindowCoordinates * @see czm_projection * @see czm_viewportTransformation * @see BillboardCollection * * @example * vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); */ vec4 czm_eyeToWindowCoordinates(vec4 positionEC) { vec4 q = czm_projection * positionEC; // clip coordinates q.xyz /= q.w; // normalized device coordinates q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates return q; } `;var mP=`/** * Approxiamtes atan over the range [0, 1]. Safe to flip output for negative input. * * Based on Michal Drobot's approximation from ShaderFastLibs, which in turn is based on * "Efficient approximations for the arctangent function," Rajan, S. Sichun Wang Inkol, R. Joyal, A., May 2006. * Adapted from ShaderFastLibs under MIT License. * * Chosen for the following characteristics over range [0, 1]: * - basically no error at 0 and 1, important for getting around range limit (naive atan2 via atan requires infinite range atan) * - no visible artifacts from first-derivative discontinuities, unlike latitude via range-reduced sqrt asin approximations (at equator) * * The original code is x * (-0.1784 * abs(x) - 0.0663 * x * x + 1.0301); * Removed the abs() in here because it isn't needed, the input range is guaranteed as [0, 1] by how we're approximating atan2. * * @name czm_fastApproximateAtan * @glslFunction * * @param {float} x Value between 0 and 1 inclusive. * * @returns {float} Approximation of atan(x) */ float czm_fastApproximateAtan(float x) { return x * (-0.1784 * x - 0.0663 * x * x + 1.0301); } /** * Approximation of atan2. * * Range reduction math based on nvidia's cg reference implementation for atan2: http://developer.download.nvidia.com/cg/atan2.html * However, we replaced their atan curve with Michael Drobot's (see above). * * @name czm_fastApproximateAtan * @glslFunction * * @param {float} x Value between -1 and 1 inclusive. * @param {float} y Value between -1 and 1 inclusive. * * @returns {float} Approximation of atan2(x, y) */ float czm_fastApproximateAtan(float x, float y) { // atan approximations are usually only reliable over [-1, 1], or, in our case, [0, 1] due to modifications. // So range-reduce using abs and by flipping whether x or y is on top. float t = abs(x); // t used as swap and atan result. float opposite = abs(y); float adjacent = max(t, opposite); opposite = min(t, opposite); t = czm_fastApproximateAtan(opposite / adjacent); // Undo range reduction t = czm_branchFreeTernary(abs(y) > abs(x), czm_piOverTwo - t, t); t = czm_branchFreeTernary(x < 0.0, czm_pi - t, t); t = czm_branchFreeTernary(y < 0.0, -t, t); return t; } `;var pP=`/** * Gets the color with fog at a distance from the camera. * * @name czm_fog * @glslFunction * * @param {float} distanceToCamera The distance to the camera in meters. * @param {vec3} color The original color. * @param {vec3} fogColor The color of the fog. * * @returns {vec3} The color adjusted for fog at the distance from the camera. */ vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor) { float scalar = distanceToCamera * czm_fogDensity; float fog = 1.0 - exp(-(scalar * scalar)); return mix(color, fogColor, fog); } /** * Gets the color with fog at a distance from the camera. * * @name czm_fog * @glslFunction * * @param {float} distanceToCamera The distance to the camera in meters. * @param {vec3} color The original color. * @param {vec3} fogColor The color of the fog. * @param {float} fogModifierConstant A constant to modify the appearance of fog. * * @returns {vec3} The color adjusted for fog at the distance from the camera. */ vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor, float fogModifierConstant) { float scalar = distanceToCamera * czm_fogDensity; float fog = 1.0 - exp(-((fogModifierConstant * scalar + fogModifierConstant) * (scalar * (1.0 + fogModifierConstant)))); return mix(color, fogColor, fog); } `;var _P=`/** * Converts a color from RGB space to linear space. * * @name czm_gammaCorrect * @glslFunction * * @param {vec3} color The color in RGB space. * @returns {vec3} The color in linear space. */ vec3 czm_gammaCorrect(vec3 color) { #ifdef HDR color = pow(color, vec3(czm_gamma)); #endif return color; } vec4 czm_gammaCorrect(vec4 color) { #ifdef HDR color.rgb = pow(color.rgb, vec3(czm_gamma)); #endif return color; } `;var gP=`/** * DOC_TBA * * @name czm_geodeticSurfaceNormal * @glslFunction * * @param {vec3} positionOnEllipsoid DOC_TBA * @param {vec3} ellipsoidCenter DOC_TBA * @param {vec3} oneOverEllipsoidRadiiSquared DOC_TBA * * @returns {vec3} DOC_TBA. */ vec3 czm_geodeticSurfaceNormal(vec3 positionOnEllipsoid, vec3 ellipsoidCenter, vec3 oneOverEllipsoidRadiiSquared) { return normalize((positionOnEllipsoid - ellipsoidCenter) * oneOverEllipsoidRadiiSquared); } `;var yP=`/** * An czm_material with default values. Every material's czm_getMaterial * should use this default material as a base for the material it returns. * The default normal value is given by materialInput.normalEC. * * @name czm_getDefaultMaterial * @glslFunction * * @param {czm_materialInput} input The input used to construct the default material. * * @returns {czm_material} The default material. * * @see czm_materialInput * @see czm_material * @see czm_getMaterial */ czm_material czm_getDefaultMaterial(czm_materialInput materialInput) { czm_material material; material.diffuse = vec3(0.0); material.specular = 0.0; material.shininess = 1.0; material.normal = materialInput.normalEC; material.emission = vec3(0.0); material.alpha = 1.0; return material; } `;var xP=`/** * Select which direction vector to use for dynamic atmosphere lighting based on an enum value * * @name czm_getDynamicAtmosphereLightDirection * @glslfunction * @see DynamicAtmosphereLightingType.js * * @param {vec3} positionWC the position of the vertex/fragment in world coordinates. This is normalized and returned when dynamic lighting is turned off. * @param {float} lightEnum The enum value for selecting between light sources. * @return {vec3} The normalized light direction vector. Depending on the enum value, it is either positionWC, czm_lightDirectionWC or czm_sunDirectionWC */ vec3 czm_getDynamicAtmosphereLightDirection(vec3 positionWC, float lightEnum) { const float NONE = 0.0; const float SCENE_LIGHT = 1.0; const float SUNLIGHT = 2.0; vec3 lightDirection = positionWC * float(lightEnum == NONE) + czm_lightDirectionWC * float(lightEnum == SCENE_LIGHT) + czm_sunDirectionWC * float(lightEnum == SUNLIGHT); return normalize(lightDirection); } `;var bP=`/** * Calculates the intensity of diffusely reflected light. * * @name czm_getLambertDiffuse * @glslFunction * * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. * @param {vec3} normalEC The surface normal in eye coordinates. * * @returns {float} The intensity of the diffuse reflection. * * @see czm_phong * * @example * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); */ float czm_getLambertDiffuse(vec3 lightDirectionEC, vec3 normalEC) { return max(dot(lightDirectionEC, normalEC), 0.0); } `;var TP=`/** * Calculates the specular intensity of reflected light. * * @name czm_getSpecular * @glslFunction * * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. * @param {vec3} toEyeEC Unit vector pointing to the eye position in eye coordinates. * @param {vec3} normalEC The surface normal in eye coordinates. * @param {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. * * @returns {float} The intensity of the specular highlight. * * @see czm_phong * * @example * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); */ float czm_getSpecular(vec3 lightDirectionEC, vec3 toEyeEC, vec3 normalEC, float shininess) { vec3 toReflectedLight = reflect(-lightDirectionEC, normalEC); float specular = max(dot(toReflectedLight, toEyeEC), 0.0); // pow has undefined behavior if both parameters <= 0. // Prevent this by making sure shininess is at least czm_epsilon2. return pow(specular, max(shininess, czm_epsilon2)); } `;var AP=`/** * @private */ vec4 czm_getWaterNoise(sampler2D normalMap, vec2 uv, float time, float angleInRadians) { float cosAngle = cos(angleInRadians); float sinAngle = sin(angleInRadians); // time dependent sampling directions vec2 s0 = vec2(1.0/17.0, 0.0); vec2 s1 = vec2(-1.0/29.0, 0.0); vec2 s2 = vec2(1.0/101.0, 1.0/59.0); vec2 s3 = vec2(-1.0/109.0, -1.0/57.0); // rotate sampling direction by specified angle s0 = vec2((cosAngle * s0.x) - (sinAngle * s0.y), (sinAngle * s0.x) + (cosAngle * s0.y)); s1 = vec2((cosAngle * s1.x) - (sinAngle * s1.y), (sinAngle * s1.x) + (cosAngle * s1.y)); s2 = vec2((cosAngle * s2.x) - (sinAngle * s2.y), (sinAngle * s2.x) + (cosAngle * s2.y)); s3 = vec2((cosAngle * s3.x) - (sinAngle * s3.y), (sinAngle * s3.x) + (cosAngle * s3.y)); vec2 uv0 = (uv/103.0) + (time * s0); vec2 uv1 = uv/107.0 + (time * s1) + vec2(0.23); vec2 uv2 = uv/vec2(897.0, 983.0) + (time * s2) + vec2(0.51); vec2 uv3 = uv/vec2(991.0, 877.0) + (time * s3) + vec2(0.71); uv0 = fract(uv0); uv1 = fract(uv1); uv2 = fract(uv2); uv3 = fract(uv3); vec4 noise = (texture(normalMap, uv0)) + (texture(normalMap, uv1)) + (texture(normalMap, uv2)) + (texture(normalMap, uv3)); // average and scale to between -1 and 1 return ((noise / 4.0) - 0.5) * 2.0; } `;var CP=`/** * Adjusts the hue of a color. * * @name czm_hue * @glslFunction * * @param {vec3} rgb The color. * @param {float} adjustment The amount to adjust the hue of the color in radians. * * @returns {float} The color with the hue adjusted. * * @example * vec3 adjustHue = czm_hue(color, czm_pi); // The same as czm_hue(color, -czm_pi) */ vec3 czm_hue(vec3 rgb, float adjustment) { const mat3 toYIQ = mat3(0.299, 0.587, 0.114, 0.595716, -0.274453, -0.321263, 0.211456, -0.522591, 0.311135); const mat3 toRGB = mat3(1.0, 0.9563, 0.6210, 1.0, -0.2721, -0.6474, 1.0, -1.107, 1.7046); vec3 yiq = toYIQ * rgb; float hue = atan(yiq.z, yiq.y) + adjustment; float chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y); vec3 color = vec3(yiq.x, chroma * cos(hue), chroma * sin(hue)); return toRGB * color; } `;var EP=`/** * Converts a color in linear space to RGB space. * * @name czm_inverseGamma * @glslFunction * * @param {vec3} color The color in linear space. * @returns {vec3} The color in RGB space. */ vec3 czm_inverseGamma(vec3 color) { return pow(color, vec3(1.0 / czm_gamma)); } `;var SP=`/** * Determines if a time interval is empty. * * @name czm_isEmpty * @glslFunction * * @param {czm_raySegment} interval The interval to test. * * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>. * * @example * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. */ bool czm_isEmpty(czm_raySegment interval) { return (interval.stop < 0.0); } `;var vP=`/** * Determines if a time interval is empty. * * @name czm_isFull * @glslFunction * * @param {czm_raySegment} interval The interval to test. * * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>. * * @example * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. */ bool czm_isFull(czm_raySegment interval) { return (interval.start == 0.0 && interval.stop == czm_infinity); } `;var wP=`/** * Computes the fraction of a Web Wercator rectangle at which a given geodetic latitude is located. * * @name czm_latitudeToWebMercatorFraction * @glslFunction * * @param {float} latitude The geodetic latitude, in radians. * @param {float} southMercatorY The Web Mercator coordinate of the southern boundary of the rectangle. * @param {float} oneOverMercatorHeight The total height of the rectangle in Web Mercator coordinates. * * @returns {float} The fraction of the rectangle at which the latitude occurs. If the latitude is the southern * boundary of the rectangle, the return value will be zero. If it is the northern boundary, the return * value will be 1.0. Latitudes in between are mapped according to the Web Mercator projection. */ float czm_latitudeToWebMercatorFraction(float latitude, float southMercatorY, float oneOverMercatorHeight) { float sinLatitude = sin(latitude); float mercatorY = 0.5 * log((1.0 + sinLatitude) / (1.0 - sinLatitude)); return (mercatorY - southMercatorY) * oneOverMercatorHeight; } `;var DP=`/** * Computes distance from an point in 2D to a line in 2D. * * @name czm_lineDistance * @glslFunction * * param {vec2} point1 A point along the line. * param {vec2} point2 A point along the line. * param {vec2} point A point that may or may not be on the line. * returns {float} The distance from the point to the line. */ float czm_lineDistance(vec2 point1, vec2 point2, vec2 point) { return abs((point2.y - point1.y) * point.x - (point2.x - point1.x) * point.y + point2.x * point1.y - point2.y * point1.x) / distance(point2, point1); } `;var PP=`/** * Converts a linear RGB color to an sRGB color. * * @param {vec3|vec4} linearIn The color in linear color space. * @returns {vec3|vec4} The color in sRGB color space. The vector type matches the input. */ vec3 czm_linearToSrgb(vec3 linearIn) { return pow(linearIn, vec3(1.0/2.2)); } vec4 czm_linearToSrgb(vec4 linearIn) { vec3 srgbOut = pow(linearIn.rgb, vec3(1.0/2.2)); return vec4(srgbOut, linearIn.a); } `;var IP=`/** * Computes the luminance of a color. * * @name czm_luminance * @glslFunction * * @param {vec3} rgb The color. * * @returns {float} The luminance. * * @example * float light = czm_luminance(vec3(0.0)); // 0.0 * float dark = czm_luminance(vec3(1.0)); // ~1.0 */ float czm_luminance(vec3 rgb) { // Algorithm from Chapter 10 of Graphics Shaders. const vec3 W = vec3(0.2125, 0.7154, 0.0721); return dot(rgb, W); } `;var RP=`/** * Find the maximum component of a vector. * * @name czm_maximumComponent * @glslFunction * * @param {vec2|vec3|vec4} v The input vector. * @returns {float} The value of the largest component. */ float czm_maximumComponent(vec2 v) { return max(v.x, v.y); } float czm_maximumComponent(vec3 v) { return max(max(v.x, v.y), v.z); } float czm_maximumComponent(vec4 v) { return max(max(max(v.x, v.y), v.z), v.w); } `;var OP=`/** * Computes the size of a pixel in meters at a distance from the eye. * <p> * Use this version when passing in a custom pixel ratio. For example, passing in 1.0 will return meters per native device pixel. * </p> * @name czm_metersPerPixel * @glslFunction * * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. * @param {float} pixelRatio The scaling factor from pixel space to coordinate space * * @returns {float} The meters per pixel at positionEC. */ float czm_metersPerPixel(vec4 positionEC, float pixelRatio) { float width = czm_viewport.z; float height = czm_viewport.w; float pixelWidth; float pixelHeight; float top = czm_frustumPlanes.x; float bottom = czm_frustumPlanes.y; float left = czm_frustumPlanes.z; float right = czm_frustumPlanes.w; if (czm_sceneMode == czm_sceneMode2D || czm_orthographicIn3D == 1.0) { float frustumWidth = right - left; float frustumHeight = top - bottom; pixelWidth = frustumWidth / width; pixelHeight = frustumHeight / height; } else { float distanceToPixel = -positionEC.z; float inverseNear = 1.0 / czm_currentFrustum.x; float tanTheta = top * inverseNear; pixelHeight = 2.0 * distanceToPixel * tanTheta / height; tanTheta = right * inverseNear; pixelWidth = 2.0 * distanceToPixel * tanTheta / width; } return max(pixelWidth, pixelHeight) * pixelRatio; } /** * Computes the size of a pixel in meters at a distance from the eye. * <p> * Use this version when scaling by pixel ratio. * </p> * @name czm_metersPerPixel * @glslFunction * * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. * * @returns {float} The meters per pixel at positionEC. */ float czm_metersPerPixel(vec4 positionEC) { return czm_metersPerPixel(positionEC, czm_pixelRatio); } `;var MP=`/** * Transforms a position from model to window coordinates. The transformation * from model to clip coordinates is done using {@link czm_modelViewProjection}. * The transform from normalized device coordinates to window coordinates is * done using {@link czm_viewportTransformation}, which assumes a depth range * of <code>near = 0</code> and <code>far = 1</code>. * <br /><br /> * This transform is useful when there is a need to manipulate window coordinates * in a vertex shader as done by {@link BillboardCollection}. * <br /><br /> * This function should not be confused with {@link czm_viewportOrthographic}, * which is an orthographic projection matrix that transforms from window * coordinates to clip coordinates. * * @name czm_modelToWindowCoordinates * @glslFunction * * @param {vec4} position The position in model coordinates to transform. * * @returns {vec4} The transformed position in window coordinates. * * @see czm_eyeToWindowCoordinates * @see czm_modelViewProjection * @see czm_viewportTransformation * @see czm_viewportOrthographic * @see BillboardCollection * * @example * vec4 positionWC = czm_modelToWindowCoordinates(positionMC); */ vec4 czm_modelToWindowCoordinates(vec4 position) { vec4 q = czm_modelViewProjection * position; // clip coordinates q.xyz /= q.w; // normalized device coordinates q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates return q; } `;var LP=`/** * DOC_TBA * * @name czm_multiplyWithColorBalance * @glslFunction */ vec3 czm_multiplyWithColorBalance(vec3 left, vec3 right) { // Algorithm from Chapter 10 of Graphics Shaders. const vec3 W = vec3(0.2125, 0.7154, 0.0721); vec3 target = left * right; float leftLuminance = dot(left, W); float rightLuminance = dot(right, W); float targetLuminance = dot(target, W); return ((leftLuminance + rightLuminance) / (2.0 * targetLuminance)) * target; } `;var NP=`/** * Computes a value that scales with distance. The scaling is clamped at the near and * far distances, and does not extrapolate. This function works with the * {@link NearFarScalar} JavaScript class. * * @name czm_nearFarScalar * @glslFunction * * @param {vec4} nearFarScalar A vector with 4 components: Near distance (x), Near value (y), Far distance (z), Far value (w). * @param {float} cameraDistSq The square of the current distance from the camera. * * @returns {float} The value at this distance. */ float czm_nearFarScalar(vec4 nearFarScalar, float cameraDistSq) { float valueAtMin = nearFarScalar.y; float valueAtMax = nearFarScalar.w; float nearDistanceSq = nearFarScalar.x * nearFarScalar.x; float farDistanceSq = nearFarScalar.z * nearFarScalar.z; float t = (cameraDistSq - nearDistanceSq) / (farDistanceSq - nearDistanceSq); t = pow(clamp(t, 0.0, 1.0), 0.2); return mix(valueAtMin, valueAtMax, t); } `;var FP=` /** * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ * * @name czm_octDecode * @param {vec2} encoded The oct-encoded, unit-length vector * @param {float} range The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits. * @returns {vec3} The decoded and normalized vector */ vec3 czm_octDecode(vec2 encoded, float range) { if (encoded.x == 0.0 && encoded.y == 0.0) { return vec3(0.0, 0.0, 0.0); } encoded = encoded / range * 2.0 - 1.0; vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y)); if (v.z < 0.0) { v.xy = (1.0 - abs(v.yx)) * czm_signNotZero(v.xy); } return normalize(v); } /** * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ * * @name czm_octDecode * @param {vec2} encoded The oct-encoded, unit-length vector * @returns {vec3} The decoded and normalized vector */ vec3 czm_octDecode(vec2 encoded) { return czm_octDecode(encoded, 255.0); } /** * Decodes a unit-length vector in 'oct' encoding packed into a floating-point number to a normalized 3-component Cartesian vector. * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ * * @name czm_octDecode * @param {float} encoded The oct-encoded, unit-length vector * @returns {vec3} The decoded and normalized vector */ vec3 czm_octDecode(float encoded) { float temp = encoded / 256.0; float x = floor(temp); float y = (temp - x) * 256.0; return czm_octDecode(vec2(x, y)); } /** * Decodes three unit-length vectors in 'oct' encoding packed into two floating-point numbers to normalized 3-component Cartesian vectors. * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ * * @name czm_octDecode * @param {vec2} encoded The packed oct-encoded, unit-length vectors. * @param {vec3} vector1 One decoded and normalized vector. * @param {vec3} vector2 One decoded and normalized vector. * @param {vec3} vector3 One decoded and normalized vector. */ void czm_octDecode(vec2 encoded, out vec3 vector1, out vec3 vector2, out vec3 vector3) { float temp = encoded.x / 65536.0; float x = floor(temp); float encodedFloat1 = (temp - x) * 65536.0; temp = encoded.y / 65536.0; float y = floor(temp); float encodedFloat2 = (temp - y) * 65536.0; vector1 = czm_octDecode(encodedFloat1); vector2 = czm_octDecode(encodedFloat2); vector3 = czm_octDecode(vec2(x, y)); } `;var BP=`/** * Packs a depth value into a vec3 that can be represented by unsigned bytes. * * @name czm_packDepth * @glslFunction * * @param {float} depth The floating-point depth. * @returns {vec3} The packed depth. */ vec4 czm_packDepth(float depth) { // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth; enc = fract(enc); enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0); return enc; } `;var kP=`vec3 lambertianDiffuse(vec3 diffuseColor) { return diffuseColor / czm_pi; } vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH) { float versine = 1.0 - VdotH; // pow(versine, 5.0) is slow. See https://stackoverflow.com/a/68793086/10082269 float versineSquared = versine * versine; return f0 + (f90 - f0) * versineSquared * versineSquared * versine; } #ifdef USE_ANISOTROPY /** * @param {float} roughness Material roughness (along the anisotropy bitangent) * @param {float} tangentialRoughness Anisotropic roughness (along the anisotropy tangent) * @param {vec3} lightDirection The direction from the fragment to the light source, transformed to tangent-bitangent-normal coordinates * @param {vec3} viewDirection The direction from the fragment to the camera, transformed to tangent-bitangent-normal coordinates */ float smithVisibilityGGX_anisotropic(float roughness, float tangentialRoughness, vec3 lightDirection, vec3 viewDirection) { vec3 roughnessScale = vec3(tangentialRoughness, roughness, 1.0); float GGXV = lightDirection.z * length(roughnessScale * viewDirection); float GGXL = viewDirection.z * length(roughnessScale * lightDirection); float v = 0.5 / (GGXV + GGXL); return clamp(v, 0.0, 1.0); } /** * @param {float} roughness Material roughness (along the anisotropy bitangent) * @param {float} tangentialRoughness Anisotropic roughness (along the anisotropy tangent) * @param {vec3} halfwayDirection The unit vector halfway between light and view directions, transformed to tangent-bitangent-normal coordinates */ float GGX_anisotropic(float roughness, float tangentialRoughness, vec3 halfwayDirection) { float roughnessSquared = roughness * tangentialRoughness; vec3 f = halfwayDirection * vec3(roughness, tangentialRoughness, roughnessSquared); float w2 = roughnessSquared / dot(f, f); return roughnessSquared * w2 * w2 / czm_pi; } #endif float smithVisibilityG1(float NdotV, float roughness) { // this is the k value for direct lighting. // for image based lighting it will be roughness^2 / 2 float k = (roughness + 1.0) * (roughness + 1.0) / 8.0; return NdotV / (NdotV * (1.0 - k) + k); } /** * Estimate the geometric self-shadowing of the microfacets in a surface, * using the Schlick GGX approximation of a Smith visibility function. * * @param {float} roughness The roughness of the material. * @param {float} NdotL The cosine of the angle between the surface normal and the direction to the light source. * @param {float} NdotV The cosine of the angle between the surface normal and the direction to the camera. */ float smithVisibilityGGX(float roughness, float NdotL, float NdotV) { // Avoid divide-by-zero errors NdotL = clamp(NdotL, 0.001, 1.0); NdotV += 0.001; return ( smithVisibilityG1(NdotL, roughness) * smithVisibilityG1(NdotV, roughness) ) / (4.0 * NdotL * NdotV); } /** * Estimate the fraction of the microfacets in a surface that are aligned with * the halfway vector, which is aligned halfway between the directions from * the fragment to the camera and from the fragment to the light source. * * @param {float} roughness The roughness of the material. * @param {float} NdotH The cosine of the angle between the surface normal and the halfway vector. * @return {float} The fraction of microfacets aligned to the halfway vector. */ float GGX(float roughness, float NdotH) { float roughnessSquared = roughness * roughness; float f = (NdotH * roughnessSquared - NdotH) * NdotH + 1.0; return roughnessSquared / (czm_pi * f * f); } /** * Compute the strength of the specular reflection due to direct lighting. * * @param {vec3} normal The surface normal. * @param {vec3} lightDirection The unit vector pointing from the fragment to the light source. * @param {vec3} viewDirection The unit vector pointing from the fragment to the camera. * @param {vec3} halfwayDirection The unit vector pointing from the fragment to halfway between the light source and the camera. * @param {float} roughness The roughness of the material. * @return {float} The strength of the specular reflection. */ float computeDirectSpecularStrength(vec3 normal, vec3 lightDirection, vec3 viewDirection, vec3 halfwayDirection, float roughness) { float NdotL = dot(normal, lightDirection); float NdotV = abs(dot(normal, viewDirection)); float G = smithVisibilityGGX(roughness, NdotL, NdotV); float NdotH = clamp(dot(normal, halfwayDirection), 0.0, 1.0); float D = GGX(roughness, NdotH); return G * D; } /** * Compute the diffuse and specular contributions using physically based * rendering. This function only handles direct lighting. * <p> * This function only handles the lighting calculations. Metallic/roughness * and specular/glossy must be handled separately. See {@MaterialStageFS} * </p> * * @name czm_pbrLighting * @glslFunction * * @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position * @param {vec3} normalEC The surface normal in eye coordinates * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. * @param {czm_modelMaterial} The material properties. * @return {vec3} The computed HDR color */ vec3 czm_pbrLighting(vec3 viewDirectionEC, vec3 normalEC, vec3 lightDirectionEC, czm_modelMaterial material) { vec3 halfwayDirectionEC = normalize(viewDirectionEC + lightDirectionEC); float VdotH = clamp(dot(viewDirectionEC, halfwayDirectionEC), 0.0, 1.0); float NdotL = clamp(dot(normalEC, lightDirectionEC), 0.001, 1.0); vec3 f0 = material.specular; float reflectance = czm_maximumComponent(f0); // Typical dielectrics will have reflectance 0.04, so f90 will be 1.0. // In this case, at grazing angle, all incident energy is reflected. vec3 f90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0)); vec3 F = fresnelSchlick2(f0, f90, VdotH); #if defined(USE_SPECULAR) F *= material.specularWeight; #endif float alpha = material.roughness; #ifdef USE_ANISOTROPY mat3 tbn = mat3(material.anisotropicT, material.anisotropicB, normalEC); vec3 lightDirection = lightDirectionEC * tbn; vec3 viewDirection = viewDirectionEC * tbn; vec3 halfwayDirection = halfwayDirectionEC * tbn; float anisotropyStrength = material.anisotropyStrength; float tangentialRoughness = mix(alpha, 1.0, anisotropyStrength * anisotropyStrength); float G = smithVisibilityGGX_anisotropic(alpha, tangentialRoughness, lightDirection, viewDirection); float D = GGX_anisotropic(alpha, tangentialRoughness, halfwayDirection); vec3 specularContribution = F * G * D; #else float specularStrength = computeDirectSpecularStrength(normalEC, lightDirectionEC, viewDirectionEC, halfwayDirectionEC, alpha); vec3 specularContribution = F * specularStrength; #endif vec3 diffuseColor = material.diffuse; // F here represents the specular contribution vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor); // Lo = (diffuse + specular) * Li * NdotL return (diffuseContribution + specularContribution) * NdotL; } `;var VP=`float czm_private_getLambertDiffuseOfMaterial(vec3 lightDirectionEC, czm_material material) { return czm_getLambertDiffuse(lightDirectionEC, material.normal); } float czm_private_getSpecularOfMaterial(vec3 lightDirectionEC, vec3 toEyeEC, czm_material material) { return czm_getSpecular(lightDirectionEC, toEyeEC, material.normal, material.shininess); } /** * Computes a color using the Phong lighting model. * * @name czm_phong * @glslFunction * * @param {vec3} toEye A normalized vector from the fragment to the eye in eye coordinates. * @param {czm_material} material The fragment's material. * * @returns {vec4} The computed color. * * @example * vec3 positionToEyeEC = // ... * czm_material material = // ... * vec3 lightDirectionEC = // ... * out_FragColor = czm_phong(normalize(positionToEyeEC), material, lightDirectionEC); * * @see czm_getMaterial */ vec4 czm_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) { // Diffuse from directional light sources at eye (for top-down) float diffuse = czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 0.0, 1.0), material); if (czm_sceneMode == czm_sceneMode3D) { // (and horizon views in 3D) diffuse += czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 1.0, 0.0), material); } float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); // Temporary workaround for adding ambient. vec3 materialDiffuse = material.diffuse * 0.5; vec3 ambient = materialDiffuse; vec3 color = ambient + material.emission; color += materialDiffuse * diffuse * czm_lightColor; color += material.specular * specular * czm_lightColor; return vec4(color, material.alpha); } vec4 czm_private_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) { float diffuse = czm_private_getLambertDiffuseOfMaterial(lightDirectionEC, material); float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); vec3 ambient = vec3(0.0); vec3 color = ambient + material.emission; color += material.diffuse * diffuse * czm_lightColor; color += material.specular * specular * czm_lightColor; return vec4(color, material.alpha); } `;var UP=`/** * Computes distance from a point to a plane. * * @name czm_planeDistance * @glslFunction * * param {vec4} plane A Plane in Hessian Normal Form. See Plane.js * param {vec3} point A point in the same space as the plane. * returns {float} The distance from the point to the plane. */ float czm_planeDistance(vec4 plane, vec3 point) { return (dot(plane.xyz, point) + plane.w); } /** * Computes distance from a point to a plane. * * @name czm_planeDistance * @glslFunction * * param {vec3} planeNormal Normal for a plane in Hessian Normal Form. See Plane.js * param {float} planeDistance Distance for a plane in Hessian Normal form. See Plane.js * param {vec3} point A point in the same space as the plane. * returns {float} The distance from the point to the plane. */ float czm_planeDistance(vec3 planeNormal, float planeDistance, vec3 point) { return (dot(planeNormal, point) + planeDistance); } `;var zP=`/** * Computes the point along a ray at the given time. <code>time</code> can be positive, negative, or zero. * * @name czm_pointAlongRay * @glslFunction * * @param {czm_ray} ray The ray to compute the point along. * @param {float} time The time along the ray. * * @returns {vec3} The point along the ray at the given time. * * @example * czm_ray ray = czm_ray(vec3(0.0), vec3(1.0, 0.0, 0.0)); // origin, direction * vec3 v = czm_pointAlongRay(ray, 2.0); // (2.0, 0.0, 0.0) */ vec3 czm_pointAlongRay(czm_ray ray, float time) { return ray.origin + (time * ray.direction); } `;var HP=`/** * DOC_TBA * * @name czm_rayEllipsoidIntersectionInterval * @glslFunction */ czm_raySegment czm_rayEllipsoidIntersectionInterval(czm_ray ray, vec3 ellipsoid_center, vec3 ellipsoid_inverseRadii) { // ray and ellipsoid center in eye coordinates. radii in model coordinates. vec3 q = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.origin, 1.0)).xyz; vec3 w = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.direction, 0.0)).xyz; q = q - ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ellipsoid_center, 1.0)).xyz; float q2 = dot(q, q); float qw = dot(q, w); if (q2 > 1.0) // Outside ellipsoid. { if (qw >= 0.0) // Looking outward or tangent (0 intersections). { return czm_emptyRaySegment; } else // qw < 0.0. { float qw2 = qw * qw; float difference = q2 - 1.0; // Positively valued. float w2 = dot(w, w); float product = w2 * difference; if (qw2 < product) // Imaginary roots (0 intersections). { return czm_emptyRaySegment; } else if (qw2 > product) // Distinct roots (2 intersections). { float discriminant = qw * qw - product; float temp = -qw + sqrt(discriminant); // Avoid cancellation. float root0 = temp / w2; float root1 = difference / temp; if (root0 < root1) { czm_raySegment i = czm_raySegment(root0, root1); return i; } else { czm_raySegment i = czm_raySegment(root1, root0); return i; } } else // qw2 == product. Repeated roots (2 intersections). { float root = sqrt(difference / w2); czm_raySegment i = czm_raySegment(root, root); return i; } } } else if (q2 < 1.0) // Inside ellipsoid (2 intersections). { float difference = q2 - 1.0; // Negatively valued. float w2 = dot(w, w); float product = w2 * difference; // Negatively valued. float discriminant = qw * qw - product; float temp = -qw + sqrt(discriminant); // Positively valued. czm_raySegment i = czm_raySegment(0.0, temp / w2); return i; } else // q2 == 1.0. On ellipsoid. { if (qw < 0.0) // Looking inward. { float w2 = dot(w, w); czm_raySegment i = czm_raySegment(0.0, -qw / w2); return i; } else // qw >= 0.0. Looking outward or tangent. { return czm_emptyRaySegment; } } } `;var GP=`/** * Compute the intersection interval of a ray with a sphere. * * @name czm_raySphereIntersectionInterval * @glslFunction * * @param {czm_ray} ray The ray. * @param {vec3} center The center of the sphere. * @param {float} radius The radius of the sphere. * @return {czm_raySegment} The intersection interval of the ray with the sphere. */ czm_raySegment czm_raySphereIntersectionInterval(czm_ray ray, vec3 center, float radius) { vec3 o = ray.origin; vec3 d = ray.direction; vec3 oc = o - center; float a = dot(d, d); float b = 2.0 * dot(d, oc); float c = dot(oc, oc) - (radius * radius); float det = (b * b) - (4.0 * a * c); if (det < 0.0) { return czm_emptyRaySegment; } float sqrtDet = sqrt(det); float t0 = (-b - sqrtDet) / (2.0 * a); float t1 = (-b + sqrtDet) / (2.0 * a); czm_raySegment result = czm_raySegment(t0, t1); return result; } `;var WP=`float czm_readDepth(sampler2D depthTexture, vec2 texCoords) { return czm_reverseLogDepth(texture(depthTexture, texCoords).r); } `;var jP=`/** * Reads a value previously transformed with {@link czm_writeNonPerspective} * by dividing it by \`w\`, the value used in the perspective divide. * This function is intended to be called in a fragment shader to access a * \`varying\` that should not be subject to perspective interpolation. * For example, screen-space texture coordinates. The value should have been * previously written in the vertex shader with a call to * {@link czm_writeNonPerspective}. * * @name czm_readNonPerspective * @glslFunction * * @param {float|vec2|vec3|vec4} value The non-perspective value to be read. * @param {float} oneOverW One over the perspective divide value, \`w\`. Usually this is simply \`gl_FragCoord.w\`. * @returns {float|vec2|vec3|vec4} The usable value. */ float czm_readNonPerspective(float value, float oneOverW) { return value * oneOverW; } vec2 czm_readNonPerspective(vec2 value, float oneOverW) { return value * oneOverW; } vec3 czm_readNonPerspective(vec3 value, float oneOverW) { return value * oneOverW; } vec4 czm_readNonPerspective(vec4 value, float oneOverW) { return value * oneOverW; } `;var qP=`float czm_reverseLogDepth(float logZ) { #ifdef LOG_DEPTH float near = czm_currentFrustum.x; float far = czm_currentFrustum.y; float log2Depth = logZ * czm_log2FarDepthFromNearPlusOne; float depthFromNear = pow(2.0, log2Depth) - 1.0; return far * (1.0 - near / (depthFromNear + near)) / (far - near); #endif return logZ; } `;var YP=`/** * Round a floating point value. This function exists because round() doesn't * exist in GLSL 1.00. * * @param {float|vec2|vec3|vec4} value The value to round * @param {float|vec2|vec3|vec3} The rounded value. The type matches the input. */ float czm_round(float value) { return floor(value + 0.5); } vec2 czm_round(vec2 value) { return floor(value + 0.5); } vec3 czm_round(vec3 value) { return floor(value + 0.5); } vec4 czm_round(vec4 value) { return floor(value + 0.5); } `;var XP=`/** * Samples the 4 neighboring pixels and return the weighted average. * * @private */ vec3 czm_sampleOctahedralProjectionWithFiltering(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod) { direction /= dot(vec3(1.0), abs(direction)); vec2 rev = abs(direction.zx) - vec2(1.0); vec2 neg = vec2(direction.x < 0.0 ? rev.x : -rev.x, direction.z < 0.0 ? rev.y : -rev.y); vec2 uv = direction.y < 0.0 ? neg : direction.xz; vec2 coord = 0.5 * uv + vec2(0.5); vec2 pixel = 1.0 / textureSize; if (lod > 0.0) { // Each subseqeuent mip level is half the size float scale = 1.0 / pow(2.0, lod); float offset = ((textureSize.y + 1.0) / textureSize.x); coord.x *= offset; coord *= scale; coord.x += offset + pixel.x; coord.y += (1.0 - (1.0 / pow(2.0, lod - 1.0))) + pixel.y * (lod - 1.0) * 2.0; } else { coord.x *= (textureSize.y / textureSize.x); } // Do bilinear filtering #ifndef OES_texture_float_linear vec3 color1 = texture(projectedMap, coord + vec2(0.0, pixel.y)).rgb; vec3 color2 = texture(projectedMap, coord + vec2(pixel.x, 0.0)).rgb; vec3 color3 = texture(projectedMap, coord + pixel).rgb; vec3 color4 = texture(projectedMap, coord).rgb; vec2 texturePosition = coord * textureSize; float fu = fract(texturePosition.x); float fv = fract(texturePosition.y); vec3 average1 = mix(color4, color2, fu); vec3 average2 = mix(color1, color3, fu); vec3 color = mix(average1, average2, fv); #else vec3 color = texture(projectedMap, coord).rgb; #endif return color; } /** * Samples from a cube map that has been projected using an octahedral projection from the given direction. * * @name czm_sampleOctahedralProjection * @glslFunction * * @param {sampler2D} projectedMap The texture with the octahedral projected cube map. * @param {vec2} textureSize The width and height dimensions in pixels of the projected map. * @param {vec3} direction The normalized direction used to sample the cube map. * @param {float} lod The level of detail to sample. * @param {float} maxLod The maximum level of detail. * @returns {vec3} The color of the cube map at the direction. */ vec3 czm_sampleOctahedralProjection(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod, float maxLod) { float currentLod = floor(lod + 0.5); float nextLod = min(currentLod + 1.0, maxLod); vec3 colorCurrentLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, currentLod); vec3 colorNextLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, nextLod); return mix(colorNextLod, colorCurrentLod, nextLod - lod); } `;var KP=`/** * Adjusts the saturation of a color. * * @name czm_saturation * @glslFunction * * @param {vec3} rgb The color. * @param {float} adjustment The amount to adjust the saturation of the color. * * @returns {float} The color with the saturation adjusted. * * @example * vec3 greyScale = czm_saturation(color, 0.0); * vec3 doubleSaturation = czm_saturation(color, 2.0); */ vec3 czm_saturation(vec3 rgb, float adjustment) { // Algorithm from Chapter 16 of OpenGL Shading Language const vec3 W = vec3(0.2125, 0.7154, 0.0721); vec3 intensity = vec3(dot(rgb, W)); return mix(intensity, rgb, adjustment); } `;var ZP=` float czm_sampleShadowMap(highp samplerCube shadowMap, vec3 d) { return czm_unpackDepth(czm_textureCube(shadowMap, d)); } float czm_sampleShadowMap(highp sampler2D shadowMap, vec2 uv) { #ifdef USE_SHADOW_DEPTH_TEXTURE return texture(shadowMap, uv).r; #else return czm_unpackDepth(texture(shadowMap, uv)); #endif } float czm_shadowDepthCompare(samplerCube shadowMap, vec3 uv, float depth) { return step(depth, czm_sampleShadowMap(shadowMap, uv)); } float czm_shadowDepthCompare(sampler2D shadowMap, vec2 uv, float depth) { return step(depth, czm_sampleShadowMap(shadowMap, uv)); } `;var $P=` float czm_private_shadowVisibility(float visibility, float nDotL, float normalShadingSmooth, float darkness) { #ifdef USE_NORMAL_SHADING #ifdef USE_NORMAL_SHADING_SMOOTH float strength = clamp(nDotL / normalShadingSmooth, 0.0, 1.0); #else float strength = step(0.0, nDotL); #endif visibility *= strength; #endif visibility = max(visibility, darkness); return visibility; } #ifdef USE_CUBE_MAP_SHADOW float czm_shadowVisibility(samplerCube shadowMap, czm_shadowParameters shadowParameters) { float depthBias = shadowParameters.depthBias; float depth = shadowParameters.depth; float nDotL = shadowParameters.nDotL; float normalShadingSmooth = shadowParameters.normalShadingSmooth; float darkness = shadowParameters.darkness; vec3 uvw = shadowParameters.texCoords; depth -= depthBias; float visibility = czm_shadowDepthCompare(shadowMap, uvw, depth); return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); } #else float czm_shadowVisibility(sampler2D shadowMap, czm_shadowParameters shadowParameters) { float depthBias = shadowParameters.depthBias; float depth = shadowParameters.depth; float nDotL = shadowParameters.nDotL; float normalShadingSmooth = shadowParameters.normalShadingSmooth; float darkness = shadowParameters.darkness; vec2 uv = shadowParameters.texCoords; depth -= depthBias; #ifdef USE_SOFT_SHADOWS vec2 texelStepSize = shadowParameters.texelStepSize; float radius = 1.0; float dx0 = -texelStepSize.x * radius; float dy0 = -texelStepSize.y * radius; float dx1 = texelStepSize.x * radius; float dy1 = texelStepSize.y * radius; float visibility = ( czm_shadowDepthCompare(shadowMap, uv, depth) + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy0), depth) + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy0), depth) + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy0), depth) + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, 0.0), depth) + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, 0.0), depth) + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy1), depth) + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy1), depth) + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy1), depth) ) * (1.0 / 9.0); #else float visibility = czm_shadowDepthCompare(shadowMap, uv, depth); #endif return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); } #endif `;var QP=`/** * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative. This is similar to the GLSL * built-in function <code>sign</code> except that returns 1.0 instead of 0.0 when the input value is 0.0. * * @name czm_signNotZero * @glslFunction * * @param {} value The value for which to determine the sign. * @returns {} 1.0 if the value is positive or zero, -1.0 if the value is negative. */ float czm_signNotZero(float value) { return value >= 0.0 ? 1.0 : -1.0; } vec2 czm_signNotZero(vec2 value) { return vec2(czm_signNotZero(value.x), czm_signNotZero(value.y)); } vec3 czm_signNotZero(vec3 value) { return vec3(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z)); } vec4 czm_signNotZero(vec4 value) { return vec4(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z), czm_signNotZero(value.w)); } `;var JP=`/** * Computes a color from the third order spherical harmonic coefficients and a normalized direction vector. * <p> * The order of the coefficients is [L00, L1_1, L10, L11, L2_2, L2_1, L20, L21, L22]. * </p> * * @name czm_sphericalHarmonics * @glslFunction * * @param {vec3} normal The normalized direction. * @param {vec3[9]} coefficients The third order spherical harmonic coefficients. * @returns {vec3} The color at the direction. * * @see https://graphics.stanford.edu/papers/envmap/envmap.pdf */ vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9]) { vec3 L00 = coefficients[0]; vec3 L1_1 = coefficients[1]; vec3 L10 = coefficients[2]; vec3 L11 = coefficients[3]; vec3 L2_2 = coefficients[4]; vec3 L2_1 = coefficients[5]; vec3 L20 = coefficients[6]; vec3 L21 = coefficients[7]; vec3 L22 = coefficients[8]; float x = normal.x; float y = normal.y; float z = normal.z; return L00 + L1_1 * y + L10 * z + L11 * x + L2_2 * (y * x) + L2_1 * (y * z) + L20 * (3.0 * z * z - 1.0) + L21 * (z * x) + L22 * (x * x - y * y); } `;var eI=`/** * Converts an sRGB color to a linear RGB color. * * @param {vec3|vec4} srgbIn The color in sRGB space * @returns {vec3|vec4} The color in linear color space. The vector type matches the input. */ vec3 czm_srgbToLinear(vec3 srgbIn) { return pow(srgbIn, vec3(2.2)); } vec4 czm_srgbToLinear(vec4 srgbIn) { vec3 linearOut = pow(srgbIn.rgb, vec3(2.2)); return vec4(linearOut, srgbIn.a); } `;var tI=`/** * Creates a matrix that transforms vectors from tangent space to eye space. * * @name czm_tangentToEyeSpaceMatrix * @glslFunction * * @param {vec3} normalEC The normal vector in eye coordinates. * @param {vec3} tangentEC The tangent vector in eye coordinates. * @param {vec3} bitangentEC The bitangent vector in eye coordinates. * * @returns {mat3} The matrix that transforms from tangent space to eye space. * * @example * mat3 tangentToEye = czm_tangentToEyeSpaceMatrix(normalEC, tangentEC, bitangentEC); * vec3 normal = tangentToEye * texture(normalMap, st).xyz; */ mat3 czm_tangentToEyeSpaceMatrix(vec3 normalEC, vec3 tangentEC, vec3 bitangentEC) { vec3 normal = normalize(normalEC); vec3 tangent = normalize(tangentEC); vec3 bitangent = normalize(bitangentEC); return mat3(tangent.x , tangent.y , tangent.z, bitangent.x, bitangent.y, bitangent.z, normal.x , normal.y , normal.z); } `;var nI=`/** * A wrapper around the texture (WebGL2) / textureCube (WebGL1) * function to allow for WebGL 1 support. * * @name czm_textureCube * @glslFunction * * @param {samplerCube} sampler The sampler. * @param {vec3} p The coordinates to sample the texture at. */ vec4 czm_textureCube(samplerCube sampler, vec3 p) { #if __VERSION__ == 300 return texture(sampler, p); #else return textureCube(sampler, p); #endif }`;var iI=`/** * Transforms a plane. * * @name czm_transformPlane * @glslFunction * * @param {vec4} plane The plane in Hessian Normal Form. * @param {mat4} transform The inverse-transpose of a transformation matrix. */ vec4 czm_transformPlane(vec4 plane, mat4 transform) { vec4 transformedPlane = transform * plane; // Convert the transformed plane to Hessian Normal Form float normalMagnitude = length(transformedPlane.xyz); return transformedPlane / normalMagnitude; } `;var oI=`/** * Translates a position (or any <code>vec3</code>) that was encoded with {@link EncodedCartesian3}, * and then provided to the shader as separate <code>high</code> and <code>low</code> bits to * be relative to the eye. As shown in the example, the position can then be transformed in eye * or clip coordinates using {@link czm_modelViewRelativeToEye} or {@link czm_modelViewProjectionRelativeToEye}, * respectively. * <p> * This technique, called GPU RTE, eliminates jittering artifacts when using large coordinates as * described in {@link http://help.agi.com/AGIComponents/html/BlogPrecisionsPrecisions.htm|Precisions, Precisions}. * </p> * * @name czm_translateRelativeToEye * @glslFunction * * @param {vec3} high The position's high bits. * @param {vec3} low The position's low bits. * @returns {vec3} The position translated to be relative to the camera's position. * * @example * in vec3 positionHigh; * in vec3 positionLow; * * void main() * { * vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); * gl_Position = czm_modelViewProjectionRelativeToEye * p; * } * * @see czm_modelViewRelativeToEye * @see czm_modelViewProjectionRelativeToEye * @see czm_computePosition * @see EncodedCartesian3 */ vec4 czm_translateRelativeToEye(vec3 high, vec3 low) { vec3 highDifference = high - czm_encodedCameraPositionMCHigh; // This check handles the case when NaN values have gotten into \`highDifference\`. // Such a thing could happen on devices running iOS. if (length(highDifference) == 0.0) { highDifference = vec3(0); } vec3 lowDifference = low - czm_encodedCameraPositionMCLow; return vec4(highDifference + lowDifference, 1.0); } `;var rI=`/** * @private */ vec4 czm_translucentPhong(vec3 toEye, czm_material material, vec3 lightDirectionEC) { // Diffuse from directional light sources at eye (for top-down and horizon views) float diffuse = czm_getLambertDiffuse(vec3(0.0, 0.0, 1.0), material.normal); if (czm_sceneMode == czm_sceneMode3D) { // (and horizon views in 3D) diffuse += czm_getLambertDiffuse(vec3(0.0, 1.0, 0.0), material.normal); } diffuse = clamp(diffuse, 0.0, 1.0); float specular = czm_getSpecular(lightDirectionEC, toEye, material.normal, material.shininess); // Temporary workaround for adding ambient. vec3 materialDiffuse = material.diffuse * 0.5; vec3 ambient = materialDiffuse; vec3 color = ambient + material.emission; color += materialDiffuse * diffuse * czm_lightColor; color += material.specular * specular * czm_lightColor; return vec4(color, material.alpha); } `;var sI=`/** * Returns the transpose of the matrix. The input <code>matrix</code> can be * a <code>mat2</code>, <code>mat3</code>, or <code>mat4</code>. * * @name czm_transpose * @glslFunction * * @param {} matrix The matrix to transpose. * * @returns {} The transposed matrix. * * @example * // GLSL declarations * mat2 czm_transpose(mat2 matrix); * mat3 czm_transpose(mat3 matrix); * mat4 czm_transpose(mat4 matrix); * * // Transpose a 3x3 rotation matrix to find its inverse. * mat3 eastNorthUpToEye = czm_eastNorthUpToEyeCoordinates( * positionMC, normalEC); * mat3 eyeToEastNorthUp = czm_transpose(eastNorthUpToEye); */ mat2 czm_transpose(mat2 matrix) { return mat2( matrix[0][0], matrix[1][0], matrix[0][1], matrix[1][1]); } mat3 czm_transpose(mat3 matrix) { return mat3( matrix[0][0], matrix[1][0], matrix[2][0], matrix[0][1], matrix[1][1], matrix[2][1], matrix[0][2], matrix[1][2], matrix[2][2]); } mat4 czm_transpose(mat4 matrix) { return mat4( matrix[0][0], matrix[1][0], matrix[2][0], matrix[3][0], matrix[0][1], matrix[1][1], matrix[2][1], matrix[3][1], matrix[0][2], matrix[1][2], matrix[2][2], matrix[3][2], matrix[0][3], matrix[1][3], matrix[2][3], matrix[3][3]); } `;var aI=`vec2 getLookupUv(vec2 dimensions, int i) { int pixY = i / int(dimensions.x); int pixX = i - (pixY * int(dimensions.x)); float pixelWidth = 1.0 / dimensions.x; float pixelHeight = 1.0 / dimensions.y; float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel float v = (float(pixY) + 0.5) * pixelHeight; return vec2(u, v); } vec4 czm_unpackClippingExtents(highp sampler2D extentsTexture, int index) { vec2 textureDimensions = vec2(textureSize(extentsTexture, 0)); return texture(extentsTexture, getLookupUv(textureDimensions, index)); }`;var cI=`/** * Unpacks a vec4 depth value to a float in [0, 1) range. * * @name czm_unpackDepth * @glslFunction * * @param {vec4} packedDepth The packed depth. * * @returns {float} The floating-point depth in [0, 1) range. */ float czm_unpackDepth(vec4 packedDepth) { // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ return dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)); } `;var lI=`/** * Unpack an IEEE 754 single-precision float that is packed as a little-endian unsigned normalized vec4. * * @name czm_unpackFloat * @glslFunction * * @param {vec4} packedFloat The packed float. * * @returns {float} The floating-point depth in arbitrary range. */ float czm_unpackFloat(vec4 packedFloat) { // Convert to [0.0, 255.0] and round to integer packedFloat = floor(packedFloat * 255.0 + 0.5); float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0; float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0; if (exponent == -127.0) { return 0.0; } float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000); float result = sign * exp2(exponent - 23.0) * mantissa; return result; } `;var uI=`/** * Unpack unsigned integers of 1-4 bytes. in WebGL 1, there is no uint type, * so the return value is an int. * <p> * There are also precision limitations in WebGL 1. highp int is still limited * to 24 bits. Above the value of 2^24 = 16777216, precision loss may occur. * </p> * * @param {float|vec2|vec3|vec4} packed The packed value. For vectors, the components are listed in little-endian order. * * @return {int} The unpacked value. */ int czm_unpackUint(float packedValue) { float rounded = czm_round(packedValue * 255.0); return int(rounded); } int czm_unpackUint(vec2 packedValue) { vec2 rounded = czm_round(packedValue * 255.0); return int(dot(rounded, vec2(1.0, 256.0))); } int czm_unpackUint(vec3 packedValue) { vec3 rounded = czm_round(packedValue * 255.0); return int(dot(rounded, vec3(1.0, 256.0, 65536.0))); } int czm_unpackUint(vec4 packedValue) { vec4 rounded = czm_round(packedValue * 255.0); return int(dot(rounded, vec4(1.0, 256.0, 65536.0, 16777216.0))); } `;var fI=`/** * Transform metadata values following the EXT_structural_metadata spec * by multiplying by scale and adding the offset. Operations are always * performed component-wise, even for matrices. * * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} offset The offset to add * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} scale The scale factor to multiply * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} value The original value. * * @return {float|vec2|vec3|vec4|mat2|mat3|mat4} The transformed value of the same scalar/vector/matrix type as the input. */ float czm_valueTransform(float offset, float scale, float value) { return scale * value + offset; } vec2 czm_valueTransform(vec2 offset, vec2 scale, vec2 value) { return scale * value + offset; } vec3 czm_valueTransform(vec3 offset, vec3 scale, vec3 value) { return scale * value + offset; } vec4 czm_valueTransform(vec4 offset, vec4 scale, vec4 value) { return scale * value + offset; } mat2 czm_valueTransform(mat2 offset, mat2 scale, mat2 value) { return matrixCompMult(scale, value) + offset; } mat3 czm_valueTransform(mat3 offset, mat3 scale, mat3 value) { return matrixCompMult(scale, value) + offset; } mat4 czm_valueTransform(mat4 offset, mat4 scale, mat4 value) { return matrixCompMult(scale, value) + offset; } `;var dI=`#ifdef LOG_DEPTH // 1.0 at the near plane, increasing linearly from there. out float v_depthFromNearPlusOne; #ifdef SHADOW_MAP out vec3 v_logPositionEC; #endif #endif vec4 czm_updatePositionDepth(vec4 coords) { #if defined(LOG_DEPTH) #ifdef SHADOW_MAP vec3 logPositionEC = (czm_inverseProjection * coords).xyz; v_logPositionEC = logPositionEC; #endif // With the very high far/near ratios used with the logarithmic depth // buffer, floating point rounding errors can cause linear depth values // to end up on the wrong side of the far plane, even for vertices that // are really nowhere near it. Since we always write a correct logarithmic // depth value in the fragment shader anyway, we just need to make sure // such errors don't cause the primitive to be clipped entirely before // we even get to the fragment shader. coords.z = clamp(coords.z / coords.w, -1.0, 1.0) * coords.w; #endif return coords; } /** * Writes the logarithmic depth to gl_Position using the already computed gl_Position. * * @name czm_vertexLogDepth * @glslFunction */ void czm_vertexLogDepth() { #ifdef LOG_DEPTH v_depthFromNearPlusOne = (gl_Position.w - czm_currentFrustum.x) + 1.0; gl_Position = czm_updatePositionDepth(gl_Position); #endif } /** * Writes the logarithmic depth to gl_Position using the provided clip coordinates. * <p> * An example use case for this function would be moving the vertex in window coordinates * before converting back to clip coordinates. Use the original vertex clip coordinates. * </p> * @name czm_vertexLogDepth * @glslFunction * * @param {vec4} clipCoords The vertex in clip coordinates. * * @example * czm_vertexLogDepth(czm_projection * vec4(positionEyeCoordinates, 1.0)); */ void czm_vertexLogDepth(vec4 clipCoords) { #ifdef LOG_DEPTH v_depthFromNearPlusOne = (clipCoords.w - czm_currentFrustum.x) + 1.0; czm_updatePositionDepth(clipCoords); #endif } `;var hI=`vec4 czm_screenToEyeCoordinates(vec4 screenCoordinate) { // Reconstruct NDC coordinates float x = 2.0 * screenCoordinate.x - 1.0; float y = 2.0 * screenCoordinate.y - 1.0; float z = (screenCoordinate.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; vec4 q = vec4(x, y, z, 1.0); // Reverse the perspective division to obtain clip coordinates. q /= screenCoordinate.w; // Reverse the projection transformation to obtain eye coordinates. if (!(czm_inverseProjection == mat4(0.0))) // IE and Edge sometimes do something weird with != between mat4s { q = czm_inverseProjection * q; } else { float top = czm_frustumPlanes.x; float bottom = czm_frustumPlanes.y; float left = czm_frustumPlanes.z; float right = czm_frustumPlanes.w; float near = czm_currentFrustum.x; float far = czm_currentFrustum.y; q.x = (q.x * (right - left) + left + right) * 0.5; q.y = (q.y * (top - bottom) + bottom + top) * 0.5; q.z = (q.z * (near - far) - near - far) * 0.5; q.w = 1.0; } return q; } /** * Transforms a position from window to eye coordinates. * The transform from window to normalized device coordinates is done using components * of (@link czm_viewport} and {@link czm_viewportTransformation} instead of calculating * the inverse of <code>czm_viewportTransformation</code>. The transformation from * normalized device coordinates to clip coordinates is done using <code>fragmentCoordinate.w</code>, * which is expected to be the scalar used in the perspective divide. The transformation * from clip to eye coordinates is done using {@link czm_inverseProjection}. * * @name czm_windowToEyeCoordinates * @glslFunction * * @param {vec4} fragmentCoordinate The position in window coordinates to transform. * * @returns {vec4} The transformed position in eye coordinates. * * @see czm_modelToWindowCoordinates * @see czm_eyeToWindowCoordinates * @see czm_inverseProjection * @see czm_viewport * @see czm_viewportTransformation * * @example * vec4 positionEC = czm_windowToEyeCoordinates(gl_FragCoord); */ vec4 czm_windowToEyeCoordinates(vec4 fragmentCoordinate) { vec2 screenCoordXY = (fragmentCoordinate.xy - czm_viewport.xy) / czm_viewport.zw; return czm_screenToEyeCoordinates(vec4(screenCoordXY, fragmentCoordinate.zw)); } vec4 czm_screenToEyeCoordinates(vec2 screenCoordinateXY, float depthOrLogDepth) { // See reverseLogDepth.glsl. This is separate to re-use the pow. #if defined(LOG_DEPTH) || defined(LOG_DEPTH_READ_ONLY) float near = czm_currentFrustum.x; float far = czm_currentFrustum.y; float log2Depth = depthOrLogDepth * czm_log2FarDepthFromNearPlusOne; float depthFromNear = pow(2.0, log2Depth) - 1.0; float depthFromCamera = depthFromNear + near; vec4 screenCoord = vec4(screenCoordinateXY, far * (1.0 - near / depthFromCamera) / (far - near), 1.0); vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); eyeCoordinate.w = 1.0 / depthFromCamera; // Better precision return eyeCoordinate; #else vec4 screenCoord = vec4(screenCoordinateXY, depthOrLogDepth, 1.0); vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); #endif return eyeCoordinate; } /** * Transforms a position given as window x/y and a depth or a log depth from window to eye coordinates. * This function produces more accurate results for window positions with log depth than * conventionally unpacking the log depth using czm_reverseLogDepth and using the standard version * of czm_windowToEyeCoordinates. * * @name czm_windowToEyeCoordinates * @glslFunction * * @param {vec2} fragmentCoordinateXY The XY position in window coordinates to transform. * @param {float} depthOrLogDepth A depth or log depth for the fragment. * * @see czm_modelToWindowCoordinates * @see czm_eyeToWindowCoordinates * @see czm_inverseProjection * @see czm_viewport * @see czm_viewportTransformation * * @returns {vec4} The transformed position in eye coordinates. */ vec4 czm_windowToEyeCoordinates(vec2 fragmentCoordinateXY, float depthOrLogDepth) { vec2 screenCoordXY = (fragmentCoordinateXY.xy - czm_viewport.xy) / czm_viewport.zw; return czm_screenToEyeCoordinates(screenCoordXY, depthOrLogDepth); } `;var mI=`// emulated noperspective #if !defined(LOG_DEPTH) in float v_WindowZ; #endif /** * Emulates GL_DEPTH_CLAMP. Clamps a fragment to the near and far plane * by writing the fragment's depth. See czm_depthClamp for more details. * * @name czm_writeDepthClamp * @glslFunction * * @example * out_FragColor = color; * czm_writeDepthClamp(); * * @see czm_depthClamp */ void czm_writeDepthClamp() { #if (!defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) gl_FragDepth = clamp(v_WindowZ * gl_FragCoord.w, 0.0, 1.0); #endif } `;var pI=`#ifdef LOG_DEPTH in float v_depthFromNearPlusOne; #ifdef POLYGON_OFFSET uniform vec2 u_polygonOffset; #endif #endif /** * Writes the fragment depth to the logarithmic depth buffer. * <p> * Use this when the vertex shader does not call {@link czm_vertexlogDepth}, for example, when * ray-casting geometry using a full screen quad. * </p> * @name czm_writeLogDepth * @glslFunction * * @param {float} depth The depth coordinate, where 1.0 is on the near plane and * depth increases in eye-space units from there * * @example * czm_writeLogDepth((czm_projection * v_positionEyeCoordinates).w + 1.0); */ void czm_writeLogDepth(float depth) { #if (defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) // Discard the vertex if it's not between the near and far planes. // We allow a bit of epsilon on the near plane comparison because a 1.0 // from the vertex shader (indicating the vertex should be _on_ the near // plane) will not necessarily come here as exactly 1.0. if (depth <= 0.9999999 || depth > czm_farDepthFromNearPlusOne) { discard; } #ifdef POLYGON_OFFSET // Polygon offset: m * factor + r * units float factor = u_polygonOffset[0]; float units = u_polygonOffset[1]; #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) // This factor doesn't work in IE 10 if (factor != 0.0) { // m = sqrt(dZdX^2 + dZdY^2); float x = dFdx(depth); float y = dFdy(depth); float m = sqrt(x * x + y * y); // Apply the factor before computing the log depth. depth += m * factor; } #endif #endif gl_FragDepth = log2(depth) * czm_oneOverLog2FarDepthFromNearPlusOne; #ifdef POLYGON_OFFSET // Apply the units after the log depth. gl_FragDepth += czm_epsilon7 * units; #endif #endif } /** * Writes the fragment depth to the logarithmic depth buffer. * <p> * Use this when the vertex shader calls {@link czm_vertexlogDepth}. * </p> * * @name czm_writeLogDepth * @glslFunction */ void czm_writeLogDepth() { #ifdef LOG_DEPTH czm_writeLogDepth(v_depthFromNearPlusOne); #endif } `;var _I=`/** * Transforms a value for non-perspective interpolation by multiplying * it by w, the value used in the perspective divide. This function is * intended to be called in a vertex shader to compute the value of a * \`varying\` that should not be subject to perspective interpolation. * For example, screen-space texture coordinates. The fragment shader * must call {@link czm_readNonPerspective} to retrieve the final * non-perspective value. * * @name czm_writeNonPerspective * @glslFunction * * @param {float|vec2|vec3|vec4} value The value to be interpolated without accounting for perspective. * @param {float} w The perspective divide value. Usually this is the computed \`gl_Position.w\`. * @returns {float|vec2|vec3|vec4} The transformed value, intended to be stored in a \`varying\` and read in the * fragment shader with {@link czm_readNonPerspective}. */ float czm_writeNonPerspective(float value, float w) { return value * w; } vec2 czm_writeNonPerspective(vec2 value, float w) { return value * w; } vec3 czm_writeNonPerspective(vec3 value, float w) { return value * w; } vec4 czm_writeNonPerspective(vec4 value, float w) { return value * w; } `;var ux={czm_degreesPerRadian:Gw,czm_depthRange:Ww,czm_epsilon1:jw,czm_epsilon2:qw,czm_epsilon3:Yw,czm_epsilon4:Xw,czm_epsilon5:Kw,czm_epsilon6:Zw,czm_epsilon7:$w,czm_infinity:Qw,czm_oneOverPi:Jw,czm_oneOverTwoPi:eD,czm_passCesium3DTile:tD,czm_passCesium3DTileClassification:nD,czm_passCesium3DTileClassificationIgnoreShow:iD,czm_passClassification:oD,czm_passCompute:rD,czm_passEnvironment:sD,czm_passGlobe:aD,czm_passOpaque:cD,czm_passOverlay:lD,czm_passTerrainClassification:uD,czm_passTranslucent:fD,czm_passVoxels:dD,czm_pi:hD,czm_piOverFour:mD,czm_piOverSix:pD,czm_piOverThree:_D,czm_piOverTwo:gD,czm_radiansPerDegree:yD,czm_sceneMode2D:xD,czm_sceneMode3D:bD,czm_sceneModeColumbusView:TD,czm_sceneModeMorphing:AD,czm_solarRadius:CD,czm_threePiOver2:ED,czm_twoPi:SD,czm_webMercatorMaxLatitude:vD,czm_depthRangeStruct:wD,czm_material:DD,czm_materialInput:PD,czm_modelMaterial:ID,czm_modelVertexOutput:RD,czm_ray:OD,czm_raySegment:MD,czm_shadowParameters:LD,czm_HSBToRGB:ND,czm_HSLToRGB:FD,czm_RGBToHSB:BD,czm_RGBToHSL:kD,czm_RGBToXYZ:VD,czm_XYZToRGB:UD,czm_acesTonemapping:zD,czm_alphaWeight:HD,czm_antialias:GD,czm_applyHSBShift:WD,czm_approximateSphericalCoordinates:jD,czm_approximateTanh:qD,czm_backFacing:YD,czm_branchFreeTernary:XD,czm_cascadeColor:KD,czm_cascadeDistance:ZD,czm_cascadeMatrix:$D,czm_cascadeWeights:QD,czm_clipPolygons:JD,czm_columbusViewMorph:eP,czm_computeAtmosphereColor:tP,czm_computeGroundAtmosphereScattering:nP,czm_computePosition:iP,czm_computeScattering:oP,czm_cosineAndSine:rP,czm_decompressTextureCoordinates:sP,czm_depthClamp:aP,czm_eastNorthUpToEyeCoordinates:cP,czm_ellipsoidContainsPoint:lP,czm_ellipsoidWgs84TextureCoordinates:uP,czm_equalsEpsilon:fP,czm_eyeOffset:dP,czm_eyeToWindowCoordinates:hP,czm_fastApproximateAtan:mP,czm_fog:pP,czm_gammaCorrect:_P,czm_geodeticSurfaceNormal:gP,czm_getDefaultMaterial:yP,czm_getDynamicAtmosphereLightDirection:xP,czm_getLambertDiffuse:bP,czm_getSpecular:TP,czm_getWaterNoise:AP,czm_hue:CP,czm_inverseGamma:EP,czm_isEmpty:SP,czm_isFull:vP,czm_latitudeToWebMercatorFraction:wP,czm_lineDistance:DP,czm_linearToSrgb:PP,czm_luminance:IP,czm_maximumComponent:RP,czm_metersPerPixel:OP,czm_modelToWindowCoordinates:MP,czm_multiplyWithColorBalance:LP,czm_nearFarScalar:NP,czm_octDecode:FP,czm_packDepth:BP,czm_pbrLighting:kP,czm_phong:VP,czm_planeDistance:UP,czm_pointAlongRay:zP,czm_rayEllipsoidIntersectionInterval:HP,czm_raySphereIntersectionInterval:GP,czm_readDepth:WP,czm_readNonPerspective:jP,czm_reverseLogDepth:qP,czm_round:YP,czm_sampleOctahedralProjection:XP,czm_saturation:KP,czm_shadowDepthCompare:ZP,czm_shadowVisibility:$P,czm_signNotZero:QP,czm_sphericalHarmonics:JP,czm_srgbToLinear:eI,czm_tangentToEyeSpaceMatrix:tI,czm_textureCube:nI,czm_transformPlane:iI,czm_translateRelativeToEye:oI,czm_translucentPhong:rI,czm_transpose:sI,czm_unpackClippingExtents:aI,czm_unpackDepth:cI,czm_unpackFloat:lI,czm_unpackUint:uI,czm_valueTransform:fI,czm_vertexLogDepth:dI,czm_windowToEyeCoordinates:hI,czm_writeDepthClamp:mI,czm_writeLogDepth:pI,czm_writeNonPerspective:_I};function kPe(e,t){let n=e;return n=n.replaceAll("version 300 es",""),n=n.replaceAll(/(texture\()/g,"texture2D("),t?(n=n.replaceAll(/\n\s*(in)\s+(vec\d|mat\d|float)/g,` varying $2`),/out_FragData_(\d+)/.test(n)&&(n=`#extension GL_EXT_draw_buffers : enable ${n}`,n=n.replaceAll(/layout\s+\(location\s*=\s*\d+\)\s*out\s+vec4\s+out_FragData_\d+;/g,""),n=n.replaceAll(/out_FragData_(\d+)/g,"gl_FragData[$1]")),n=n.replaceAll(/layout\s+\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,""),n=n.replaceAll(/out_FragColor/g,"gl_FragColor"),n=n.replaceAll(/out_FragColor\[(\d+)\]/g,"gl_FragColor[$1]"),/gl_FragDepth/.test(n)&&(n=`#extension GL_EXT_frag_depth : enable ${n}`,n=n.replaceAll(/gl_FragDepth/g,"gl_FragDepthEXT")),n=`#ifdef GL_OES_standard_derivatives #extension GL_OES_standard_derivatives : enable #endif ${n}`):(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"attribute $2"),n=n.replaceAll(/(out)\s+(vec\d|mat\d|float)\s+([\w]+);/g,"varying $2 $3;")),n=`#version 100 ${n}`,n}var gI=kPe;function Kee(e){return e=e.replace(/\/\/.*/g,""),e.replace(/\/\*\*[\s\S]*?\*\//gm,function(t){let n=t.match(/\n/gm).length,i="";for(let o=0;o<n;++o)i+=` `;return i})}function Zee(e,t,n){let i;for(let o=0;o<n.length;++o)n[o].name===e&&(i=n[o]);return l(i)||(t=Kee(t),i={name:e,glslSource:t,dependsOn:[],requiredBy:[],evaluated:!1},n.push(i)),i}function $ee(e,t){if(e.evaluated)return;e.evaluated=!0;let n=e.glslSource.match(/\bczm_[a-zA-Z0-9_]*/g);l(n)&&n!==null&&(n=n.filter(function(i,o){return n.indexOf(i)===o}),n.forEach(function(i){if(i!==e.name&&Rs._czmBuiltinsAndUniforms.hasOwnProperty(i)){let o=Zee(i,Rs._czmBuiltinsAndUniforms[i],t);e.dependsOn.push(o),o.requiredBy.push(e),$ee(o,t)}}))}function VPe(e){let t=[],n=[];for(;e.length>0;){let o=e.pop();n.push(o),o.requiredBy.length===0&&t.push(o)}for(;t.length>0;){let o=t.shift();e.push(o);for(let r=0;r<o.dependsOn.length;++r){let s=o.dependsOn[r],a=s.requiredBy.indexOf(o);s.requiredBy.splice(a,1),s.requiredBy.length===0&&t.push(s)}}let i=[];for(let o=0;o<n.length;++o)n[o].requiredBy.length!==0&&i.push(n[o])}function UPe(e){let t=[],n=Zee("main",e,t);$ee(n,t),VPe(t);let i="";for(let o=t.length-1;o>=0;--o)i=`${i+t[o].glslSource} `;return i.replace(n.glslSource,"")}function Qee(e,t,n){let i,o,r="",s=e.sources;if(l(s))for(i=0,o=s.length;i<o;++i)r+=` #line 0 ${s[i]}`;r=Kee(r);let a;r=r.replace(/#version\s+(.*?)\n/gm,function(x,b){return a=b,` `});let c=[];r=r.replace(/#extension.*\n/gm,function(x){return c.push(x),` `}),r=r.replace(/precision\s(lowp|mediump|highp)\s(float|int);/,"");let u=e.pickColorQualifier;l(u)&&(r=Rs.createPickFragmentShaderSource(r,u));let f="",d=c.length;for(i=0;i<d;i++)f+=c[i];t&&(f+=`#ifdef GL_FRAGMENT_PRECISION_HIGH precision highp float; precision highp int; #else precision mediump float; precision mediump int; #define highp mediump #endif `);let p=e.defines;if(l(p))for(i=0,o=p.length;i<o;++i){let x=p[i];x.length!==0&&(f+=`#define ${x} `)}n.textureFloatLinear&&(f+=`#define OES_texture_float_linear `),n.floatingPointTexture&&(f+=`#define OES_texture_float `);let g="";e.includeBuiltIns&&(g=UPe(r)),f+=` #line 0 `;let m=g+r;return n.webgl2&&t&&!/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g.test(m)&&!/czm_out_FragColor/g.test(m)&&/out_FragColor/g.test(m)&&(f+=`layout(location = 0) out vec4 out_FragColor; `),f+=g,f+=r,n.webgl2?f=`#version 300 es ${f}`:f=gI(f,t),f}function Rs(e){e=y(e,y.EMPTY_OBJECT);let t=e.pickColorQualifier;this.defines=l(e.defines)?e.defines.slice(0):[],this.sources=l(e.sources)?e.sources.slice(0):[],this.pickColorQualifier=t,this.includeBuiltIns=y(e.includeBuiltIns,!0)}Rs.prototype.clone=function(){return new Rs({sources:this.sources,defines:this.defines,pickColorQualifier:this.pickColorQualifier,includeBuiltIns:this.includeBuiltIns})};Rs.replaceMain=function(e,t){return t=`void ${t}()`,e.replace(/void\s+main\s*\(\s*(?:void)?\s*\)/g,t)};Rs.prototype.getCacheKey=function(){let t=this.defines.slice().sort().join(","),n=this.pickColorQualifier,i=this.includeBuiltIns,o=this.sources.join(` `);return`${t}:${n}:${i}:${o}`};Rs.prototype.createCombinedVertexShader=function(e){return Qee(this,!1,e)};Rs.prototype.createCombinedFragmentShader=function(e){return Qee(this,!0,e)};Rs._czmBuiltinsAndUniforms={};for(let e in ux)ux.hasOwnProperty(e)&&(Rs._czmBuiltinsAndUniforms[e]=ux[e]);for(let e in xp)if(xp.hasOwnProperty(e)){let t=xp[e];typeof t.getDeclaration=="function"&&(Rs._czmBuiltinsAndUniforms[e]=t.getDeclaration(e))}Rs.createPickVertexShaderSource=function(e){return`${Rs.replaceMain(e,"czm_old_main")} in vec4 pickColor; out vec4 czm_pickColor; void main() { czm_old_main(); czm_pickColor = pickColor; }`};Rs.createPickFragmentShaderSource=function(e,t){let n=Rs.replaceMain(e,"czm_old_main"),i=`${t} vec4 czm_pickColor; void main() { czm_old_main(); if (out_FragColor.a == 0.0) { discard; } out_FragColor = czm_pickColor; }`;return`${n} ${i}`};function zPe(e,t){let n=e.defines,i=n.length;for(let o=0;o<i;++o)if(n[o]===t)return!0;return!1}function Jee(e,t){let n=e.sources,i=n.length;for(let o=0;o<i;++o)if(n[o].indexOf(t)!==-1)return!0;return!1}function ete(e,t){let n=t.length;for(let i=0;i<n;++i){let o=t[i];if(Jee(e,o))return o}}var HPe=["v_normalEC","v_normal"];Rs.findNormalVarying=function(e){return Jee(e,"#ifdef HAS_NORMALS")?zPe(e,"HAS_NORMALS")?"v_normalEC":void 0:ete(e,HPe)};var GPe=["v_positionEC"];Rs.findPositionVarying=function(e){return ete(e,GPe)};var ze=Rs;var yI=`in vec3 position3DHigh; in vec3 position3DLow; in float batchId; #ifdef EXTRUDED_GEOMETRY in vec3 extrudeDirection; uniform float u_globeMinimumAltitude; #endif // EXTRUDED_GEOMETRY #ifdef PER_INSTANCE_COLOR out vec4 v_color; #endif // PER_INSTANCE_COLOR #ifdef TEXTURE_COORDINATES #ifdef SPHERICAL out vec4 v_sphericalExtents; #else // SPHERICAL out vec2 v_inversePlaneExtents; out vec4 v_westPlane; out vec4 v_southPlane; #endif // SPHERICAL out vec3 v_uvMinAndSphericalLongitudeRotation; out vec3 v_uMaxAndInverseDistance; out vec3 v_vMaxAndInverseDistance; #endif // TEXTURE_COORDINATES void main() { vec4 position = czm_computePosition(); #ifdef EXTRUDED_GEOMETRY float delta = min(u_globeMinimumAltitude, czm_geometricToleranceOverMeter * length(position.xyz)); delta *= czm_sceneMode == czm_sceneMode3D ? 1.0 : 0.0; //extrudeDirection is zero for the top layer position = position + vec4(extrudeDirection * delta, 0.0); #endif #ifdef TEXTURE_COORDINATES #ifdef SPHERICAL v_sphericalExtents = czm_batchTable_sphericalExtents(batchId); v_uvMinAndSphericalLongitudeRotation.z = czm_batchTable_longitudeRotation(batchId); #else // SPHERICAL #ifdef COLUMBUS_VIEW_2D vec4 planes2D_high = czm_batchTable_planes2D_HIGH(batchId); vec4 planes2D_low = czm_batchTable_planes2D_LOW(batchId); // If the primitive is split across the IDL (planes2D_high.x > planes2D_high.w): // - If this vertex is on the east side of the IDL (position3DLow.y > 0.0, comparison with position3DHigh may produce artifacts) // - existing "east" is on the wrong side of the world, far away (planes2D_high/low.w) // - so set "east" as beyond the eastmost extent of the projection (idlSplitNewPlaneHiLow) vec2 idlSplitNewPlaneHiLow = vec2(EAST_MOST_X_HIGH - (WEST_MOST_X_HIGH - planes2D_high.w), EAST_MOST_X_LOW - (WEST_MOST_X_LOW - planes2D_low.w)); bool idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y > 0.0; planes2D_high.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.w); planes2D_low.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.w); // - else, if this vertex is on the west side of the IDL (position3DLow.y < 0.0) // - existing "west" is on the wrong side of the world, far away (planes2D_high/low.x) // - so set "west" as beyond the westmost extent of the projection (idlSplitNewPlaneHiLow) idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y < 0.0; idlSplitNewPlaneHiLow = vec2(WEST_MOST_X_HIGH - (EAST_MOST_X_HIGH - planes2D_high.x), WEST_MOST_X_LOW - (EAST_MOST_X_LOW - planes2D_low.x)); planes2D_high.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.x); planes2D_low.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.x); vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.xy), vec3(0.0, planes2D_low.xy))).xyz; vec3 northWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.x, planes2D_high.z), vec3(0.0, planes2D_low.x, planes2D_low.z))).xyz; vec3 southEastCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.w, planes2D_high.y), vec3(0.0, planes2D_low.w, planes2D_low.y))).xyz; #else // COLUMBUS_VIEW_2D // 3D case has smaller "plane extents," so planes encoded as a 64 bit position and 2 vec3s for distances/direction vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(czm_batchTable_southWest_HIGH(batchId), czm_batchTable_southWest_LOW(batchId))).xyz; vec3 northWestCorner = czm_normal * czm_batchTable_northward(batchId) + southWestCorner; vec3 southEastCorner = czm_normal * czm_batchTable_eastward(batchId) + southWestCorner; #endif // COLUMBUS_VIEW_2D vec3 eastWard = southEastCorner - southWestCorner; float eastExtent = length(eastWard); eastWard /= eastExtent; vec3 northWard = northWestCorner - southWestCorner; float northExtent = length(northWard); northWard /= northExtent; v_westPlane = vec4(eastWard, -dot(eastWard, southWestCorner)); v_southPlane = vec4(northWard, -dot(northWard, southWestCorner)); v_inversePlaneExtents = vec2(1.0 / eastExtent, 1.0 / northExtent); #endif // SPHERICAL vec4 uvMinAndExtents = czm_batchTable_uvMinAndExtents(batchId); vec4 uMaxVmax = czm_batchTable_uMaxVmax(batchId); v_uMaxAndInverseDistance = vec3(uMaxVmax.xy, uvMinAndExtents.z); v_vMaxAndInverseDistance = vec3(uMaxVmax.zw, uvMinAndExtents.w); v_uvMinAndSphericalLongitudeRotation.xy = uvMinAndExtents.xy; #endif // TEXTURE_COORDINATES #ifdef PER_INSTANCE_COLOR v_color = czm_batchTable_color(batchId); #endif gl_Position = czm_depthClamp(czm_modelViewProjectionRelativeToEye * position); } `;var Ng=`#ifdef VECTOR_TILE uniform vec4 u_highlightColor; #endif void main(void) { #ifdef VECTOR_TILE out_FragColor = czm_gammaCorrect(u_highlightColor); #else out_FragColor = vec4(1.0); #endif czm_writeDepthClamp(); } `;var tte={TERRAIN:0,CESIUM_3D_TILE:1,BOTH:2};tte.NUMBER_OF_CLASSIFICATION_TYPES=3;var Vn=Object.freeze(tte);var WPe={NEVER:ee.NEVER,LESS:ee.LESS,EQUAL:ee.EQUAL,LESS_OR_EQUAL:ee.LEQUAL,GREATER:ee.GREATER,NOT_EQUAL:ee.NOTEQUAL,GREATER_OR_EQUAL:ee.GEQUAL,ALWAYS:ee.ALWAYS},tc=Object.freeze(WPe);function im(){this.high=h.clone(h.ZERO),this.low=h.clone(h.ZERO)}im.encode=function(e,t){l(t)||(t={high:0,low:0});let n;return e>=0?(n=Math.floor(e/65536)*65536,t.high=n,t.low=e-n):(n=Math.floor(-e/65536)*65536,t.high=-n,t.low=e+n),t};var Tp={high:0,low:0};im.fromCartesian=function(e,t){l(t)||(t=new im);let n=t.high,i=t.low;return im.encode(e.x,Tp),n.x=Tp.high,i.x=Tp.low,im.encode(e.y,Tp),n.y=Tp.high,i.y=Tp.low,im.encode(e.z,Tp),n.z=Tp.high,i.z=Tp.low,t};var r6=new im;im.writeElements=function(e,t,n){im.fromCartesian(e,r6);let i=r6.high,o=r6.low;t[n]=i.x,t[n+1]=i.y,t[n+2]=i.z,t[n+3]=o.x,t[n+4]=o.y,t[n+5]=o.z};var Gn=im;function jPe(e,t){let n=[],i=e.length,o=0;for(;o<i;){let r=Math.ceil((i-o)/t--);n.push(e.slice(o,o+r)),o+=r}return n}var xI=jPe;var bV={STREAM_DRAW:ee.STREAM_DRAW,STATIC_DRAW:ee.STATIC_DRAW,DYNAMIC_DRAW:ee.DYNAMIC_DRAW,validate:function(e){return e===bV.STREAM_DRAW||e===bV.STATIC_DRAW||e===bV.DYNAMIC_DRAW}},Fe=Object.freeze(bV);var Os={UNSIGNED_BYTE:ee.UNSIGNED_BYTE,UNSIGNED_SHORT:ee.UNSIGNED_SHORT,UNSIGNED_INT:ee.UNSIGNED_INT};Os.getSizeInBytes=function(e){switch(e){case Os.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case Os.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case Os.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}};Os.fromSizeInBytes=function(e){switch(e){case 2:return Os.UNSIGNED_SHORT;case 4:return Os.UNSIGNED_INT;case 1:return Os.UNSIGNED_BYTE}};Os.validate=function(e){return l(e)&&(e===Os.UNSIGNED_BYTE||e===Os.UNSIGNED_SHORT||e===Os.UNSIGNED_INT)};Os.createTypedArray=function(e,t){return e>=R.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)};Os.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=R.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)};Os.fromTypedArray=function(e){if(e instanceof Uint8Array)return Os.UNSIGNED_BYTE;if(e instanceof Uint16Array)return Os.UNSIGNED_SHORT;if(e instanceof Uint32Array)return Os.UNSIGNED_INT};var Ne=Object.freeze(Os);function hf(e){e=y(e,y.EMPTY_OBJECT);let t=e.context._gl,n=e.bufferTarget,i=e.typedArray,o=e.sizeInBytes,r=e.usage,s=l(i);s&&(o=i.byteLength);let a=t.createBuffer();t.bindBuffer(n,a),t.bufferData(n,s?i:o,r),t.bindBuffer(n,null),this._id=Hn(),this._gl=t,this._webgl2=e.context._webgl2,this._bufferTarget=n,this._sizeInBytes=o,this._usage=r,this._buffer=a,this.vertexArrayDestroyable=!0}hf.createVertexBuffer=function(e){return new hf({context:e.context,bufferTarget:ee.ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage})};hf.createIndexBuffer=function(e){let t=e.context,n=e.indexDatatype,i=Ne.getSizeInBytes(n),o=new hf({context:t,bufferTarget:ee.ELEMENT_ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage}),r=o.sizeInBytes/i;return Object.defineProperties(o,{indexDatatype:{get:function(){return n}},bytesPerIndex:{get:function(){return i}},numberOfIndices:{get:function(){return r}}}),o};Object.defineProperties(hf.prototype,{sizeInBytes:{get:function(){return this._sizeInBytes}},usage:{get:function(){return this._usage}}});hf.prototype._getBuffer=function(){return this._buffer};hf.prototype.copyFromArrayView=function(e,t){t=y(t,0);let n=this._gl,i=this._bufferTarget;n.bindBuffer(i,this._buffer),n.bufferSubData(i,t,e),n.bindBuffer(i,null)};hf.prototype.copyFromBuffer=function(e,t,n,i){let o=ee.COPY_READ_BUFFER,r=ee.COPY_WRITE_BUFFER,s=this._gl;s.bindBuffer(r,this._buffer),s.bindBuffer(o,e._buffer),s.copyBufferSubData(o,r,t,n,i),s.bindBuffer(r,null),s.bindBuffer(o,null)};hf.prototype.getBufferData=function(e,t,n,i){t=y(t,0),n=y(n,0);let o=this._gl,r=ee.COPY_READ_BUFFER;o.bindBuffer(r,this._buffer),o.getBufferSubData(r,t,e,n,i),o.bindBuffer(r,null)};hf.prototype.isDestroyed=function(){return!1};hf.prototype.destroy=function(){return this._gl.deleteBuffer(this._buffer),ue(this)};var ct=hf;function qPe(e,t,n,i){let o=l(t.vertexBuffer),r=l(t.value),s=t.value?t.value.length:t.componentsPerAttribute,a={index:y(t.index,n),enabled:y(t.enabled,!0),vertexBuffer:t.vertexBuffer,value:r?t.value.slice(0):void 0,componentsPerAttribute:s,componentDatatype:y(t.componentDatatype,X.FLOAT),normalize:y(t.normalize,!1),offsetInBytes:y(t.offsetInBytes,0),strideInBytes:y(t.strideInBytes,0),instanceDivisor:y(t.instanceDivisor,0)};if(o)a.vertexAttrib=function(c){let u=this.index;c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer._getBuffer()),c.vertexAttribPointer(u,this.componentsPerAttribute,this.componentDatatype,this.normalize,this.strideInBytes,this.offsetInBytes),c.enableVertexAttribArray(u),this.instanceDivisor>0&&(i.glVertexAttribDivisor(u,this.instanceDivisor),i._vertexAttribDivisors[u]=this.instanceDivisor,i._previousDrawInstanced=!0)},a.disableVertexAttribArray=function(c){c.disableVertexAttribArray(this.index),this.instanceDivisor>0&&i.glVertexAttribDivisor(n,0)};else{switch(a.componentsPerAttribute){case 1:a.vertexAttrib=function(c){c.vertexAttrib1fv(this.index,this.value)};break;case 2:a.vertexAttrib=function(c){c.vertexAttrib2fv(this.index,this.value)};break;case 3:a.vertexAttrib=function(c){c.vertexAttrib3fv(this.index,this.value)};break;case 4:a.vertexAttrib=function(c){c.vertexAttrib4fv(this.index,this.value)};break}a.disableVertexAttribArray=function(c){}}e.push(a)}function ite(e,t,n){for(let i=0;i<t.length;++i){let o=t[i];o.enabled&&o.vertexAttrib(e)}l(n)&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n._getBuffer())}function Ap(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=t._gl,i=e.attributes,o=e.indexBuffer,r,s=[],a=1,c=!1,u=!1,f=i.length;for(r=0;r<f;++r)qPe(s,i[r],r,t);for(f=s.length,r=0;r<f;++r){let p=s[r];if(l(p.vertexBuffer)&&p.instanceDivisor===0){let g=p.strideInBytes||p.componentsPerAttribute*X.getSizeInBytes(p.componentDatatype);a=p.vertexBuffer.sizeInBytes/g;break}}for(r=0;r<f;++r)s[r].instanceDivisor>0&&(c=!0),l(s[r].value)&&(u=!0);let d;t.vertexArrayObject&&(d=t.glCreateVertexArray(),t.glBindVertexArray(d),ite(n,s,o),t.glBindVertexArray(null)),this._numberOfVertices=a,this._hasInstancedAttributes=c,this._hasConstantAttributes=u,this._context=t,this._gl=n,this._vao=d,this._attributes=s,this._indexBuffer=o}function nte(e){return e.values.length/e.componentsPerAttribute}function YPe(e){return X.getSizeInBytes(e.componentDatatype)*e.componentsPerAttribute}function XPe(e){let t,n,i,o=[];for(n in e)e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)&&(o.push(n),e[n].componentDatatype===X.DOUBLE&&(e[n].componentDatatype=X.FLOAT,e[n].values=X.createTypedArray(X.FLOAT,e[n].values)));let r,s=o.length;if(s>0)for(r=nte(e[o[0]]),t=1;t<s;++t){let u=nte(e[o[t]]);if(u!==r)throw new le(`Each attribute list must have the same number of vertices. Attribute ${o[t]} has a different number of vertices (${u.toString()}) than attribute ${o[0]} (${r.toString()}).`)}o.sort(function(u,f){return X.getSizeInBytes(e[f].componentDatatype)-X.getSizeInBytes(e[u].componentDatatype)});let a=0,c={};for(t=0;t<s;++t)n=o[t],i=e[n],c[n]=a,a+=YPe(i);if(a>0){let u=X.getSizeInBytes(e[o[0]].componentDatatype),f=a%u;f!==0&&(a+=u-f);let d=r*a,p=new ArrayBuffer(d),g={};for(t=0;t<s;++t){n=o[t];let m=X.getSizeInBytes(e[n].componentDatatype);g[n]={pointer:X.createTypedArray(e[n].componentDatatype,p),index:c[n]/m,strideInComponentType:a/m}}for(t=0;t<r;++t)for(let m=0;m<s;++m){n=o[m],i=e[n];let x=i.values,b=g[n],T=b.pointer,C=i.componentsPerAttribute;for(let A=0;A<C;++A)T[b.index+A]=x[t*C+A];b.index+=b.strideInComponentType}return{buffer:p,offsetsInBytes:c,vertexSizeInBytes:a}}}Ap.fromGeometry=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=y(e.geometry,y.EMPTY_OBJECT),i=y(e.bufferUsage,Fe.DYNAMIC_DRAW),o=y(e.attributeLocations,y.EMPTY_OBJECT),r=y(e.interleave,!1),s=e.vertexArrayAttributes,a,c,u,f=l(s)?s:[],d=n.attributes;if(r){let m=XPe(d);if(l(m)){u=ct.createVertexBuffer({context:t,typedArray:m.buffer,usage:i});let x=m.offsetsInBytes,b=m.vertexSizeInBytes;for(a in d)d.hasOwnProperty(a)&&l(d[a])&&(c=d[a],l(c.values)?f.push({index:o[a],vertexBuffer:u,componentDatatype:c.componentDatatype,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize,offsetInBytes:x[a],strideInBytes:b}):f.push({index:o[a],value:c.value,componentDatatype:c.componentDatatype,normalize:c.normalize}))}}else for(a in d)if(d.hasOwnProperty(a)&&l(d[a])){c=d[a];let m=c.componentDatatype;m===X.DOUBLE&&(m=X.FLOAT),u=void 0,l(c.values)&&(u=ct.createVertexBuffer({context:t,typedArray:X.createTypedArray(m,c.values),usage:i})),f.push({index:o[a],vertexBuffer:u,value:c.value,componentDatatype:m,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize})}let p,g=n.indices;return l(g)&&(st.computeNumberOfVertices(n)>=R.SIXTY_FOUR_KILOBYTES&&t.elementIndexUint?p=ct.createIndexBuffer({context:t,typedArray:new Uint32Array(g),usage:i,indexDatatype:Ne.UNSIGNED_INT}):p=ct.createIndexBuffer({context:t,typedArray:new Uint16Array(g),usage:i,indexDatatype:Ne.UNSIGNED_SHORT})),new Ap({context:t,attributes:f,indexBuffer:p})};Object.defineProperties(Ap.prototype,{numberOfAttributes:{get:function(){return this._attributes.length}},numberOfVertices:{get:function(){return this._numberOfVertices}},indexBuffer:{get:function(){return this._indexBuffer}}});Ap.prototype.getAttribute=function(e){return this._attributes[e]};function KPe(e){let t=e._context,n=e._hasInstancedAttributes;if(!n&&!t._previousDrawInstanced)return;t._previousDrawInstanced=n;let i=t._vertexAttribDivisors,o=e._attributes,r=Nt.maximumVertexAttributes,s;if(n){let a=o.length;for(s=0;s<a;++s){let c=o[s];if(c.enabled){let u=c.instanceDivisor,f=c.index;u!==i[f]&&(t.glVertexAttribDivisor(f,u),i[f]=u)}}}else for(s=0;s<r;++s)i[s]>0&&(t.glVertexAttribDivisor(s,0),i[s]=0)}function ZPe(e,t){let n=e._attributes,i=n.length;for(let o=0;o<i;++o){let r=n[o];r.enabled&&l(r.value)&&r.vertexAttrib(t)}}Ap.prototype._bind=function(){l(this._vao)?(this._context.glBindVertexArray(this._vao),this._context.instancedArrays&&KPe(this),this._hasConstantAttributes&&ZPe(this,this._gl)):ite(this._gl,this._attributes,this._indexBuffer)};Ap.prototype._unBind=function(){if(l(this._vao))this._context.glBindVertexArray(null);else{let e=this._attributes,t=this._gl;for(let n=0;n<e.length;++n){let i=e[n];i.enabled&&i.disableVertexAttribArray(t)}this._indexBuffer&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)}};Ap.prototype.isDestroyed=function(){return!1};Ap.prototype.destroy=function(){let e=this._attributes;for(let n=0;n<e.length;++n){let i=e[n].vertexBuffer;l(i)&&!i.isDestroyed()&&i.vertexArrayDestroyable&&i.destroy()}let t=this._indexBuffer;return l(t)&&!t.isDestroyed()&&t.vertexArrayDestroyable&&t.destroy(),l(this._vao)&&this._context.glDeleteVertexArray(this._vao),ue(this)};var ei=Ap;function Cp(e,t,n){if(this._attributes=t,this._numberOfInstances=n,t.length===0)return;let i=$Pe(t),o=e.floatingPointTexture,r=i===We.FLOAT&&!o,s=QPe(t,r),a=JPe(s,t,r),c=Math.floor(Nt.maximumTextureSize/a),u=Math.min(n,c),f=a*u,d=Math.ceil(n/u),p=1/f,g=p*.5,m=1/d,x=m*.5;this._textureDimensions=new z(f,d),this._textureStep=new oe(p,g,m,x),this._pixelDatatype=r?We.UNSIGNED_BYTE:i,this._packFloats=r,this._offsets=s,this._stride=a,this._texture=void 0;let b=4*f*d;this._batchValues=i===We.FLOAT&&!r?new Float32Array(b):new Uint8Array(b),this._batchValuesDirty=!1}Object.defineProperties(Cp.prototype,{attributes:{get:function(){return this._attributes}},numberOfInstances:{get:function(){return this._numberOfInstances}}});function $Pe(e){let t=!1,n=e.length;for(let i=0;i<n;++i)if(e[i].componentDatatype!==X.UNSIGNED_BYTE){t=!0;break}return t?We.FLOAT:We.UNSIGNED_BYTE}function rte(e,t){let n=e[t].componentsPerAttribute;return n===2?z:n===3?h:n===4?oe:Number}function QPe(e,t){let n=new Array(e.length),i=0,o=e.length;for(let r=0;r<o;++r){let a=e[r].componentDatatype;n[r]=i,a!==X.UNSIGNED_BYTE&&t?i+=4:++i}return n}function JPe(e,t,n){let i=e.length,o=e[i-1];return t[i-1].componentDatatype!==X.UNSIGNED_BYTE&&n?o+4:o+1}var bI=new oe;function eIe(e,t,n){let i=oe.unpack(e,t,bI),o=oe.unpackFloat(i);i=oe.unpack(e,t+4,bI);let r=oe.unpackFloat(i);i=oe.unpack(e,t+8,bI);let s=oe.unpackFloat(i);i=oe.unpack(e,t+12,bI);let a=oe.unpackFloat(i);return oe.fromElements(o,r,s,a,n)}function tIe(e,t,n){let i=oe.packFloat(e.x,bI);oe.pack(i,t,n),i=oe.packFloat(e.y,i),oe.pack(i,t,n+4),i=oe.packFloat(e.z,i),oe.pack(i,t,n+8),i=oe.packFloat(e.w,i),oe.pack(i,t,n+12)}var ote=new oe;Cp.prototype.getBatchedAttribute=function(e,t,n){let i=this._attributes,o=this._offsets[t],s=4*this._stride*e+4*o,a;this._packFloats&&i[t].componentDatatype!==We.UNSIGNED_BYTE?a=eIe(this._batchValues,s,ote):a=oe.unpack(this._batchValues,s,ote);let c=rte(i,t);return l(c.fromCartesian4)?c.fromCartesian4(a,n):l(c.clone)?c.clone(a,n):a.x};var nIe=[void 0,void 0,new z,new h,new oe],iIe=new oe;Cp.prototype.setBatchedAttribute=function(e,t,n){let i=this._attributes,o=nIe[i[t].componentsPerAttribute],r=this.getBatchedAttribute(e,t,o),s=rte(this._attributes,t);if(l(s.equals)?s.equals(r,n):r===n)return;let c=iIe;c.x=l(n.x)?n.x:n,c.y=l(n.y)?n.y:0,c.z=l(n.z)?n.z:0,c.w=l(n.w)?n.w:0;let u=this._offsets[t],d=4*this._stride*e+4*u;this._packFloats&&i[t].componentDatatype!==We.UNSIGNED_BYTE?tIe(c,this._batchValues,d):oe.pack(c,this._batchValues,d),this._batchValuesDirty=!0};function oIe(e,t){let n=e._textureDimensions;e._texture=new Dt({context:t,pixelFormat:nt.RGBA,pixelDatatype:e._pixelDatatype,width:n.x,height:n.y,sampler:on.NEAREST,flipY:!1})}function rIe(e){let t=e._textureDimensions;e._texture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}Cp.prototype.update=function(e){l(this._texture)&&!this._batchValuesDirty||this._attributes.length===0||(this._batchValuesDirty=!1,l(this._texture)||oIe(this,e.context),rIe(this))};Cp.prototype.getUniformMapCallback=function(){let e=this;return function(t){return e._attributes.length===0?t:_t(t,{batchTexture:function(){return e._texture},batchTextureDimensions:function(){return e._textureDimensions},batchTextureStep:function(){return e._textureStep}})}};function sIe(e){let t=e._stride;return e._textureDimensions.y===1?`uniform vec4 batchTextureStep; vec2 computeSt(float batchId) { float stepX = batchTextureStep.x; float centerX = batchTextureStep.y; float numberOfAttributes = float(${t}); return vec2(centerX + (batchId * numberOfAttributes * stepX), 0.5); } `:`uniform vec4 batchTextureStep; uniform vec2 batchTextureDimensions; vec2 computeSt(float batchId) { float stepX = batchTextureStep.x; float centerX = batchTextureStep.y; float stepY = batchTextureStep.z; float centerY = batchTextureStep.w; float numberOfAttributes = float(${t}); float xId = mod(batchId * numberOfAttributes, batchTextureDimensions.x); float yId = floor(batchId * numberOfAttributes / batchTextureDimensions.x); return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); } `}function aIe(e){return e===1?"float":`vec${e}`}function cIe(e){return e===1?".x":e===2?".xy":e===3?".xyz":""}function lIe(e,t){let i=e._attributes[t],o=i.componentsPerAttribute,r=i.functionName,s=aIe(o),a=cIe(o),c=e._offsets[t],u=`${s} ${r}(float batchId) { vec2 st = computeSt(batchId); st.x += batchTextureStep.x * float(${c}); `;return e._packFloats&&i.componentDatatype!==We.UNSIGNED_BYTE?u+=`vec4 textureValue; textureValue.x = czm_unpackFloat(texture(batchTexture, st)); textureValue.y = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x, 0.0))); textureValue.z = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 2.0, 0.0))); textureValue.w = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 3.0, 0.0))); `:u+=` vec4 textureValue = texture(batchTexture, st); `,u+=` ${s} value = textureValue${a}; `,e._pixelDatatype===We.UNSIGNED_BYTE&&i.componentDatatype===X.UNSIGNED_BYTE&&!i.normalize?u+=`value *= 255.0; `:e._pixelDatatype===We.FLOAT&&i.componentDatatype===X.UNSIGNED_BYTE&&i.normalize&&(u+=`value /= 255.0; `),u+=` return value; } `,u}Cp.prototype.getVertexShaderCallback=function(){let e=this._attributes;if(e.length===0)return function(i){return i};let t=`uniform highp sampler2D batchTexture; `;t+=`${sIe(this)} `;let n=e.length;for(let i=0;i<n;++i)t+=lIe(this,i);return function(i){let o=i.indexOf("void main"),r=i.substring(0,o),s=i.substring(o);return`${r} ${t} ${s}`}};Cp.prototype.isDestroyed=function(){return!1};Cp.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),ue(this)};var fx=Cp;var eo={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};eo.getMathType=function(e){switch(e){case eo.SCALAR:return Number;case eo.VEC2:return z;case eo.VEC3:return h;case eo.VEC4:return oe;case eo.MAT2:return Qi;case eo.MAT3:return $;case eo.MAT4:return F}};eo.getNumberOfComponents=function(e){switch(e){case eo.SCALAR:return 1;case eo.VEC2:return 2;case eo.VEC3:return 3;case eo.VEC4:case eo.MAT2:return 4;case eo.MAT3:return 9;case eo.MAT4:return 16}};eo.getAttributeLocationCount=function(e){switch(e){case eo.SCALAR:case eo.VEC2:case eo.VEC3:case eo.VEC4:return 1;case eo.MAT2:return 2;case eo.MAT3:return 3;case eo.MAT4:return 4}};eo.getGlslType=function(e){switch(e){case eo.SCALAR:return"float";case eo.VEC2:return"vec2";case eo.VEC3:return"vec3";case eo.VEC4:return"vec4";case eo.MAT2:return"mat2";case eo.MAT3:return"mat3";case eo.MAT4:return"mat4"}};var tn=Object.freeze(eo);var ste=1/256,ate=256,yo={};yo.octEncodeInRange=function(e,t,n){if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){let i=n.x,o=n.y;n.x=(1-Math.abs(o))*R.signNotZero(i),n.y=(1-Math.abs(i))*R.signNotZero(o)}return n.x=R.toSNorm(n.x,t),n.y=R.toSNorm(n.y,t),n};yo.octEncode=function(e,t){return yo.octEncodeInRange(e,255,t)};var TI=new z,cte=new Uint8Array(1);function TV(e){return cte[0]=e,cte[0]}yo.octEncodeToCartesian4=function(e,t){return yo.octEncodeInRange(e,65535,TI),t.x=TV(TI.x*ste),t.y=TV(TI.x),t.z=TV(TI.y*ste),t.w=TV(TI.y),t};yo.octDecodeInRange=function(e,t,n,i){if(i.x=R.fromSNorm(e,n),i.y=R.fromSNorm(t,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){let o=i.x;i.x=(1-Math.abs(i.y))*R.signNotZero(o),i.y=(1-Math.abs(o))*R.signNotZero(i.y)}return h.normalize(i,i)};yo.octDecode=function(e,t,n){return yo.octDecodeInRange(e,t,255,n)};yo.octDecodeFromCartesian4=function(e,t){let n=e.x,i=e.y,o=e.z,r=e.w,s=n*ate+i,a=o*ate+r;return yo.octDecodeInRange(s,a,65535,t)};yo.octPackFloat=function(e){return 256*e.x+e.y};var a6=new z;yo.octEncodeFloat=function(e){return yo.octEncode(e,a6),yo.octPackFloat(a6)};yo.octDecodeFloat=function(e,t){let n=e/256,i=Math.floor(n),o=(n-i)*256;return yo.octDecode(i,o,t)};yo.octPack=function(e,t,n,i){let o=yo.octEncodeFloat(e),r=yo.octEncodeFloat(t),s=yo.octEncode(n,a6);return i.x=65536*s.x+o,i.y=65536*s.y+r,i};yo.octUnpack=function(e,t,n,i){let o=e.x/65536,r=Math.floor(o),s=(o-r)*65536;o=e.y/65536;let a=Math.floor(o),c=(o-a)*65536;yo.octDecodeFloat(s,t),yo.octDecodeFloat(c,n),yo.octDecode(r,a,i)};yo.compressTextureCoordinates=function(e){let t=e.x*4095|0,n=e.y*4095|0;return 4096*t+n};yo.decompressTextureCoordinates=function(e,t){let n=e/4096,i=Math.floor(n);return t.x=i/4095,t.y=(e-i*4096)/4095,t};function s6(e){return e>>1^-(e&1)}yo.zigZagDeltaDecode=function(e,t,n){let i=e.length,o=0,r=0,s=0;for(let a=0;a<i;++a)o+=s6(e[a]),r+=s6(t[a]),e[a]=o,t[a]=r,l(n)&&(s+=s6(n[a]),n[a]=s)};yo.dequantize=function(e,t,n,i){let o=tn.getNumberOfComponents(n),r;switch(t){case X.BYTE:r=127;break;case X.UNSIGNED_BYTE:r=255;break;case X.SHORT:r=32767;break;case X.UNSIGNED_SHORT:r=65535;break;case X.INT:r=2147483647;break;case X.UNSIGNED_INT:r=4294967295;break}let s=new Float32Array(i*o);for(let a=0;a<i;a++)for(let c=0;c<o;c++){let u=a*o+c;s[u]=Math.max(e[u]/r,-1)}return s};yo.decodeRGB565=function(e,t){let n=e.length;l(t)||(t=new Float32Array(n*3));let i=31,o=63,r=1/31,s=1/63;for(let a=0;a<n;a++){let c=e[a],u=c>>11,f=c>>5&o,d=c&i,p=3*a;t[p]=u*r,t[p+1]=f*s,t[p+2]=d*r}return t};var Mn=yo;var lte=new h,ute=new h,fte=new h;function uIe(e,t,n,i,o){l(o)||(o=new h);let r,s,a,c,u,f,d,p;if(l(t.z)){if(h.equalsEpsilon(e,t,R.EPSILON14))return h.clone(h.UNIT_X,o);if(h.equalsEpsilon(e,n,R.EPSILON14))return h.clone(h.UNIT_Y,o);if(h.equalsEpsilon(e,i,R.EPSILON14))return h.clone(h.UNIT_Z,o);r=h.subtract(n,t,lte),s=h.subtract(i,t,ute),a=h.subtract(e,t,fte),c=h.dot(r,r),u=h.dot(r,s),f=h.dot(r,a),d=h.dot(s,s),p=h.dot(s,a)}else{if(z.equalsEpsilon(e,t,R.EPSILON14))return h.clone(h.UNIT_X,o);if(z.equalsEpsilon(e,n,R.EPSILON14))return h.clone(h.UNIT_Y,o);if(z.equalsEpsilon(e,i,R.EPSILON14))return h.clone(h.UNIT_Z,o);r=z.subtract(n,t,lte),s=z.subtract(i,t,ute),a=z.subtract(e,t,fte),c=z.dot(r,r),u=z.dot(r,s),f=z.dot(r,a),d=z.dot(s,s),p=z.dot(s,a)}o.y=d*f-u*p,o.z=c*p-u*f;let g=c*d-u*u;if(g!==0)return o.y/=g,o.z/=g,o.x=1-o.y-o.z,o}var dx=uIe;var c6={};c6.calculateACMR=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o=t.length;if(!l(n)){n=0;let a=0,c=t[a];for(;a<o;)c>n&&(n=c),++a,c=t[a]}let r=[];for(let a=0;a<n+1;a++)r[a]=0;let s=i+1;for(let a=0;a<o;++a)s-r[t[a]]>i&&(r[t[a]]=s,++s);return(s-i+1)/(o/3)};c6.tipsify=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o;function r(_,S,w,P){for(;S.length>=1;){let M=S[S.length-1];if(S.splice(S.length-1,1),_[M].numLiveTriangles>0)return M}for(;o<P;){if(_[o].numLiveTriangles>0)return++o,o-1;++o}return-1}function s(_,S,w,P,M,B,U){let V=-1,G,k=-1,Y=0;for(;Y<w.length;){let W=w[Y];P[W].numLiveTriangles&&(G=0,M-P[W].timeStamp+2*P[W].numLiveTriangles<=S&&(G=M-P[W].timeStamp),(G>k||k===-1)&&(k=G,V=W)),++Y}return V===-1?r(P,B,_,U):V}let a=t.length,c=0,u=0,f=t[u],d=a;if(l(n))c=n+1;else{for(;u<d;)f>c&&(c=f),++u,f=t[u];if(c===-1)return 0;++c}let p=[],g;for(g=0;g<c;g++)p[g]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};u=0;let m=0;for(;u<d;)p[t[u]].vertexTriangles.push(m),++p[t[u]].numLiveTriangles,p[t[u+1]].vertexTriangles.push(m),++p[t[u+1]].numLiveTriangles,p[t[u+2]].vertexTriangles.push(m),++p[t[u+2]].numLiveTriangles,++m,u+=3;let x=0,b=i+1;o=1;let T=[],C=[],A,E,v=0,D=[],O=a/3,I=[];for(g=0;g<O;g++)I[g]=!1;let L,N;for(;x!==-1;){T=[],E=p[x],N=E.vertexTriangles.length;for(let _=0;_<N;++_)if(m=E.vertexTriangles[_],!I[m]){I[m]=!0,u=m+m+m;for(let S=0;S<3;++S)L=t[u],T.push(L),C.push(L),D[v]=L,++v,A=p[L],--A.numLiveTriangles,b-A.timeStamp>i&&(A.timeStamp=b,++b),++u}x=s(t,i,T,p,b,C,c)}return D};var AI=c6;var kc={};function DV(e,t,n,i,o){e[t++]=n,e[t++]=i,e[t++]=i,e[t++]=o,e[t++]=o,e[t]=n}function fIe(e){let t=e.length,n=t/3*6,i=Ne.createTypedArray(t,n),o=0;for(let r=0;r<t;r+=3,o+=6)DV(i,o,e[r],e[r+1],e[r+2]);return i}function dIe(e){let t=e.length;if(t>=3){let n=(t-2)*6,i=Ne.createTypedArray(t,n);DV(i,0,e[0],e[1],e[2]);let o=6;for(let r=3;r<t;++r,o+=6)DV(i,o,e[r-1],e[r],e[r-2]);return i}return new Uint16Array}function hIe(e){if(e.length>0){let t=e.length-1,n=(t-1)*6,i=Ne.createTypedArray(t,n),o=e[0],r=0;for(let s=1;s<t;++s,r+=6)DV(i,r,o,e[s],e[s+1]);return i}return new Uint16Array}kc.toWireframe=function(e){let t=e.indices;if(l(t)){switch(e.primitiveType){case Le.TRIANGLES:e.indices=fIe(t);break;case Le.TRIANGLE_STRIP:e.indices=dIe(t);break;case Le.TRIANGLE_FAN:e.indices=hIe(t);break}e.primitiveType=Le.LINES}return e};kc.createLineSegmentsForVectors=function(e,t,n){t=y(t,"normal"),n=y(n,1e4);let i=e.attributes.position.values,o=e.attributes[t].values,r=i.length,s=new Float64Array(2*r),a=0;for(let f=0;f<r;f+=3)s[a++]=i[f],s[a++]=i[f+1],s[a++]=i[f+2],s[a++]=i[f]+o[f]*n,s[a++]=i[f+1]+o[f+1]*n,s[a++]=i[f+2]+o[f+2]*n;let c,u=e.boundingSphere;return l(u)&&(c=new ae(u.center,u.radius+n)),new st({attributes:{position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})},primitiveType:Le.LINES,boundingSphere:c})};kc.createAttributeLocations=function(e){let t=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},o=0,r,s=t.length;for(r=0;r<s;++r){let a=t[r];l(n[a])&&(i[a]=o++)}for(let a in n)n.hasOwnProperty(a)&&!l(i[a])&&(i[a]=o++);return i};kc.reorderForPreVertexCache=function(e){let t=st.computeNumberOfVertices(e),n=e.indices;if(l(n)){let i=new Int32Array(t);for(let p=0;p<t;p++)i[p]=-1;let o=n,r=o.length,s=Ne.createTypedArray(t,r),a=0,c=0,u=0,f;for(;a<r;)f=i[o[a]],f!==-1?s[c]=f:(f=o[a],i[f]=u,s[c]=u,++u),++a,++c;e.indices=s;let d=e.attributes;for(let p in d)if(d.hasOwnProperty(p)&&l(d[p])&&l(d[p].values)){let g=d[p],m=g.values,x=0,b=g.componentsPerAttribute,T=X.createTypedArray(g.componentDatatype,u*b);for(;x<t;){let C=i[x];if(C!==-1)for(let A=0;A<b;A++)T[b*C+A]=m[b*x+A];++x}g.values=T}}return e};kc.reorderForPostVertexCache=function(e,t){let n=e.indices;if(e.primitiveType===Le.TRIANGLES&&l(n)){let i=n.length,o=0;for(let r=0;r<i;r++)n[r]>o&&(o=n[r]);e.indices=AI.tipsify({indices:n,maximumIndex:o,cacheSize:t})}return e};function dte(e){let t={};for(let n in e)if(e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)){let i=e[n];t[n]=new ve({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function mIe(e,t,n){for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];for(let r=0;r<o.componentsPerAttribute;++r)e[i].values.push(o.values[n*o.componentsPerAttribute+r])}}kc.fitToUnsignedShortIndices=function(e){let t=[],n=st.computeNumberOfVertices(e);if(l(e.indices)&&n>=R.SIXTY_FOUR_KILOBYTES){let i=[],o=[],r=0,s=dte(e.attributes),a=e.indices,c=a.length,u;e.primitiveType===Le.TRIANGLES?u=3:e.primitiveType===Le.LINES?u=2:e.primitiveType===Le.POINTS&&(u=1);for(let f=0;f<c;f+=u){for(let d=0;d<u;++d){let p=a[f+d],g=i[p];l(g)||(g=r++,i[p]=g,mIe(s,e.attributes,p)),o.push(g)}r+u>=R.SIXTY_FOUR_KILOBYTES&&(t.push(new st({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],o=[],r=0,s=dte(e.attributes))}o.length!==0&&t.push(new st({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var hte=new h,pIe=new fe;kc.projectTo2D=function(e,t,n,i,o){let r=e.attributes[t];o=l(o)?o:new Ci;let s=o.ellipsoid,a=r.values,c=new Float64Array(a.length),u=0;for(let f=0;f<a.length;f+=3){let d=h.fromArray(a,f,hte),p=s.cartesianToCartographic(d,pIe),g=o.project(p,hte);c[u++]=g.x,c[u++]=g.y,c[u++]=g.z}return e.attributes[n]=r,e.attributes[i]=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c}),delete e.attributes[t],e};var l6={high:0,low:0};kc.encodeAttribute=function(e,t,n,i){let o=e.attributes[t],r=o.values,s=r.length,a=new Float32Array(s),c=new Float32Array(s);for(let f=0;f<s;++f)Gn.encode(r[f],l6),a[f]=l6.high,c[f]=l6.low;let u=o.componentsPerAttribute;return e.attributes[n]=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:u,values:a}),e.attributes[i]=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:u,values:c}),delete e.attributes[t],e};var wd=new h;function u6(e,t){if(l(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)h.unpack(n,o,wd),F.multiplyByPoint(e,wd,wd),h.pack(wd,n,o)}}function f6(e,t){if(l(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)h.unpack(n,o,wd),$.multiplyByVector(e,wd,wd),wd=h.normalize(wd,wd),h.pack(wd,n,o)}}var AV=new F,CV=new $;kc.transformToWorldCoordinates=function(e){let t=e.modelMatrix;if(F.equals(t,F.IDENTITY))return e;let n=e.geometry.attributes;u6(t,n.position),u6(t,n.prevPosition),u6(t,n.nextPosition),(l(n.normal)||l(n.tangent)||l(n.bitangent))&&(F.inverse(t,AV),F.transpose(AV,AV),F.getMatrix3(AV,CV),f6(CV,n.normal),f6(CV,n.tangent),f6(CV,n.bitangent));let i=e.geometry.boundingSphere;return l(i)&&(e.geometry.boundingSphere=ae.transform(i,t,i)),e.modelMatrix=F.clone(F.IDENTITY),e};function _Ie(e,t){let n=e.length,i={},o=e[0][t].attributes,r;for(r in o)if(o.hasOwnProperty(r)&&l(o[r])&&l(o[r].values)){let s=o[r],a=s.values.length,c=!0;for(let u=1;u<n;++u){let f=e[u][t].attributes[r];if(!l(f)||s.componentDatatype!==f.componentDatatype||s.componentsPerAttribute!==f.componentsPerAttribute||s.normalize!==f.normalize){c=!1;break}a+=f.values.length}c&&(i[r]=new ve({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:X.createTypedArray(s.componentDatatype,a)}))}return i}var gIe=new h;function d6(e,t){let n=e.length,i,o,r,s,a=e[0].modelMatrix,c=l(e[0][t].indices),u=e[0][t].primitiveType,f=_Ie(e,t),d,p,g;for(i in f)if(f.hasOwnProperty(i))for(d=f[i].values,s=0,o=0;o<n;++o)for(p=e[o][t].attributes[i].values,g=p.length,r=0;r<g;++r)d[s++]=p[r];let m;if(c){let C=0;for(o=0;o<n;++o)C+=e[o][t].indices.length;let A=st.computeNumberOfVertices(new st({attributes:f,primitiveType:Le.POINTS})),E=Ne.createTypedArray(A,C),v=0,D=0;for(o=0;o<n;++o){let O=e[o][t].indices,I=O.length;for(s=0;s<I;++s)E[v++]=D+O[s];D+=st.computeNumberOfVertices(e[o][t])}m=E}let x=new h,b=0,T;for(o=0;o<n;++o){if(T=e[o][t].boundingSphere,!l(T)){x=void 0;break}h.add(T.center,x,x)}if(l(x))for(h.divideByScalar(x,n,x),o=0;o<n;++o){T=e[o][t].boundingSphere;let C=h.magnitude(h.subtract(T.center,x,gIe))+T.radius;C>b&&(b=C)}return new st({attributes:f,indices:m,primitiveType:u,boundingSphere:l(x)?new ae(x,b):void 0})}kc.combineInstances=function(e){let t=[],n=[],i=e.length;for(let r=0;r<i;++r){let s=e[r];l(s.geometry)?t.push(s):l(s.westHemisphereGeometry)&&l(s.eastHemisphereGeometry)&&n.push(s)}let o=[];return t.length>0&&o.push(d6(t,"geometry")),n.length>0&&(o.push(d6(n,"westHemisphereGeometry")),o.push(d6(n,"eastHemisphereGeometry"))),o};var mf=new h,CI=new h,XA=new h,KA=new h;kc.computeNormal=function(e){let t=e.indices,n=e.attributes,i=n.position.values,o=n.position.values.length/3,r=t.length,s=new Array(o),a=new Array(r/3),c=new Array(r),u;for(u=0;u<o;u++)s[u]={indexOffset:0,count:0,currentCount:0};let f=0;for(u=0;u<r;u+=3){let m=t[u],x=t[u+1],b=t[u+2],T=m*3,C=x*3,A=b*3;CI.x=i[T],CI.y=i[T+1],CI.z=i[T+2],XA.x=i[C],XA.y=i[C+1],XA.z=i[C+2],KA.x=i[A],KA.y=i[A+1],KA.z=i[A+2],s[m].count++,s[x].count++,s[b].count++,h.subtract(XA,CI,XA),h.subtract(KA,CI,KA),a[f]=h.cross(XA,KA,new h),f++}let d=0;for(u=0;u<o;u++)s[u].indexOffset+=d,d+=s[u].count;f=0;let p;for(u=0;u<r;u+=3){p=s[t[u]];let m=p.indexOffset+p.currentCount;c[m]=f,p.currentCount++,p=s[t[u+1]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,p=s[t[u+2]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,f++}let g=new Float32Array(o*3);for(u=0;u<o;u++){let m=u*3;if(p=s[u],h.clone(h.ZERO,mf),p.count>0){for(f=0;f<p.count;f++)h.add(mf,a[c[p.indexOffset+f]],mf);h.equalsEpsilon(h.ZERO,mf,R.EPSILON10)&&h.clone(a[c[p.indexOffset]],mf)}h.equalsEpsilon(h.ZERO,mf,R.EPSILON10)&&(mf.z=1),h.normalize(mf,mf),g[m]=mf.x,g[m+1]=mf.y,g[m+2]=mf.z}return e.attributes.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e};var yIe=new h,mte=new h,xIe=new h;kc.computeTangentAndBitangent=function(e){let t=e.attributes,n=e.indices,i=e.attributes.position.values,o=e.attributes.normal.values,r=e.attributes.st.values,s=e.attributes.position.values.length/3,a=n.length,c=new Array(s*3),u;for(u=0;u<c.length;u++)c[u]=0;let f,d,p;for(u=0;u<a;u+=3){let x=n[u],b=n[u+1],T=n[u+2];f=x*3,d=b*3,p=T*3;let C=x*2,A=b*2,E=T*2,v=i[f],D=i[f+1],O=i[f+2],I=r[C],L=r[C+1],N=r[A+1]-L,_=r[E+1]-L,S=1/((r[A]-I)*_-(r[E]-I)*N),w=(_*(i[d]-v)-N*(i[p]-v))*S,P=(_*(i[d+1]-D)-N*(i[p+1]-D))*S,M=(_*(i[d+2]-O)-N*(i[p+2]-O))*S;c[f]+=w,c[f+1]+=P,c[f+2]+=M,c[d]+=w,c[d+1]+=P,c[d+2]+=M,c[p]+=w,c[p+1]+=P,c[p+2]+=M}let g=new Float32Array(s*3),m=new Float32Array(s*3);for(u=0;u<s;u++){f=u*3,d=f+1,p=f+2;let x=h.fromArray(o,f,yIe),b=h.fromArray(c,f,xIe),T=h.dot(x,b);h.multiplyByScalar(x,T,mte),h.normalize(h.subtract(b,mte,b),b),g[f]=b.x,g[d]=b.y,g[p]=b.z,h.normalize(h.cross(x,b,b),b),m[f]=b.x,m[d]=b.y,m[p]=b.z}return e.attributes.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e.attributes.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m}),e};var EI=new z,vd=new h,pte=new h,_te=new h,EV=new z;kc.compressVertices=function(e){let t=e.attributes.extrudeDirection,n,i;if(l(t)){let D=t.values;i=D.length/3;let O=new Float32Array(i*2),I=0;for(n=0;n<i;++n){if(h.fromArray(D,n*3,vd),h.equals(vd,h.ZERO)){I+=2;continue}EV=Mn.octEncodeInRange(vd,65535,EV),O[I++]=EV.x,O[I++]=EV.y}return e.attributes.compressedAttributes=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:O}),delete e.attributes.extrudeDirection,e}let o=e.attributes.normal,r=e.attributes.st,s=l(o),a=l(r);if(!s&&!a)return e;let c=e.attributes.tangent,u=e.attributes.bitangent,f=l(c),d=l(u),p,g,m,x;s&&(p=o.values),a&&(g=r.values),f&&(m=c.values),d&&(x=u.values),i=(s?p.length:g.length)/(s?3:2);let C=i,A=a&&s?2:1;A+=f||d?1:0,C*=A;let E=new Float32Array(C),v=0;for(n=0;n<i;++n){a&&(z.fromArray(g,n*2,EI),E[v++]=Mn.compressTextureCoordinates(EI));let D=n*3;s&&l(m)&&l(x)?(h.fromArray(p,D,vd),h.fromArray(m,D,pte),h.fromArray(x,D,_te),Mn.octPack(vd,pte,_te,EI),E[v++]=EI.x,E[v++]=EI.y):(s&&(h.fromArray(p,D,vd),E[v++]=Mn.octEncodeFloat(vd)),f&&(h.fromArray(m,D,vd),E[v++]=Mn.octEncodeFloat(vd)),d&&(h.fromArray(x,D,vd),E[v++]=Mn.octEncodeFloat(vd)))}return e.attributes.compressedAttributes=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:A,values:E}),s&&delete e.attributes.normal,a&&delete e.attributes.st,d&&delete e.attributes.bitangent,f&&delete e.attributes.tangent,e};function bIe(e){if(l(e.indices))return e;let t=st.computeNumberOfVertices(e),n=Ne.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function TIe(e){let t=st.computeNumberOfVertices(e),n=Ne.createTypedArray(t,(t-2)*3);n[0]=1,n[1]=0,n[2]=2;let i=3;for(let o=3;o<t;++o)n[i++]=o-1,n[i++]=0,n[i++]=o;return e.indices=n,e.primitiveType=Le.TRIANGLES,e}function AIe(e){let t=st.computeNumberOfVertices(e),n=Ne.createTypedArray(t,(t-2)*3);n[0]=0,n[1]=1,n[2]=2,t>3&&(n[3]=0,n[4]=2,n[5]=3);let i=6;for(let o=3;o<t-1;o+=2)n[i++]=o,n[i++]=o-1,n[i++]=o+1,o+2<t&&(n[i++]=o,n[i++]=o+1,n[i++]=o+2);return e.indices=n,e.primitiveType=Le.TRIANGLES,e}function CIe(e){if(l(e.indices))return e;let t=st.computeNumberOfVertices(e),n=Ne.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function EIe(e){let t=st.computeNumberOfVertices(e),n=Ne.createTypedArray(t,(t-1)*2);n[0]=0,n[1]=1;let i=2;for(let o=2;o<t;++o)n[i++]=o-1,n[i++]=o;return e.indices=n,e.primitiveType=Le.LINES,e}function SIe(e){let t=st.computeNumberOfVertices(e),n=Ne.createTypedArray(t,t*2);n[0]=0,n[1]=1;let i=2;for(let o=2;o<t;++o)n[i++]=o-1,n[i++]=o;return n[i++]=t-1,n[i]=0,e.indices=n,e.primitiveType=Le.LINES,e}function vIe(e){switch(e.primitiveType){case Le.TRIANGLE_FAN:return TIe(e);case Le.TRIANGLE_STRIP:return AIe(e);case Le.TRIANGLES:return bIe(e);case Le.LINE_STRIP:return EIe(e);case Le.LINE_LOOP:return SIe(e);case Le.LINES:return CIe(e)}return e}function Fg(e,t){Math.abs(e.y)<R.EPSILON6&&(t?e.y=-R.EPSILON6:e.y=R.EPSILON6)}function wIe(e,t,n){if(e.y!==0&&t.y!==0&&n.y!==0){Fg(e,e.y<0),Fg(t,t.y<0),Fg(n,n.y<0);return}let i=Math.abs(e.y),o=Math.abs(t.y),r=Math.abs(n.y),s;i>o?i>r?s=R.sign(e.y):s=R.sign(n.y):o>r?s=R.sign(t.y):s=R.sign(n.y);let a=s<0;Fg(e,a),Fg(t,a),Fg(n,a)}var gte=new h;function pf(e,t,n,i){h.add(e,h.multiplyByScalar(h.subtract(t,e,gte),e.y/(e.y-t.y),gte),n),h.clone(n,i),Fg(n,!0),Fg(i,!1)}var hx=new h,mx=new h,px=new h,_x=new h,h6={positions:new Array(7),indices:new Array(3*3)};function DIe(e,t,n){if(e.x>=0||t.x>=0||n.x>=0)return;wIe(e,t,n);let i=e.y<0,o=t.y<0,r=n.y<0,s=0;s+=i?1:0,s+=o?1:0,s+=r?1:0;let a=h6.indices;s===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,i?(pf(e,t,hx,px),pf(e,n,mx,_x),a[0]=0,a[3]=1,a[4]=2,a[6]=1):o?(pf(t,n,hx,px),pf(t,e,mx,_x),a[0]=1,a[3]=2,a[4]=0,a[6]=2):r&&(pf(n,e,hx,px),pf(n,t,mx,_x),a[0]=2,a[3]=0,a[4]=1,a[6]=0)):s===2&&(a[2]=4,a[4]=4,a[5]=3,a[7]=5,a[8]=6,i?o?r||(pf(n,e,hx,px),pf(n,t,mx,_x),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(pf(t,n,hx,px),pf(t,e,mx,_x),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(pf(e,t,hx,px),pf(e,n,mx,_x),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let c=h6.positions;return c[0]=e,c[1]=t,c[2]=n,c.length=3,(s===1||s===2)&&(c[3]=hx,c[4]=mx,c[5]=px,c[6]=_x,c.length=7),h6}function yte(e,t){let n=e.attributes;if(n.position.values.length===0)return;for(let o in n)if(n.hasOwnProperty(o)&&l(n[o])&&l(n[o].values)){let r=n[o];r.values=X.createTypedArray(r.componentDatatype,r.values)}let i=st.computeNumberOfVertices(e);return e.indices=Ne.createTypedArray(i,e.indices),t&&(e.boundingSphere=ae.fromVertices(n.position.values)),e}function $A(e){let t=e.attributes,n={};for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];n[i]=new ve({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:[]})}return new st({attributes:n,indices:[],primitiveType:e.primitiveType})}function g6(e,t,n){let i=l(e.geometry.boundingSphere);t=yte(t,i),n=yte(n,i),l(n)&&!l(t)?e.geometry=n:!l(n)&&l(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function y6(e,t){let n=new e,i=new e,o=new e;return function(r,s,a,c,u,f,d,p){let g=e.fromArray(u,r*t,n),m=e.fromArray(u,s*t,i),x=e.fromArray(u,a*t,o);e.multiplyByScalar(g,c.x,g),e.multiplyByScalar(m,c.y,m),e.multiplyByScalar(x,c.z,x);let b=e.add(g,m,g);e.add(b,x,b),p&&e.normalize(b,b),e.pack(b,f,d*t)}}var PIe=y6(oe,4),wV=y6(h,3),Ete=y6(z,2),IIe=function(e,t,n,i,o,r,s){let a=o[e]*i.x,c=o[t]*i.y,u=o[n]*i.z;r[s]=a+c+u>R.EPSILON6?1:0},SI=new h,m6=new h,p6=new h,RIe=new h;function SV(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){if(!l(r)&&!l(s)&&!l(a)&&!l(c)&&!l(u)&&g===0)return;let b=h.fromArray(o,e*3,SI),T=h.fromArray(o,t*3,m6),C=h.fromArray(o,n*3,p6),A=dx(i,b,T,C,RIe);if(l(A)){if(l(r)&&wV(e,t,n,A,r,d.normal.values,x,!0),l(u)){let E=h.fromArray(u,e*3,SI),v=h.fromArray(u,t*3,m6),D=h.fromArray(u,n*3,p6);h.multiplyByScalar(E,A.x,E),h.multiplyByScalar(v,A.y,v),h.multiplyByScalar(D,A.z,D);let O;!h.equals(E,h.ZERO)||!h.equals(v,h.ZERO)||!h.equals(D,h.ZERO)?(O=h.add(E,v,E),h.add(O,D,O),h.normalize(O,O)):(O=SI,O.x=0,O.y=0,O.z=0),h.pack(O,d.extrudeDirection.values,x*3)}if(l(f)&&IIe(e,t,n,A,f,d.applyOffset.values,x),l(s)&&wV(e,t,n,A,s,d.tangent.values,x,!0),l(a)&&wV(e,t,n,A,a,d.bitangent.values,x,!0),l(c)&&Ete(e,t,n,A,c,d.st.values,x),g>0)for(let E=0;E<g;E++){let v=p[E];OIe(e,t,n,A,x,m[v],d[v])}}}function OIe(e,t,n,i,o,r,s){let a=r.componentsPerAttribute,c=r.values,u=s.values;switch(a){case 4:PIe(e,t,n,i,c,u,o,!1);break;case 3:wV(e,t,n,i,c,u,o,!1);break;case 2:Ete(e,t,n,i,c,u,o,!1);break;default:u[o]=c[e]*i.x+c[t]*i.y+c[n]*i.z}}function om(e,t,n,i,o,r){let s=e.position.values.length/3;if(o!==-1){let a=i[o],c=n[a];return c===-1?(n[a]=s,e.position.values.push(r.x,r.y,r.z),t.push(s),s):(t.push(c),c)}return e.position.values.push(r.x,r.y,r.z),t.push(s),s}var MIe={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function xte(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=l(n.normal)?n.normal.values:void 0,r=l(n.bitangent)?n.bitangent.values:void 0,s=l(n.tangent)?n.tangent.values:void 0,a=l(n.st)?n.st.values:void 0,c=l(n.extrudeDirection)?n.extrudeDirection.values:void 0,u=l(n.applyOffset)?n.applyOffset.values:void 0,f=t.indices,d=[];for(let O in n)n.hasOwnProperty(O)&&!MIe[O]&&l(n[O])&&d.push(O);let p=d.length,g=$A(t),m=$A(t),x,b,T,C,A,E=[];E.length=i.length/3;let v=[];for(v.length=i.length/3,A=0;A<E.length;++A)E[A]=-1,v[A]=-1;let D=f.length;for(A=0;A<D;A+=3){let O=f[A],I=f[A+1],L=f[A+2],N=h.fromArray(i,O*3),_=h.fromArray(i,I*3),S=h.fromArray(i,L*3),w=DIe(N,_,S);if(l(w)&&w.positions.length>3){let P=w.positions,M=w.indices,B=M.length;for(let U=0;U<B;++U){let V=M[U],G=P[V];G.y<0?(x=m.attributes,b=m.indices,T=E):(x=g.attributes,b=g.indices,T=v),C=om(x,b,T,f,V<3?A+V:-1,G),SV(O,I,L,G,i,o,s,r,a,c,u,x,d,p,n,C)}}else l(w)&&(N=w.positions[0],_=w.positions[1],S=w.positions[2]),N.y<0?(x=m.attributes,b=m.indices,T=E):(x=g.attributes,b=g.indices,T=v),C=om(x,b,T,f,A,N),SV(O,I,L,N,i,o,s,r,a,c,u,x,d,p,n,C),C=om(x,b,T,f,A+1,_),SV(O,I,L,_,i,o,s,r,a,c,u,x,d,p,n,C),C=om(x,b,T,f,A+2,S),SV(O,I,L,S,i,o,s,r,a,c,u,x,d,p,n,C)}g6(e,m,g)}var Ste=ln.fromPointNormal(h.ZERO,h.UNIT_Y),LIe=new h,NIe=new h;function ZA(e,t,n,i,o,r,s){if(!l(s))return;let a=h.fromArray(i,e*3,SI);h.equalsEpsilon(a,n,R.EPSILON10)?r.applyOffset.values[o]=s[e]:r.applyOffset.values[o]=s[t]}function bte(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=l(n.applyOffset)?n.applyOffset.values:void 0,r=t.indices,s=$A(t),a=$A(t),c,u=r.length,f=[];f.length=i.length/3;let d=[];for(d.length=i.length/3,c=0;c<f.length;++c)f[c]=-1,d[c]=-1;for(c=0;c<u;c+=2){let p=r[c],g=r[c+1],m=h.fromArray(i,p*3,SI),x=h.fromArray(i,g*3,m6),b;Math.abs(m.y)<R.EPSILON6&&(m.y<0?m.y=-R.EPSILON6:m.y=R.EPSILON6),Math.abs(x.y)<R.EPSILON6&&(x.y<0?x.y=-R.EPSILON6:x.y=R.EPSILON6);let T=s.attributes,C=s.indices,A=d,E=a.attributes,v=a.indices,D=f,O=Qn.lineSegmentPlane(m,x,Ste,p6);if(l(O)){let I=h.multiplyByScalar(h.UNIT_Y,5*R.EPSILON9,LIe);m.y<0&&(h.negate(I,I),T=a.attributes,C=a.indices,A=f,E=s.attributes,v=s.indices,D=d);let L=h.add(O,I,NIe);b=om(T,C,A,r,c,m),ZA(p,g,m,i,b,T,o),b=om(T,C,A,r,-1,L),ZA(p,g,L,i,b,T,o),h.negate(I,I),h.add(O,I,L),b=om(E,v,D,r,-1,L),ZA(p,g,L,i,b,E,o),b=om(E,v,D,r,c+1,x),ZA(p,g,x,i,b,E,o)}else{let I,L,N;m.y<0?(I=a.attributes,L=a.indices,N=f):(I=s.attributes,L=s.indices,N=d),b=om(I,L,N,r,c,m),ZA(p,g,m,i,b,I,o),b=om(I,L,N,r,c+1,x),ZA(p,g,x,i,b,I,o)}}g6(e,a,s)}var Tte=new z,FIe=new z,vte=new h,wte=new h,_6=new h,BIe=new h,kIe=new h,VIe=new h,Ate=new oe;function Cte(e){let t=e.attributes,n=t.position.values,i=t.prevPosition.values,o=t.nextPosition.values,r=n.length;for(let s=0;s<r;s+=3){let a=h.unpack(n,s,vte);if(a.x>0)continue;let c=h.unpack(i,s,wte);(a.y<0&&c.y>0||a.y>0&&c.y<0)&&(s-3>0?(i[s]=n[s-3],i[s+1]=n[s-2],i[s+2]=n[s-1]):h.pack(a,i,s));let u=h.unpack(o,s,_6);(a.y<0&&u.y>0||a.y>0&&u.y<0)&&(s+3<r?(o[s]=n[s+3],o[s+1]=n[s+4],o[s+2]=n[s+5]):h.pack(a,o,s))}}var UIe=5*R.EPSILON9,vV=R.EPSILON6;function zIe(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=n.prevPosition.values,r=n.nextPosition.values,s=n.expandAndWidth.values,a=l(n.st)?n.st.values:void 0,c=l(n.color)?n.color.values:void 0,u=$A(t),f=$A(t),d,p,g,m=!1,x=i.length/3;for(d=0;d<x;d+=4){let b=d,T=d+2,C=h.fromArray(i,b*3,vte),A=h.fromArray(i,T*3,wte);if(Math.abs(C.y)<vV)for(C.y=vV*(A.y<0?-1:1),i[d*3+1]=C.y,i[(d+1)*3+1]=C.y,p=b*3;p<b*3+4*3;p+=3)o[p]=i[d*3],o[p+1]=i[d*3+1],o[p+2]=i[d*3+2];if(Math.abs(A.y)<vV)for(A.y=vV*(C.y<0?-1:1),i[(d+2)*3+1]=A.y,i[(d+3)*3+1]=A.y,p=b*3;p<b*3+4*3;p+=3)r[p]=i[(d+2)*3],r[p+1]=i[(d+2)*3+1],r[p+2]=i[(d+2)*3+2];let E=u.attributes,v=u.indices,D=f.attributes,O=f.indices,I=Qn.lineSegmentPlane(C,A,Ste,BIe);if(l(I)){m=!0;let L=h.multiplyByScalar(h.UNIT_Y,UIe,kIe);C.y<0&&(h.negate(L,L),E=f.attributes,v=f.indices,D=u.attributes,O=u.indices);let N=h.add(I,L,VIe);E.position.values.push(C.x,C.y,C.z,C.x,C.y,C.z),E.position.values.push(N.x,N.y,N.z),E.position.values.push(N.x,N.y,N.z),E.prevPosition.values.push(o[b*3],o[b*3+1],o[b*3+2]),E.prevPosition.values.push(o[b*3+3],o[b*3+4],o[b*3+5]),E.prevPosition.values.push(C.x,C.y,C.z,C.x,C.y,C.z),E.nextPosition.values.push(N.x,N.y,N.z),E.nextPosition.values.push(N.x,N.y,N.z),E.nextPosition.values.push(N.x,N.y,N.z),E.nextPosition.values.push(N.x,N.y,N.z),h.negate(L,L),h.add(I,L,N),D.position.values.push(N.x,N.y,N.z),D.position.values.push(N.x,N.y,N.z),D.position.values.push(A.x,A.y,A.z,A.x,A.y,A.z),D.prevPosition.values.push(N.x,N.y,N.z),D.prevPosition.values.push(N.x,N.y,N.z),D.prevPosition.values.push(N.x,N.y,N.z),D.prevPosition.values.push(N.x,N.y,N.z),D.nextPosition.values.push(A.x,A.y,A.z,A.x,A.y,A.z),D.nextPosition.values.push(r[T*3],r[T*3+1],r[T*3+2]),D.nextPosition.values.push(r[T*3+3],r[T*3+4],r[T*3+5]);let _=z.fromArray(s,b*2,Tte),S=Math.abs(_.y);E.expandAndWidth.values.push(-1,S,1,S),E.expandAndWidth.values.push(-1,-S,1,-S),D.expandAndWidth.values.push(-1,S,1,S),D.expandAndWidth.values.push(-1,-S,1,-S);let w=h.magnitudeSquared(h.subtract(I,C,_6));if(w/=h.magnitudeSquared(h.subtract(A,C,_6)),l(c)){let P=oe.fromArray(c,b*4,Ate),M=oe.fromArray(c,T*4,Ate),B=R.lerp(P.x,M.x,w),U=R.lerp(P.y,M.y,w),V=R.lerp(P.z,M.z,w),G=R.lerp(P.w,M.w,w);for(p=b*4;p<b*4+2*4;++p)E.color.values.push(c[p]);for(E.color.values.push(B,U,V,G),E.color.values.push(B,U,V,G),D.color.values.push(B,U,V,G),D.color.values.push(B,U,V,G),p=T*4;p<T*4+2*4;++p)D.color.values.push(c[p])}if(l(a)){let P=z.fromArray(a,b*2,Tte),M=z.fromArray(a,(d+3)*2,FIe),B=R.lerp(P.x,M.x,w);for(p=b*2;p<b*2+2*2;++p)E.st.values.push(a[p]);for(E.st.values.push(B,P.y),E.st.values.push(B,M.y),D.st.values.push(B,P.y),D.st.values.push(B,M.y),p=T*2;p<T*2+2*2;++p)D.st.values.push(a[p])}g=E.position.values.length/3-4,v.push(g,g+2,g+1),v.push(g+1,g+2,g+3),g=D.position.values.length/3-4,O.push(g,g+2,g+1),O.push(g+1,g+2,g+3)}else{let L,N;for(C.y<0?(L=f.attributes,N=f.indices):(L=u.attributes,N=u.indices),L.position.values.push(C.x,C.y,C.z),L.position.values.push(C.x,C.y,C.z),L.position.values.push(A.x,A.y,A.z),L.position.values.push(A.x,A.y,A.z),p=d*3;p<d*3+4*3;++p)L.prevPosition.values.push(o[p]),L.nextPosition.values.push(r[p]);for(p=d*2;p<d*2+4*2;++p)L.expandAndWidth.values.push(s[p]),l(a)&&L.st.values.push(a[p]);if(l(c))for(p=d*4;p<d*4+4*4;++p)L.color.values.push(c[p]);g=L.position.values.length/3-4,N.push(g,g+2,g+1),N.push(g+1,g+2,g+3)}}m&&(Cte(f),Cte(u)),g6(e,f,u)}kc.splitLongitude=function(e){let t=e.geometry,n=t.boundingSphere;if(l(n)&&(n.center.x-n.radius>0||ae.intersectPlane(n,ln.ORIGIN_ZX_PLANE)!==Gt.INTERSECTING))return e;if(t.geometryType!==df.NONE)switch(t.geometryType){case df.POLYLINES:zIe(e);break;case df.TRIANGLES:xte(e);break;case df.LINES:bte(e);break}else vIe(t),t.primitiveType===Le.TRIANGLES?xte(e):t.primitiveType===Le.LINES&&bte(e);return e};var Nn=kc;function El(e){this._ellipsoid=y(e,te.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(El.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});El.mercatorAngleToGeodeticLatitude=function(e){return R.PI_OVER_TWO-2*Math.atan(Math.exp(-e))};El.geodeticLatitudeToMercatorAngle=function(e){e>El.MaximumLatitude?e=El.MaximumLatitude:e<-El.MaximumLatitude&&(e=-El.MaximumLatitude);let t=Math.sin(e);return .5*Math.log((1+t)/(1-t))};El.MaximumLatitude=El.mercatorAngleToGeodeticLatitude(Math.PI);El.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=El.geodeticLatitudeToMercatorAngle(e.latitude)*n,r=e.height;return l(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};El.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=El.mercatorAngleToGeodeticLatitude(e.y*n),r=e.z;return l(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new fe(i,o,r)};var Si=El;function HIe(e,t,n){let i=!n,o=e.length,r;if(!i&&o>1){let s=e[0].modelMatrix;for(r=1;r<o;++r)if(!F.equals(s,e[r].modelMatrix)){i=!0;break}}if(i)for(r=0;r<o;++r)l(e[r].geometry)&&Nn.transformToWorldCoordinates(e[r]);else F.multiplyTransformation(t,e[0].modelMatrix,t)}function x6(e,t){let n=e.attributes,i=n.position,o=i.values.length/i.componentsPerAttribute;n.batchId=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:1,values:new Float32Array(o)});let r=n.batchId.values;for(let s=0;s<o;++s)r[s]=t}function GIe(e){let t=e.length;for(let n=0;n<t;++n){let i=e[n];l(i.geometry)?x6(i.geometry,n):l(i.westHemisphereGeometry)&&l(i.eastHemisphereGeometry)&&(x6(i.westHemisphereGeometry,n),x6(i.eastHemisphereGeometry,n))}}function WIe(e){let t=e.instances,n=e.projection,i=e.elementIndexUintSupported,o=e.scene3DOnly,r=e.vertexCacheOptimize,s=e.compressVertices,a=e.modelMatrix,c,u,f,d=t.length;for(c=0;c<d;++c)if(l(t[c].geometry)){f=t[c].geometry.primitiveType;break}if(HIe(t,a,o),!o)for(c=0;c<d;++c)l(t[c].geometry)&&Nn.splitLongitude(t[c]);if(GIe(t),r)for(c=0;c<d;++c){let g=t[c];l(g.geometry)?(Nn.reorderForPostVertexCache(g.geometry),Nn.reorderForPreVertexCache(g.geometry)):l(g.westHemisphereGeometry)&&l(g.eastHemisphereGeometry)&&(Nn.reorderForPostVertexCache(g.westHemisphereGeometry),Nn.reorderForPreVertexCache(g.westHemisphereGeometry),Nn.reorderForPostVertexCache(g.eastHemisphereGeometry),Nn.reorderForPreVertexCache(g.eastHemisphereGeometry))}let p=Nn.combineInstances(t);for(d=p.length,c=0;c<d;++c){u=p[c];let g=u.attributes;if(o)for(let m in g)g.hasOwnProperty(m)&&g[m].componentDatatype===X.DOUBLE&&Nn.encodeAttribute(u,m,`${m}3DHigh`,`${m}3DLow`);else for(let m in g)if(g.hasOwnProperty(m)&&g[m].componentDatatype===X.DOUBLE){let x=`${m}3D`,b=`${m}2D`;Nn.projectTo2D(u,m,x,b,n),l(u.boundingSphere)&&m==="position"&&(u.boundingSphereCV=ae.fromVertices(u.attributes.position2D.values)),Nn.encodeAttribute(u,x,`${x}High`,`${x}Low`),Nn.encodeAttribute(u,b,`${b}High`,`${b}Low`)}s&&Nn.compressVertices(u)}if(!i){let g=[];for(d=p.length,c=0;c<d;++c)u=p[c],g=g.concat(Nn.fitToUnsignedShortIndices(u));p=g}return p}function b6(e,t,n,i){let o,r,s,a=i.length-1;if(a>=0){let u=i[a];o=u.offset+u.count,s=u.index,r=n[s].indices.length}else o=0,s=0,r=n[s].indices.length;let c=e.length;for(let u=0;u<c;++u){let d=e[u][t];if(!l(d))continue;let p=d.indices.length;o+p>r&&(o=0,r=n[++s].indices.length),i.push({index:s,offset:o,count:p}),o+=p}}function jIe(e,t){let n=[];return b6(e,"geometry",t,n),b6(e,"westHemisphereGeometry",t,n),b6(e,"eastHemisphereGeometry",t,n),n}var Ep={};Ep.combineGeometry=function(e){let t,n,i=e.instances,o=i.length,r,s,a=!1;o>0&&(t=WIe(e),t.length>0&&(n=Nn.createAttributeLocations(t[0]),e.createPickOffsets&&(r=jIe(i,t))),l(i[0].attributes)&&l(i[0].attributes.offset)&&(s=new Array(o),a=!0));let c=new Array(o),u=new Array(o);for(let f=0;f<o;++f){let d=i[f],p=d.geometry;l(p)&&(c[f]=p.boundingSphere,u[f]=p.boundingSphereCV,a&&(s[f]=d.geometry.offsetAttribute));let g=d.eastHemisphereGeometry,m=d.westHemisphereGeometry;l(g)&&l(m)&&(l(g.boundingSphere)&&l(m.boundingSphere)&&(c[f]=ae.union(g.boundingSphere,m.boundingSphere)),l(g.boundingSphereCV)&&l(m.boundingSphereCV)&&(u[f]=ae.union(g.boundingSphereCV,m.boundingSphereCV)))}return{geometries:t,modelMatrix:e.modelMatrix,attributeLocations:n,pickOffsets:r,offsetInstanceExtend:s,boundingSpheres:c,boundingSpheresCV:u}};function qIe(e,t){let n=e.attributes;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];l(o)&&l(o.values)&&t.push(o.values.buffer)}l(e.indices)&&t.push(e.indices.buffer)}function YIe(e,t){let n=e.length;for(let i=0;i<n;++i)qIe(e[i],t)}function XIe(e){let t=1,n=e.length;for(let i=0;i<n;i++){let o=e[i];if(++t,!l(o))continue;let r=o.attributes;t+=7+2*ae.packedLength+(l(o.indices)?o.indices.length:0);for(let s in r)if(r.hasOwnProperty(s)&&l(r[s])){let a=r[s];t+=5+a.values.length}}return t}Ep.packCreateGeometryResults=function(e,t){let n=new Float64Array(XIe(e)),i=[],o={},r=e.length,s=0;n[s++]=r;for(let a=0;a<r;a++){let c=e[a],u=l(c);if(n[s++]=u?1:0,!u)continue;n[s++]=c.primitiveType,n[s++]=c.geometryType,n[s++]=y(c.offsetAttribute,-1);let f=l(c.boundingSphere)?1:0;n[s++]=f,f&&ae.pack(c.boundingSphere,n,s),s+=ae.packedLength;let d=l(c.boundingSphereCV)?1:0;n[s++]=d,d&&ae.pack(c.boundingSphereCV,n,s),s+=ae.packedLength;let p=c.attributes,g=[];for(let x in p)p.hasOwnProperty(x)&&l(p[x])&&(g.push(x),l(o[x])||(o[x]=i.length,i.push(x)));n[s++]=g.length;for(let x=0;x<g.length;x++){let b=g[x],T=p[b];n[s++]=o[b],n[s++]=T.componentDatatype,n[s++]=T.componentsPerAttribute,n[s++]=T.normalize?1:0,n[s++]=T.values.length,n.set(T.values,s),s+=T.values.length}let m=l(c.indices)?c.indices.length:0;n[s++]=m,m>0&&(n.set(c.indices,s),s+=m)}return t.push(n.buffer),{stringTable:i,packedData:n}};Ep.unpackCreateGeometryResults=function(e){let t=e.stringTable,n=e.packedData,i,o=new Array(n[0]),r=0,s=1;for(;s<n.length;){if(!(n[s++]===1)){o[r++]=void 0;continue}let c=n[s++],u=n[s++],f=n[s++];f===-1&&(f=void 0);let d,p;n[s++]===1&&(d=ae.unpack(n,s)),s+=ae.packedLength,n[s++]===1&&(p=ae.unpack(n,s)),s+=ae.packedLength;let x,b,T,C=new fn,A=n[s++];for(i=0;i<A;i++){let v=t[n[s++]],D=n[s++];T=n[s++];let O=n[s++]!==0;x=n[s++],b=X.createTypedArray(D,x);for(let I=0;I<x;I++)b[I]=n[s++];C[v]=new ve({componentDatatype:D,componentsPerAttribute:T,normalize:O,values:b})}let E;if(x=n[s++],x>0){let v=b.length/T;for(E=Ne.createTypedArray(v,x),i=0;i<x;i++)E[i]=n[s++]}o[r++]=new st({primitiveType:c,geometryType:u,boundingSphere:d,boundingSphereCV:p,indices:E,attributes:C,offsetAttribute:f})}return o};function KIe(e,t){let n=e.length,i=new Float64Array(1+n*19),o=0;i[o++]=n;for(let r=0;r<n;r++){let s=e[r];if(F.pack(s.modelMatrix,i,o),o+=F.packedLength,l(s.attributes)&&l(s.attributes.offset)){let a=s.attributes.offset.value;i[o]=a[0],i[o+1]=a[1],i[o+2]=a[2]}o+=3}return t.push(i.buffer),i}function ZIe(e){let t=e,n=new Array(t[0]),i=0,o=1;for(;o<t.length;){let r=F.unpack(t,o),s;o+=F.packedLength,l(t[o])&&(s={offset:new Yi(t[o],t[o+1],t[o+2])}),o+=3,n[i++]={modelMatrix:r,attributes:s}}return n}Ep.packCombineGeometryParameters=function(e,t){let n=e.createGeometryResults,i=n.length;for(let o=0;o<i;o++)t.push(n[o].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:KIe(e.instances,t),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof Ci,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}};Ep.unpackCombineGeometryParameters=function(e){let t=ZIe(e.packedInstances),n=e.createGeometryResults,i=n.length,o=0;for(let a=0;a<i;a++){let c=Ep.unpackCreateGeometryResults(n[a]),u=c.length;for(let f=0;f<u;f++){let d=c[f],p=t[o];p.geometry=d,++o}}let r=te.clone(e.ellipsoid),s=e.isGeographic?new Ci(r):new Si(r);return{instances:t,ellipsoid:r,projection:s,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:F.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}};function Dte(e){let t=e.length,n=1+(ae.packedLength+1)*t,i=new Float32Array(n),o=0;i[o++]=t;for(let r=0;r<t;++r){let s=e[r];l(s)?(i[o++]=1,ae.pack(e[r],i,o)):i[o++]=0,o+=ae.packedLength}return i}function Pte(e){let t=new Array(e[0]),n=0,i=1;for(;i<e.length;)e[i++]===1&&(t[n]=ae.unpack(e,i)),++n,i+=ae.packedLength;return t}Ep.packCombineGeometryResults=function(e,t){l(e.geometries)&&YIe(e.geometries,t);let n=Dte(e.boundingSpheres),i=Dte(e.boundingSpheresCV);return t.push(n.buffer,i.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:n,boundingSpheresCV:i}};Ep.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:Pte(e.boundingSpheres),boundingSpheresCV:Pte(e.boundingSpheresCV)}};var gx=Ep;var $Ie={READY:0,CREATING:1,CREATED:2,COMBINING:3,COMBINED:4,COMPLETE:5,FAILED:6},gr=Object.freeze($Ie);var PV={MORPHING:0,COLUMBUS_VIEW:1,SCENE2D:2,SCENE3D:3};PV.getMorphTime=function(e){return e===PV.SCENE3D?1:e===PV.MORPHING?void 0:0};var ne=Object.freeze(PV);var fu={DISABLED:0,ENABLED:1,CAST_ONLY:2,RECEIVE_ONLY:3};fu.NUMBER_OF_SHADOW_MODES=4;fu.castShadows=function(e){return e===fu.ENABLED||e===fu.CAST_ONLY};fu.receiveShadows=function(e){return e===fu.ENABLED||e===fu.RECEIVE_ONLY};fu.fromCastReceive=function(e,t){return e&&t?fu.ENABLED:e?fu.CAST_ONLY:t?fu.RECEIVE_ONLY:fu.DISABLED};var yn=Object.freeze(fu);function yr(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this.appearance=e.appearance,this._appearance=void 0,this._material=void 0,this.depthFailAppearance=e.depthFailAppearance,this._depthFailAppearance=void 0,this._depthFailMaterial=void 0,this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=new F,this.show=y(e.show,!0),this._vertexCacheOptimize=y(e.vertexCacheOptimize,!1),this._interleave=y(e.interleave,!1),this._releaseGeometryInstances=y(e.releaseGeometryInstances,!0),this._allowPicking=y(e.allowPicking,!0),this._asynchronous=y(e.asynchronous,!0),this._compressVertices=y(e.compressVertices,!0),this.cull=y(e.cull,!0),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.rtcCenter=e.rtcCenter,this.shadows=y(e.shadows,yn.DISABLED),this._translucent=void 0,this._state=gr.READY,this._geometries=[],this._error=void 0,this._numberOfInstances=0,this._boundingSpheres=[],this._boundingSphereWC=[],this._boundingSphereCV=[],this._boundingSphere2D=[],this._boundingSphereMorph=[],this._perInstanceAttributeCache=new Map,this._instanceIds=[],this._lastPerInstanceAttributeIndex=0,this._va=[],this._attributeLocations=void 0,this._primitiveType=void 0,this._frontFaceRS=void 0,this._backFaceRS=void 0,this._sp=void 0,this._depthFailAppearance=void 0,this._spDepthFail=void 0,this._frontFaceDepthFailRS=void 0,this._backFaceDepthFailRS=void 0,this._pickIds=[],this._colorCommands=[],this._pickCommands=[],this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._createRenderStatesFunction=e._createRenderStatesFunction,this._createShaderProgramFunction=e._createShaderProgramFunction,this._createCommandsFunction=e._createCommandsFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._createPickOffsets=e._createPickOffsets,this._pickOffsets=void 0,this._createGeometryResults=void 0,this._ready=!1,this._batchTable=void 0,this._batchTableAttributeIndices=void 0,this._offsetInstanceExtend=void 0,this._batchTableOffsetAttribute2DIndex=void 0,this._batchTableOffsetsUpdated=!1,this._instanceBoundingSpheres=void 0,this._instanceBoundingSpheresCV=void 0,this._tempBoundingSpheres=void 0,this._recomputeBoundingSpheres=!1,this._batchTableBoundingSpheresUpdated=!1,this._batchTableBoundingSphereAttributeIndices=void 0}Object.defineProperties(yr.prototype,{vertexCacheOptimize:{get:function(){return this._vertexCacheOptimize}},interleave:{get:function(){return this._interleave}},releaseGeometryInstances:{get:function(){return this._releaseGeometryInstances}},allowPicking:{get:function(){return this._allowPicking}},asynchronous:{get:function(){return this._asynchronous}},compressVertices:{get:function(){return this._compressVertices}},ready:{get:function(){return this._ready}}});function QIe(e){let t=e.length,n=[],i=e[0].attributes,o;for(o in i)if(i.hasOwnProperty(o)&&l(i[o])){let r=i[o],s=!0;for(let a=1;a<t;++a){let c=e[a].attributes[o];if(!l(c)||r.componentDatatype!==c.componentDatatype||r.componentsPerAttribute!==c.componentsPerAttribute||r.normalize!==c.normalize){s=!1;break}}s&&n.push(o)}return n}var JIe=new z,e1e=new h,kte=new oe;function Vte(e){let t=e.length;if(t===1)return e[0];if(t===2)return z.unpack(e,0,JIe);if(t===3)return h.unpack(e,0,e1e);if(t===4)return oe.unpack(e,0,kte)}function t1e(e,t){let n=e.geometryInstances,i=Array.isArray(n)?n:[n],o=i.length;if(o===0)return;let r=QIe(i),s=r.length,a=[],c={},u={},f,p=i[0].attributes,g,m,x;for(g=0;g<s;++g)m=r[g],x=p[m],c[m]=g,a.push({functionName:`czm_batchTable_${m}`,componentDatatype:x.componentDatatype,componentsPerAttribute:x.componentsPerAttribute,normalize:x.normalize});r.indexOf("distanceDisplayCondition")!==-1&&(a.push({functionName:"czm_batchTable_boundingSphereCenter3DHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter3DLow",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DLow",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereRadius",componentDatatype:X.FLOAT,componentsPerAttribute:1}),u.center3DHigh=a.length-5,u.center3DLow=a.length-4,u.center2DHigh=a.length-3,u.center2DLow=a.length-2,u.radius=a.length-1),r.indexOf("offset")!==-1&&(a.push({functionName:"czm_batchTable_offset2D",componentDatatype:X.FLOAT,componentsPerAttribute:3}),f=a.length-1),a.push({functionName:"czm_batchTable_pickColor",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0});let b=a.length,T=new fx(t,a,o);for(g=0;g<o;++g){let C=i[g];p=C.attributes;for(let O=0;O<s;++O){m=r[O],x=p[m];let I=Vte(x.value),L=c[m];T.setBatchedAttribute(g,L,I)}let A={primitive:y(C.pickPrimitive,e)};l(C.id)&&(A.id=C.id);let E=t.createPickId(A);e._pickIds.push(E);let v=E.color,D=kte;D.x=H.floatToByte(v.red),D.y=H.floatToByte(v.green),D.z=H.floatToByte(v.blue),D.w=H.floatToByte(v.alpha),T.setBatchedAttribute(g,b-1,D)}e._batchTable=T,e._batchTableAttributeIndices=c,e._batchTableBoundingSphereAttributeIndices=u,e._batchTableOffsetAttribute2DIndex=f}function n1e(e){let t;return Array.isArray(e.values)?t=e.values.slice(0):t=new e.values.constructor(e.values),new ve({componentDatatype:e.componentDatatype,componentsPerAttribute:e.componentsPerAttribute,normalize:e.normalize,values:t})}function i1e(e){let t=e.attributes,n=new fn;for(let o in t)t.hasOwnProperty(o)&&l(t[o])&&(n[o]=n1e(t[o]));let i;if(l(e.indices)){let o=e.indices;Array.isArray(o)?i=o.slice(0):i=new o.constructor(o)}return new st({attributes:n,indices:i,primitiveType:e.primitiveType,boundingSphere:ae.clone(e.boundingSphere)})}function o1e(e,t){return{geometry:t,attributes:e.attributes,modelMatrix:F.clone(e.modelMatrix),pickPrimitive:e.pickPrimitive,id:e.id}}var r1e=/in\s+vec(?:3|4)\s+(.*)3DHigh;/g;yr._modifyShaderPosition=function(e,t,n){let i,o="",r="",s="";for(;(i=r1e.exec(t))!==null;){let a=i[1],c=`vec4 czm_compute${a[0].toUpperCase()}${a.substr(1)}()`;c!=="vec4 czm_computePosition()"&&(o+=`${c}; `),l(e.rtcCenter)?(t=t.replace(/in\s+vec(?:3|4)\s+position3DHigh;/g,""),t=t.replace(/in\s+vec(?:3|4)\s+position3DLow;/g,""),o+=`uniform mat4 u_modifiedModelView; `,r+=`in vec4 position; `,s+=`${c} { return u_modifiedModelView * position; } `,t=t.replace(/czm_modelViewRelativeToEye\s+\*\s+/g,""),t=t.replace(/czm_modelViewProjectionRelativeToEye/g,"czm_projection")):n?s+=`${c} { return czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow); } `:(r+=`in vec3 ${a}2DHigh; in vec3 ${a}2DLow; `,s+=`${c} { vec4 p; if (czm_morphTime == 1.0) { p = czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow); } else if (czm_morphTime == 0.0) { p = czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy); } else { p = czm_columbusViewMorph( czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy), czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow), czm_morphTime); } return p; } `)}return[o,r,t,s].join(` `)};yr._appendShowToShader=function(e,t){return l(e._batchTableAttributeIndices.show)?`${ze.replaceMain(t,"czm_non_show_main")} void main() { czm_non_show_main(); gl_Position *= czm_batchTable_show(batchId); }`:t};yr._updateColorAttribute=function(e,t,n){if(!l(e._batchTableAttributeIndices.color)&&!l(e._batchTableAttributeIndices.depthFailColor)||t.search(/in\s+vec4\s+color;/g)===-1)return t;let i=t;return i=i.replace(/in\s+vec4\s+color;/g,""),n?i=i.replace(/(\b)color(\b)/g,"$1czm_batchTable_depthFailColor(batchId)$2"):i=i.replace(/(\b)color(\b)/g,"$1czm_batchTable_color(batchId)$2"),i};function Ite(e){return`${ze.replaceMain(e,"czm_non_pick_main")} out vec4 v_pickColor; void main() { czm_non_pick_main(); v_pickColor = czm_batchTable_pickColor(batchId); }`}function Rte(e){return`in vec4 v_pickColor; ${e}`}yr._updatePickColorAttribute=function(e){let t=e.replace(/in\s+vec4\s+pickColor;/g,"");return t=t.replace(/(\b)pickColor(\b)/g,"$1czm_batchTable_pickColor(batchId)$2"),t};yr._appendOffsetToShader=function(e,t){if(!l(e._batchTableAttributeIndices.offset))return t;let n=`in float batchId; `;n+="in float applyOffset;";let i=t.replace(/in\s+float\s+batchId;/g,n),o=`vec4 $1 = czm_computePosition(); `;return o+=` if (czm_sceneMode == czm_sceneMode3D) `,o+=` { `,o+=" $1 = $1 + vec4(czm_batchTable_offset(batchId) * applyOffset, 0.0);",o+=` } `,o+=` else `,o+=` { `,o+=" $1 = $1 + vec4(czm_batchTable_offset2D(batchId) * applyOffset, 0.0);",o+=` } `,i=i.replace(/vec4\s+([A-Za-z0-9_]+)\s+=\s+czm_computePosition\(\);/g,o),i};yr._appendDistanceDisplayConditionToShader=function(e,t,n){if(!l(e._batchTableAttributeIndices.distanceDisplayCondition))return t;let i=ze.replaceMain(t,"czm_non_distanceDisplayCondition_main"),o=`void main() { czm_non_distanceDisplayCondition_main(); vec2 distanceDisplayCondition = czm_batchTable_distanceDisplayCondition(batchId); vec3 boundingSphereCenter3DHigh = czm_batchTable_boundingSphereCenter3DHigh(batchId); vec3 boundingSphereCenter3DLow = czm_batchTable_boundingSphereCenter3DLow(batchId); float boundingSphereRadius = czm_batchTable_boundingSphereRadius(batchId); `;return n?o+=` vec4 centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow); `:o+=` vec3 boundingSphereCenter2DHigh = czm_batchTable_boundingSphereCenter2DHigh(batchId); vec3 boundingSphereCenter2DLow = czm_batchTable_boundingSphereCenter2DLow(batchId); vec4 centerRTE; if (czm_morphTime == 1.0) { centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow); } else if (czm_morphTime == 0.0) { centerRTE = czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy); } else { centerRTE = czm_columbusViewMorph( czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy), czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow), czm_morphTime); } `,o+=` float radiusSq = boundingSphereRadius * boundingSphereRadius; float distanceSq; if (czm_sceneMode == czm_sceneMode2D) { distanceSq = czm_eyeHeight2D.y - radiusSq; } else { distanceSq = dot(centerRTE.xyz, centerRTE.xyz) - radiusSq; } distanceSq = max(distanceSq, 0.0); float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; float show = (distanceSq >= nearSq && distanceSq <= farSq) ? 1.0 : 0.0; gl_Position *= show; }`,`${i} ${o}`};function Ote(e,t){if(!e.compressVertices)return t;let n=t.search(/in\s+vec3\s+normal;/g)!==-1,i=t.search(/in\s+vec2\s+st;/g)!==-1;if(!n&&!i)return t;let o=t.search(/in\s+vec3\s+tangent;/g)!==-1,r=t.search(/in\s+vec3\s+bitangent;/g)!==-1,s=i&&n?2:1;s+=o||r?1:0;let a=s>1?`vec${s}`:"float",c="compressedAttributes",u=`in ${a} ${c};`,f="",d="";if(i){f+=`vec2 st; `;let m=s>1?`${c}.x`:c;d+=` st = czm_decompressTextureCoordinates(${m}); `}n&&o&&r?(f+=`vec3 normal; vec3 tangent; vec3 bitangent; `,d+=` czm_octDecode(${c}.${i?"yz":"xy"}, normal, tangent, bitangent); `):(n&&(f+=`vec3 normal; `,d+=` normal = czm_octDecode(${c}${s>1?`.${i?"y":"x"}`:""}); `),o&&(f+=`vec3 tangent; `,d+=` tangent = czm_octDecode(${c}.${i&&n?"z":"y"}); `),r&&(f+=`vec3 bitangent; `,d+=` bitangent = czm_octDecode(${c}.${i&&n?"z":"y"}); `));let p=t;p=p.replace(/in\s+vec3\s+normal;/g,""),p=p.replace(/in\s+vec2\s+st;/g,""),p=p.replace(/in\s+vec3\s+tangent;/g,""),p=p.replace(/in\s+vec3\s+bitangent;/g,""),p=ze.replaceMain(p,"czm_non_compressed_main");let g=`void main() { ${d} czm_non_compressed_main(); }`;return[u,f,p,g].join(` `)}function s1e(e){let t=ze.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { czm_non_depth_clamp_main(); gl_Position = czm_depthClamp(gl_Position);} `,t}function a1e(e){let t=ze.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { czm_non_depth_clamp_main(); #if defined(LOG_DEPTH) czm_writeLogDepth(); #else czm_writeDepthClamp(); #endif } `,t}function Mte(e,t){let n=e.vertexAttributes}function c1e(e,t){return function(){return e[t]}}var T6=Math.max(Vt.hardwareConcurrency-1,1),IV,l1e=new mi("combineGeometry");function u1e(e,t){let n,i,o,r,s=e._instanceIds;if(e._state===gr.READY){n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let a=e._numberOfInstances=n.length,c=[],u=[];for(o=0;o<a;++o)i=n[o].geometry,s.push(n[o].id),u.push({moduleName:i._workerName,modulePath:i._workerPath,geometry:i});if(!l(IV))for(IV=new Array(T6),o=0;o<T6;o++)IV[o]=new mi("createGeometry");let f;for(u=xI(u,T6),o=0;o<u.length;o++){let d=0,p=u[o],g=p.length;for(r=0;r<g;++r)f=p[r],i=f.geometry,l(i.constructor.pack)&&(f.offset=d,d+=y(i.constructor.packedLength,i.packedLength));let m;if(d>0){let x=new Float64Array(d);for(m=[x.buffer],r=0;r<g;++r)f=p[r],i=f.geometry,l(i.constructor.pack)&&(i.constructor.pack(i,x,f.offset),f.geometry=x)}c.push(IV[o].scheduleTask({subTasks:u[o]},m))}e._state=gr.CREATING,Promise.all(c).then(function(d){e._createGeometryResults=d,e._state=gr.CREATED}).catch(function(d){wI(e,t,gr.FAILED,d)})}else if(e._state===gr.CREATED){let a=[];n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let c=t.scene3DOnly,u=t.mapProjection,f=l1e.scheduleTask(gx.packCombineGeometryParameters({createGeometryResults:e._createGeometryResults,instances:n,ellipsoid:u.ellipsoid,projection:u,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:c,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets},a),a);e._createGeometryResults=void 0,e._state=gr.COMBINING,Promise.resolve(f).then(function(d){let p=gx.unpackCombineGeometryResults(d);e._geometries=p.geometries,e._attributeLocations=p.attributeLocations,e.modelMatrix=F.clone(p.modelMatrix,e.modelMatrix),e._pickOffsets=p.pickOffsets,e._offsetInstanceExtend=p.offsetInstanceExtend,e._instanceBoundingSpheres=p.boundingSpheres,e._instanceBoundingSpheresCV=p.boundingSpheresCV,l(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=gr.COMBINED):wI(e,t,gr.FAILED,void 0)}).catch(function(d){wI(e,t,gr.FAILED,d)})}}function f1e(e,t){let n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances],i=e._numberOfInstances=n.length,o=new Array(i),r=e._instanceIds,s,a,c=0;for(a=0;a<i;a++){s=n[a];let p=s.geometry,g;l(p.attributes)&&l(p.primitiveType)?g=i1e(p):g=p.constructor.createGeometry(p),o[c++]=o1e(s,g),r.push(s.id)}o.length=c;let u=t.scene3DOnly,f=t.mapProjection,d=gx.combineGeometry({instances:o,ellipsoid:f.ellipsoid,projection:f,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:u,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets});e._geometries=d.geometries,e._attributeLocations=d.attributeLocations,e.modelMatrix=F.clone(d.modelMatrix,e.modelMatrix),e._pickOffsets=d.pickOffsets,e._offsetInstanceExtend=d.offsetInstanceExtend,e._instanceBoundingSpheres=d.boundingSpheres,e._instanceBoundingSpheresCV=d.boundingSpheresCV,l(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=gr.COMBINED):wI(e,t,gr.FAILED,void 0)}function d1e(e,t){let n=e._batchTableAttributeIndices.offset;if(!e._recomputeBoundingSpheres||!l(n)){e._recomputeBoundingSpheres=!1;return}let i,o=e._offsetInstanceExtend,r=e._instanceBoundingSpheres,s=r.length,a=e._tempBoundingSpheres;if(!l(a)){for(a=new Array(s),i=0;i<s;i++)a[i]=new ae;e._tempBoundingSpheres=a}for(i=0;i<s;++i){let x=a[i],b=e._batchTable.getBatchedAttribute(i,n,new h);x=r[i].clone(x),Gte(x,b,o[i])}let c=[],u=[],f=[];for(i=0;i<s;++i){let x=a[i];x.center.x-x.radius>0||ae.intersectPlane(x,ln.ORIGIN_ZX_PLANE)!==Gt.INTERSECTING?c.push(x):(u.push(x),f.push(x))}let d=c[0],p=f[0],g=u[0];for(i=1;i<c.length;i++)d=ae.union(d,c[i]);for(i=1;i<f.length;i++)p=ae.union(p,f[i]);for(i=1;i<u.length;i++)g=ae.union(g,u[i]);let m=[];for(l(d)&&m.push(d),l(p)&&m.push(p),l(g)&&m.push(g),i=0;i<m.length;i++){let x=m[i].clone(e._boundingSpheres[i]);e._boundingSpheres[i]=x,e._boundingSphereCV[i]=ae.projectTo2D(x,t.mapProjection,e._boundingSphereCV[i])}yr._updateBoundingVolumes(e,t,e.modelMatrix,!0),e._recomputeBoundingSpheres=!1}var Lte=new Gn,Ute=new fe,zte=new h,Hte=new ae;function h1e(e,t){if(!l(e._batchTableAttributeIndices.distanceDisplayCondition)||e._batchTableBoundingSpheresUpdated)return;let i=e._batchTableBoundingSphereAttributeIndices,o=i.center3DHigh,r=i.center3DLow,s=i.center2DHigh,a=i.center2DLow,c=i.radius,u=t.mapProjection,f=u.ellipsoid,d=e._batchTable,p=e._instanceBoundingSpheres,g=p.length;for(let m=0;m<g;++m){let x=p[m];if(!l(x))continue;let b=e.modelMatrix;l(b)&&(x=ae.transform(x,b,Hte));let T=x.center,C=x.radius,A=Gn.fromCartesian(T,Lte);if(d.setBatchedAttribute(m,o,A.high),d.setBatchedAttribute(m,r,A.low),!t.scene3DOnly){let E=f.cartesianToCartographic(T,Ute),v=u.project(E,zte);A=Gn.fromCartesian(v,Lte),d.setBatchedAttribute(m,s,A.high),d.setBatchedAttribute(m,a,A.low)}d.setBatchedAttribute(m,c,C)}e._batchTableBoundingSpheresUpdated=!0}var A6=new h,m1e=new h;function Nte(e,t){if(!l(e._batchTableAttributeIndices.offset)||e._batchTableOffsetsUpdated||t.scene3DOnly)return;let i=e._batchTableOffsetAttribute2DIndex,o=t.mapProjection,r=o.ellipsoid,s=e._batchTable,a=e._instanceBoundingSpheres,c=a.length;for(let u=0;u<c;++u){let f=a[u];if(!l(f))continue;let d=s.getBatchedAttribute(u,e._batchTableAttributeIndices.offset);if(h.equals(d,h.ZERO)){s.setBatchedAttribute(u,i,h.ZERO);continue}let p=e.modelMatrix;l(p)&&(f=ae.transform(f,p,Hte));let g=f.center;g=r.scaleToGeodeticSurface(g,m1e);let m=r.cartesianToCartographic(g,Ute),x=o.project(m,zte),b=h.add(d,g,A6);m=r.cartesianToCartographic(b,m);let T=o.project(m,A6),C=h.subtract(T,x,A6),A=C.x;C.x=C.z,C.z=C.y,C.y=A,s.setBatchedAttribute(u,i,C)}e._batchTableOffsetsUpdated=!0}function p1e(e,t){let n=e._attributeLocations,i=e._geometries,o=t.scene3DOnly,r=t.context,s=[],a=i.length;for(let c=0;c<a;++c){let u=i[c];if(s.push(ei.fromGeometry({context:r,geometry:u,attributeLocations:n,bufferUsage:Fe.STATIC_DRAW,interleave:e._interleave})),l(e._createBoundingVolumeFunction))e._createBoundingVolumeFunction(t,u);else if(e._boundingSpheres.push(ae.clone(u.boundingSphere)),e._boundingSphereWC.push(new ae),!o){let f=u.boundingSphereCV.center,d=f.x,p=f.y,g=f.z;f.x=g,f.y=d,f.z=p,e._boundingSphereCV.push(ae.clone(u.boundingSphereCV)),e._boundingSphere2D.push(new ae),e._boundingSphereMorph.push(new ae)}}e._va=s,e._primitiveType=i[0].primitiveType,e.releaseGeometryInstances&&(e.geometryInstances=void 0),e._geometries=void 0,wI(e,t,gr.COMPLETE,void 0)}function _1e(e,t,n,i){let o=n.getRenderState(),r;i?(r=He(o,!1),r.cull={enabled:!0,face:hi.BACK},e._frontFaceRS=Ve.fromCache(r),r.cull.face=hi.FRONT,e._backFaceRS=Ve.fromCache(r)):(e._frontFaceRS=Ve.fromCache(o),e._backFaceRS=e._frontFaceRS),r=He(o,!1),l(e._depthFailAppearance)&&(r.depthTest.enabled=!1),l(e._depthFailAppearance)&&(o=e._depthFailAppearance.getRenderState(),r=He(o,!1),r.depthTest.func=tc.GREATER,i?(r.cull={enabled:!0,face:hi.BACK},e._frontFaceDepthFailRS=Ve.fromCache(r),r.cull.face=hi.FRONT,e._backFaceDepthFailRS=Ve.fromCache(r)):(e._frontFaceDepthFailRS=Ve.fromCache(r),e._backFaceDepthFailRS=e._frontFaceRS))}function g1e(e,t,n){let i=t.context,o=e._attributeLocations,r=e._batchTable.getVertexShaderCallback()(n.vertexShaderSource);r=yr._appendOffsetToShader(e,r),r=yr._appendShowToShader(e,r),r=yr._appendDistanceDisplayConditionToShader(e,r,t.scene3DOnly),r=Ite(r),r=yr._updateColorAttribute(e,r,!1),r=Ote(e,r),r=yr._modifyShaderPosition(e,r,t.scene3DOnly);let s=n.getFragmentShaderSource();s=Rte(s),e._sp=$t.replaceCache({context:i,shaderProgram:e._sp,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),Mte(e._sp,o),l(e._depthFailAppearance)&&(r=e._batchTable.getVertexShaderCallback()(e._depthFailAppearance.vertexShaderSource),r=yr._appendShowToShader(e,r),r=yr._appendDistanceDisplayConditionToShader(e,r,t.scene3DOnly),r=Ite(r),r=yr._updateColorAttribute(e,r,!0),r=Ote(e,r),r=yr._modifyShaderPosition(e,r,t.scene3DOnly),r=s1e(r),s=e._depthFailAppearance.getFragmentShaderSource(),s=Rte(s),s=a1e(s),e._spDepthFail=$t.replaceCache({context:i,shaderProgram:e._spDepthFail,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),Mte(e._spDepthFail,o))}var vI=new F,Fte=new h;function Bte(e,t,n,i){let o=l(n)?n._uniforms:void 0,r={},s=t.uniforms;if(l(s))for(let c in s)s.hasOwnProperty(c)&&(r[c]=c1e(s,c));let a=_t(r,o);return a=e._batchTable.getUniformMapCallback()(a),l(e.rtcCenter)&&(a.u_modifiedModelView=function(){let c=i.context.uniformState.view;return F.multiply(c,e._modelMatrix,vI),F.multiplyByPoint(vI,e.rtcCenter,Fte),F.setTranslation(vI,Fte,vI),vI}),a}function y1e(e,t,n,i,o,r,s,a){let c=Bte(e,t,n,a),u;l(e._depthFailAppearance)&&(u=Bte(e,e._depthFailAppearance,e._depthFailAppearance.material,a));let f=i?Ee.TRANSLUCENT:Ee.OPAQUE,d=o?2:1;d*=l(e._depthFailAppearance)?2:1,r.length=e._va.length*d;let p=r.length,g=0;for(let m=0;m<p;++m){let x;o&&(x=r[m],l(x)||(x=r[m]=new Ze({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._backFaceRS,x.shaderProgram=e._sp,x.uniformMap=c,x.pass=f,++m),x=r[m],l(x)||(x=r[m]=new Ze({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._frontFaceRS,x.shaderProgram=e._sp,x.uniformMap=c,x.pass=f,l(e._depthFailAppearance)&&(o&&(++m,x=r[m],l(x)||(x=r[m]=new Ze({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._backFaceDepthFailRS,x.shaderProgram=e._spDepthFail,x.uniformMap=u,x.pass=f),++m,x=r[m],l(x)||(x=r[m]=new Ze({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._frontFaceDepthFailRS,x.shaderProgram=e._spDepthFail,x.uniformMap=u,x.pass=f),++g}}yr._updateBoundingVolumes=function(e,t,n,i){let o,r,s;if(i||!F.equals(n,e._modelMatrix))for(F.clone(n,e._modelMatrix),r=e._boundingSpheres.length,o=0;o<r;++o)s=e._boundingSpheres[o],l(s)&&(e._boundingSphereWC[o]=ae.transform(s,n,e._boundingSphereWC[o]),t.scene3DOnly||(e._boundingSphere2D[o]=ae.clone(e._boundingSphereCV[o],e._boundingSphere2D[o]),e._boundingSphere2D[o].center.x=0,e._boundingSphereMorph[o]=ae.union(e._boundingSphereWC[o],e._boundingSphereCV[o])));let a=e.appearance.pixelSize;if(l(a))for(r=e._boundingSpheres.length,o=0;o<r;++o){s=e._boundingSpheres[o];let c=e._boundingSphereWC[o],f=t.camera.getPixelSize(s,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*a;c.radius=s.radius+f}};function x1e(e,t,n,i,o,r,s,a){yr._updateBoundingVolumes(e,t,o);let c;t.mode===ne.SCENE3D?c=e._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?c=e._boundingSphereCV:t.mode===ne.SCENE2D&&l(e._boundingSphere2D)?c=e._boundingSphere2D:l(e._boundingSphereMorph)&&(c=e._boundingSphereMorph);let u=t.commandList,f=t.passes;if(f.render||f.pick){let d=e.allowPicking,p=yn.castShadows(e.shadows),g=yn.receiveShadows(e.shadows),m=n.length,x=a?2:1;x*=l(e._depthFailAppearance)?2:1;for(let b=0;b<m;++b){let T=Math.floor(b/x),C=n[b];C.modelMatrix=o,C.boundingVolume=c[T],C.cull=r,C.debugShowBoundingVolume=s,C.castShadows=p,C.receiveShadows=g,d?C.pickId="v_pickColor":C.pickId=void 0,u.push(C)}}}yr.prototype.update=function(e){if(!l(this.geometryInstances)&&this._va.length===0||l(this.geometryInstances)&&Array.isArray(this.geometryInstances)&&this.geometryInstances.length===0||!l(this.appearance)||e.mode!==ne.SCENE3D&&e.scene3DOnly||!e.passes.render&&!e.passes.pick)return;if(l(this._error))throw this._error;if(this._state===gr.FAILED)return;let t=e.context;if(l(this._batchTable)||t1e(this,t),this._batchTable.attributes.length>0){if(Nt.maximumVertexTextureImageUnits===0)throw new le("Vertex texture fetch support is required to render primitives with per-instance attributes. The maximum number of vertex texture image units must be greater than zero.");this._batchTable.update(e)}if(this._state!==gr.COMPLETE&&this._state!==gr.COMBINED&&(this.asynchronous?u1e(this,e):f1e(this,e)),this._state===gr.COMBINED&&(h1e(this,e),Nte(this,e),p1e(this,e)),!this.show||this._state!==gr.COMPLETE)return;this._batchTableOffsetsUpdated||Nte(this,e),this._recomputeBoundingSpheres&&d1e(this,e);let n=this.appearance,i=n.material,o=!1,r=!1;this._appearance!==n?(this._appearance=n,this._material=i,o=!0,r=!0):this._material!==i&&(this._material=i,r=!0);let s=this.depthFailAppearance,a=l(s)?s.material:void 0;this._depthFailAppearance!==s?(this._depthFailAppearance=s,this._depthFailMaterial=a,o=!0,r=!0):this._depthFailMaterial!==a&&(this._depthFailMaterial=a,r=!0);let c=this._appearance.isTranslucent();this._translucent!==c&&(this._translucent=c,o=!0),l(this._material)&&this._material.update(t);let u=n.closed&&c;o&&y(this._createRenderStatesFunction,_1e)(this,t,n,u),r&&y(this._createShaderProgramFunction,g1e)(this,e,n),(o||r)&&y(this._createCommandsFunction,y1e)(this,n,i,c,u,this._colorCommands,this._pickCommands,e),y(this._updateAndQueueCommandsFunction,x1e)(this,e,this._colorCommands,this._pickCommands,this.modelMatrix,this.cull,this.debugShowBoundingVolume,u)};var b1e=new ae,T1e=new ae;function Gte(e,t,n){if(n===an.TOP){let i=ae.clone(e,b1e),o=ae.clone(e,T1e);o.center=h.add(o.center,t,o.center),e=ae.union(i,o,e)}else n===an.ALL&&(e.center=h.add(e.center,t,e.center));return e}function A1e(e,t,n){return function(){let i=e.getBatchedAttribute(t,n),o=e.attributes[n],r=o.componentsPerAttribute,s=X.createTypedArray(o.componentDatatype,r);return l(i.constructor.pack)?i.constructor.pack(i,s,0):s[0]=i,s}}function C1e(e,t,n,i,o){return function(r){let s=Vte(r);e.setBatchedAttribute(t,n,s),o==="offset"&&(i._recomputeBoundingSpheres=!0,i._batchTableOffsetsUpdated=!1)}}var E1e=new h;function S1e(e,t,n){t.boundingSphere={get:function(){let i=e._instanceBoundingSpheres[n];if(l(i)){i=i.clone();let o=e.modelMatrix,r=t.offset;l(r)&&Gte(i,h.fromArray(r.get(),0,E1e),e._offsetInstanceExtend[n]),l(o)&&(i=ae.transform(i,o))}return i}},t.boundingSphereCV={get:function(){return e._instanceBoundingSpheresCV[n]}}}function v1e(e,t,n){t.pickId={get:function(){return e._pickIds[n]}}}yr.prototype.getGeometryInstanceAttributes=function(e){let t=this._perInstanceAttributeCache.get(e);if(l(t))return t;let n=-1,i=this._lastPerInstanceAttributeIndex,o=this._instanceIds,r=o.length;for(let u=0;u<r;++u){let f=(i+u)%r;if(e===o[f]){n=f;break}}if(n===-1)return;let s=this._batchTable,a=this._batchTableAttributeIndices;t={};let c={};for(let u in a)if(a.hasOwnProperty(u)){let f=a[u];c[u]={get:A1e(s,n,f),set:C1e(s,n,f,this,u)}}return S1e(this,c,n),v1e(this,c,n),Object.defineProperties(t,c),this._lastPerInstanceAttributeIndex=n,this._perInstanceAttributeCache.set(e,t),t};yr.prototype.isDestroyed=function(){return!1};yr.prototype.destroy=function(){let e,t;this._sp=this._sp&&this._sp.destroy(),this._spDepthFail=this._spDepthFail&&this._spDepthFail.destroy();let n=this._va;for(e=n.length,t=0;t<e;++t)n[t].destroy();this._va=void 0;let i=this._pickIds;for(e=i.length,t=0;t<e;++t)i[t].destroy();return this._pickIds=void 0,this._batchTable=this._batchTable&&this._batchTable.destroy(),this._instanceIds=void 0,this._perInstanceAttributeCache=void 0,this._attributeLocations=void 0,ue(this)};function wI(e,t,n,i){e._error=i,e._state=n,t.afterRender.push(function(){e._ready=e._state===gr.COMPLETE||e._state===gr.FAILED})}var vn=yr;function w1e(e){e=y(e,y.EMPTY_OBJECT),this.componentDatatype=e.componentDatatype,this.componentsPerAttribute=e.componentsPerAttribute,this.normalize=y(e.normalize,!1),this.value=e.value}var nc=w1e;var QA=`#ifdef TEXTURE_COORDINATES #ifdef SPHERICAL in vec4 v_sphericalExtents; #else // SPHERICAL in vec2 v_inversePlaneExtents; in vec4 v_westPlane; in vec4 v_southPlane; #endif // SPHERICAL in vec3 v_uvMinAndSphericalLongitudeRotation; in vec3 v_uMaxAndInverseDistance; in vec3 v_vMaxAndInverseDistance; #endif // TEXTURE_COORDINATES #ifdef PER_INSTANCE_COLOR in vec4 v_color; #endif #ifdef NORMAL_EC vec3 getEyeCoordinate3FromWindowCoordinate(vec2 fragCoord, float logDepthOrDepth) { vec4 eyeCoordinate = czm_windowToEyeCoordinates(fragCoord, logDepthOrDepth); return eyeCoordinate.xyz / eyeCoordinate.w; } vec3 vectorFromOffset(vec4 eyeCoordinate, vec2 positiveOffset) { vec2 glFragCoordXY = gl_FragCoord.xy; // Sample depths at both offset and negative offset float upOrRightLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY + positiveOffset) / czm_viewport.zw)); float downOrLeftLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY - positiveOffset) / czm_viewport.zw)); // Explicitly evaluate both paths // Necessary for multifrustum and for edges of the screen bvec2 upOrRightInBounds = lessThan(glFragCoordXY + positiveOffset, czm_viewport.zw); float useUpOrRight = float(upOrRightLogDepth > 0.0 && upOrRightInBounds.x && upOrRightInBounds.y); float useDownOrLeft = float(useUpOrRight == 0.0); vec3 upOrRightEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY + positiveOffset, upOrRightLogDepth); vec3 downOrLeftEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY - positiveOffset, downOrLeftLogDepth); return (upOrRightEC - (eyeCoordinate.xyz / eyeCoordinate.w)) * useUpOrRight + ((eyeCoordinate.xyz / eyeCoordinate.w) - downOrLeftEC) * useDownOrLeft; } #endif // NORMAL_EC void main(void) { #ifdef REQUIRES_EC float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)); vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); #endif #ifdef REQUIRES_WC vec4 worldCoordinate4 = czm_inverseView * eyeCoordinate; vec3 worldCoordinate = worldCoordinate4.xyz / worldCoordinate4.w; #endif #ifdef TEXTURE_COORDINATES vec2 uv; #ifdef SPHERICAL // Treat world coords as a sphere normal for spherical coordinates vec2 sphericalLatLong = czm_approximateSphericalCoordinates(worldCoordinate); sphericalLatLong.y += v_uvMinAndSphericalLongitudeRotation.z; sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); uv.x = (sphericalLatLong.y - v_sphericalExtents.y) * v_sphericalExtents.w; uv.y = (sphericalLatLong.x - v_sphericalExtents.x) * v_sphericalExtents.z; #else // SPHERICAL // Unpack planes and transform to eye space uv.x = czm_planeDistance(v_westPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.x; uv.y = czm_planeDistance(v_southPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.y; #endif // SPHERICAL #endif // TEXTURE_COORDINATES #ifdef PICK #ifdef CULL_FRAGMENTS // When classifying translucent geometry, logDepthOrDepth == 0.0 // indicates a region that should not be classified, possibly due to there // being opaque pixels there in another buffer. // Check for logDepthOrDepth != 0.0 to make sure this should be classified. if (0.0 <= uv.x && uv.x <= 1.0 && 0.0 <= uv.y && uv.y <= 1.0 || logDepthOrDepth != 0.0) { out_FragColor.a = 1.0; // 0.0 alpha leads to discard from ShaderSource.createPickFragmentShaderSource czm_writeDepthClamp(); } #else // CULL_FRAGMENTS out_FragColor.a = 1.0; #endif // CULL_FRAGMENTS #else // PICK #ifdef CULL_FRAGMENTS // When classifying translucent geometry, logDepthOrDepth == 0.0 // indicates a region that should not be classified, possibly due to there // being opaque pixels there in another buffer. if (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y || logDepthOrDepth == 0.0) { discard; } #endif #ifdef NORMAL_EC // Compute normal by sampling adjacent pixels in 2x2 block in screen space vec3 downUp = vectorFromOffset(eyeCoordinate, vec2(0.0, 1.0)); vec3 leftRight = vectorFromOffset(eyeCoordinate, vec2(1.0, 0.0)); vec3 normalEC = normalize(cross(leftRight, downUp)); #endif #ifdef PER_INSTANCE_COLOR vec4 color = czm_gammaCorrect(v_color); #ifdef FLAT out_FragColor = color; #else // FLAT czm_materialInput materialInput; materialInput.normalEC = normalEC; materialInput.positionToEyeEC = -eyeCoordinate.xyz; czm_material material = czm_getDefaultMaterial(materialInput); material.diffuse = color.rgb; material.alpha = color.a; out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); #endif // FLAT // Premultiply alpha. Required for classification primitives on translucent globe. out_FragColor.rgb *= out_FragColor.a; #else // PER_INSTANCE_COLOR // Material support. // USES_ is distinct from REQUIRES_, because some things are dependencies of each other or // dependencies for culling but might not actually be used by the material. czm_materialInput materialInput; #ifdef USES_NORMAL_EC materialInput.normalEC = normalEC; #endif #ifdef USES_POSITION_TO_EYE_EC materialInput.positionToEyeEC = -eyeCoordinate.xyz; #endif #ifdef USES_TANGENT_TO_EYE materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(worldCoordinate, normalEC); #endif #ifdef USES_ST // Remap texture coordinates from computed (approximately aligned with cartographic space) to the desired // texture coordinate system, which typically forms a tight oriented bounding box around the geometry. // Shader is provided a set of reference points for remapping. materialInput.st.x = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_uMaxAndInverseDistance.xy, uv) * v_uMaxAndInverseDistance.z; materialInput.st.y = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_vMaxAndInverseDistance.xy, uv) * v_vMaxAndInverseDistance.z; #endif czm_material material = czm_getMaterial(materialInput); #ifdef FLAT out_FragColor = vec4(material.diffuse + material.emission, material.alpha); #else // FLAT out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); #endif // FLAT // Premultiply alpha. Required for classification primitives on translucent globe. out_FragColor.rgb *= out_FragColor.a; #endif // PER_INSTANCE_COLOR czm_writeDepthClamp(); #endif // PICK } `;function _f(e,t,n){this._projectionExtentDefines={eastMostYhighDefine:"",eastMostYlowDefine:"",westMostYhighDefine:"",westMostYlowDefine:""};let i=new C6;i.requiresTextureCoordinates=e,i.requiresEC=!n.flat;let o=new C6;if(o.requiresTextureCoordinates=e,n instanceof cn)i.requiresNormalEC=!n.flat;else{let r=`${n.material.shaderSource} ${n.fragmentShaderSource}`;i.normalEC=r.indexOf("materialInput.normalEC")!==-1||r.indexOf("czm_getDefaultMaterial")!==-1,i.positionToEyeEC=r.indexOf("materialInput.positionToEyeEC")!==-1,i.tangentToEyeMatrix=r.indexOf("materialInput.tangentToEyeMatrix")!==-1,i.st=r.indexOf("materialInput.st")!==-1}this._colorShaderDependencies=i,this._pickShaderDependencies=o,this._appearance=n,this._extentsCulling=e,this._planarExtents=t}_f.prototype.createFragmentShader=function(e){let t=this._appearance,n=this._colorShaderDependencies,i=[];!e&&!this._planarExtents&&i.push("SPHERICAL"),n.requiresEC&&i.push("REQUIRES_EC"),n.requiresWC&&i.push("REQUIRES_WC"),n.requiresTextureCoordinates&&i.push("TEXTURE_COORDINATES"),this._extentsCulling&&i.push("CULL_FRAGMENTS"),n.requiresNormalEC&&i.push("NORMAL_EC"),t instanceof cn&&i.push("PER_INSTANCE_COLOR"),n.normalEC&&i.push("USES_NORMAL_EC"),n.positionToEyeEC&&i.push("USES_POSITION_TO_EYE_EC"),n.tangentToEyeMatrix&&i.push("USES_TANGENT_TO_EYE"),n.st&&i.push("USES_ST"),t.flat&&i.push("FLAT");let o="";return t instanceof cn||(o=t.material.shaderSource),new ze({defines:i,sources:[o,QA]})};_f.prototype.createPickFragmentShader=function(e){let t=this._pickShaderDependencies,n=["PICK"];return!e&&!this._planarExtents&&n.push("SPHERICAL"),t.requiresEC&&n.push("REQUIRES_EC"),t.requiresWC&&n.push("REQUIRES_WC"),t.requiresTextureCoordinates&&n.push("TEXTURE_COORDINATES"),this._extentsCulling&&n.push("CULL_FRAGMENTS"),new ze({defines:n,sources:[QA],pickColorQualifier:"in"})};_f.prototype.createVertexShader=function(e,t,n,i){return $te(this._colorShaderDependencies,this._planarExtents,n,e,t,this._appearance,i,this._projectionExtentDefines)};_f.prototype.createPickVertexShader=function(e,t,n,i){return $te(this._pickShaderDependencies,this._planarExtents,n,e,t,void 0,i,this._projectionExtentDefines)};var Wte=new h,jte=new fe,qte={high:0,low:0};function $te(e,t,n,i,o,r,s,a){let c=i.slice();if(a.eastMostYhighDefine===""){let u=jte;u.longitude=R.PI,u.latitude=0,u.height=0;let f=s.project(u,Wte),d=Gn.encode(f.x,qte);a.eastMostYhighDefine=`EAST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.eastMostYlowDefine=`EAST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`;let p=jte;p.longitude=-R.PI,p.latitude=0,p.height=0;let g=s.project(p,Wte);d=Gn.encode(g.x,qte),a.westMostYhighDefine=`WEST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.westMostYlowDefine=`WEST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`}return n&&(c.push(a.eastMostYhighDefine),c.push(a.eastMostYlowDefine),c.push(a.westMostYhighDefine),c.push(a.westMostYlowDefine)),l(r)&&r instanceof cn&&c.push("PER_INSTANCE_COLOR"),e.requiresTextureCoordinates&&(c.push("TEXTURE_COORDINATES"),t||n||c.push("SPHERICAL"),n&&c.push("COLUMBUS_VIEW_2D")),new ze({defines:c,sources:[o]})}function C6(){this._requiresEC=!1,this._requiresWC=!1,this._requiresNormalEC=!1,this._requiresTextureCoordinates=!1,this._usesNormalEC=!1,this._usesPositionToEyeEC=!1,this._usesTangentToEyeMat=!1,this._usesSt=!1}Object.defineProperties(C6.prototype,{requiresEC:{get:function(){return this._requiresEC},set:function(e){this._requiresEC=e||this._requiresEC}},requiresWC:{get:function(){return this._requiresWC},set:function(e){this._requiresWC=e||this._requiresWC,this.requiresEC=this._requiresWC}},requiresNormalEC:{get:function(){return this._requiresNormalEC},set:function(e){this._requiresNormalEC=e||this._requiresNormalEC,this.requiresEC=this._requiresNormalEC}},requiresTextureCoordinates:{get:function(){return this._requiresTextureCoordinates},set:function(e){this._requiresTextureCoordinates=e||this._requiresTextureCoordinates,this.requiresWC=this._requiresTextureCoordinates}},normalEC:{set:function(e){this.requiresNormalEC=e,this._usesNormalEC=e},get:function(){return this._usesNormalEC}},tangentToEyeMatrix:{set:function(e){this.requiresWC=e,this.requiresNormalEC=e,this._usesTangentToEyeMat=e},get:function(){return this._usesTangentToEyeMat}},positionToEyeEC:{set:function(e){this.requiresEC=e,this._usesPositionToEyeEC=e},get:function(){return this._usesPositionToEyeEC}},st:{set:function(e){this.requiresTextureCoordinates=e,this._usesSt=e},get:function(){return this._usesSt}}});function Yte(e,t,n){return Math.abs((t.y-e.y)*n.x-(t.x-e.x)*n.y+t.x*e.y-t.y*e.x)/z.distance(t,e)}var D1e=[new z,new z,new z,new z];function Qte(e,t){let n=D1e,i=z.unpack(t,0,n[0]),o=z.unpack(t,2,n[1]),r=z.unpack(t,4,n[2]);e.uMaxVmax=new nc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[o.x,o.y,r.x,r.y]});let s=1/Yte(i,o,r),a=1/Yte(i,r,o);e.uvMinAndExtents=new nc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[i.x,i.y,s,a]})}var Jte=new fe,ene=new h,P1e=new h,I1e=new h,RV={high:0,low:0};function tne(e,t,n){let i=Jte;i.height=0,i.longitude=e.west,i.latitude=e.south;let o=t.project(i,ene);i.latitude=e.north;let r=t.project(i,P1e);i.longitude=e.east,i.latitude=e.south;let s=t.project(i,I1e),a=[0,0,0,0],c=[0,0,0,0],u=Gn.encode(o.x,RV);a[0]=u.high,c[0]=u.low,u=Gn.encode(o.y,RV),a[1]=u.high,c[1]=u.low,u=Gn.encode(r.y,RV),a[2]=u.high,c[2]=u.low,u=Gn.encode(s.x,RV),a[3]=u.high,c[3]=u.low,n.planes2D_HIGH=new nc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:a}),n.planes2D_LOW=new nc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:c})}var R1e=new F,O1e=new F,Xte=new h,M1e=new fe,L1e=[new fe,new fe,new fe,new fe,new fe,new fe,new fe,new fe];function N1e(e,t,n,i,o,r){let s=se.center(e,M1e);s.height=n;let a=fe.toCartesian(s,t,Xte),c=wt.eastNorthUpToFixedFrame(a,t,R1e),u=F.inverse(c,O1e),f=e.west,d=e.east,p=e.north,g=e.south,m=L1e;m[0].latitude=g,m[0].longitude=f,m[1].latitude=p,m[1].longitude=f,m[2].latitude=p,m[2].longitude=d,m[3].latitude=g,m[3].longitude=d;let x=(f+d)*.5,b=(p+g)*.5;m[4].latitude=g,m[4].longitude=x,m[5].latitude=p,m[5].longitude=x,m[6].latitude=b,m[6].longitude=f,m[7].latitude=b,m[7].longitude=d;let T=Number.POSITIVE_INFINITY,C=Number.NEGATIVE_INFINITY,A=Number.POSITIVE_INFINITY,E=Number.NEGATIVE_INFINITY;for(let I=0;I<8;I++){m[I].height=n;let L=fe.toCartesian(m[I],t,Xte);F.multiplyByPoint(u,L,L),L.z=0,T=Math.min(T,L.x),C=Math.max(C,L.x),A=Math.min(A,L.y),E=Math.max(E,L.y)}let v=i;v.x=T,v.y=A,v.z=0,F.multiplyByPoint(c,v,v);let D=o;D.x=C,D.y=A,D.z=0,F.multiplyByPoint(c,D,D),h.subtract(D,v,o);let O=r;O.x=T,O.y=E,O.z=0,F.multiplyByPoint(c,O,O),h.subtract(O,v,r)}var F1e=new h,B1e=new h,k1e=new Gn;_f.getPlanarTextureCoordinateAttributes=function(e,t,n,i,o){let r=ene,s=F1e,a=B1e;N1e(e,n,y(o,0),r,s,a);let c={};Qte(c,t);let u=Gn.fromCartesian(r,k1e);return c.southWest_HIGH=new nc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(u.high,[0,0,0])}),c.southWest_LOW=new nc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(u.low,[0,0,0])}),c.eastward=new nc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(s,[0,0,0])}),c.northward=new nc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(a,[0,0,0])}),tne(e,i,c),c};var V1e=new h;function Kte(e,t,n,i){let o=Jte;o.latitude=e,o.longitude=t,o.height=0;let r=fe.toCartesian(o,n,V1e),s=Math.sqrt(r.x*r.x+r.y*r.y),a=R.fastApproximateAtan2(s,r.z),c=R.fastApproximateAtan2(r.x,r.y);return i.x=a,i.y=c,i}var Zte=new z;_f.getSphericalExtentGeometryInstanceAttributes=function(e,t,n,i){let o=Kte(e.south,e.west,n,Zte),r=o.x,s=o.y,a=Kte(e.north,e.east,n,Zte),c=a.x,u=a.y,f=0;s>u&&(f=R.PI-s,s=-R.PI,u+=f),r-=R.EPSILON5,s-=R.EPSILON5,c+=R.EPSILON5,u+=R.EPSILON5;let d=1/(u-s),p=1/(c-r),g={sphericalExtents:new nc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[r,s,p,d]}),longitudeRotation:new nc({componentDatatype:X.FLOAT,componentsPerAttribute:1,normalize:!1,value:[f]})};return Qte(g,t),tne(e,i,g),g};_f.hasAttributesForTextureCoordinatePlanes=function(e){return l(e.southWest_HIGH)&&l(e.southWest_LOW)&&l(e.northward)&&l(e.eastward)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};_f.hasAttributesForSphericalExtents=function(e){return l(e.sphericalExtents)&&l(e.longitudeRotation)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};function U1e(e){return Math.max(e.width,e.height)>_f.MAX_WIDTH_FOR_PLANAR_EXTENTS}_f.shouldUseSphericalCoordinates=function(e){return U1e(e)};_f.MAX_WIDTH_FOR_PLANAR_EXTENTS=R.toRadians(1);var du=_f;var z1e={NEVER:ee.NEVER,LESS:ee.LESS,EQUAL:ee.EQUAL,LESS_OR_EQUAL:ee.LEQUAL,GREATER:ee.GREATER,NOT_EQUAL:ee.NOTEQUAL,GREATER_OR_EQUAL:ee.GEQUAL,ALWAYS:ee.ALWAYS},Un=Object.freeze(z1e);var H1e={ZERO:ee.ZERO,KEEP:ee.KEEP,REPLACE:ee.REPLACE,INCREMENT:ee.INCR,DECREMENT:ee.DECR,INVERT:ee.INVERT,INCREMENT_WRAP:ee.INCR_WRAP,DECREMENT_WRAP:ee.DECR_WRAP},lt=Object.freeze(H1e);var OV={CESIUM_3D_TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15};OV.setCesium3DTileBit=function(){return{enabled:!0,frontFunction:Un.ALWAYS,frontOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.REPLACE},backFunction:Un.ALWAYS,backOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.REPLACE},reference:OV.CESIUM_3D_TILE_MASK,mask:OV.CESIUM_3D_TILE_MASK}};var Ft=Object.freeze(OV);function yx(e){e=y(e,y.EMPTY_OBJECT);let t=e.geometryInstances;this.geometryInstances=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,Vn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._debugShowShadowVolume=!1,this._extruded=y(e._extruded,!1),this._uniformMap=e._uniformMap,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._spColor=void 0,this._spPick2D=void 0,this._spColor2D=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._commandsIgnoreShow=[],this._ready=!1,this._primitive=void 0,this._pickPrimitive=e._pickPrimitive,this._hasSphericalExtentsAttribute=!1,this._hasPlanarExtentsAttributes=!1,this._hasPerColorAttribute=!1,this.appearance=e.appearance,this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._usePickOffsets=!1,this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_createRenderStatesFunction:void 0,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0,_createPickOffsets:!0}}Object.defineProperties(yx.prototype,{vertexCacheOptimize:{get:function(){return this._primitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},compressVertices:{get:function(){return this._primitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},_needs2DShader:{get:function(){return this._hasPlanarExtentsAttributes||this._hasSphericalExtentsAttribute}}});yx.isSupported=function(e){return e.context.stencilBuffer};function JA(e,t){let n=t?Un.EQUAL:Un.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:e,frontFunction:n,frontOperation:{fail:lt.KEEP,zFail:lt.DECREMENT_WRAP,zPass:lt.KEEP},backFunction:n,backOperation:{fail:lt.KEEP,zFail:lt.INCREMENT_WRAP,zPass:lt.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:tc.LESS_OR_EQUAL},depthMask:!1}}function S6(e){return{stencilTest:{enabled:e,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}}var G1e={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function W1e(e,t,n,i){if(l(e._rsStencilDepthPass))return;let o=!e.debugShowShadowVolume;e._rsStencilDepthPass=Ve.fromCache(JA(o,!1)),e._rsStencilDepthPass3DTiles=Ve.fromCache(JA(o,!0)),e._rsColorPass=Ve.fromCache(S6(o,!1)),e._rsPickPass=Ve.fromCache(G1e)}function j1e(e,t){if(!e.compressVertices)return t;if(t.search(/in\s+vec3\s+extrudeDirection;/g)!==-1){let n="compressedAttributes",i=`in vec2 ${n};`,o=`vec3 extrudeDirection; `,r=` extrudeDirection = czm_octDecode(${n}, 65535.0); `,s=t;s=s.replace(/in\s+vec3\s+extrudeDirection;/g,""),s=ze.replaceMain(s,"czm_non_compressed_main");let a=`void main() { ${r} czm_non_compressed_main(); }`;return[i,o,s,a].join(` `)}}function q1e(e,t){let n=t.context,i=e._primitive,o=yI;o=e._primitive._batchTable.getVertexShaderCallback()(o),o=vn._appendDistanceDisplayConditionToShader(i,o),o=vn._modifyShaderPosition(e,o,t.scene3DOnly),o=vn._updateColorAttribute(i,o);let r=e._hasPlanarExtentsAttributes,s=r||e._hasSphericalExtentsAttribute;e._extruded&&(o=j1e(i,o));let a=e._extruded?"EXTRUDED_GEOMETRY":"",c=new ze({defines:[a],sources:[o]}),u=new ze({sources:[Ng]}),f=e._primitive._attributeLocations,d=new du(s,r,e.appearance);if(e._spStencil=$t.replaceCache({context:n,shaderProgram:e._spStencil,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f}),e._primitive.allowPicking){let m=ze.createPickVertexShaderSource(o);m=vn._appendShowToShader(i,m),m=vn._updatePickColorAttribute(m);let x=d.createPickFragmentShader(!1),b=d.createPickVertexShader([a],m,!1,t.mapProjection);if(e._spPick=$t.replaceCache({context:n,shaderProgram:e._spPick,vertexShaderSource:b,fragmentShaderSource:x,attributeLocations:f}),s){let T=n.shaderCache.getDerivedShaderProgram(e._spPick,"2dPick");if(!l(T)){let C=d.createPickFragmentShader(!0),A=d.createPickVertexShader([a],m,!0,t.mapProjection);T=n.shaderCache.createDerivedShaderProgram(e._spPick,"2dPick",{vertexShaderSource:A,fragmentShaderSource:C,attributeLocations:f})}e._spPick2D=T}}else e._spPick=$t.fromCache({context:n,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f});o=vn._appendShowToShader(i,o),c=new ze({defines:[a],sources:[o]}),e._sp=$t.replaceCache({context:n,shaderProgram:e._sp,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f});let p=d.createFragmentShader(!1),g=d.createVertexShader([a],o,!1,t.mapProjection);if(e._spColor=$t.replaceCache({context:n,shaderProgram:e._spColor,vertexShaderSource:g,fragmentShaderSource:p,attributeLocations:f}),s){let m=n.shaderCache.getDerivedShaderProgram(e._spColor,"2dColor");if(!l(m)){let x=d.createFragmentShader(!0),b=d.createVertexShader([a],o,!0,t.mapProjection);m=n.shaderCache.createDerivedShaderProgram(e._spColor,"2dColor",{vertexShaderSource:b,fragmentShaderSource:x,attributeLocations:f})}e._spColor2D=m}}function Y1e(e,t){let n=e._primitive,i=n._va.length*2;t.length=i;let o,r,s,a=0,c=n._batchTable.getUniformMapCallback()(e._uniformMap),u=e._needs2DShader;for(o=0;o<i;o+=2){let g=n._va[a++];r=t[o],l(r)||(r=t[o]=new Ze({owner:e,primitiveType:n._primitiveType})),r.vertexArray=g,r.renderState=e._rsStencilDepthPass,r.shaderProgram=e._sp,r.uniformMap=c,r.pass=Ee.TERRAIN_CLASSIFICATION,s=Ze.shallowClone(r,r.derivedCommands.tileset),s.renderState=e._rsStencilDepthPass3DTiles,s.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,r=t[o+1],l(r)||(r=t[o+1]=new Ze({owner:e,primitiveType:n._primitiveType})),r.vertexArray=g,r.renderState=e._rsColorPass,r.shaderProgram=e._spColor,r.pass=Ee.TERRAIN_CLASSIFICATION;let x=e.appearance.material;if(l(x)&&(c=_t(c,x._uniforms)),r.uniformMap=c,s=Ze.shallowClone(r,r.derivedCommands.tileset),s.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,u){let b=Ze.shallowClone(r,r.derivedCommands.appearance2D);b.shaderProgram=e._spColor2D,r.derivedCommands.appearance2D=b,b=Ze.shallowClone(s,s.derivedCommands.appearance2D),b.shaderProgram=e._spColor2D,s.derivedCommands.appearance2D=b}}let f=e._commandsIgnoreShow,d=e._spStencil,p=0;i=f.length=i/2;for(let g=0;g<i;++g){let m=f[g]=Ze.shallowClone(t[p],f[g]);m.shaderProgram=d,m.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,p+=2}}function X1e(e,t){let n=e._usePickOffsets,i=e._primitive,o=i._va.length*2,r,s=0,a;n&&(r=i._pickOffsets,o=r.length*2),t.length=o;let c,u,f,d=0,p=i._batchTable.getUniformMapCallback()(e._uniformMap),g=e._needs2DShader;for(c=0;c<o;c+=2){let m=i._va[d++];if(n&&(a=r[s++],m=i._va[a.index]),u=t[c],l(u)||(u=t[c]=new Ze({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),u.vertexArray=m,u.renderState=e._rsStencilDepthPass,u.shaderProgram=e._sp,u.uniformMap=p,u.pass=Ee.TERRAIN_CLASSIFICATION,n&&(u.offset=a.offset,u.count=a.count),f=Ze.shallowClone(u,u.derivedCommands.tileset),f.renderState=e._rsStencilDepthPass3DTiles,f.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,u.derivedCommands.tileset=f,u=t[c+1],l(u)||(u=t[c+1]=new Ze({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),u.vertexArray=m,u.renderState=e._rsPickPass,u.shaderProgram=e._spPick,u.uniformMap=p,u.pass=Ee.TERRAIN_CLASSIFICATION,n&&(u.offset=a.offset,u.count=a.count),f=Ze.shallowClone(u,u.derivedCommands.tileset),f.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,u.derivedCommands.tileset=f,g){let x=Ze.shallowClone(u,u.derivedCommands.pick2D);x.shaderProgram=e._spPick2D,u.derivedCommands.pick2D=x,x=Ze.shallowClone(f,f.derivedCommands.pick2D),x.shaderProgram=e._spPick2D,f.derivedCommands.pick2D=x}}}function K1e(e,t,n,i,o,r,s){Y1e(e,r),X1e(e,s)}function nne(e,t){return Math.floor(e%t/2)}function E6(e,t,n,i,o,r){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,e.debugShowBoundingVolume=r,t.commandList.push(e)}function ine(e,t,n,i,o){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,t.commandList.push(e)}function Z1e(e,t,n,i,o,r,s,a){let c=e._primitive;vn._updateBoundingVolumes(c,t,o);let u;t.mode===ne.SCENE3D?u=c._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?u=c._boundingSphereCV:t.mode===ne.SCENE2D&&l(c._boundingSphere2D)?u=c._boundingSphere2D:l(c._boundingSphereMorph)&&(u=c._boundingSphereMorph);let f=e.classificationType,d=f!==Vn.CESIUM_3D_TILE,p=f!==Vn.TERRAIN,g=t.passes,m,x,b;if(g.render){let T=n.length;for(m=0;m<T;++m)x=u[nne(m,T)],d&&(b=n[m],E6(b,t,o,r,x,s)),p&&(b=n[m].derivedCommands.tileset,E6(b,t,o,r,x,s));if(t.invertClassification){let C=e._commandsIgnoreShow,A=C.length;for(m=0;m<A;++m)x=u[m],b=C[m],E6(b,t,o,r,x,s)}}if(g.pick){let T=i.length,C=c._pickOffsets;for(m=0;m<T;++m){let A=C[nne(m,T)];x=u[A.index],d&&(b=i[m],ine(b,t,o,r,x)),p&&(b=i[m].derivedCommands.tileset,ine(b,t,o,r,x))}}}yx.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;let t=this.appearance;l(t)&&l(t.material)&&t.material.update(e.context);let n=this,i=this._primitiveOptions;if(!l(this._primitive)){let o=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],r=o.length,s,a,c,u=!1,f=!0,d,p=!1,g=!1;for(r>0&&(c=o[0].attributes,p=du.hasAttributesForSphericalExtents(c),g=du.hasAttributesForTextureCoordinatePlanes(c),d=c.color),s=0;s<r;s++){a=o[s];let x=a.attributes.color;l(x)&&(u=!0),f=f&&l(x)&&zt.equals(d,x)}if(!f&&!p&&!g)throw new de("All GeometryInstances must have the same color attribute except via GroundPrimitives");u&&!l(t)&&(t=new cn({flat:!0}),this.appearance=t),this._usePickOffsets=!p&&!g,this._hasSphericalExtentsAttribute=p,this._hasPlanarExtentsAttributes=g,this._hasPerColorAttribute=u;let m=new Array(r);for(s=0;s<r;++s)a=o[s],m[s]=new xt({geometry:a.geometry,attributes:a.attributes,modelMatrix:a.modelMatrix,id:a.id,pickPrimitive:y(this._pickPrimitive,n)});i.appearance=t,i.geometryInstances=m,l(this._createBoundingVolumeFunction)&&(i._createBoundingVolumeFunction=function(x,b){n._createBoundingVolumeFunction(x,b)}),i._createRenderStatesFunction=function(x,b,T,C){W1e(n,b)},i._createShaderProgramFunction=function(x,b,T){q1e(n,b)},i._createCommandsFunction=function(x,b,T,C,A,E,v){K1e(n,void 0,void 0,!0,!1,E,v)},l(this._updateAndQueueCommandsFunction)?i._updateAndQueueCommandsFunction=function(x,b,T,C,A,E,v,D){n._updateAndQueueCommandsFunction(x,b,T,C,A,E,v,D)}:i._updateAndQueueCommandsFunction=function(x,b,T,C,A,E,v,D){Z1e(n,b,T,C,A,E,v,D)},this._primitive=new vn(i)}this.debugShowShadowVolume&&!this._debugShowShadowVolume&&this._ready?(this._debugShowShadowVolume=!0,this._rsStencilDepthPass=Ve.fromCache(JA(!1,!1)),this._rsStencilDepthPass3DTiles=Ve.fromCache(JA(!1,!0)),this._rsColorPass=Ve.fromCache(S6(!1))):!this.debugShowShadowVolume&&this._debugShowShadowVolume&&(this._debugShowShadowVolume=!1,this._rsStencilDepthPass=Ve.fromCache(JA(!0,!1)),this._rsStencilDepthPass3DTiles=Ve.fromCache(JA(!0,!0)),this._rsColorPass=Ve.fromCache(S6(!0))),this._primitive.appearance!==t&&(this._primitive.appearance=t),this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};yx.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};yx.prototype.isDestroyed=function(){return!1};yx.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._spColor=this._spColor&&this._spColor.destroy(),this._spPick2D=void 0,this._spColor2D=void 0,ue(this)};var eC=yx;var $1e={u_globeMinimumAltitude:function(){return 55e3}};function Sl(e){e=y(e,y.EMPTY_OBJECT);let t=e.appearance,n=e.geometryInstances;if(!l(t)&&l(n)){let o=Array.isArray(n)?n:[n],r=o.length;for(let s=0;s<r;s++){let a=o[s].attributes;if(l(a)&&l(a.color)){t=new cn({flat:!0});break}}}this.appearance=t,this.geometryInstances=e.geometryInstances,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,Vn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._boundingVolumes=[],this._boundingVolumes2D=[],this._ready=!1,this._primitive=void 0,this._maxHeight=void 0,this._minHeight=void 0,this._maxTerrainHeight=ci._defaultMaxTerrainHeight,this._minTerrainHeight=ci._defaultMinTerrainHeight,this._boundingSpheresKeys=[],this._boundingSpheres=[],this._useFragmentCulling=!1,this._zIndex=void 0;let i=this;this._classificationPrimitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_updateAndQueueCommandsFunction:void 0,_pickPrimitive:i,_extruded:!0,_uniformMap:$1e}}Object.defineProperties(Sl.prototype,{vertexCacheOptimize:{get:function(){return this._classificationPrimitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._classificationPrimitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._classificationPrimitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._classificationPrimitiveOptions.allowPicking}},asynchronous:{get:function(){return this._classificationPrimitiveOptions.asynchronous}},compressVertices:{get:function(){return this._classificationPrimitiveOptions.compressVertices}},ready:{get:function(){return this._ready}}});Sl.isSupported=eC.isSupported;function one(e){return function(t,n){let i=n.maximumRadius,o=i/Math.cos(t*.5)-i;return e._maxHeight+o}}function rne(e){return function(t,n){return e._minHeight}}var Q1e=new h,J1e=new h,eRe=new h,tRe=new fe,nRe=new se;function MV(e,t){let n=e.mapProjection.ellipsoid;if(!l(t.attributes)||!l(t.attributes.position3DHigh))return l(t.rectangle)?t.rectangle:void 0;let i=t.attributes.position3DHigh.values,o=t.attributes.position3DLow.values,r=i.length,s=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,u=Number.NEGATIVE_INFINITY;for(let d=0;d<r;d+=3){let p=h.unpack(i,d,Q1e),g=h.unpack(o,d,J1e),m=h.add(p,g,eRe),x=n.cartesianToCartographic(m,tRe),b=x.latitude,T=x.longitude;s=Math.min(s,b),a=Math.min(a,T),c=Math.max(c,b),u=Math.max(u,T)}let f=nRe;return f.north=c,f.south=s,f.east=u,f.west=a,f}function iRe(e,t,n){let i=ci.getMinimumMaximumHeights(t,n);e._minTerrainHeight=i.minimumTerrainHeight,e._maxTerrainHeight=i.maximumTerrainHeight}function oRe(e,t,n){let i=t.mapProjection.ellipsoid,o=MV(t,n),r=Sn.fromRectangle(o,e._minHeight,e._maxHeight,i);if(e._boundingVolumes.push(r),!t.scene3DOnly){let s=t.mapProjection,a=ae.fromRectangleWithHeights2D(o,s,e._maxHeight,e._minHeight);h.fromElements(a.center.z,a.center.x,a.center.y,a.center),e._boundingVolumes2D.push(a)}}function v6(e,t){return Math.floor(e%t/2)}function w6(e,t,n,i,o,r,s){let a=e._primitive;n.mode!==ne.SCENE3D&&t.shaderProgram===a._spColor&&a._needs2DShader&&(t=t.derivedCommands.appearance2D),t.owner=e,t.modelMatrix=i,t.boundingVolume=r,t.cull=o,t.debugShowBoundingVolume=s,n.commandList.push(t)}function sne(e,t,n,i,o,r){let s=e._primitive;n.mode!==ne.SCENE3D&&t.shaderProgram===s._spPick&&s._needs2DShader&&(t=t.derivedCommands.pick2D),t.owner=e,t.modelMatrix=i,t.boundingVolume=r,t.cull=o,n.commandList.push(t)}function rRe(e,t,n,i,o,r,s,a){let c;t.mode===ne.SCENE3D?c=e._boundingVolumes:c=e._boundingVolumes2D;let u=e.classificationType,f=u!==Vn.CESIUM_3D_TILE,d=u!==Vn.TERRAIN,p=t.passes,g=e._primitive,m,x,b;if(p.render){let T=n.length;for(m=0;m<T;++m)x=c[v6(m,T)],f&&(b=n[m],w6(e,b,t,o,r,x,s)),d&&(b=n[m].derivedCommands.tileset,w6(e,b,t,o,r,x,s));if(t.invertClassification){let C=g._commandsIgnoreShow,A=C.length;for(m=0;m<A;++m)x=c[m],b=C[m],w6(e,b,t,o,r,x,s)}}if(p.pick){let T=i.length,C;for(e._useFragmentCulling||(C=g._primitive._pickOffsets),m=0;m<T;++m){if(x=c[v6(m,T)],!e._useFragmentCulling){let A=C[v6(m,T)];x=c[A.index]}f&&(b=i[m],sne(e,b,t,o,r,x)),d&&(b=i[m].derivedCommands.tileset,sne(e,b,t,o,r,x))}}}Sl.initializeTerrainHeights=function(){return ci.initialize()};Sl.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;if(!ci.initialized){Sl.initializeTerrainHeights();return}let t=this,n=this._classificationPrimitiveOptions;if(!l(this._primitive)){let i=e.mapProjection.ellipsoid,o,r,s,a=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],c=a.length,u=new Array(c),f,d;for(f=0;f<c;++f){o=a[f],r=o.geometry;let x=MV(e,r);l(d)?l(x)&&se.union(d,x,d):d=se.clone(x);let b=o.id;if(l(b)&&l(x)){let T=ci.getBoundingSphere(x,i);this._boundingSpheresKeys.push(b),this._boundingSpheres.push(T)}s=r.constructor,!l(s)||l(s.createShadowVolume)}iRe(this,d,i);let p=e.verticalExaggeration,g=e.verticalExaggerationRelativeHeight;this._minHeight=pr.getHeight(this._minTerrainHeight,p,g),this._maxHeight=pr.getHeight(this._maxTerrainHeight,p,g);let m=Sl._supportsMaterials(e.context);if(this._useFragmentCulling=m,m){let x,b=!0;for(f=0;f<c;++f)if(o=a[f],r=o.geometry,d=MV(e,r),du.shouldUseSphericalCoordinates(d)){b=!1;break}for(f=0;f<c;++f){o=a[f],r=o.geometry,s=r.constructor;let T=MV(e,r),C=r.textureCoordinateRotationPoints;b?x=du.getPlanarTextureCoordinateAttributes(T,C,i,e.mapProjection,this._maxHeight):x=du.getSphericalExtentGeometryInstanceAttributes(T,C,i,e.mapProjection);let A=o.attributes;for(let E in A)A.hasOwnProperty(E)&&(x[E]=A[E]);u[f]=new xt({geometry:s.createShadowVolume(r,rne(this),one(this)),attributes:x,id:o.id})}}else for(f=0;f<c;++f)o=a[f],r=o.geometry,s=r.constructor,u[f]=new xt({geometry:s.createShadowVolume(r,rne(this),one(this)),attributes:o.attributes,id:o.id});n.geometryInstances=u,n.appearance=this.appearance,n._createBoundingVolumeFunction=function(x,b){oRe(t,x,b)},n._updateAndQueueCommandsFunction=function(x,b,T,C,A,E,v,D){rRe(t,b,T,C,A,E,v,D)},this._primitive=new eC(n)}this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowShadowVolume=this.debugShowShadowVolume,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{!this._ready&&l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Sl.prototype.getBoundingSphere=function(e){let t=this._boundingSpheresKeys.indexOf(e);if(t!==-1)return this._boundingSpheres[t]};Sl.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Sl.prototype.isDestroyed=function(){return!1};Sl.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};Sl._supportsMaterials=function(e){return e.depthTexture};Sl.supportsMaterials=function(e){return Sl._supportsMaterials(e.frameState.context)};var Vc=Sl;function tC(){de.throwInstantiationError()}Object.defineProperties(tC.prototype,{isConstant:{get:de.throwInstantiationError},definitionChanged:{get:de.throwInstantiationError}});tC.prototype.getType=de.throwInstantiationError;tC.prototype.getValue=de.throwInstantiationError;tC.prototype.equals=de.throwInstantiationError;tC.getValue=function(e,t,n){let i;return l(t)&&(i=t.getType(e),l(i))?((!l(n)||n.type!==i)&&(n=Vi.fromType(i)),t.getValue(e,n.uniforms),n):((!l(n)||n.type!==Vi.ColorType)&&(n=Vi.fromType(Vi.ColorType)),H.clone(H.WHITE,n.uniforms.color),n)};var Ko=tC;function xx(e,t,n){this._primitives=t,this._orderedGroundPrimitives=n,this._primitive=void 0,this._outlinePrimitive=void 0,this._geometryUpdater=e,this._options=e._options,this._entity=e._entity,this._material=void 0}xx.prototype._isHidden=function(e,t,n){return!e.isShowing||!e.isAvailable(n)||!q.getValueOrDefault(t.show,n,!0)};xx.prototype._setOptions=de.throwInstantiationError;xx.prototype.update=function(e){let t=this._geometryUpdater,n=t._onTerrain,i=this._primitives,o=this._orderedGroundPrimitives;n?o.remove(this._primitive):(i.removeAndDestroy(this._primitive),i.removeAndDestroy(this._outlinePrimitive),this._outlinePrimitive=void 0),this._primitive=void 0;let r=this._entity,s=r[this._geometryUpdater._geometryPropertyName];if(this._setOptions(r,s,e),this._isHidden(r,s,e))return;let a=this._geometryUpdater.shadowsProperty.getValue(e),c=this._options;if(!l(s.fill)||s.fill.getValue(e)){let u=t.fillMaterialProperty,f=u instanceof kt,d,p=t._getIsClosed(c);if(f)d=new cn({closed:p,flat:n&&!t._supportsMaterialsforEntitiesOnTerrain});else{let g=Ko.getValue(e,u,this._material);this._material=g,d=new ro({material:g,translucent:g.isTranslucent(),closed:p})}if(n)c.vertexFormat=cn.VERTEX_FORMAT,this._primitive=o.add(new Vc({geometryInstances:this._geometryUpdater.createFillGeometryInstance(e),appearance:d,asynchronous:!1,shadows:a,classificationType:this._geometryUpdater.classificationTypeProperty.getValue(e)}),q.getValueOrUndefined(this._geometryUpdater.zIndex,e));else{c.vertexFormat=d.vertexFormat;let g=this._geometryUpdater.createFillGeometryInstance(e);f&&(d.translucent=g.attributes.color.value[3]!==255),this._primitive=i.add(new vn({geometryInstances:g,appearance:d,asynchronous:!1,shadows:a}))}}if(!n&&l(s.outline)&&s.outline.getValue(e)){let u=this._geometryUpdater.createOutlineGeometryInstance(e),f=q.getValueOrDefault(s.outlineWidth,e,1);this._outlinePrimitive=i.add(new vn({geometryInstances:u,appearance:new cn({flat:!0,translucent:u.attributes.color.value[3]!==255,renderState:{lineWidth:t._scene.clampLineWidth(f)}}),asynchronous:!1,shadows:a}))}};xx.prototype.getBoundingSphere=function(e){let t=this._entity,n=this._primitive,i=this._outlinePrimitive,o;return l(n)&&n.show&&n.ready&&(o=n.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(ae.clone(o.boundingSphere,e),at.DONE):l(i)&&i.show&&i.ready&&(o=i.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(ae.clone(o.boundingSphere,e),at.DONE):l(n)&&!n.ready||l(i)&&!i.ready?at.PENDING:at.FAILED};xx.prototype.isDestroyed=function(){return!1};xx.prototype.destroy=function(){let e=this._primitives,t=this._orderedGroundPrimitives;this._geometryUpdater._onTerrain?t.remove(this._primitive):e.removeAndDestroy(this._primitive),e.removeAndDestroy(this._outlinePrimitive),ue(this)};var ti=xx;var ane={};function DI(e,t){l(ane[e])||(ane[e]=!0,console.warn(y(t,e)))}DI.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.";DI.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored";DI.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored";DI.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";var Lt=DI;var sRe={NONE:0,GEODESIC:1,RHUMB:2},Qt=Object.freeze(sRe);var cne=R.EPSILON10;function aRe(e,t,n,i){if(!l(e))return;n=y(n,!1);let o=l(i),r=e.length;if(r<2)return e;let s,a=e[0],c,u,f=0,d=-1;for(s=1;s<r;++s)c=e[s],t(a,c,cne)?(l(u)||(u=e.slice(0,s),f=s-1,d=0),o&&i.push(s)):(l(u)&&(u.push(c),f=s,o&&(d=i.length)),a=c);return n&&t(e[0],e[r-1],cne)&&(o&&(l(u)?i.splice(d,0,f):i.push(r-1)),l(u)?u.length-=1:u=e.slice(0,-1)),l(u)?u:e}var xo=aRe;function cRe(e){let t=e._uSquared,n=e._ellipsoid.maximumRadius,i=e._ellipsoid.minimumRadius,o=(n-i)/n,r=Math.cos(e._startHeading),s=Math.sin(e._startHeading),a=(1-o)*Math.tan(e._start.latitude),c=1/Math.sqrt(1+a*a),u=c*a,f=Math.atan2(a,r),d=c*s,p=d*d,g=1-p,m=Math.sqrt(g),x=t/4,b=x*x,T=b*x,C=b*b,A=1+x-3*b/4+5*T/4-175*C/64,E=1-x+15*b/8-35*T/8,v=1-3*x+35*b/4,D=1-5*x,O=A*f-E*Math.sin(2*f)*x/2-v*Math.sin(4*f)*b/16-D*Math.sin(6*f)*T/48-Math.sin(8*f)*5*C/512,I=e._constants;I.a=n,I.b=i,I.f=o,I.cosineHeading=r,I.sineHeading=s,I.tanU=a,I.cosineU=c,I.sineU=u,I.sigma=f,I.sineAlpha=d,I.sineSquaredAlpha=p,I.cosineSquaredAlpha=g,I.cosineAlpha=m,I.u2Over4=x,I.u4Over16=b,I.u6Over64=T,I.u8Over256=C,I.a0=A,I.a1=E,I.a2=v,I.a3=D,I.distanceRatio=O}function lRe(e,t){return e*t*(4+e*(4-3*t))/16}function lne(e,t,n,i,o,r,s){let a=lRe(e,n);return(1-a)*e*t*(i+a*o*(s+a*r*(2*s*s-1)))}function uRe(e,t,n,i,o,r,s){let a=(t-n)/t,c=r-i,u=Math.atan((1-a)*Math.tan(o)),f=Math.atan((1-a)*Math.tan(s)),d=Math.cos(u),p=Math.sin(u),g=Math.cos(f),m=Math.sin(f),x=d*g,b=d*m,T=p*m,C=p*g,A=c,E=R.TWO_PI,v=Math.cos(A),D=Math.sin(A),O,I,L,N,_;do{v=Math.cos(A),D=Math.sin(A);let k=b-C*v;L=Math.sqrt(g*g*D*D+k*k),I=T+x*v,O=Math.atan2(L,I);let Y;L===0?(Y=0,N=1):(Y=x*D/L,N=1-Y*Y),E=A,_=I-2*T/N,isFinite(_)||(_=0),A=c+lne(a,Y,N,O,L,I,_)}while(Math.abs(A-E)>R.EPSILON12);let S=N*(t*t-n*n)/(n*n),w=1+S*(4096+S*(S*(320-175*S)-768))/16384,P=S*(256+S*(S*(74-47*S)-128))/1024,M=_*_,B=P*L*(_+P*(I*(2*M-1)-P*_*(4*L*L-3)*(4*M-3)/6)/4),U=n*w*(O-B),V=Math.atan2(g*D,b-C*v),G=Math.atan2(d*D,b*v-C);e._distance=U,e._startHeading=V,e._endHeading=G,e._uSquared=S}var fRe=new h,D6=new h;function une(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,D6),fRe),r=h.normalize(i.cartographicToCartesian(n,D6),D6);uRe(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude),e._start=fe.clone(t,e._start),e._end=fe.clone(n,e._end),e._start.height=0,e._end.height=0,cRe(e)}function PI(e,t,n){let i=y(n,te.WGS84);this._ellipsoid=i,this._start=new fe,this._end=new fe,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,l(e)&&l(t)&&une(this,e,t,i)}Object.defineProperties(PI.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}});PI.prototype.setEndPoints=function(e,t){une(this,e,t,this._ellipsoid)};PI.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)};PI.prototype.interpolateUsingSurfaceDistance=function(e,t){let n=this._constants,i=n.distanceRatio+e/n.b,o=Math.cos(2*i),r=Math.cos(4*i),s=Math.cos(6*i),a=Math.sin(2*i),c=Math.sin(4*i),u=Math.sin(6*i),f=Math.sin(8*i),d=i*i,p=i*d,g=n.u8Over256,m=n.u2Over4,x=n.u6Over64,b=n.u4Over16,T=2*p*g*o/3+i*(1-m+7*b/4-15*x/4+579*g/64-(b-15*x/4+187*g/16)*o-(5*x/4-115*g/16)*r-29*g*s/16)+(m/2-b+71*x/32-85*g/16)*a+(5*b/16-5*x/4+383*g/96)*c-d*((x-11*g/2)*a+5*g*c/2)+(29*x/96-29*g/16)*u+539*g*f/1536,C=Math.asin(Math.sin(T)*n.cosineAlpha),A=Math.atan(n.a/n.b*Math.tan(C));T=T-n.sigma;let E=Math.cos(2*n.sigma+T),v=Math.sin(T),D=Math.cos(T),O=n.cosineU*D,I=n.sineU*v,N=Math.atan2(v*n.sineHeading,O-I*n.cosineHeading)-lne(n.f,n.sineAlpha,n.cosineSquaredAlpha,T,v,D,E);return l(t)?(t.longitude=this._start.longitude+N,t.latitude=A,t.height=0,t):new fe(this._start.longitude+N,A,0)};var Sp=PI;function I6(e,t,n){if(e===0)return t*n;let i=e*e,o=i*i,r=o*i,s=r*i,a=s*i,c=a*i,u=n,f=Math.sin(2*u),d=Math.sin(4*u),p=Math.sin(6*u),g=Math.sin(8*u),m=Math.sin(10*u),x=Math.sin(12*u);return t*((1-i/4-3*o/64-5*r/256-175*s/16384-441*a/65536-4851*c/1048576)*u-(3*i/8+3*o/32+45*r/1024+105*s/4096+2205*a/131072+6237*c/524288)*f+(15*o/256+45*r/1024+525*s/16384+1575*a/65536+155925*c/8388608)*d-(35*r/3072+175*s/12288+3675*a/262144+13475*c/1048576)*p+(315*s/131072+2205*a/524288+43659*c/8388608)*g-(693*a/1310720+6237*c/5242880)*m+1001*c/8388608*x)}function dRe(e,t,n){let i=e/n;if(t===0)return i;let o=i*i,r=o*i,s=r*i,a=t,c=a*a,u=c*c,f=u*c,d=f*c,p=d*c,g=p*c,m=Math.sin(2*i),x=Math.cos(2*i),b=Math.sin(4*i),T=Math.cos(4*i),C=Math.sin(6*i),A=Math.cos(6*i),E=Math.sin(8*i),v=Math.cos(8*i),D=Math.sin(10*i),O=Math.cos(10*i),I=Math.sin(12*i);return i+i*c/4+7*i*u/64+15*i*f/256+579*i*d/16384+1515*i*p/65536+16837*i*g/1048576+(3*i*u/16+45*i*f/256-i*(32*o-561)*d/4096-i*(232*o-1677)*p/16384+i*(399985-90560*o+512*s)*g/5242880)*x+(21*i*f/256+483*i*d/4096-i*(224*o-1969)*p/16384-i*(33152*o-112599)*g/1048576)*T+(151*i*d/4096+4681*i*p/65536+1479*i*g/16384-453*r*g/32768)*A+(1097*i*p/65536+42783*i*g/1048576)*v+8011*i*g/1048576*O+(3*c/8+3*u/16+213*f/2048-3*o*f/64+255*d/4096-33*o*d/512+20861*p/524288-33*o*p/512+s*p/1024+28273*g/1048576-471*o*g/8192+9*s*g/4096)*m+(21*u/256+21*f/256+533*d/8192-21*o*d/512+197*p/4096-315*o*p/4096+584039*g/16777216-12517*o*g/131072+7*s*g/2048)*b+(151*f/6144+151*d/4096+5019*p/131072-453*o*p/16384+26965*g/786432-8607*o*g/131072)*C+(1097*d/131072+1097*p/65536+225797*g/10485760-1097*o*g/65536)*E+(8011*p/2621440+8011*g/1048576)*D+293393*g/251658240*I}function nC(e,t){if(e===0)return Math.log(Math.tan(.5*(R.PI_OVER_TWO+t)));let n=e*Math.sin(t);return Math.log(Math.tan(.5*(R.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function hRe(e,t,n,i,o){let r=nC(e._ellipticity,n),s=nC(e._ellipticity,o);return Math.atan2(R.negativePiToPi(i-t),s-r)}function mRe(e,t,n,i,o,r,s){let a=e._heading,c=r-i,u=0;if(R.equalsEpsilon(Math.abs(a),R.PI_OVER_TWO,R.EPSILON8))if(t===n)u=t*Math.cos(o)*R.negativePiToPi(c);else{let f=Math.sin(o);u=t*Math.cos(o)*R.negativePiToPi(c)/Math.sqrt(1-e._ellipticitySquared*f*f)}else{let f=I6(e._ellipticity,t,o);u=(I6(e._ellipticity,t,s)-f)/Math.cos(a)}return Math.abs(u)}var pRe=new h,P6=new h;function fne(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,P6),pRe),r=h.normalize(i.cartographicToCartesian(n,P6),P6),s=i.maximumRadius,a=i.minimumRadius,c=s*s,u=a*a;e._ellipticitySquared=(c-u)/c,e._ellipticity=Math.sqrt(e._ellipticitySquared),e._start=fe.clone(t,e._start),e._start.height=0,e._end=fe.clone(n,e._end),e._end.height=0,e._heading=hRe(e,t.longitude,t.latitude,n.longitude,n.latitude),e._distance=mRe(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude)}function dne(e,t,n,i,o,r){if(n===0)return fe.clone(e,r);let s=o*o,a,c,u;if(Math.abs(R.PI_OVER_TWO-Math.abs(t))>R.EPSILON8){let f=I6(o,i,e.latitude),d=n*Math.cos(t),p=f+d;if(c=dRe(p,o,i),Math.abs(t)<R.EPSILON10)a=R.negativePiToPi(e.longitude);else{let g=nC(o,e.latitude),m=nC(o,c);u=Math.tan(t)*(m-g),a=R.negativePiToPi(e.longitude+u)}}else{c=e.latitude;let f;if(o===0)f=i*Math.cos(e.latitude);else{let d=Math.sin(e.latitude);f=i*Math.cos(e.latitude)/Math.sqrt(1-s*d*d)}u=n/f,t>0?a=R.negativePiToPi(e.longitude+u):a=R.negativePiToPi(e.longitude-u)}return l(r)?(r.longitude=a,r.latitude=c,r.height=0,r):new fe(a,c,0)}function vp(e,t,n){let i=y(n,te.WGS84);this._ellipsoid=i,this._start=new fe,this._end=new fe,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,l(e)&&l(t)&&fne(this,e,t,i)}Object.defineProperties(vp.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}});vp.fromStartHeadingDistance=function(e,t,n,i,o){let r=y(i,te.WGS84),s=r.maximumRadius,a=r.minimumRadius,c=s*s,u=a*a,f=Math.sqrt((c-u)/c);t=R.negativePiToPi(t);let d=dne(e,t,n,r.maximumRadius,f);return!l(o)||l(i)&&!i.equals(o.ellipsoid)?new vp(e,d,r):(o.setEndPoints(e,d),o)};vp.prototype.setEndPoints=function(e,t){fne(this,e,t,this._ellipsoid)};vp.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)};vp.prototype.interpolateUsingSurfaceDistance=function(e,t){return dne(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)};vp.prototype.findIntersectionWithLongitude=function(e,t){let n=this._ellipticity,i=this._heading,o=Math.abs(i),r=this._start;if(e=R.negativePiToPi(e),R.equalsEpsilon(Math.abs(e),Math.PI,R.EPSILON14)&&(e=R.sign(r.longitude)*Math.PI),l(t)||(t=new fe),Math.abs(R.PI_OVER_TWO-o)<=R.EPSILON8)return t.longitude=e,t.latitude=r.latitude,t.height=0,t;if(R.equalsEpsilon(Math.abs(R.PI_OVER_TWO-o),R.PI_OVER_TWO,R.EPSILON8))return R.equalsEpsilon(e,r.longitude,R.EPSILON12)?void 0:(t.longitude=e,t.latitude=R.PI_OVER_TWO*R.sign(R.PI_OVER_TWO-i),t.height=0,t);let s=r.latitude,a=n*Math.sin(s),c=Math.tan(.5*(R.PI_OVER_TWO+s))*Math.exp((e-r.longitude)/Math.tan(i)),u=(1+a)/(1-a),f=r.latitude,d;do{d=f;let p=n*Math.sin(d),g=(1+p)/(1-p);f=2*Math.atan(c*Math.pow(g/u,n/2))-R.PI_OVER_TWO}while(!R.equalsEpsilon(f,d,R.EPSILON12));return t.longitude=e,t.latitude=f,t.height=0,t};vp.prototype.findIntersectionWithLatitude=function(e,t){let n=this._ellipticity,i=this._heading,o=this._start;if(R.equalsEpsilon(Math.abs(i),R.PI_OVER_TWO,R.EPSILON8))return;let r=nC(n,o.latitude),s=nC(n,e),a=Math.tan(i)*(s-r),c=R.negativePiToPi(o.longitude+a);return l(t)?(t.longitude=c,t.latitude=e,t.height=0,t):new fe(c,e,0)};var Ea=vp;var k6=[Ci,Si],_Re=k6.length,One=Math.cos(R.toRadians(30)),hne=Math.cos(R.toRadians(150)),Mne=0,Lne=1e3;function kg(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions;this.width=y(e.width,1),this._positions=t,this.granularity=y(e.granularity,9999),this.loop=y(e.loop,!1),this.arcType=y(e.arcType,Qt.GEODESIC),this._ellipsoid=te.WGS84,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(kg.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+te.packedLength+1+1}}});kg.setProjectionAndEllipsoid=function(e,t){let n=0;for(let i=0;i<_Re;i++)if(t instanceof k6[i]){n=i;break}e._projectionIndex=n,e._ellipsoid=t.ellipsoid};var gRe=new h,mne=new h,pne=new h;function B6(e,t,n,i,o){let r=Uc(i,e,0,gRe),s=Uc(i,e,n,mne),a=Uc(i,t,0,pne),c=wp(s,r,mne),u=wp(a,r,pne);return h.cross(u,c,o),h.normalize(o,o)}var yRe=new fe,xRe=new h,bRe=new h,TRe=new h;function R6(e,t,n,i,o,r,s,a,c,u,f){if(o===0)return;let d;r===Qt.GEODESIC?d=new Sp(e,t,s):r===Qt.RHUMB&&(d=new Ea(e,t,s));let p=d.surfaceDistance;if(p<o)return;let g=B6(e,t,i,s,TRe),m=Math.ceil(p/o),x=p/m,b=x,T=m-1,C=a.length;for(let A=0;A<T;A++){let E=d.interpolateUsingSurfaceDistance(b,yRe),v=Uc(s,E,n,xRe),D=Uc(s,E,i,bRe);h.pack(g,a,C),h.pack(v,c,C),h.pack(D,u,C),f.push(E.latitude),f.push(E.longitude),C+=3,b+=x}}var O6=new fe;function Uc(e,t,n,i){return fe.clone(t,O6),O6.height=n,fe.toCartesian(O6,e,i)}kg.pack=function(e,t,n){let i=y(n,0),o=e._positions,r=o.length;t[i++]=r;for(let s=0;s<r;++s){let a=o[s];h.pack(a,t,i),i+=3}return t[i++]=e.granularity,t[i++]=e.loop?1:0,t[i++]=e.arcType,te.pack(e._ellipsoid,t,i),i+=te.packedLength,t[i++]=e._projectionIndex,t[i++]=e._scene3DOnly?1:0,t};kg.unpack=function(e,t,n){let i=y(t,0),o=e[i++],r=new Array(o);for(let p=0;p<o;p++)r[p]=h.unpack(e,i),i+=3;let s=e[i++],a=e[i++]===1,c=e[i++],u=te.unpack(e,i);i+=te.packedLength;let f=e[i++],d=e[i++]===1;return l(n)||(n=new kg({positions:r})),n._positions=r,n.granularity=s,n.loop=a,n.arcType=c,n._ellipsoid=u,n._projectionIndex=f,n._scene3DOnly=d,n};function wp(e,t,n){return h.subtract(e,t,n),h.normalize(n,n),n}function _ne(e,t,n,i){return i=wp(e,t,i),i=h.cross(i,n,i),i=h.normalize(i,i),i=h.cross(n,i,i),i}var ARe=new h,CRe=new h,ERe=new h,Nne=new h,SRe=0,vRe=-1;function M6(e,t,n,i,o){let r=wp(n,t,Nne),s=_ne(e,t,r,ARe),a=_ne(i,t,r,CRe);if(R.equalsEpsilon(h.dot(s,a),vRe,R.EPSILON5))return o=h.cross(r,s,o),o=h.normalize(o,o),o;o=h.add(a,s,o),o=h.normalize(o,o);let c=h.cross(r,o,ERe);return h.dot(a,c)<SRe&&(o=h.negate(o,o)),o}var BV=ln.fromPointNormal(h.ZERO,h.UNIT_Y),wRe=new h,DRe=new h,PRe=new h,IRe=new h,RRe=new h,LV=new h,NV=new fe,gne=new fe,yne=new fe;kg.createGeometry=function(e){let t=!e._scene3DOnly,n=e.loop,i=e._ellipsoid,o=e.granularity,r=e.arcType,s=new k6[e._projectionIndex](i),a=Mne,c=Lne,u,f,d=e._positions,p=d.length;p===2&&(n=!1);let g,m,x,b,T=new Ea(void 0,void 0,i),C,A,E,v=[d[0]];for(f=0;f<p-1;f++)g=d[f],m=d[f+1],C=Qn.lineSegmentPlane(g,m,BV,LV),l(C)&&!h.equalsEpsilon(C,g,R.EPSILON7)&&!h.equalsEpsilon(C,m,R.EPSILON7)&&(e.arcType===Qt.GEODESIC?v.push(h.clone(C)):e.arcType===Qt.RHUMB&&(E=i.cartesianToCartographic(C,NV).longitude,x=i.cartesianToCartographic(g,NV),b=i.cartesianToCartographic(m,gne),T.setEndPoints(x,b),A=T.findIntersectionWithLongitude(E,yne),C=i.cartographicToCartesian(A,LV),l(C)&&!h.equalsEpsilon(C,g,R.EPSILON7)&&!h.equalsEpsilon(C,m,R.EPSILON7)&&v.push(h.clone(C)))),v.push(m);n&&(g=d[p-1],m=d[0],C=Qn.lineSegmentPlane(g,m,BV,LV),l(C)&&!h.equalsEpsilon(C,g,R.EPSILON7)&&!h.equalsEpsilon(C,m,R.EPSILON7)&&(e.arcType===Qt.GEODESIC?v.push(h.clone(C)):e.arcType===Qt.RHUMB&&(E=i.cartesianToCartographic(C,NV).longitude,x=i.cartesianToCartographic(g,NV),b=i.cartesianToCartographic(m,gne),T.setEndPoints(x,b),A=T.findIntersectionWithLongitude(E,yne),C=i.cartographicToCartesian(A,LV),l(C)&&!h.equalsEpsilon(C,g,R.EPSILON7)&&!h.equalsEpsilon(C,m,R.EPSILON7)&&v.push(h.clone(C)))));let D=v.length,O=new Array(D);for(f=0;f<D;f++){let W=fe.fromCartesian(v[f],i);W.height=0,O[f]=W}if(O=xo(O,fe.equalsEpsilon),D=O.length,D<2)return;let I=[],L=[],N=[],_=[],S=wRe,w=DRe,P=PRe,M=IRe,B=RRe,U=O[0],V=O[1],G=O[D-1];for(S=Uc(i,G,a,S),M=Uc(i,V,a,M),w=Uc(i,U,a,w),P=Uc(i,U,c,P),n?B=M6(S,w,P,M,B):B=B6(U,V,c,i,B),h.pack(B,L,0),h.pack(w,N,0),h.pack(P,_,0),I.push(U.latitude),I.push(U.longitude),R6(U,V,a,c,o,r,i,L,N,_,I),f=1;f<D-1;++f){S=h.clone(w,S),w=h.clone(M,w);let W=O[f];Uc(i,W,c,P),Uc(i,O[f+1],a,M),M6(S,w,P,M,B),u=L.length,h.pack(B,L,u),h.pack(w,N,u),h.pack(P,_,u),I.push(W.latitude),I.push(W.longitude),R6(O[f],O[f+1],a,c,o,r,i,L,N,_,I)}let k=O[D-1],Y=O[D-2];if(w=Uc(i,k,a,w),P=Uc(i,k,c,P),n){let W=O[0];S=Uc(i,Y,a,S),M=Uc(i,W,a,M),B=M6(S,w,P,M,B)}else B=B6(Y,k,c,i,B);if(u=L.length,h.pack(B,L,u),h.pack(w,N,u),h.pack(P,_,u),I.push(k.latitude),I.push(k.longitude),n){for(R6(k,U,a,c,o,r,i,L,N,_,I),u=L.length,f=0;f<3;++f)L[u+f]=L[f],N[u+f]=N[f],_[u+f]=_[f];I.push(U.latitude),I.push(U.longitude)}return iOe(n,s,N,_,L,I,t)};var ORe=new h,MRe=new $,LRe=new Me;function xne(e,t,n,i){let o=wp(n,t,ORe),r=h.dot(o,e);if(r>One||r<hne){let s=wp(i,n,Nne),a=r<hne?R.PI_OVER_TWO:-R.PI_OVER_TWO,c=Me.fromAxisAngle(s,a,LRe),u=$.fromQuaternion(c,MRe);return $.multiplyByVector(u,e,e),!0}return!1}var bne=new fe,NRe=new h,Tne=new h;function II(e,t,n,i,o){let r=fe.toCartesian(t,e._ellipsoid,NRe),s=h.add(r,n,Tne),a=!1,c=e._ellipsoid,u=c.cartesianToCartographic(s,bne);Math.abs(t.longitude-u.longitude)>R.PI_OVER_TWO&&(a=!0,s=h.subtract(r,n,Tne),u=c.cartesianToCartographic(s,bne)),u.height=0;let f=e.project(u,o);return o=h.subtract(f,i,o),o.z=0,o=h.normalize(o,o),a&&h.negate(o,o),o}var FRe=new h,Ane=new h;function Cne(e,t,n,i,o,r){let s=h.subtract(t,e,FRe);h.normalize(s,s);let a=n-Mne,c=h.multiplyByScalar(s,a,Ane);h.add(e,c,o);let u=i-Lne;c=h.multiplyByScalar(s,u,Ane),h.add(t,c,r)}var BRe=new h;function FV(e,t){let n=ln.getPointDistance(BV,e),i=ln.getPointDistance(BV,t),o=BRe;R.equalsEpsilon(n,0,R.EPSILON2)?(o=wp(t,e,o),h.multiplyByScalar(o,R.EPSILON2,o),h.add(e,o,e)):R.equalsEpsilon(i,0,R.EPSILON2)&&(o=wp(e,t,o),h.multiplyByScalar(o,R.EPSILON2,o),h.add(t,o,t))}function kRe(e,t){let n=Math.abs(e.longitude),i=Math.abs(t.longitude);if(R.equalsEpsilon(n,R.PI,R.EPSILON11)){let o=R.sign(t.longitude);return e.longitude=o*(n-R.EPSILON11),1}else if(R.equalsEpsilon(i,R.PI,R.EPSILON11)){let o=R.sign(e.longitude);return t.longitude=o*(i-R.EPSILON11),2}return 0}var Fne=new fe,Bne=new fe,Ene=new h,L6=new h,Sne=new h,vne=new h,VRe=new h,wne=new h,URe=[Fne,Bne],zRe=new se,HRe=new h,GRe=new h,WRe=new h,jRe=new h,qRe=new h,YRe=new h,N6=new h,F6=new h,XRe=new h,KRe=new h,ZRe=new h,Dne=new h,$Re=new h,QRe=new h,JRe=new Gn,eOe=new Gn,Pne=new h,tOe=new h,Ine=new h,nOe=[new ae,new ae],kne=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],Rne=kne.length;function iOe(e,t,n,i,o,r,s){let a,c,u=t._ellipsoid,f=n.length/3-1,d=f*8,p=d*4,g=f*36,m=d>65535?new Uint32Array(g):new Uint16Array(g),x=new Float64Array(d*3),b=new Float32Array(p),T=new Float32Array(p),C=new Float32Array(p),A=new Float32Array(p),E=new Float32Array(p),v,D,O,I;s&&(v=new Float32Array(p),D=new Float32Array(p),O=new Float32Array(p),I=new Float32Array(d*2));let L=r.length/2,N=0,_=Fne;_.height=0;let S=Bne;S.height=0;let w=Ene,P=L6;if(s)for(c=0,a=1;a<L;a++)_.latitude=r[c],_.longitude=r[c+1],S.latitude=r[c+2],S.longitude=r[c+3],w=t.project(_,w),P=t.project(S,P),N+=h.distance(w,P),c+=2;let M=i.length/3;P=h.unpack(i,0,P);let B=0;for(c=3,a=1;a<M;a++)w=h.clone(P,w),P=h.unpack(i,c,P),B+=h.distance(w,P),c+=3;let U;c=3;let V=0,G=0,k=0,Y=0,W=!1,Q=h.unpack(n,0,vne),j=h.unpack(i,0,L6),K=h.unpack(o,0,wne);if(e){let we=h.unpack(n,n.length-6,Sne);xne(K,we,Q,j)&&(K=h.negate(K,K))}let Z=0,he=0,be=0;for(a=0;a<f;a++){let we=h.clone(Q,Sne),Oe=h.clone(j,Ene),ke=h.clone(K,VRe);W&&(ke=h.negate(ke,ke)),Q=h.unpack(n,c,vne),j=h.unpack(i,c,L6),K=h.unpack(o,c,wne),W=xne(K,we,Q,j),_.latitude=r[V],_.longitude=r[V+1],S.latitude=r[V+2],S.longitude=r[V+3];let At,Bt,rt,Qe;if(s){let Zi=kRe(_,S);At=t.project(_,qRe),Bt=t.project(S,YRe);let Ps=wp(Bt,At,Pne);Ps.y=Math.abs(Ps.y),rt=N6,Qe=F6,Zi===0||h.dot(Ps,h.UNIT_Y)>One?(rt=II(t,_,ke,At,N6),Qe=II(t,S,K,Bt,F6)):Zi===1?(Qe=II(t,S,K,Bt,F6),rt.x=0,rt.y=R.sign(_.longitude-Math.abs(S.longitude)),rt.z=0):(rt=II(t,_,ke,At,N6),Qe.x=0,Qe.y=R.sign(_.longitude-S.longitude),Qe.z=0)}let Kt=h.distance(Oe,j),ht=Gn.fromCartesian(we,JRe),mt=h.subtract(Q,we,XRe),Zt=h.normalize(mt,Dne),me=h.subtract(Oe,we,KRe);me=h.normalize(me,me);let Ae=h.cross(Zt,me,Dne);Ae=h.normalize(Ae,Ae);let Ut=h.cross(me,ke,$Re);Ut=h.normalize(Ut,Ut);let ut=h.subtract(j,Q,ZRe);ut=h.normalize(ut,ut);let Ai=h.cross(K,ut,QRe);Ai=h.normalize(Ai,Ai);let po=Kt/B,hs=Z/B,es=0,Ur,Wo,Be,Ke=0,Xe=0;if(s){es=h.distance(At,Bt),Ur=Gn.fromCartesian(At,eOe),Wo=h.subtract(Bt,At,Pne),Be=h.normalize(Wo,tOe);let Zi=Be.x;Be.x=Be.y,Be.y=-Zi,Ke=es/N,Xe=he/N}for(U=0;U<8;U++){let Zi=Y+U*4,Ps=G+U*2,ts=Zi+3,Mc=U<4?1:-1,Lo=U===2||U===3||U===6||U===7?1:-1;h.pack(ht.high,b,Zi),b[ts]=mt.x,h.pack(ht.low,T,Zi),T[ts]=mt.y,h.pack(Ut,C,Zi),C[ts]=mt.z,h.pack(Ai,A,Zi),A[ts]=po*Mc,h.pack(Ae,E,Zi);let br=hs*Lo;br===0&&Lo<0&&(br=9),E[ts]=br,s&&(v[Zi]=Ur.high.x,v[Zi+1]=Ur.high.y,v[Zi+2]=Ur.low.x,v[Zi+3]=Ur.low.y,O[Zi]=-rt.y,O[Zi+1]=rt.x,O[Zi+2]=Qe.y,O[Zi+3]=-Qe.x,D[Zi]=Wo.x,D[Zi+1]=Wo.y,D[Zi+2]=Be.x,D[Zi+3]=Be.y,I[Ps]=Ke*Mc,br=Xe*Lo,br===0&&Lo<0&&(br=9),I[Ps+1]=br)}let Ye=WRe,ft=jRe,Wt=HRe,wn=GRe,qn=se.fromCartographicArray(URe,zRe),_o=ci.getMinimumMaximumHeights(qn,u),za=_o.minimumTerrainHeight,ya=_o.maximumTerrainHeight;be+=Math.abs(za),be+=Math.abs(ya),Cne(we,Oe,za,ya,Ye,Wt),Cne(Q,j,za,ya,ft,wn);let or=h.multiplyByScalar(Ae,R.EPSILON5,Ine);h.add(Ye,or,Ye),h.add(ft,or,ft),h.add(Wt,or,Wt),h.add(wn,or,wn),FV(Ye,ft),FV(Wt,wn),h.pack(Ye,x,k),h.pack(ft,x,k+3),h.pack(wn,x,k+6),h.pack(Wt,x,k+9),or=h.multiplyByScalar(Ae,-2*R.EPSILON5,Ine),h.add(Ye,or,Ye),h.add(ft,or,ft),h.add(Wt,or,Wt),h.add(wn,or,wn),FV(Ye,ft),FV(Wt,wn),h.pack(Ye,x,k+12),h.pack(ft,x,k+15),h.pack(wn,x,k+18),h.pack(Wt,x,k+21),V+=2,c+=3,G+=16,k+=24,Y+=32,Z+=Kt,he+=es}c=0;let re=0;for(a=0;a<f;a++){for(U=0;U<Rne;U++)m[c+U]=kne[U]+re;re+=8,c+=Rne}let _e=nOe;ae.fromVertices(n,h.ZERO,3,_e[0]),ae.fromVertices(i,h.ZERO,3,_e[1]);let xe=ae.fromBoundingSpheres(_e);xe.radius+=be/(f*2);let Ce={position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,normalize:!1,values:x}),startHiAndForwardOffsetX:Bg(b),startLoAndForwardOffsetY:Bg(T),startNormalAndForwardOffsetZ:Bg(C),endNormalAndTextureCoordinateNormalizationX:Bg(A),rightNormalAndTextureCoordinateNormalizationY:Bg(E)};return s&&(Ce.startHiLo2D=Bg(v),Ce.offsetAndRight2D=Bg(D),Ce.startEndNormals2D=Bg(O),Ce.texcoordNormalization2D=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,normalize:!1,values:I})),new st({attributes:Ce,indices:m,boundingSphere:xe})}function Bg(e){return new ve({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}kg._projectNormal=II;var bx=kg;var RI=`in vec4 v_startPlaneNormalEcAndHalfWidth; in vec4 v_endPlaneNormalEcAndBatchId; in vec4 v_rightPlaneEC; // Technically can compute distance for this here in vec4 v_endEcAndStartEcX; in vec4 v_texcoordNormalizationAndStartEcYZ; #ifdef PER_INSTANCE_COLOR in vec4 v_color; #endif void main(void) { float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); vec3 ecStart = vec3(v_endEcAndStartEcX.w, v_texcoordNormalizationAndStartEcYZ.zw); // Discard for sky if (logDepthOrDepth == 0.0) { #ifdef DEBUG_SHOW_VOLUME out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); return; #else // DEBUG_SHOW_VOLUME discard; #endif // DEBUG_SHOW_VOLUME } vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); eyeCoordinate /= eyeCoordinate.w; float halfMaxWidth = v_startPlaneNormalEcAndHalfWidth.w * czm_metersPerPixel(eyeCoordinate); // Check distance of the eye coordinate against the right-facing plane float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); // Check eye coordinate against the mitering planes float distanceFromStart = czm_planeDistance(v_startPlaneNormalEcAndHalfWidth.xyz, -dot(ecStart, v_startPlaneNormalEcAndHalfWidth.xyz), eyeCoordinate.xyz); float distanceFromEnd = czm_planeDistance(v_endPlaneNormalEcAndBatchId.xyz, -dot(v_endEcAndStartEcX.xyz, v_endPlaneNormalEcAndBatchId.xyz), eyeCoordinate.xyz); if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { #ifdef DEBUG_SHOW_VOLUME out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); return; #else // DEBUG_SHOW_VOLUME discard; #endif // DEBUG_SHOW_VOLUME } // Check distance of the eye coordinate against start and end planes with normals in the right plane. // For computing unskewed lengthwise texture coordinate. // Can also be used for clipping extremely pointy miters, but in practice unnecessary because of miter breaking. // aligned plane: cross the right plane normal with miter plane normal, then cross the result with right again to point it more "forward" vec3 alignedPlaneNormal; // start aligned plane alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_startPlaneNormalEcAndHalfWidth.xyz); alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); distanceFromStart = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, ecStart), eyeCoordinate.xyz); // end aligned plane alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_endPlaneNormalEcAndBatchId.xyz); alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); distanceFromEnd = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, v_endEcAndStartEcX.xyz), eyeCoordinate.xyz); #ifdef PER_INSTANCE_COLOR out_FragColor = czm_gammaCorrect(v_color); #else // PER_INSTANCE_COLOR // Clamp - distance to aligned planes may be negative due to mitering, // so fragment texture coordinate might be out-of-bounds. float s = clamp(distanceFromStart / (distanceFromStart + distanceFromEnd), 0.0, 1.0); s = (s * v_texcoordNormalizationAndStartEcYZ.x) + v_texcoordNormalizationAndStartEcYZ.y; float t = (widthwiseDistance + halfMaxWidth) / (2.0 * halfMaxWidth); czm_materialInput materialInput; materialInput.s = s; materialInput.st = vec2(s, t); materialInput.str = vec3(s, t, 0.0); czm_material material = czm_getMaterial(materialInput); out_FragColor = vec4(material.diffuse + material.emission, material.alpha); #endif // PER_INSTANCE_COLOR // Premultiply alpha. Required for classification primitives on translucent globe. out_FragColor.rgb *= out_FragColor.a; czm_writeDepthClamp(); } `;var OI=`in vec3 v_forwardDirectionEC; in vec3 v_texcoordNormalizationAndHalfWidth; in float v_batchId; #ifdef PER_INSTANCE_COLOR in vec4 v_color; #else in vec2 v_alignedPlaneDistances; in float v_texcoordT; #endif float rayPlaneDistanceUnsafe(vec3 origin, vec3 direction, vec3 planeNormal, float planeDistance) { // We don't expect the ray to ever be parallel to the plane return (-planeDistance - dot(planeNormal, origin)) / dot(planeNormal, direction); } void main(void) { vec4 eyeCoordinate = gl_FragCoord; eyeCoordinate /= eyeCoordinate.w; #ifdef PER_INSTANCE_COLOR out_FragColor = czm_gammaCorrect(v_color); #else // PER_INSTANCE_COLOR // Use distances for planes aligned with segment to prevent skew in dashing float distanceFromStart = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, -v_forwardDirectionEC, v_forwardDirectionEC.xyz, v_alignedPlaneDistances.x); float distanceFromEnd = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, v_forwardDirectionEC, -v_forwardDirectionEC.xyz, v_alignedPlaneDistances.y); // Clamp - distance to aligned planes may be negative due to mitering distanceFromStart = max(0.0, distanceFromStart); distanceFromEnd = max(0.0, distanceFromEnd); float s = distanceFromStart / (distanceFromStart + distanceFromEnd); s = (s * v_texcoordNormalizationAndHalfWidth.x) + v_texcoordNormalizationAndHalfWidth.y; czm_materialInput materialInput; materialInput.s = s; materialInput.st = vec2(s, v_texcoordT); materialInput.str = vec3(s, v_texcoordT, 0.0); czm_material material = czm_getMaterial(materialInput); out_FragColor = vec4(material.diffuse + material.emission, material.alpha); #endif // PER_INSTANCE_COLOR } `;var MI=`in vec3 position3DHigh; in vec3 position3DLow; in vec4 startHiAndForwardOffsetX; in vec4 startLoAndForwardOffsetY; in vec4 startNormalAndForwardOffsetZ; in vec4 endNormalAndTextureCoordinateNormalizationX; in vec4 rightNormalAndTextureCoordinateNormalizationY; in vec4 startHiLo2D; in vec4 offsetAndRight2D; in vec4 startEndNormals2D; in vec2 texcoordNormalization2D; in float batchId; out vec3 v_forwardDirectionEC; out vec3 v_texcoordNormalizationAndHalfWidth; out float v_batchId; // For materials #ifdef WIDTH_VARYING out float v_width; #endif #ifdef ANGLE_VARYING out float v_polylineAngle; #endif #ifdef PER_INSTANCE_COLOR out vec4 v_color; #else out vec2 v_alignedPlaneDistances; out float v_texcoordT; #endif // Morphing planes using SLERP or NLERP doesn't seem to work, so instead draw the material directly on the shadow volume. // Morph views are from very far away and aren't meant to be used precisely, so this should be sufficient. void main() { v_batchId = batchId; // Start position vec4 posRelativeToEye2D = czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw)); vec4 posRelativeToEye3D = czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz); vec4 posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); vec3 posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; vec3 posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; vec3 startEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; // Start plane vec4 startPlane2D; vec4 startPlane3D; startPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); startPlane3D.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; startPlane2D.w = -dot(startPlane2D.xyz, posEc2D); startPlane3D.w = -dot(startPlane3D.xyz, posEc3D); // Right plane vec4 rightPlane2D; vec4 rightPlane3D; rightPlane2D.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); rightPlane3D.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; rightPlane2D.w = -dot(rightPlane2D.xyz, posEc2D); rightPlane3D.w = -dot(rightPlane3D.xyz, posEc3D); // End position posRelativeToEye2D = posRelativeToEye2D + vec4(0.0, offsetAndRight2D.xy, 0.0); posRelativeToEye3D = posRelativeToEye3D + vec4(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w, 0.0); posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; vec3 endEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; vec3 forwardEc3D = czm_normal * normalize(vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w)); vec3 forwardEc2D = czm_normal * normalize(vec3(0.0, offsetAndRight2D.xy)); // End plane vec4 endPlane2D; vec4 endPlane3D; endPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); endPlane3D.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; endPlane2D.w = -dot(endPlane2D.xyz, posEc2D); endPlane3D.w = -dot(endPlane3D.xyz, posEc3D); // Forward direction v_forwardDirectionEC = normalize(endEC - startEC); vec2 cleanTexcoordNormalization2D; cleanTexcoordNormalization2D.x = abs(texcoordNormalization2D.x); cleanTexcoordNormalization2D.y = czm_branchFreeTernary(texcoordNormalization2D.y > 1.0, 0.0, abs(texcoordNormalization2D.y)); vec2 cleanTexcoordNormalization3D; cleanTexcoordNormalization3D.x = abs(endNormalAndTextureCoordinateNormalizationX.w); cleanTexcoordNormalization3D.y = rightNormalAndTextureCoordinateNormalizationY.w; cleanTexcoordNormalization3D.y = czm_branchFreeTernary(cleanTexcoordNormalization3D.y > 1.0, 0.0, abs(cleanTexcoordNormalization3D.y)); v_texcoordNormalizationAndHalfWidth.xy = mix(cleanTexcoordNormalization2D, cleanTexcoordNormalization3D, czm_morphTime); #ifdef PER_INSTANCE_COLOR v_color = czm_batchTable_color(batchId); #else // PER_INSTANCE_COLOR // For computing texture coordinates v_alignedPlaneDistances.x = -dot(v_forwardDirectionEC, startEC); v_alignedPlaneDistances.y = -dot(-v_forwardDirectionEC, endEC); #endif // PER_INSTANCE_COLOR #ifdef WIDTH_VARYING float width = czm_batchTable_width(batchId); float halfWidth = width * 0.5; v_width = width; v_texcoordNormalizationAndHalfWidth.z = halfWidth; #else float halfWidth = 0.5 * czm_batchTable_width(batchId); v_texcoordNormalizationAndHalfWidth.z = halfWidth; #endif // Compute a normal along which to "push" the position out, extending the miter depending on view distance. // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. // Since this is morphing, compute both 3D and 2D positions and then blend. // ****** 3D ****** // Check distance to the end plane and start plane, pick the plane that is closer vec4 positionEc3D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position3DHigh, position3DLow); // w = 1.0, see czm_computePosition float absStartPlaneDistance = abs(czm_planeDistance(startPlane3D, positionEc3D.xyz)); float absEndPlaneDistance = abs(czm_planeDistance(endPlane3D, positionEc3D.xyz)); vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane3D.xyz, endPlane3D.xyz); vec3 upOrDown = normalize(cross(rightPlane3D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. // Nudge the top vertex upwards to prevent flickering vec3 geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc3D)); geodeticSurfaceNormal *= float(0.0 <= rightNormalAndTextureCoordinateNormalizationY.w && rightNormalAndTextureCoordinateNormalizationY.w <= 1.0); geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; positionEc3D.xyz += geodeticSurfaceNormal; // Determine if this vertex is on the "left" or "right" normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); // A "perfect" implementation would push along normals according to the angle against forward. // In practice, just pushing the normal out by halfWidth is sufficient for morph views. positionEc3D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc3D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) // ****** 2D ****** // Check distance to the end plane and start plane, pick the plane that is closer vec4 positionEc2D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); // w = 1.0, see czm_computePosition absStartPlaneDistance = abs(czm_planeDistance(startPlane2D, positionEc2D.xyz)); absEndPlaneDistance = abs(czm_planeDistance(endPlane2D, positionEc2D.xyz)); planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane2D.xyz, endPlane2D.xyz); upOrDown = normalize(cross(rightPlane2D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. // Nudge the top vertex upwards to prevent flickering geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc2D)); geodeticSurfaceNormal *= float(0.0 <= texcoordNormalization2D.y && texcoordNormalization2D.y <= 1.0); geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; positionEc2D.xyz += geodeticSurfaceNormal; // Determine if this vertex is on the "left" or "right" normalEC *= sign(texcoordNormalization2D.x); #ifndef PER_INSTANCE_COLOR // Use vertex's sidedness to compute its texture coordinate. v_texcoordT = clamp(sign(texcoordNormalization2D.x), 0.0, 1.0); #endif // A "perfect" implementation would push along normals according to the angle against forward. // In practice, just pushing the normal out by halfWidth is sufficient for morph views. positionEc2D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc2D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) // Blend for actual position gl_Position = czm_projection * mix(positionEc2D, positionEc3D, czm_morphTime); #ifdef ANGLE_VARYING // Approximate relative screen space direction of the line. vec2 approxLineDirection = normalize(vec2(v_forwardDirectionEC.x, -v_forwardDirectionEC.y)); approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); #endif } `;var LI=`in vec3 position3DHigh; in vec3 position3DLow; // In 2D and in 3D, texture coordinate normalization component signs encodes: // * X sign - sidedness relative to right plane // * Y sign - is negative OR magnitude is greater than 1.0 if vertex is on bottom of volume #ifndef COLUMBUS_VIEW_2D in vec4 startHiAndForwardOffsetX; in vec4 startLoAndForwardOffsetY; in vec4 startNormalAndForwardOffsetZ; in vec4 endNormalAndTextureCoordinateNormalizationX; in vec4 rightNormalAndTextureCoordinateNormalizationY; #else in vec4 startHiLo2D; in vec4 offsetAndRight2D; in vec4 startEndNormals2D; in vec2 texcoordNormalization2D; #endif in float batchId; out vec4 v_startPlaneNormalEcAndHalfWidth; out vec4 v_endPlaneNormalEcAndBatchId; out vec4 v_rightPlaneEC; out vec4 v_endEcAndStartEcX; out vec4 v_texcoordNormalizationAndStartEcYZ; // For materials #ifdef WIDTH_VARYING out float v_width; #endif #ifdef ANGLE_VARYING out float v_polylineAngle; #endif #ifdef PER_INSTANCE_COLOR out vec4 v_color; #endif void main() { #ifdef COLUMBUS_VIEW_2D vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw))).xyz; vec3 forwardDirectionEC = czm_normal * vec3(0.0, offsetAndRight2D.xy); vec3 ecEnd = forwardDirectionEC + ecStart; forwardDirectionEC = normalize(forwardDirectionEC); // Right plane v_rightPlaneEC.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); // start plane vec4 startPlaneEC; startPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); // end plane vec4 endPlaneEC; endPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); v_texcoordNormalizationAndStartEcYZ.x = abs(texcoordNormalization2D.x); v_texcoordNormalizationAndStartEcYZ.y = texcoordNormalization2D.y; #else // COLUMBUS_VIEW_2D vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz)).xyz; vec3 offset = czm_normal * vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w); vec3 ecEnd = ecStart + offset; vec3 forwardDirectionEC = normalize(offset); // start plane vec4 startPlaneEC; startPlaneEC.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); // end plane vec4 endPlaneEC; endPlaneEC.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); // Right plane v_rightPlaneEC.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); v_texcoordNormalizationAndStartEcYZ.x = abs(endNormalAndTextureCoordinateNormalizationX.w); v_texcoordNormalizationAndStartEcYZ.y = rightNormalAndTextureCoordinateNormalizationY.w; #endif // COLUMBUS_VIEW_2D v_endEcAndStartEcX.xyz = ecEnd; v_endEcAndStartEcX.w = ecStart.x; v_texcoordNormalizationAndStartEcYZ.zw = ecStart.yz; #ifdef PER_INSTANCE_COLOR v_color = czm_batchTable_color(batchId); #endif // PER_INSTANCE_COLOR // Compute a normal along which to "push" the position out, extending the miter depending on view distance. // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. vec4 positionRelativeToEye = czm_computePosition(); // Check distance to the end plane and start plane, pick the plane that is closer vec4 positionEC = czm_modelViewRelativeToEye * positionRelativeToEye; // w = 1.0, see czm_computePosition float absStartPlaneDistance = abs(czm_planeDistance(startPlaneEC, positionEC.xyz)); float absEndPlaneDistance = abs(czm_planeDistance(endPlaneEC, positionEC.xyz)); vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlaneEC.xyz, endPlaneEC.xyz); vec3 upOrDown = normalize(cross(v_rightPlaneEC.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. // Extrude bottom vertices downward for far view distances, like for GroundPrimitives upOrDown = cross(forwardDirectionEC, normalEC); upOrDown = float(czm_sceneMode == czm_sceneMode3D) * upOrDown; upOrDown = float(v_texcoordNormalizationAndStartEcYZ.y > 1.0 || v_texcoordNormalizationAndStartEcYZ.y < 0.0) * upOrDown; upOrDown = min(GLOBE_MINIMUM_ALTITUDE, czm_geometricToleranceOverMeter * length(positionRelativeToEye.xyz)) * upOrDown; positionEC.xyz += upOrDown; v_texcoordNormalizationAndStartEcYZ.y = czm_branchFreeTernary(v_texcoordNormalizationAndStartEcYZ.y > 1.0, 0.0, abs(v_texcoordNormalizationAndStartEcYZ.y)); // Determine distance along normalEC to push for a volume of appropriate width. // Make volumes about double pixel width for a conservative fit - in practice the // extra cost here is minimal compared to the loose volume heights. // // N = normalEC (guaranteed "right-facing") // R = rightEC // p = angle between N and R // w = distance to push along R if R == N // d = distance to push along N // // N R // { p| } * cos(p) = dot(N, R) = w / d // d | |w * d = w / dot(N, R) // { | } // o---------- polyline segment ----> // float width = czm_batchTable_width(batchId); #ifdef WIDTH_VARYING v_width = width; #endif v_startPlaneNormalEcAndHalfWidth.xyz = startPlaneEC.xyz; v_startPlaneNormalEcAndHalfWidth.w = width * 0.5; v_endPlaneNormalEcAndBatchId.xyz = endPlaneEC.xyz; v_endPlaneNormalEcAndBatchId.w = batchId; width = width * max(0.0, czm_metersPerPixel(positionEC)); // width = distance to push along R width = width / dot(normalEC, v_rightPlaneEC.xyz); // width = distance to push along N // Determine if this vertex is on the "left" or "right" #ifdef COLUMBUS_VIEW_2D normalEC *= sign(texcoordNormalization2D.x); #else normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); #endif positionEC.xyz += width * normalEC; gl_Position = czm_depthClamp(czm_projection * positionEC); #ifdef ANGLE_VARYING // Approximate relative screen space direction of the line. vec2 approxLineDirection = normalize(vec2(forwardDirectionEC.x, -forwardDirectionEC.y)); approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); #endif } `;var NI=`in vec3 position3DHigh; in vec3 position3DLow; in vec3 prevPosition3DHigh; in vec3 prevPosition3DLow; in vec3 nextPosition3DHigh; in vec3 nextPosition3DLow; in vec2 expandAndWidth; in vec4 color; in float batchId; out vec4 v_color; void main() { float expandDir = expandAndWidth.x; float width = abs(expandAndWidth.y) + 0.5; bool usePrev = expandAndWidth.y < 0.0; vec4 p = czm_computePosition(); vec4 prev = czm_computePrevPosition(); vec4 next = czm_computeNextPosition(); float angle; vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); gl_Position = czm_viewportOrthographic * positionWC; v_color = color; } `;var hu=`void clipLineSegmentToNearPlane( vec3 p0, vec3 p1, out vec4 positionWC, out bool clipped, out bool culledByNearPlane, out vec4 clippedPositionEC) { culledByNearPlane = false; clipped = false; vec3 p0ToP1 = p1 - p0; float magnitude = length(p0ToP1); vec3 direction = normalize(p0ToP1); // Distance that p0 is behind the near plane. Negative means p0 is // in front of the near plane. float endPoint0Distance = czm_currentFrustum.x + p0.z; // Camera looks down -Z. // When moving a point along +Z: LESS VISIBLE // * Points in front of the camera move closer to the camera. // * Points behind the camrea move farther away from the camera. // When moving a point along -Z: MORE VISIBLE // * Points in front of the camera move farther away from the camera. // * Points behind the camera move closer to the camera. // Positive denominator: -Z, becoming more visible // Negative denominator: +Z, becoming less visible // Nearly zero: parallel to near plane float denominator = -direction.z; if (endPoint0Distance > 0.0 && abs(denominator) < czm_epsilon7) { // p0 is behind the near plane and the line to p1 is nearly parallel to // the near plane, so cull the segment completely. culledByNearPlane = true; } else if (endPoint0Distance > 0.0) { // p0 is behind the near plane, and the line to p1 is moving distinctly // toward or away from it. // t = (-plane distance - dot(plane normal, ray origin)) / dot(plane normal, ray direction) float t = endPoint0Distance / denominator; if (t < 0.0 || t > magnitude) { // Near plane intersection is not between the two points. // We already confirmed p0 is behind the naer plane, so now // we know the entire segment is behind it. culledByNearPlane = true; } else { // Segment crosses the near plane, update p0 to lie exactly on it. p0 = p0 + t * direction; // Numerical noise might put us a bit on the wrong side of the near plane. // Don't let that happen. p0.z = min(p0.z, -czm_currentFrustum.x); clipped = true; } } clippedPositionEC = vec4(p0, 1.0); positionWC = czm_eyeToWindowCoordinates(clippedPositionEC); } vec4 getPolylineWindowCoordinatesEC(vec4 positionEC, vec4 prevEC, vec4 nextEC, float expandDirection, float width, bool usePrevious, out float angle) { // expandDirection +1 is to the _left_ when looking from positionEC toward nextEC. #ifdef POLYLINE_DASH // Compute the window coordinates of the points. vec4 positionWindow = czm_eyeToWindowCoordinates(positionEC); vec4 previousWindow = czm_eyeToWindowCoordinates(prevEC); vec4 nextWindow = czm_eyeToWindowCoordinates(nextEC); // Determine the relative screen space direction of the line. vec2 lineDir; if (usePrevious) { lineDir = normalize(positionWindow.xy - previousWindow.xy); } else { lineDir = normalize(nextWindow.xy - positionWindow.xy); } angle = atan(lineDir.x, lineDir.y) - 1.570796327; // precomputed atan(1,0) // Quantize the angle so it doesn't change rapidly between segments. angle = floor(angle / czm_piOverFour + 0.5) * czm_piOverFour; #endif vec4 clippedPrevWC, clippedPrevEC; bool prevSegmentClipped, prevSegmentCulled; clipLineSegmentToNearPlane(prevEC.xyz, positionEC.xyz, clippedPrevWC, prevSegmentClipped, prevSegmentCulled, clippedPrevEC); vec4 clippedNextWC, clippedNextEC; bool nextSegmentClipped, nextSegmentCulled; clipLineSegmentToNearPlane(nextEC.xyz, positionEC.xyz, clippedNextWC, nextSegmentClipped, nextSegmentCulled, clippedNextEC); bool segmentClipped, segmentCulled; vec4 clippedPositionWC, clippedPositionEC; clipLineSegmentToNearPlane(positionEC.xyz, usePrevious ? prevEC.xyz : nextEC.xyz, clippedPositionWC, segmentClipped, segmentCulled, clippedPositionEC); if (segmentCulled) { return vec4(0.0, 0.0, 0.0, 1.0); } vec2 directionToPrevWC = normalize(clippedPrevWC.xy - clippedPositionWC.xy); vec2 directionToNextWC = normalize(clippedNextWC.xy - clippedPositionWC.xy); // If a segment was culled, we can't use the corresponding direction // computed above. We should never see both of these be true without // \`segmentCulled\` above also being true. if (prevSegmentCulled) { directionToPrevWC = -directionToNextWC; } else if (nextSegmentCulled) { directionToNextWC = -directionToPrevWC; } vec2 thisSegmentForwardWC, otherSegmentForwardWC; if (usePrevious) { thisSegmentForwardWC = -directionToPrevWC; otherSegmentForwardWC = directionToNextWC; } else { thisSegmentForwardWC = directionToNextWC; otherSegmentForwardWC = -directionToPrevWC; } vec2 thisSegmentLeftWC = vec2(-thisSegmentForwardWC.y, thisSegmentForwardWC.x); vec2 leftWC = thisSegmentLeftWC; float expandWidth = width * 0.5; // When lines are split at the anti-meridian, the position may be at the // same location as the next or previous position, and we need to handle // that to avoid producing NaNs. if (!czm_equalsEpsilon(prevEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1) && !czm_equalsEpsilon(nextEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1)) { vec2 otherSegmentLeftWC = vec2(-otherSegmentForwardWC.y, otherSegmentForwardWC.x); vec2 leftSumWC = thisSegmentLeftWC + otherSegmentLeftWC; float leftSumLength = length(leftSumWC); leftWC = leftSumLength < czm_epsilon6 ? thisSegmentLeftWC : (leftSumWC / leftSumLength); // The sine of the angle between the two vectors is given by the formula // |a x b| = |a||b|sin(theta) // which is // float sinAngle = length(cross(vec3(leftWC, 0.0), vec3(-thisSegmentForwardWC, 0.0))); // Because the z components of both vectors are zero, the x and y coordinate will be zero. // Therefore, the sine of the angle is just the z component of the cross product. vec2 u = -thisSegmentForwardWC; vec2 v = leftWC; float sinAngle = abs(u.x * v.y - u.y * v.x); expandWidth = clamp(expandWidth / sinAngle, 0.0, width * 2.0); } vec2 offset = leftWC * expandDirection * expandWidth * czm_pixelRatio; return vec4(clippedPositionWC.xy + offset, -clippedPositionWC.z, 1.0) * (czm_projection * clippedPositionEC).w; } vec4 getPolylineWindowCoordinates(vec4 position, vec4 previous, vec4 next, float expandDirection, float width, bool usePrevious, out float angle) { vec4 positionEC = czm_modelViewRelativeToEye * position; vec4 prevEC = czm_modelViewRelativeToEye * previous; vec4 nextEC = czm_modelViewRelativeToEye * next; return getPolylineWindowCoordinatesEC(positionEC, prevEC, nextEC, expandDirection, width, usePrevious, angle); } `;var V6=`${hu} ${NI}`,oOe=sx;Vt.isInternetExplorer()||(V6=`#define CLIP_POLYLINE ${V6}`);function Tx(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=Tx.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,V6),this._fragmentShaderSource=y(e.fragmentShaderSource,oOe),this._renderState=Ji.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(Tx.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});Tx.VERTEX_FORMAT=Ie.POSITION_ONLY;Tx.prototype.getFragmentShaderSource=Ji.prototype.getFragmentShaderSource;Tx.prototype.isTranslucent=Ji.prototype.isTranslucent;Tx.prototype.getRenderState=Ji.prototype.getRenderState;var Gr=Tx;var FI=`in vec3 position3DHigh; in vec3 position3DLow; in vec3 prevPosition3DHigh; in vec3 prevPosition3DLow; in vec3 nextPosition3DHigh; in vec3 nextPosition3DLow; in vec2 expandAndWidth; in vec2 st; in float batchId; out float v_width; out vec2 v_st; out float v_polylineAngle; void main() { float expandDir = expandAndWidth.x; float width = abs(expandAndWidth.y) + 0.5; bool usePrev = expandAndWidth.y < 0.0; vec4 p = czm_computePosition(); vec4 prev = czm_computePrevPosition(); vec4 next = czm_computeNextPosition(); float angle; vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); gl_Position = czm_viewportOrthographic * positionWC; v_width = width; v_st.s = st.s; v_st.t = czm_writeNonPerspective(st.t, gl_Position.w); v_polylineAngle = angle; } `;var Ax=`#ifdef VECTOR_TILE uniform vec4 u_highlightColor; #endif in vec2 v_st; void main() { czm_materialInput materialInput; vec2 st = v_st; st.t = czm_readNonPerspective(st.t, gl_FragCoord.w); materialInput.s = st.s; materialInput.st = st; materialInput.str = vec3(st, 0.0); czm_material material = czm_getMaterial(materialInput); out_FragColor = vec4(material.diffuse + material.emission, material.alpha); #ifdef VECTOR_TILE out_FragColor *= u_highlightColor; #endif czm_writeLogDepth(); } `;var U6=`${hu} ${FI}`,rOe=Ax;Vt.isInternetExplorer()||(U6=`#define CLIP_POLYLINE ${U6}`);function Cx(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=Cx.VERTEX_FORMAT;this.material=l(e.material)?e.material:Vi.fromType(Vi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,U6),this._fragmentShaderSource=y(e.fragmentShaderSource,rOe),this._renderState=Ji.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(Cx.prototype,{vertexShaderSource:{get:function(){let e=this._vertexShaderSource;return this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&(e=`#define POLYLINE_DASH ${e}`),e}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});Cx.VERTEX_FORMAT=Ie.POSITION_AND_ST;Cx.prototype.getFragmentShaderSource=Ji.prototype.getFragmentShaderSource;Cx.prototype.isTranslucent=Ji.prototype.isTranslucent;Cx.prototype.getRenderState=Ji.prototype.getRenderState;var Qs=Cx;function Dp(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this._hasPerInstanceColors=!0;let t=e.appearance;l(t)||(t=new Qs),this.appearance=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,Vn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:!1,interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:!1,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0},this._zIndex=void 0,this._ready=!1,this._primitive=void 0,this._sp=void 0,this._sp2D=void 0,this._spMorph=void 0,this._renderState=Vne(!1),this._renderState3DTiles=Vne(!0),this._renderStateMorph=Ve.fromCache({cull:{enabled:!0,face:hi.FRONT},depthTest:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1})}Object.defineProperties(Dp.prototype,{interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},ready:{get:function(){return this._ready}},debugShowShadowVolume:{get:function(){return this._debugShowShadowVolume}}});Dp.initializeTerrainHeights=function(){return ci.initialize()};function sOe(e,t,n){let i=t.context,o=e._primitive,r=o._attributeLocations,s=o._batchTable.getVertexShaderCallback()(LI);s=vn._appendShowToShader(o,s),s=vn._appendDistanceDisplayConditionToShader(o,s),s=vn._modifyShaderPosition(e,s,t.scene3DOnly);let a=o._batchTable.getVertexShaderCallback()(MI);a=vn._appendShowToShader(o,a),a=vn._appendDistanceDisplayConditionToShader(o,a),a=vn._modifyShaderPosition(e,a,t.scene3DOnly);let c=o._batchTable.getVertexShaderCallback()(RI),u=[`GLOBE_MINIMUM_ALTITUDE ${t.mapProjection.ellipsoid.minimumRadius.toFixed(1)}`],f="",d="";l(n.material)?(d=l(n.material)?n.material.shaderSource:"",d.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&u.push("ANGLE_VARYING"),d.search(/in\s+float\s+v_width;/g)!==-1&&u.push("WIDTH_VARYING")):f="PER_INSTANCE_COLOR",u.push(f);let p=e.debugShowShadowVolume?["DEBUG_SHOW_VOLUME",f]:[f],g=new ze({defines:u,sources:[s]}),m=new ze({defines:p,sources:[d,c]});e._sp=$t.replaceCache({context:i,shaderProgram:o._sp,vertexShaderSource:g,fragmentShaderSource:m,attributeLocations:r});let x=i.shaderCache.getDerivedShaderProgram(e._sp,"2dColor");if(!l(x)){let T=new ze({defines:u.concat(["COLUMBUS_VIEW_2D"]),sources:[s]});x=i.shaderCache.createDerivedShaderProgram(e._sp,"2dColor",{context:i,shaderProgram:e._sp2D,vertexShaderSource:T,fragmentShaderSource:m,attributeLocations:r})}e._sp2D=x;let b=i.shaderCache.getDerivedShaderProgram(e._sp,"MorphColor");if(!l(b)){let T=new ze({defines:u.concat([`MAX_TERRAIN_HEIGHT ${ci._defaultMaxTerrainHeight.toFixed(1)}`]),sources:[a]});c=o._batchTable.getVertexShaderCallback()(OI);let C=new ze({defines:p,sources:[d,c]});b=i.shaderCache.createDerivedShaderProgram(e._sp,"MorphColor",{context:i,shaderProgram:e._spMorph,vertexShaderSource:T,fragmentShaderSource:C,attributeLocations:r})}e._spMorph=b}function Vne(e){return Ve.fromCache({cull:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Un.EQUAL,frontOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},backFunction:Un.EQUAL,backOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK}})}function aOe(e,t,n,i,o,r){let s=e._primitive,a=s._va.length;o.length=a,r.length=a;let u=t instanceof Gr?{}:n._uniforms,f=s._batchTable.getUniformMapCallback()(u);for(let d=0;d<a;d++){let p=s._va[d],g=o[d];l(g)||(g=o[d]=new Ze({owner:e,primitiveType:s._primitiveType})),g.vertexArray=p,g.renderState=e._renderState,g.shaderProgram=e._sp,g.uniformMap=f,g.pass=Ee.TERRAIN_CLASSIFICATION,g.pickId="czm_batchTable_pickColor(v_endPlaneNormalEcAndBatchId.w)";let m=Ze.shallowClone(g,g.derivedCommands.tileset);m.renderState=e._renderState3DTiles,m.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,g.derivedCommands.tileset=m;let x=Ze.shallowClone(g,g.derivedCommands.color2D);x.shaderProgram=e._sp2D,g.derivedCommands.color2D=x;let b=Ze.shallowClone(m,m.derivedCommands.color2D);b.shaderProgram=e._sp2D,m.derivedCommands.color2D=b;let T=Ze.shallowClone(g,g.derivedCommands.colorMorph);T.renderState=e._renderStateMorph,T.shaderProgram=e._spMorph,T.pickId="czm_batchTable_pickColor(v_batchId)",g.derivedCommands.colorMorph=T}}function Une(e,t,n,i,o,r,s){n.mode===ne.MORPHING?t=t.derivedCommands.colorMorph:n.mode!==ne.SCENE3D&&(t=t.derivedCommands.color2D),t.modelMatrix=i,t.boundingVolume=r,t.cull=o,t.debugShowBoundingVolume=s,n.commandList.push(t)}function cOe(e,t,n,i,o,r,s){let a=e._primitive;vn._updateBoundingVolumes(a,t,o);let c;t.mode===ne.SCENE3D?c=a._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?c=a._boundingSphereCV:t.mode===ne.SCENE2D&&l(a._boundingSphere2D)?c=a._boundingSphere2D:l(a._boundingSphereMorph)&&(c=a._boundingSphereMorph);let u=t.mode===ne.MORPHING,f=e.classificationType,d=f!==Vn.CESIUM_3D_TILE,p=f!==Vn.TERRAIN&&!u,g,m=t.passes;if(m.render||m.pick&&a.allowPicking){let x=n.length;for(let b=0;b<x;++b){let T=c[b];d&&(g=n[b],Une(e,g,t,o,r,T,s)),p&&(g=n[b].derivedCommands.tileset,Une(e,g,t,o,r,T,s))}}}Dp.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;if(!ci.initialized){Dp.initializeTerrainHeights();return}let t,n=this,i=this._primitiveOptions;if(!l(this._primitive)){let o=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],r=o.length,s=new Array(r),a;for(t=0;t<r;++t)if(a=o[t].attributes,!l(a)||!l(a.color)){this._hasPerInstanceColors=!1;break}for(t=0;t<r;++t){let c=o[t];a={};let u=c.attributes;for(let f in u)u.hasOwnProperty(f)&&(a[f]=u[f]);l(a.width)||(a.width=new nc({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,value:[c.geometry.width]})),c.geometry._scene3DOnly=e.scene3DOnly,bx.setProjectionAndEllipsoid(c.geometry,e.mapProjection),s[t]=new xt({geometry:c.geometry,attributes:a,id:c.id,pickPrimitive:n})}i.geometryInstances=s,i.appearance=this.appearance,i._createShaderProgramFunction=function(c,u,f){sOe(n,u,f)},i._createCommandsFunction=function(c,u,f,d,p,g,m){aOe(n,u,f,d,g,m)},i._updateAndQueueCommandsFunction=function(c,u,f,d,p,g,m,x){cOe(n,u,f,d,p,g,m)},this._primitive=new vn(i)}if(this.appearance instanceof Gr&&!this._hasPerInstanceColors)throw new de("All GeometryInstances must have color attributes to use PolylineColorAppearance with GroundPolylinePrimitive.");this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{!this._ready&&l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Dp.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Dp.isSupported=function(e){return e.frameState.context.depthTexture};Dp.prototype.isDestroyed=function(){return!1};Dp.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._sp2D=void 0,this._spMorph=void 0,ue(this)};var Dd=Dp;var lOe=new z(1,1),uOe=!1,fOe=H.WHITE;function iC(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._image=void 0,this._imageSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._transparent=void 0,this._transparentSubscription=void 0,this.image=e.image,this.repeat=e.repeat,this.color=e.color,this.transparent=e.transparent}Object.defineProperties(iC.prototype,{isConstant:{get:function(){return q.isConstant(this._image)&&q.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},image:ce("image"),repeat:ce("repeat"),color:ce("color"),transparent:ce("transparent")});iC.prototype.getType=function(e){return"Image"};iC.prototype.getValue=function(e,t){return l(t)||(t={}),t.image=q.getValueOrUndefined(this._image,e),t.repeat=q.getValueOrClonedDefault(this._repeat,e,lOe,t.repeat),t.color=q.getValueOrClonedDefault(this._color,e,fOe,t.color),q.getValueOrDefault(this._transparent,e,uOe)&&(t.color.alpha=Math.min(.99,t.color.alpha)),t};iC.prototype.equals=function(e){return this===e||e instanceof iC&&q.equals(this._image,e._image)&&q.equals(this._repeat,e._repeat)&&q.equals(this._color,e._color)&&q.equals(this._transparent,e._transparent)};var Vg=iC;function dOe(e){if(e instanceof H)return new kt(e);if(typeof e=="string"||e instanceof De||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement){let t=new Vg;return t.image=e,t}}function hOe(e,t){return ce(e,t,dOe)}var Po=hOe;function BI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(BI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),dimensions:ce("dimensions"),heightReference:ce("heightReference"),fill:ce("fill"),material:Po("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});BI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.dimensions=this.dimensions,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new BI(this)};BI.prototype.merge=function(e){this.show=y(this.show,e.show),this.dimensions=y(this.dimensions,e.dimensions),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var Ex=BI;var mOe={FIXED:0,INERTIAL:1},to=Object.freeze(mOe);function oC(){de.throwInstantiationError()}Object.defineProperties(oC.prototype,{isConstant:{get:de.throwInstantiationError},definitionChanged:{get:de.throwInstantiationError},referenceFrame:{get:de.throwInstantiationError}});oC.prototype.getValue=de.throwInstantiationError;oC.prototype.getValueInReferenceFrame=de.throwInstantiationError;oC.prototype.equals=de.throwInstantiationError;var z6=new $;oC.convertToReferenceFrame=function(e,t,n,i,o){if(!l(t))return t;if(l(o)||(o=new h),n===i)return h.clone(t,o);let r=wt.computeIcrfToFixedMatrix(e,z6);if(l(r)||(r=wt.computeTemeToPseudoFixedMatrix(e,z6)),n===to.INERTIAL)return $.multiplyByVector(r,t,o);if(n===to.FIXED)return $.multiplyByVector($.transpose(r,z6),t,o)};var Pp=oC;function Sx(e,t){this._definitionChanged=new pe,this._value=h.clone(e),this._referenceFrame=y(t,to.FIXED)}Object.defineProperties(Sx.prototype,{isConstant:{get:function(){return!l(this._value)||this._referenceFrame===to.FIXED}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});Sx.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,to.FIXED,t)};Sx.prototype.setValue=function(e,t){let n=!1;h.equals(this._value,e)||(n=!0,this._value=h.clone(e)),l(t)&&this._referenceFrame!==t&&(n=!0,this._referenceFrame=t),n&&this._definitionChanged.raiseEvent(this)};Sx.prototype.getValueInReferenceFrame=function(e,t,n){return Pp.convertToReferenceFrame(e,this._value,this._referenceFrame,t,n)};Sx.prototype.equals=function(e){return this===e||e instanceof Sx&&h.equals(this._value,e._value)&&this._referenceFrame===e._referenceFrame};var zc=Sx;function kI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(kI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),positions:ce("positions"),width:ce("width"),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),cornerType:ce("cornerType"),granularity:ce("granularity"),fill:ce("fill"),material:Po("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});kI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new kI(this)};kI.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var vx=kI;function pOe(e){return e}function _Oe(e,t){return ce(e,t,pOe)}var vl=_Oe;function VI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._length=void 0,this._lengthSubscription=void 0,this._topRadius=void 0,this._topRadiusSubscription=void 0,this._bottomRadius=void 0,this._bottomRadiusSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._slices=void 0,this._slicesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(VI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),length:ce("length"),topRadius:ce("topRadius"),bottomRadius:ce("bottomRadius"),heightReference:ce("heightReference"),fill:ce("fill"),material:Po("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),numberOfVerticalLines:ce("numberOfVerticalLines"),slices:ce("slices"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});VI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.length=this.length,e.topRadius=this.topRadius,e.bottomRadius=this.bottomRadius,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.slices=this.slices,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new VI(this)};VI.prototype.merge=function(e){this.show=y(this.show,e.show),this.length=y(this.length,e.length),this.topRadius=y(this.topRadius,e.topRadius),this.bottomRadius=y(this.bottomRadius,e.bottomRadius),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.slices=y(this.slices,e.slices),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var wx=VI;function UI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._semiMajorAxis=void 0,this._semiMajorAxisSubscription=void 0,this._semiMinorAxis=void 0,this._semiMinorAxisSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(UI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),semiMajorAxis:ce("semiMajorAxis"),semiMinorAxis:ce("semiMinorAxis"),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),rotation:ce("rotation"),stRotation:ce("stRotation"),granularity:ce("granularity"),fill:ce("fill"),material:Po("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),numberOfVerticalLines:ce("numberOfVerticalLines"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});UI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.semiMajorAxis=this.semiMajorAxis,e.semiMinorAxis=this.semiMinorAxis,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new UI(this)};UI.prototype.merge=function(e){this.show=y(this.show,e.show),this.semiMajorAxis=y(this.semiMajorAxis,e.semiMajorAxis),this.semiMinorAxis=y(this.semiMinorAxis,e.semiMinorAxis),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var Dx=UI;function zI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._radii=void 0,this._radiiSubscription=void 0,this._innerRadii=void 0,this._innerRadiiSubscription=void 0,this._minimumClock=void 0,this._minimumClockSubscription=void 0,this._maximumClock=void 0,this._maximumClockSubscription=void 0,this._minimumCone=void 0,this._minimumConeSubscription=void 0,this._maximumCone=void 0,this._maximumConeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._stackPartitions=void 0,this._stackPartitionsSubscription=void 0,this._slicePartitions=void 0,this._slicePartitionsSubscription=void 0,this._subdivisions=void 0,this._subdivisionsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(zI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),radii:ce("radii"),innerRadii:ce("innerRadii"),minimumClock:ce("minimumClock"),maximumClock:ce("maximumClock"),minimumCone:ce("minimumCone"),maximumCone:ce("maximumCone"),heightReference:ce("heightReference"),fill:ce("fill"),material:Po("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),stackPartitions:ce("stackPartitions"),slicePartitions:ce("slicePartitions"),subdivisions:ce("subdivisions"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});zI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.radii=this.radii,e.innerRadii=this.innerRadii,e.minimumClock=this.minimumClock,e.maximumClock=this.maximumClock,e.minimumCone=this.minimumCone,e.maximumCone=this.maximumCone,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.stackPartitions=this.stackPartitions,e.slicePartitions=this.slicePartitions,e.subdivisions=this.subdivisions,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new zI(this)};zI.prototype.merge=function(e){this.show=y(this.show,e.show),this.radii=y(this.radii,e.radii),this.innerRadii=y(this.innerRadii,e.innerRadii),this.minimumClock=y(this.minimumClock,e.minimumClock),this.maximumClock=y(this.maximumClock,e.maximumClock),this.minimumCone=y(this.minimumCone,e.minimumCone),this.maximumCone=y(this.maximumCone,e.maximumCone),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.stackPartitions=y(this.stackPartitions,e.stackPartitions),this.slicePartitions=y(this.slicePartitions,e.slicePartitions),this.subdivisions=y(this.subdivisions,e.subdivisions),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var Px=zI;function HI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._text=void 0,this._textSubscription=void 0,this._font=void 0,this._fontSubscription=void 0,this._style=void 0,this._styleSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._showBackground=void 0,this._showBackgroundSubscription=void 0,this._backgroundColor=void 0,this._backgroundColorSubscription=void 0,this._backgroundPadding=void 0,this._backgroundPaddingSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fillColor=void 0,this._fillColorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(HI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),text:ce("text"),font:ce("font"),style:ce("style"),scale:ce("scale"),showBackground:ce("showBackground"),backgroundColor:ce("backgroundColor"),backgroundPadding:ce("backgroundPadding"),pixelOffset:ce("pixelOffset"),eyeOffset:ce("eyeOffset"),horizontalOrigin:ce("horizontalOrigin"),verticalOrigin:ce("verticalOrigin"),heightReference:ce("heightReference"),fillColor:ce("fillColor"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),translucencyByDistance:ce("translucencyByDistance"),pixelOffsetScaleByDistance:ce("pixelOffsetScaleByDistance"),scaleByDistance:ce("scaleByDistance"),distanceDisplayCondition:ce("distanceDisplayCondition"),disableDepthTestDistance:ce("disableDepthTestDistance")});HI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.text=this.text,e.font=this.font,e.style=this.style,e.scale=this.scale,e.showBackground=this.showBackground,e.backgroundColor=this.backgroundColor,e.backgroundPadding=this.backgroundPadding,e.pixelOffset=this.pixelOffset,e.eyeOffset=this.eyeOffset,e.horizontalOrigin=this.horizontalOrigin,e.verticalOrigin=this.verticalOrigin,e.heightReference=this.heightReference,e.fillColor=this.fillColor,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.translucencyByDistance=this.translucencyByDistance,e.pixelOffsetScaleByDistance=this.pixelOffsetScaleByDistance,e.scaleByDistance=this.scaleByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new HI(this)};HI.prototype.merge=function(e){this.show=y(this.show,e.show),this.text=y(this.text,e.text),this.font=y(this.font,e.font),this.style=y(this.style,e.style),this.scale=y(this.scale,e.scale),this.showBackground=y(this.showBackground,e.showBackground),this.backgroundColor=y(this.backgroundColor,e.backgroundColor),this.backgroundPadding=y(this.backgroundPadding,e.backgroundPadding),this.pixelOffset=y(this.pixelOffset,e.pixelOffset),this.eyeOffset=y(this.eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this.horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this.verticalOrigin,e.verticalOrigin),this.heightReference=y(this.heightReference,e.heightReference),this.fillColor=y(this.fillColor,e.fillColor),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.translucencyByDistance=y(this.translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this.pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance)};var Pd=HI;var gOe=new h(1,1,1),yOe=h.ZERO,xOe=Me.IDENTITY;function zne(e,t,n){this.translation=h.clone(y(e,yOe)),this.rotation=Me.clone(y(t,xOe)),this.scale=h.clone(y(n,gOe))}zne.prototype.equals=function(e){return this===e||l(e)&&h.equals(this.translation,e.translation)&&Me.equals(this.rotation,e.rotation)&&h.equals(this.scale,e.scale)};var Ug=zne;var H6=new Ug;function GI(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._translation=void 0,this._translationSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this.translation=e.translation,this.rotation=e.rotation,this.scale=e.scale}Object.defineProperties(GI.prototype,{isConstant:{get:function(){return q.isConstant(this._translation)&&q.isConstant(this._rotation)&&q.isConstant(this._scale)}},definitionChanged:{get:function(){return this._definitionChanged}},translation:ce("translation"),rotation:ce("rotation"),scale:ce("scale")});GI.prototype.getValue=function(e,t){return l(t)||(t=new Ug),t.translation=q.getValueOrClonedDefault(this._translation,e,H6.translation,t.translation),t.rotation=q.getValueOrClonedDefault(this._rotation,e,H6.rotation,t.rotation),t.scale=q.getValueOrClonedDefault(this._scale,e,H6.scale,t.scale),t};GI.prototype.equals=function(e){return this===e||e instanceof GI&&q.equals(this._translation,e._translation)&&q.equals(this._rotation,e._rotation)&&q.equals(this._scale,e._scale)};var Ix=GI;function Ip(e,t){this._propertyNames=[],this._definitionChanged=new pe,l(e)&&this.merge(e,t)}Object.defineProperties(Ip.prototype,{propertyNames:{get:function(){return this._propertyNames}},isConstant:{get:function(){let e=this._propertyNames;for(let t=0,n=e.length;t<n;t++)if(!q.isConstant(this[e[t]]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});Ip.prototype.hasProperty=function(e){return this._propertyNames.indexOf(e)!==-1};function bOe(e){return new Zn(e)}Ip.prototype.addProperty=function(e,t,n){this._propertyNames.push(e),Object.defineProperty(this,e,ce(e,!0,y(n,bOe))),l(t)&&(this[e]=t),this._definitionChanged.raiseEvent(this)};Ip.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e],this._definitionChanged.raiseEvent(this)};Ip.prototype.getValue=function(e,t){l(t)||(t={});let n=this._propertyNames;for(let i=0,o=n.length;i<o;i++){let r=n[i];t[r]=q.getValueOrUndefined(this[r],e,t[r])}return t};Ip.prototype.merge=function(e,t){let n=this._propertyNames,i=l(e._propertyNames)?e._propertyNames:Object.keys(e);for(let o=0,r=i.length;o<r;o++){let s=i[o],a=this[s],c=e[s];a===void 0&&n.indexOf(s)===-1&&this.addProperty(s,void 0,t),c!==void 0&&(a!==void 0?l(a)&&l(a.merge)&&a.merge(c):l(c)&&l(c.merge)&&l(c.clone)?this[s]=c.clone():this[s]=c)}};function TOe(e,t){let n=e._propertyNames,i=t._propertyNames,o=n.length;if(o!==i.length)return!1;for(let r=0;r<o;++r){let s=n[r];if(i.indexOf(s)===-1||!q.equals(e[s],t[s]))return!1}return!0}Ip.prototype.equals=function(e){return this===e||e instanceof Ip&&TOe(this,e)};var wl=Ip;function Hne(e){return new Ix(e)}function AOe(e){return new wl(e,Hne)}function COe(e){return new wl(e)}function WI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._uri=void 0,this._uriSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._minimumPixelSize=void 0,this._minimumPixelSizeSubscription=void 0,this._maximumScale=void 0,this._maximumScaleSubscription=void 0,this._incrementallyLoadTextures=void 0,this._incrementallyLoadTexturesSubscription=void 0,this._runAnimations=void 0,this._runAnimationsSubscription=void 0,this._clampAnimations=void 0,this._clampAnimationsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._silhouetteColor=void 0,this._silhouetteColorSubscription=void 0,this._silhouetteSize=void 0,this._silhouetteSizeSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._colorBlendMode=void 0,this._colorBlendModeSubscription=void 0,this._colorBlendAmount=void 0,this._colorBlendAmountSubscription=void 0,this._imageBasedLightingFactor=void 0,this._imageBasedLightingFactorSubscription=void 0,this._lightColor=void 0,this._lightColorSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._nodeTransformations=void 0,this._nodeTransformationsSubscription=void 0,this._articulations=void 0,this._articulationsSubscription=void 0,this._clippingPlanes=void 0,this._clippingPlanesSubscription=void 0,this._customShader=void 0,this._customShaderSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(WI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),uri:ce("uri"),scale:ce("scale"),minimumPixelSize:ce("minimumPixelSize"),maximumScale:ce("maximumScale"),incrementallyLoadTextures:ce("incrementallyLoadTextures"),runAnimations:ce("runAnimations"),clampAnimations:ce("clampAnimations"),shadows:ce("shadows"),heightReference:ce("heightReference"),silhouetteColor:ce("silhouetteColor"),silhouetteSize:ce("silhouetteSize"),color:ce("color"),colorBlendMode:ce("colorBlendMode"),colorBlendAmount:ce("colorBlendAmount"),imageBasedLightingFactor:ce("imageBasedLightingFactor"),lightColor:ce("lightColor"),distanceDisplayCondition:ce("distanceDisplayCondition"),nodeTransformations:ce("nodeTransformations",void 0,AOe),articulations:ce("articulations",void 0,COe),clippingPlanes:ce("clippingPlanes"),customShader:ce("customShader")});WI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.uri=this.uri,e.scale=this.scale,e.minimumPixelSize=this.minimumPixelSize,e.maximumScale=this.maximumScale,e.incrementallyLoadTextures=this.incrementallyLoadTextures,e.runAnimations=this.runAnimations,e.clampAnimations=this.clampAnimations,e.heightReference=this._heightReference,e.silhouetteColor=this.silhouetteColor,e.silhouetteSize=this.silhouetteSize,e.color=this.color,e.colorBlendMode=this.colorBlendMode,e.colorBlendAmount=this.colorBlendAmount,e.imageBasedLightingFactor=this.imageBasedLightingFactor,e.lightColor=this.lightColor,e.distanceDisplayCondition=this.distanceDisplayCondition,e.nodeTransformations=this.nodeTransformations,e.articulations=this.articulations,e.clippingPlanes=this.clippingPlanes,e.customShader=this.customShader,e):new WI(this)};WI.prototype.merge=function(e){this.show=y(this.show,e.show),this.uri=y(this.uri,e.uri),this.scale=y(this.scale,e.scale),this.minimumPixelSize=y(this.minimumPixelSize,e.minimumPixelSize),this.maximumScale=y(this.maximumScale,e.maximumScale),this.incrementallyLoadTextures=y(this.incrementallyLoadTextures,e.incrementallyLoadTextures),this.runAnimations=y(this.runAnimations,e.runAnimations),this.clampAnimations=y(this.clampAnimations,e.clampAnimations),this.shadows=y(this.shadows,e.shadows),this.heightReference=y(this.heightReference,e.heightReference),this.silhouetteColor=y(this.silhouetteColor,e.silhouetteColor),this.silhouetteSize=y(this.silhouetteSize,e.silhouetteSize),this.color=y(this.color,e.color),this.colorBlendMode=y(this.colorBlendMode,e.colorBlendMode),this.colorBlendAmount=y(this.colorBlendAmount,e.colorBlendAmount),this.imageBasedLightingFactor=y(this.imageBasedLightingFactor,e.imageBasedLightingFactor),this.lightColor=y(this.lightColor,e.lightColor),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.clippingPlanes=y(this.clippingPlanes,e.clippingPlanes),this.customShader=y(this.customShader,e.customShader);let t=e.nodeTransformations;if(l(t)){let i=this.nodeTransformations;l(i)?i.merge(t):this.nodeTransformations=new wl(t,Hne)}let n=e.articulations;if(l(n)){let i=this.articulations;l(i)?i.merge(n):this.articulations=new wl(n)}};var Rp=WI;function jI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._uri=void 0,this._uriSubscription=void 0,this._maximumScreenSpaceError=void 0,this._maximumScreenSpaceErrorSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(jI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),uri:ce("uri"),maximumScreenSpaceError:ce("maximumScreenSpaceError")});jI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.uri=this.uri,e.maximumScreenSpaceError=this.maximumScreenSpaceError,e):new jI(this)};jI.prototype.merge=function(e){this.show=y(this.show,e.show),this.uri=y(this.uri,e.uri),this.maximumScreenSpaceError=y(this.maximumScreenSpaceError,e.maximumScreenSpaceError)};var Rx=jI;function qI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._leadTime=void 0,this._leadTimeSubscription=void 0,this._trailTime=void 0,this._trailTimeSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._resolution=void 0,this._resolutionSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(qI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),leadTime:ce("leadTime"),trailTime:ce("trailTime"),width:ce("width"),resolution:ce("resolution"),material:Po("material"),distanceDisplayCondition:ce("distanceDisplayCondition")});qI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.leadTime=this.leadTime,e.trailTime=this.trailTime,e.width=this.width,e.resolution=this.resolution,e.material=this.material,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new qI(this)};qI.prototype.merge=function(e){this.show=y(this.show,e.show),this.leadTime=y(this.leadTime,e.leadTime),this.trailTime=y(this.trailTime,e.trailTime),this.width=y(this.width,e.width),this.resolution=y(this.resolution,e.resolution),this.material=y(this.material,e.material),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var Op=qI;function YI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._plane=void 0,this._planeSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(YI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),plane:ce("plane"),dimensions:ce("dimensions"),fill:ce("fill"),material:Po("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});YI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.plane=this.plane,e.dimensions=this.dimensions,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new YI(this)};YI.prototype.merge=function(e){this.show=y(this.show,e.show),this.plane=y(this.plane,e.plane),this.dimensions=y(this.dimensions,e.dimensions),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var XI=YI;function KI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._pixelSize=void 0,this._pixelSizeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(KI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),pixelSize:ce("pixelSize"),heightReference:ce("heightReference"),color:ce("color"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),scaleByDistance:ce("scaleByDistance"),translucencyByDistance:ce("translucencyByDistance"),distanceDisplayCondition:ce("distanceDisplayCondition"),disableDepthTestDistance:ce("disableDepthTestDistance")});KI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.pixelSize=this.pixelSize,e.heightReference=this.heightReference,e.color=this.color,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.scaleByDistance=this.scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new KI(this)};KI.prototype.merge=function(e){this.show=y(this.show,e.show),this.pixelSize=y(this.pixelSize,e.pixelSize),this.heightReference=y(this.heightReference,e.heightReference),this.color=y(this.color,e.color),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.translucencyByDistance=y(this._translucencyByDistance,e.translucencyByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance)};var Ox=KI;function EOe(e,t){this.positions=l(e)?e:[],this.holes=l(t)?t:[]}var Sa=EOe;function SOe(e){return Array.isArray(e)&&(e=new Sa(e)),new Zn(e)}function ZI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._hierarchy=void 0,this._hierarchySubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._perPositionHeight=void 0,this._perPositionHeightSubscription=void 0,this._closeTop=void 0,this._closeTopSubscription=void 0,this._closeBottom=void 0,this._closeBottomSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this._textureCoordinates=void 0,this._textureCoordinatesSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(ZI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),hierarchy:ce("hierarchy",void 0,SOe),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),stRotation:ce("stRotation"),granularity:ce("granularity"),fill:ce("fill"),material:Po("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),perPositionHeight:ce("perPositionHeight"),closeTop:ce("closeTop"),closeBottom:ce("closeBottom"),arcType:ce("arcType"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex"),textureCoordinates:ce("textureCoordinates")});ZI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.hierarchy=this.hierarchy,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.perPositionHeight=this.perPositionHeight,e.closeTop=this.closeTop,e.closeBottom=this.closeBottom,e.arcType=this.arcType,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e.textureCoordinates=this.textureCoordinates,e):new ZI(this)};ZI.prototype.merge=function(e){this.show=y(this.show,e.show),this.hierarchy=y(this.hierarchy,e.hierarchy),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.perPositionHeight=y(this.perPositionHeight,e.perPositionHeight),this.closeTop=y(this.closeTop,e.closeTop),this.closeBottom=y(this.closeBottom,e.closeBottom),this.arcType=y(this.arcType,e.arcType),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex),this.textureCoordinates=y(this.textureCoordinates,e.textureCoordinates)};var Id=ZI;function $I(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._depthFailMaterial=void 0,this._depthFailMaterialSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._clampToGround=void 0,this._clampToGroundSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties($I.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),positions:ce("positions"),width:ce("width"),granularity:ce("granularity"),material:Po("material"),depthFailMaterial:Po("depthFailMaterial"),arcType:ce("arcType"),clampToGround:ce("clampToGround"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});$I.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.granularity=this.granularity,e.material=this.material,e.depthFailMaterial=this.depthFailMaterial,e.arcType=this.arcType,e.clampToGround=this.clampToGround,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new $I(this)};$I.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.granularity=y(this.granularity,e.granularity),this.material=y(this.material,e.material),this.depthFailMaterial=y(this.depthFailMaterial,e.depthFailMaterial),this.arcType=y(this.arcType,e.arcType),this.clampToGround=y(this.clampToGround,e.clampToGround),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var ic=$I;function QI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._shape=void 0,this._shapeSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubsription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(QI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),positions:ce("positions"),shape:ce("shape"),cornerType:ce("cornerType"),granularity:ce("granularity"),fill:ce("fill"),material:Po("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});QI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.shape=this.shape,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new QI(this)};QI.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.shape=y(this.shape,e.shape),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var Mx=QI;function JI(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._coordinates=void 0,this._coordinatesSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distancedisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(JI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),coordinates:ce("coordinates"),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),rotation:ce("rotation"),stRotation:ce("stRotation"),granularity:ce("granularity"),fill:ce("fill"),material:Po("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});JI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.coordinates=this.coordinates,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new JI(this)};JI.prototype.merge=function(e){this.show=y(this.show,e.show),this.coordinates=y(this.coordinates,e.coordinates),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var Rd=JI;function e1(e){this._definitionChanged=new pe,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._minimumHeights=void 0,this._minimumHeightsSubscription=void 0,this._maximumHeights=void 0,this._maximumHeightsSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(e1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),positions:ce("positions"),minimumHeights:ce("minimumHeights"),maximumHeights:ce("maximumHeights"),granularity:ce("granularity"),fill:ce("fill"),material:Po("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});e1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.minimumHeights=this.minimumHeights,e.maximumHeights=this.maximumHeights,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new e1(this)};e1.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.minimumHeights=y(this.minimumHeights,e.minimumHeights),this.maximumHeights=y(this.maximumHeights,e.maximumHeights),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var Mp=e1;var vOe=new fe,G6=[];function wOe(e){return new zc(e)}function DOe(e){return ce(e,void 0,wOe)}function Ms(e,t){return ce(e,void 0,function(n){return n instanceof t?n:new t(n)})}function gf(e){e=y(e,y.EMPTY_OBJECT);let t=e.id;l(t)||(t=Hn()),this._availability=void 0,this._id=t,this._definitionChanged=new pe,this._name=e.name,this._show=y(e.show,!0),this._parent=void 0,this._propertyNames=["billboard","box","corridor","cylinder","description","ellipse","ellipsoid","label","model","tileset","orientation","path","plane","point","polygon","polyline","polylineVolume","position","properties","rectangle","viewFrom","wall",...G6],this._billboard=void 0,this._billboardSubscription=void 0,this._box=void 0,this._boxSubscription=void 0,this._corridor=void 0,this._corridorSubscription=void 0,this._cylinder=void 0,this._cylinderSubscription=void 0,this._description=void 0,this._descriptionSubscription=void 0,this._ellipse=void 0,this._ellipseSubscription=void 0,this._ellipsoid=void 0,this._ellipsoidSubscription=void 0,this._label=void 0,this._labelSubscription=void 0,this._model=void 0,this._modelSubscription=void 0,this._tileset=void 0,this._tilesetSubscription=void 0,this._orientation=void 0,this._orientationSubscription=void 0,this._path=void 0,this._pathSubscription=void 0,this._plane=void 0,this._planeSubscription=void 0,this._point=void 0,this._pointSubscription=void 0,this._polygon=void 0,this._polygonSubscription=void 0,this._polyline=void 0,this._polylineSubscription=void 0,this._polylineVolume=void 0,this._polylineVolumeSubscription=void 0,this._position=void 0,this._positionSubscription=void 0,this._properties=void 0,this._propertiesSubscription=void 0,this._rectangle=void 0,this._rectangleSubscription=void 0,this._viewFrom=void 0,this._viewFromSubscription=void 0,this._wall=void 0,this._wallSubscription=void 0,this._children=[],this.entityCollection=void 0,this.parent=e.parent,this.merge(e)}function W6(e,t,n){let i=t.length;for(let o=0;o<i;o++){let r=t[o],s=r._show;(!n&&s)!==(n&&s)&&W6(r,r._children,n)}e._definitionChanged.raiseEvent(e,"isShowing",n,!n)}Object.defineProperties(gf.prototype,{availability:vl("availability"),id:{get:function(){return this._id}},definitionChanged:{get:function(){return this._definitionChanged}},name:vl("name"),show:{get:function(){return this._show},set:function(e){if(e===this._show)return;let t=this.isShowing;this._show=e;let n=this.isShowing;t!==n&&W6(this,this._children,n),this._definitionChanged.raiseEvent(this,"show",e,!e)}},isShowing:{get:function(){return this._show&&(!l(this.entityCollection)||this.entityCollection.show)&&(!l(this._parent)||this._parent.isShowing)}},parent:{get:function(){return this._parent},set:function(e){let t=this._parent;if(t===e)return;let n=this.isShowing;if(l(t)){let o=t._children.indexOf(this);t._children.splice(o,1)}this._parent=e,l(e)&&e._children.push(this);let i=this.isShowing;n!==i&&W6(this,this._children,i),this._definitionChanged.raiseEvent(this,"parent",e,t)}},propertyNames:{get:function(){return this._propertyNames}},billboard:Ms("billboard",qa),box:Ms("box",Ex),corridor:Ms("corridor",vx),cylinder:Ms("cylinder",wx),description:ce("description"),ellipse:Ms("ellipse",Dx),ellipsoid:Ms("ellipsoid",Px),label:Ms("label",Pd),model:Ms("model",Rp),tileset:Ms("tileset",Rx),orientation:ce("orientation"),path:Ms("path",Op),plane:Ms("plane",XI),point:Ms("point",Ox),polygon:Ms("polygon",Id),polyline:Ms("polyline",ic),polylineVolume:Ms("polylineVolume",Mx),properties:Ms("properties",wl),position:DOe("position"),rectangle:Ms("rectangle",Rd),viewFrom:ce("viewFrom"),wall:Ms("wall",Mp)});gf.registerEntityType=function(e,t){Object.defineProperties(gf.prototype,{[e]:Ms(e,t)}),G6.includes(e)||G6.push(e)};gf.prototype.isAvailable=function(e){let t=this._availability;return!l(t)||t.contains(e)};gf.prototype.addProperty=function(e){this._propertyNames.push(e),Object.defineProperty(this,e,vl(e,!0))};gf.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e]};gf.prototype.merge=function(e){this.name=y(this.name,e.name),this.availability=y(this.availability,e.availability);let t=this._propertyNames,n=l(e._propertyNames)?e._propertyNames:Object.keys(e),i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r==="parent"||r==="name"||r==="availability"||r==="children")continue;let s=this[r],a=e[r];!l(s)&&t.indexOf(r)===-1&&this.addProperty(r),l(a)&&(l(s)?l(s.merge)&&s.merge(a):l(a.merge)&&l(a.clone)?this[r]=a.clone():this[r]=a)}};var Gne=new $,Wne=new h,jne=new Me;gf.prototype.computeModelMatrix=function(e,t){let n=q.getValueOrUndefined(this._position,e,Wne);if(!l(n))return;let i=q.getValueOrUndefined(this._orientation,e,jne);return l(i)?t=F.fromRotationTranslation($.fromQuaternion(i,Gne),n,t):t=wt.eastNorthUpToFixedFrame(n,void 0,t),t};gf.prototype.computeModelMatrixForHeightReference=function(e,t,n,i,o){let r=q.getValueOrDefault(t,e,qe.NONE),s=q.getValueOrUndefined(this._position,e,Wne);if(r===qe.NONE||!l(s)||h.equalsEpsilon(s,h.ZERO,R.EPSILON8))return this.computeModelMatrix(e,o);let a=i.cartesianToCartographic(s,vOe);ff(r)?a.height=n:a.height+=n,s=i.cartographicToCartesian(a,s);let c=q.getValueOrUndefined(this._orientation,e,jne);return l(c)?o=F.fromRotationTranslation($.fromQuaternion(c,Gne),s,o):o=wt.eastNorthUpToFixedFrame(s,void 0,o),o};gf.supportsMaterialsforEntitiesOnTerrain=function(e){return Vc.supportsMaterials(e)};gf.supportsPolylinesOnTerrain=function(e){return Dd.isSupported(e)};var Zo=gf;var POe=new kt(H.WHITE),IOe=new Zn(!0),ROe=new Zn(!0),OOe=new Zn(!1),MOe=new Zn(H.BLACK),LOe=new Zn(yn.DISABLED),NOe=new Zn(new It),FOe=new Zn(Vn.BOTH);function Hc(e){let t=e.entity,n=e.geometryPropertyName;this._entity=t,this._scene=e.scene,this._fillEnabled=!1,this._isClosed=!1,this._onTerrain=!1,this._dynamic=!1,this._outlineEnabled=!1,this._geometryChanged=new pe,this._showProperty=void 0,this._materialProperty=void 0,this._showOutlineProperty=void 0,this._outlineColorProperty=void 0,this._outlineWidth=1,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._options=e.geometryOptions,this._geometryPropertyName=n,this._id=`${n}-${t.id}`,this._observedPropertyNames=e.observedPropertyNames,this._supportsMaterialsforEntitiesOnTerrain=Zo.supportsMaterialsforEntitiesOnTerrain(e.scene)}Object.defineProperties(Hc.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!l(this._entity.availability)&&q.isConstant(this._showProperty)&&q.isConstant(this._fillProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},outlineEnabled:{get:function(){return this._outlineEnabled}},hasConstantOutline:{get:function(){return!this._outlineEnabled||!l(this._entity.availability)&&q.isConstant(this._showProperty)&&q.isConstant(this._showOutlineProperty)}},outlineColorProperty:{get:function(){return this._outlineColorProperty}},outlineWidth:{get:function(){return this._outlineWidth}},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{get:function(){return this._isClosed}},onTerrain:{get:function(){return this._onTerrain}},geometryChanged:{get:function(){return this._geometryChanged}}});Hc.prototype.isOutlineVisible=function(e){let t=this._entity,n=this._outlineEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e);return y(n,!1)};Hc.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e);return y(n,!1)};Hc.prototype.createFillGeometryInstance=de.throwInstantiationError;Hc.prototype.createOutlineGeometryInstance=de.throwInstantiationError;Hc.prototype.isDestroyed=function(){return!1};Hc.prototype.destroy=function(){ue(this)};Hc.prototype._isHidden=function(e,t){let n=t.show;return l(n)&&n.isConstant&&!n.getValue(Ue.MINIMUM_VALUE)};Hc.prototype._isOnTerrain=function(e,t){return!1};Hc.prototype._getIsClosed=function(e){return!0};Hc.prototype._isDynamic=de.throwInstantiationError;Hc.prototype._setStaticOptions=de.throwInstantiationError;Hc.prototype._onEntityPropertyChanged=function(e,t,n,i){if(this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.fill,s=l(r)&&r.isConstant?r.getValue(Ue.MINIMUM_VALUE):!0,a=o.outline,c=l(a);if(c&&a.isConstant&&(c=a.getValue(Ue.MINIMUM_VALUE)),!s&&!c){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let u=o.show;if(this._isHidden(e,o)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}this._materialProperty=y(o.material,POe),this._fillProperty=y(r,ROe),this._showProperty=y(u,IOe),this._showOutlineProperty=y(o.outline,OOe),this._outlineColorProperty=c?y(o.outlineColor,MOe):void 0,this._shadowsProperty=y(o.shadows,LOe),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,NOe),this._classificationTypeProperty=y(o.classificationType,FOe),this._fillEnabled=s;let f=this._isOnTerrain(e,o)&&(this._supportsMaterialsforEntitiesOnTerrain||this._materialProperty instanceof kt);if(c&&f&&(Lt(Lt.geometryOutlines),c=!1),this._onTerrain=f,this._outlineEnabled=c,this._isDynamic(e,o))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{this._setStaticOptions(e,o),this._isClosed=this._getIsClosed(this._options);let d=o.outlineWidth;this._outlineWidth=l(d)?d.getValue(Ue.MINIMUM_VALUE):1,this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};Hc.prototype.createDynamicUpdater=function(e,t){return new this.constructor.DynamicGeometryUpdater(this,e,t)};var ni=Hc;function rC(e,t){this._callback=void 0,this._isConstant=void 0,this._definitionChanged=new pe,this.setCallback(e,t)}Object.defineProperties(rC.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}}});rC.prototype.getValue=function(e,t){return this._callback(e,t)};rC.prototype.setCallback=function(e,t){let n=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,n&&this._definitionChanged.raiseEvent(this)};rC.prototype.equals=function(e){return this===e||e instanceof rC&&this._callback===e._callback&&this._isConstant===e._isConstant};var Od=rC;var qne=new h;function sC(e,t,n,i){this._scene=e,this._heightReference=n,this._extrudedHeightReference=i,this._positionProperty=t,this._position=new h,this._cartographicPosition=new fe,this._normal=new h,this._definitionChanged=new pe,this._terrainHeight=0,this._removeCallbackFunc=void 0,this._removeEventListener=void 0,this._removeModeListener=void 0;let o=this;if(l(e.globe)&&(this._removeEventListener=e.terrainProviderChanged.addEventListener(function(){o._updateClamping()}),this._removeModeListener=e.morphComplete.addEventListener(function(){o._updateClamping()})),t.isConstant){let r=t.getValue(Ue.MINIMUM_VALUE,qne);if(!l(r)||h.equals(r,h.ZERO)||!l(e.globe))return;this._position=h.clone(r,this._position),this._updateClamping(),this._normal=e.globe.ellipsoid.geodeticSurfaceNormal(r,this._normal)}}Object.defineProperties(sC.prototype,{isConstant:{get:function(){return!1}},definitionChanged:{get:function(){return this._definitionChanged}}});sC.prototype._updateClamping=function(){l(this._removeCallbackFunc)&&this._removeCallbackFunc();let e=this._scene,t=e.globe,n=this._position;if(h.equals(n,h.ZERO)){this._terrainHeight=0;return}let o=t.ellipsoid.cartesianToCartographic(n,this._cartographicPosition),r=e.getHeight(o,this._heightReference);l(r)?this._terrainHeight=r:this._terrainHeight=0;let s=a=>{this._terrainHeight=a.height,this.definitionChanged.raiseEvent()};this._removeCallbackFunc=e.updateHeight(o,s,this._heightReference)};sC.prototype.getValue=function(e,t){let n=q.getValueOrDefault(this._heightReference,e,qe.NONE),i=q.getValueOrDefault(this._extrudedHeightReference,e,qe.NONE);if(n===qe.NONE&&!HA(i))return this._position=h.clone(h.ZERO,this._position),h.clone(h.ZERO,t);if(this._positionProperty.isConstant)return h.multiplyByScalar(this._normal,this._terrainHeight,t);let o=this._scene,r=this._positionProperty.getValue(e,qne);if(!l(r)||h.equals(r,h.ZERO)||!l(o.globe))return h.clone(h.ZERO,t);if(h.equalsEpsilon(this._position,r,R.EPSILON10))return h.multiplyByScalar(this._normal,this._terrainHeight,t);this._position=h.clone(r,this._position),this._updateClamping();let s=o.globe.ellipsoid.geodeticSurfaceNormal(r,this._normal);return h.multiplyByScalar(s,this._terrainHeight,t)};sC.prototype.isDestroyed=function(){return!1};sC.prototype.destroy=function(){return l(this._removeEventListener)&&this._removeEventListener(),l(this._removeModeListener)&&this._removeModeListener(),l(this._removeCallbackFunc)&&this._removeCallbackFunc(),ue(this)};var Lx=sC;function BOe(e,t,n,i){if(ni.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o))return;l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference;if(l(r)){let s=new Od(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new Lx(this._scene,s,r)}}var Lp=BOe;var Yne=h.ZERO,Xne=new h,kOe=new h,Kne=new H;function VOe(e){this.id=e,this.vertexFormat=void 0,this.dimensions=void 0,this.offsetAttribute=void 0}function mu(e,t){ni.call(this,{entity:e,scene:t,geometryOptions:new VOe(e),geometryPropertyName:"box",observedPropertyNames:["availability","position","orientation","box"]}),this._onEntityPropertyChanged(e,"box",e.box,void 0)}l(Object.create)&&(mu.prototype=Object.create(ni.prototype),mu.prototype.constructor=mu);Object.defineProperties(mu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});mu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=kn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof kt){let a;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,Kne)),l(a)||(a=H.WHITE),s.color=zt.fromColor(a)}return l(this._options.offsetAttribute)&&(s.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Yne,Xne))),new xt({id:t,geometry:Al.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.mapProjection.ellipsoid),attributes:s})};mu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Kne),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:zt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Yne,Xne))),new xt({id:t,geometry:Cd.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.mapProjection.ellipsoid),attributes:r})};mu.prototype._computeCenter=function(e,t){return q.getValueOrUndefined(this._entity.position,e,t)};mu.prototype._isHidden=function(e,t){return!l(t.dimensions)||!l(e.position)||ni.prototype._isHidden.call(this,e,t)};mu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!q.isConstant(e.orientation)||!t.dimensions.isConstant||!q.isConstant(t.outlineWidth)};mu.prototype._setStaticOptions=function(e,t){let n=q.getValueOrDefault(t.heightReference,Ue.MINIMUM_VALUE,qe.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof kt?cn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,i.dimensions=t.dimensions.getValue(Ue.MINIMUM_VALUE,i.dimensions),i.offsetAttribute=n!==qe.NONE?an.ALL:void 0};mu.prototype._onEntityPropertyChanged=Lp;mu.DynamicGeometryUpdater=aC;function aC(e,t,n){ti.call(this,e,t,n)}l(Object.create)&&(aC.prototype=Object.create(ti.prototype),aC.prototype.constructor=aC);aC.prototype._isHidden=function(e,t,n){let i=q.getValueOrUndefined(e.position,n,kOe),o=this._options.dimensions;return!l(i)||!l(o)||ti.prototype._isHidden.call(this,e,t,n)};aC.prototype._setOptions=function(e,t,n){let i=q.getValueOrDefault(t.heightReference,n,qe.NONE),o=this._options;o.dimensions=q.getValueOrUndefined(t.dimensions,n,o.dimensions),o.offsetAttribute=i!==qe.NONE?an.ALL:void 0};var t1=mu;var fie=wo(uie(),1);var sMe=0,Q6={};function rm(e,t){let n,i=e;l(Q6[i])?n=Q6[i]:(n=sMe++,Q6[i]=n),t=y(t,!1),this._id=n,this._html=e,this._showOnScreen=t,this._element=void 0}Object.defineProperties(rm.prototype,{html:{get:function(){return this._html}},id:{get:function(){return this._id}},showOnScreen:{get:function(){return this._showOnScreen},set:function(e){this._showOnScreen=e}},element:{get:function(){if(!l(this._element)){let e=fie.default.sanitize(this._html),t=document.createElement("div");t._creditId=this._id,t.style.display="inline",t.innerHTML=e;let n=t.querySelectorAll("a");for(let i=0;i<n.length;i++)n[i].setAttribute("target","_blank");this._element=t}return this._element}}});rm.equals=function(e,t){return e===t||l(e)&&l(t)&&e._id===t._id&&e._showOnScreen===t._showOnScreen};rm.prototype.equals=function(e){return rm.equals(this,e)};rm.prototype.isIon=function(){return this.html.indexOf("ion-credit.png")!==-1};rm.getIonCredit=function(e){let t=l(e.collapsible)&&!e.collapsible;return new rm(e.html,t)};rm.clone=function(e){if(l(e))return new rm(e.html,e.showOnScreen)};var Tt=rm;function aMe(e,t){Lt(e,t)}var Ls=aMe;function die(e){e=y(e,y.EMPTY_OBJECT),this.vertexArray=e.vertexArray,this.fragmentShaderSource=e.fragmentShaderSource,this.shaderProgram=e.shaderProgram,this.uniformMap=e.uniformMap,this.outputTexture=e.outputTexture,this.preExecute=e.preExecute,this.postExecute=e.postExecute,this.canceled=e.canceled,this.persists=y(e.persists,!1),this.pass=Ee.COMPUTE,this.owner=e.owner}die.prototype.execute=function(e){e.execute(this)};var Dl=die;var s1=`in vec2 v_textureCoordinates; uniform float originalSize; uniform sampler2D texture0; uniform sampler2D texture1; uniform sampler2D texture2; uniform sampler2D texture3; uniform sampler2D texture4; uniform sampler2D texture5; const float yMipLevel1 = 1.0 - (1.0 / pow(2.0, 1.0)); const float yMipLevel2 = 1.0 - (1.0 / pow(2.0, 2.0)); const float yMipLevel3 = 1.0 - (1.0 / pow(2.0, 3.0)); const float yMipLevel4 = 1.0 - (1.0 / pow(2.0, 4.0)); void main() { vec2 uv = v_textureCoordinates; vec2 textureSize = vec2(originalSize * 1.5 + 2.0, originalSize); vec2 pixel = 1.0 / textureSize; float mipLevel = 0.0; if (uv.x - pixel.x > (textureSize.y / textureSize.x)) { mipLevel = 1.0; if (uv.y - pixel.y > yMipLevel1) { mipLevel = 2.0; if (uv.y - pixel.y * 3.0 > yMipLevel2) { mipLevel = 3.0; if (uv.y - pixel.y * 5.0 > yMipLevel3) { mipLevel = 4.0; if (uv.y - pixel.y * 7.0 > yMipLevel4) { mipLevel = 5.0; } } } } } if (mipLevel > 0.0) { float scale = pow(2.0, mipLevel); uv.y -= (pixel.y * (mipLevel - 1.0) * 2.0); uv.x *= ((textureSize.x - 2.0) / textureSize.y); uv.x -= 1.0 + pixel.x; uv.y -= (1.0 - (1.0 / pow(2.0, mipLevel - 1.0))); uv *= scale; } else { uv.x *= (textureSize.x / textureSize.y); } if(mipLevel == 0.0) { out_FragColor = texture(texture0, uv); } else if(mipLevel == 1.0) { out_FragColor = texture(texture1, uv); } else if(mipLevel == 2.0) { out_FragColor = texture(texture2, uv); } else if(mipLevel == 3.0) { out_FragColor = texture(texture3, uv); } else if(mipLevel == 4.0) { out_FragColor = texture(texture4, uv); } else if(mipLevel == 5.0) { out_FragColor = texture(texture5, uv); } else { out_FragColor = vec4(0.0); } } `;var a1=`in vec3 v_cubeMapCoordinates; uniform samplerCube cubeMap; void main() { vec4 rgba = czm_textureCube(cubeMap, v_cubeMapCoordinates); #ifdef RGBA_NORMALIZED out_FragColor = vec4(rgba.rgb, 1.0); #else float m = rgba.a * 16.0; vec3 r = rgba.rgb * m; out_FragColor = vec4(r * r, 1.0); #endif } `;var c1=`in vec4 position; in vec3 cubeMapCoordinates; out vec3 v_cubeMapCoordinates; void main() { gl_Position = position; v_cubeMapCoordinates = cubeMapCoordinates; } `;function Fx(e){this._url=e,this._cubeMapBuffers=void 0,this._cubeMaps=void 0,this._texture=void 0,this._mipTextures=void 0,this._va=void 0,this._sp=void 0,this._maximumMipmapLevel=void 0,this._loading=!1,this._ready=!1,this._errorEvent=new pe}Object.defineProperties(Fx.prototype,{url:{get:function(){return this._url}},errorEvent:{get:function(){return this._errorEvent}},texture:{get:function(){return this._texture}},maximumMipmapLevel:{get:function(){return this._maximumMipmapLevel}},ready:{get:function(){return this._ready}}});Fx.isSupported=function(e){return e.colorBufferHalfFloat&&e.halfFloatingPointTexture||e.floatingPointTexture&&e.colorBufferFloat};var cMe=new h(1,0,0),lMe=new h(0,0,1),uMe=new h(-1,0,0),fMe=new h(0,0,-1),HV=new h(0,1,0),dMe=new h(0,-1,0),pie=[HV,uMe,lMe,dMe,cMe,HV,fMe,HV,HV],_ie=pie.length,gie=new Float32Array(_ie*3),hie=0;for(let e=0;e<_ie;++e,hie+=3)h.pack(pie[e],gie,hie);var hMe=new Float32Array([-1,1,-1,0,0,1,0,0,1,0,1,1,0,-1,-1,-1,1,-1]),mMe=new Uint16Array([0,1,2,2,3,1,7,6,1,3,6,1,2,5,4,3,4,2,4,8,6,3,4,6]);function pMe(e){let t=ct.createVertexBuffer({context:e,typedArray:hMe,usage:Fe.STATIC_DRAW}),n=ct.createVertexBuffer({context:e,typedArray:gie,usage:Fe.STATIC_DRAW}),i=ct.createIndexBuffer({context:e,typedArray:mMe,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),o=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:X.FLOAT},{index:1,vertexBuffer:n,componentsPerAttribute:3,componentDatatype:X.FLOAT}];return new ei({context:e,attributes:o,indexBuffer:i})}function mie(e){return function(){return e}}function J6(e){e._va=e._va&&e._va.destroy(),e._sp=e._sp&&e._sp.destroy();let t,n,i=e._cubeMaps;if(l(i))for(n=i.length,t=0;t<n;++t)i[t].destroy();let o=e._mipTextures;if(l(o))for(n=o.length,t=0;t<n;++t)o[t].destroy();e._va=void 0,e._sp=void 0,e._cubeMaps=void 0,e._cubeMapBuffers=void 0,e._mipTextures=void 0}Fx.prototype.update=function(e){let t=e.context;if(!Fx.isSupported(t)||(l(this._texture)&&l(this._va)&&J6(this),l(this._texture)))return;if(!l(this._texture)&&!this._loading){let g=e.context.textureCache.getTexture(this._url);l(g)&&(J6(this),this._texture=g,this._maximumMipmapLevel=this._texture.maximumMipmapLevel,this._ready=!0)}let n=this._cubeMapBuffers;if(!l(n)&&!this._loading){let g=this;Cl(this._url).then(function(m){g._cubeMapBuffers=m,g._loading=!1}).catch(function(m){g.isDestroyed()||g._errorEvent.raiseEvent(m)}),this._loading=!0}if(!l(this._cubeMapBuffers))return;let i=[],o=n[0].positiveX.pixelDatatype;l(o)?i.push("RGBA_NORMALIZED"):o=t.halfFloatingPointTexture?We.HALF_FLOAT:We.FLOAT;let r=nt.RGBA,s=new ze({defines:i,sources:[a1]});this._va=pMe(t),this._sp=$t.fromCache({context:t,vertexShaderSource:c1,fragmentShaderSource:s,attributeLocations:{position:0,cubeMapCoordinates:1}});let a=Math.min(n.length,6);this._maximumMipmapLevel=a-1;let c=this._cubeMaps=new Array(a),u=this._mipTextures=new Array(a),f=n[0].positiveX.width*2,d={originalSize:function(){return f}};for(let g=0;g<a;++g){let m=n[g].positiveY;n[g].positiveY=n[g].negativeY,n[g].negativeY=m;let x=c[g]=new Ja({context:t,source:n[g],pixelDatatype:o}),b=c[g].width*2,T=u[g]=new Dt({context:t,width:b,height:b,pixelDatatype:o,pixelFormat:r}),C=new Dl({vertexArray:this._va,shaderProgram:this._sp,uniformMap:{cubeMap:mie(x)},outputTexture:T,persists:!0,owner:this});e.commandList.push(C),d[`texture${g}`]=mie(T)}this._texture=new Dt({context:t,width:f*1.5+2,height:f,pixelDatatype:o,pixelFormat:r}),this._texture.maximumMipmapLevel=this._maximumMipmapLevel,t.textureCache.addTexture(this._url,this._texture);let p=new Dl({fragmentShaderSource:s1,uniformMap:d,outputTexture:this._texture,persists:!1,owner:this});e.commandList.push(p),this._ready=!0};Fx.prototype.isDestroyed=function(){return!1};Fx.prototype.destroy=function(){return J6(this),this._texture=this._texture&&this._texture.destroy(),ue(this)};var Ld=Fx;function l1(e){e=y(e,y.EMPTY_OBJECT);let t=l(e.imageBasedLightingFactor)?z.clone(e.imageBasedLightingFactor):new z(1,1);this._imageBasedLightingFactor=t;let n=y(e.luminanceAtZenith,.2);this._luminanceAtZenith=n;let i=e.sphericalHarmonicCoefficients;this._sphericalHarmonicCoefficients=i,this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapAtlas=void 0,this._specularEnvironmentMapAtlasDirty=!0,this._specularEnvironmentMapLoaded=!1,this._previousSpecularEnvironmentMapLoaded=!1,this._useDefaultSpecularMaps=!1,this._useDefaultSphericalHarmonics=!1,this._shouldRegenerateShaders=!1,this._previousFrameNumber=void 0,this._previousImageBasedLightingFactor=z.clone(t),this._previousLuminanceAtZenith=n,this._previousSphericalHarmonicCoefficients=i,this._removeErrorListener=void 0}Object.defineProperties(l1.prototype,{imageBasedLightingFactor:{get:function(){return this._imageBasedLightingFactor},set:function(e){this._previousImageBasedLightingFactor=z.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor),this._imageBasedLightingFactor=z.clone(e,this._imageBasedLightingFactor)}},luminanceAtZenith:{get:function(){return this._luminanceAtZenith},set:function(e){this._previousLuminanceAtZenith=this._luminanceAtZenith,this._luminanceAtZenith=e}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients},set:function(e){this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients,this._sphericalHarmonicCoefficients=e}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps},set:function(e){e!==this._specularEnvironmentMaps&&(this._specularEnvironmentMapAtlasDirty=this._specularEnvironmentMapAtlasDirty||e!==this._specularEnvironmentMaps,this._specularEnvironmentMapLoaded=!1),this._specularEnvironmentMaps=e}},enabled:{get:function(){return this._imageBasedLightingFactor.x>0||this._imageBasedLightingFactor.y>0}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},useDefaultSphericalHarmonics:{get:function(){return this._useDefaultSphericalHarmonics}},useSphericalHarmonicCoefficients:{get:function(){return l(this._sphericalHarmonicCoefficients)||this._useDefaultSphericalHarmonics}},specularEnvironmentMapAtlas:{get:function(){return this._specularEnvironmentMapAtlas}},useDefaultSpecularMaps:{get:function(){return this._useDefaultSpecularMaps}},useSpecularEnvironmentMaps:{get:function(){return l(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready||this._useDefaultSpecularMaps}}});function _Me(e,t){if(Ld.isSupported(t)){if(e._specularEnvironmentMapAtlas=e._specularEnvironmentMapAtlas&&e._specularEnvironmentMapAtlas.destroy(),l(e._specularEnvironmentMaps)){let n=new Ld(e._specularEnvironmentMaps);e._specularEnvironmentMapAtlas=n,e._removeErrorListener=n.errorEvent.addEventListener(i=>{console.error(`Error loading specularEnvironmentMaps: ${i}`)})}e._shouldRegenerateShaders=!0}}l1.prototype.update=function(e){if(e.frameNumber===this._previousFrameNumber)return;this._previousFrameNumber=e.frameNumber;let t=e.context;e.brdfLutGenerator.update(e),this._shouldRegenerateShaders=!1;let n=this._imageBasedLightingFactor,i=this._previousImageBasedLightingFactor;z.equals(n,i)||(this._shouldRegenerateShaders=n.x>0&&i.x===0||n.x===0&&i.x>0,this._shouldRegenerateShaders=this._shouldRegenerateShaders||n.y>0&&i.y===0||n.y===0&&i.y>0,this._previousImageBasedLightingFactor=z.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor)),this._luminanceAtZenith!==this._previousLuminanceAtZenith&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||l(this._luminanceAtZenith)!==l(this._previousLuminanceAtZenith),this._previousLuminanceAtZenith=this._luminanceAtZenith),this._previousSphericalHarmonicCoefficients!==this._sphericalHarmonicCoefficients&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||l(this._previousSphericalHarmonicCoefficients)!==l(this._sphericalHarmonicCoefficients),this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients),this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._previousSpecularEnvironmentMapLoaded!==this._specularEnvironmentMapLoaded,this._previousSpecularEnvironmentMapLoaded=this._specularEnvironmentMapLoaded,this._specularEnvironmentMapAtlasDirty&&(_Me(this,t),this._specularEnvironmentMapAtlasDirty=!1),l(this._specularEnvironmentMapAtlas)&&(this._specularEnvironmentMapAtlas.update(e),this._specularEnvironmentMapAtlas.ready&&(this._specularEnvironmentMapLoaded=!0));let o=!l(this._specularEnvironmentMapAtlas)&&l(e.specularEnvironmentMaps)&&!this._useDefaultSpecularMaps,r=!l(e.specularEnvironmentMaps)&&this._useDefaultSpecularMaps,s=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)&&!this._useDefaultSphericalHarmonics,a=!l(e.sphericalHarmonicCoefficients)&&this._useDefaultSphericalHarmonics;this._shouldRegenerateShaders=this._shouldRegenerateShaders||o||r||s||a,this._useDefaultSpecularMaps=!l(this._specularEnvironmentMapAtlas)&&l(e.specularEnvironmentMaps),this._useDefaultSphericalHarmonics=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)};l1.prototype.isDestroyed=function(){return!1};l1.prototype.destroy=function(){return this._specularEnvironmentMapAtlas=this._specularEnvironmentMapAtlas&&this._specularEnvironmentMapAtlas.destroy(),this._removeErrorListener=this._removeErrorListener&&this._removeErrorListener(),ue(this)};var Bx=l1;var t9=wo(au(),1);var e9,gMe="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3ODZkMDQzOS03ZGJjLTQzZWUtYjlmYy04ZmM5Y2UwNzNhMmYiLCJpZCI6MjU5LCJpYXQiOjE2MzgyMDYwMDB9.cK1hsaFBgz0l2dG9Ry5vBFHWp-HF2lwjLC0tcK8Z8tY",yMe="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI0YjhlOGM0Yy0xNzcwLTQwNWEtODk4Yy0xMGJkODg4MTA5ZGEiLCJpZCI6MjU5LCJpYXQiOjE3MTc0MzM4NjB9.VwBpSnRTNdg_G6uvU-JNsRNcSOCDMKW_j3Nl5E7wfwg",GV={};GV.defaultAccessToken=gMe;GV.defaultServer=new De({url:"https://api.cesium.com/"});GV.getDefaultTokenCredit=function(e){if(e===yMe){if(!l(e9)){let t=`<b> This application is using Cesium's default ion access token. Please assign <i>Cesium.Ion.defaultAccessToken</i> with an access token from your ion account before making any Cesium API calls. You can sign up for a free ion account at <a href="https://cesium.com">https://cesium.com</a>.</b>`;e9=new Tt(t,!0)}return e9}};var Nd=GV;function jc(e,t){let n,i=e.externalType,o=l(i);if(!o)n={url:e.url,retryAttempts:1,retryCallback:xMe};else if(i==="3DTILES"||i==="STK_TERRAIN_SERVER")n={url:e.options.url};else throw new le("Ion.createResource does not support external imagery assets; use IonImageryProvider instead.");De.call(this,n),this._ionEndpoint=e,this._ionEndpointDomain=o?void 0:new t9.default(e.url).authority(),this._ionEndpointResource=t,this._ionRoot=void 0,this._pendingPromise=void 0,this._credits=void 0,this._isExternal=o}l(Object.create)&&(jc.prototype=Object.create(De.prototype),jc.prototype.constructor=jc);jc.fromAssetId=function(e,t){let n=jc._createEndpointResource(e,t);return n.fetchJson().then(function(i){return new jc(i,n)})};Object.defineProperties(jc.prototype,{credits:{get:function(){return l(this._ionRoot)?this._ionRoot.credits:l(this._credits)?this._credits:(this._credits=jc.getCreditsFromEndpoint(this._ionEndpoint,this._ionEndpointResource),this._credits)}}});jc.getCreditsFromEndpoint=function(e,t){let n=e.attributions.map(Tt.getIonCredit),i=Nd.getDefaultTokenCredit(t.queryParameters.access_token);return l(i)&&n.push(Tt.clone(i)),n};jc.prototype.clone=function(e){let t=y(this._ionRoot,this);return l(e)||(e=new jc(t._ionEndpoint,t._ionEndpointResource)),e=De.prototype.clone.call(this,e),e._ionRoot=t,e._isExternal=this._isExternal,e};jc.prototype.fetchImage=function(e){if(!this._isExternal){let t=e;e={preferBlob:!0},l(t)&&(e.flipY=t.flipY,e.preferImageBitmap=t.preferImageBitmap)}return De.prototype.fetchImage.call(this,e)};jc.prototype._makeRequest=function(e){return this._isExternal||new t9.default(this.url).authority()!==this._ionEndpointDomain?De.prototype._makeRequest.call(this,e):(l(e.headers)||(e.headers={}),e.headers.Authorization=`Bearer ${this._ionEndpoint.accessToken}`,e.headers["X-Cesium-Client"]="CesiumJS",typeof CESIUM_VERSION<"u"&&(e.headers["X-Cesium-Client-Version"]=CESIUM_VERSION),De.prototype._makeRequest.call(this,e))};jc._createEndpointResource=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.server,Nd.defaultServer),i=y(t.accessToken,Nd.defaultAccessToken);n=De.createIfNeeded(n);let o={url:`v1/assets/${e}/endpoint`};return l(i)&&(o.queryParameters={access_token:i}),n.getDerivedResource(o)};function xMe(e,t){let n=y(e._ionRoot,e),i=n._ionEndpointResource,o=typeof Image<"u";return!l(t)||t.statusCode!==401&&!(o&&t.target instanceof Image)?Promise.resolve(!1):(l(n._pendingPromise)||(n._pendingPromise=i.fetchJson().then(function(r){return n._ionEndpoint=r,r}).finally(function(r){return n._pendingPromise=void 0,r})),n._pendingPromise.then(function(r){return e._ionEndpoint=r,!0}))}var _u=jc;function sm(e){e=y(e,0),this._array=new Array(e),this._length=e}Object.defineProperties(sm.prototype,{length:{get:function(){return this._length},set:function(e){let t=this._array,n=this._length;if(e<n)for(let i=e;i<n;++i)t[i]=void 0;else e>t.length&&(t.length=e);this._length=e}},values:{get:function(){return this._array}}});sm.prototype.get=function(e){return this._array[e]};sm.prototype.set=function(e,t){e>=this._length&&(this.length=e+1),this._array[e]=t};sm.prototype.peek=function(){return this._array[this._length-1]};sm.prototype.push=function(e){let t=this.length++;this._array[t]=e};sm.prototype.pop=function(){if(this._length===0)return;let e=this._array[this._length-1];return--this.length,e};sm.prototype.reserve=function(e){e>this._array.length&&(this._array.length=e)};sm.prototype.resize=function(e){this.length=e};sm.prototype.trim=function(e){e=y(e,this._length),this._array.length=e};var qc=sm;function WV(e){e=y(e,y.EMPTY_OBJECT),this.color=e.color,this.depth=e.depth,this.stencil=e.stencil,this.renderState=e.renderState,this.framebuffer=e.framebuffer,this.owner=e.owner,this.pass=e.pass}WV.ALL=Object.freeze(new WV({color:new H(0,0,0,0),depth:1,stencil:0}));WV.prototype.execute=function(e,t){e.clear(this,t)};var ii=WV;var Np={X:0,Y:1,Z:2};Np.Y_UP_TO_Z_UP=F.fromRotationTranslation($.fromArray([1,0,0,0,0,1,0,-1,0]));Np.Z_UP_TO_Y_UP=F.fromRotationTranslation($.fromArray([1,0,0,0,0,-1,0,1,0]));Np.X_UP_TO_Z_UP=F.fromRotationTranslation($.fromArray([0,0,1,0,1,0,-1,0,0]));Np.Z_UP_TO_X_UP=F.fromRotationTranslation($.fromArray([0,0,-1,0,1,0,1,0,0]));Np.X_UP_TO_Y_UP=F.fromRotationTranslation($.fromArray([0,1,0,-1,0,0,0,0,1]));Np.Y_UP_TO_X_UP=F.fromRotationTranslation($.fromArray([0,-1,0,1,0,0,0,0,1]));Np.fromName=function(e){return Np[e]};var Io=Object.freeze(Np);function xf(e){this.planes=y(e,[])}var u1=[new h,new h,new h];h.clone(h.UNIT_X,u1[0]);h.clone(h.UNIT_Y,u1[1]);h.clone(h.UNIT_Z,u1[2]);var zg=new h,bMe=new h,yie=new ln(new h(1,0,0),0);xf.fromBoundingSphere=function(e,t){l(t)||(t=new xf);let n=u1.length,i=t.planes;i.length=2*n;let o=e.center,r=e.radius,s=0;for(let a=0;a<n;++a){let c=u1[a],u=i[s],f=i[s+1];l(u)||(u=i[s]=new oe),l(f)||(f=i[s+1]=new oe),h.multiplyByScalar(c,-r,zg),h.add(o,zg,zg),u.x=c.x,u.y=c.y,u.z=c.z,u.w=-h.dot(c,zg),h.multiplyByScalar(c,r,zg),h.add(o,zg,zg),f.x=-c.x,f.y=-c.y,f.z=-c.z,f.w=-h.dot(h.negate(c,bMe),zg),s+=2}return t};xf.prototype.computeVisibility=function(e){let t=this.planes,n=!1;for(let i=0,o=t.length;i<o;++i){let r=e.intersectPlane(ln.fromCartesian4(t[i],yie));if(r===Gt.OUTSIDE)return Gt.OUTSIDE;r===Gt.INTERSECTING&&(n=!0)}return n?Gt.INTERSECTING:Gt.INSIDE};xf.prototype.computeVisibilityWithPlaneMask=function(e,t){if(t===xf.MASK_OUTSIDE||t===xf.MASK_INSIDE)return t;let n=xf.MASK_INSIDE,i=this.planes;for(let o=0,r=i.length;o<r;++o){let s=o<31?1<<o:0;if(o<31&&!(t&s))continue;let a=e.intersectPlane(ln.fromCartesian4(i[o],yie));if(a===Gt.OUTSIDE)return xf.MASK_OUTSIDE;a===Gt.INTERSECTING&&(n|=s)}return n};xf.MASK_OUTSIDE=4294967295;xf.MASK_INSIDE=0;xf.MASK_INDETERMINATE=2147483647;var as=xf;function am(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new as,this._orthographicMatrix=new F}function xie(e){(e.top!==e._top||e.bottom!==e._bottom||e.left!==e._left||e.right!==e._right||e.near!==e._near||e.far!==e._far)&&(e._left=e.left,e._right=e.right,e._top=e.top,e._bottom=e.bottom,e._near=e.near,e._far=e.far,e._orthographicMatrix=F.computeOrthographicOffCenter(e.left,e.right,e.bottom,e.top,e.near,e.far,e._orthographicMatrix))}Object.defineProperties(am.prototype,{projectionMatrix:{get:function(){return xie(this),this._orthographicMatrix}}});var TMe=new h,AMe=new h,CMe=new h,n9=new h;am.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,u=this.far,f=h.cross(t,n,TMe);h.normalize(f,f);let d=AMe;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=CMe;h.multiplyByScalar(f,a,p),h.add(d,p,p);let g=i[0];return l(g)||(g=i[0]=new oe),g.x=f.x,g.y=f.y,g.z=f.z,g.w=-h.dot(f,p),h.multiplyByScalar(f,s,p),h.add(d,p,p),g=i[1],l(g)||(g=i[1]=new oe),g.x=-f.x,g.y=-f.y,g.z=-f.z,g.w=-h.dot(h.negate(f,n9),p),h.multiplyByScalar(n,r,p),h.add(d,p,p),g=i[2],l(g)||(g=i[2]=new oe),g.x=n.x,g.y=n.y,g.z=n.z,g.w=-h.dot(n,p),h.multiplyByScalar(n,o,p),h.add(d,p,p),g=i[3],l(g)||(g=i[3]=new oe),g.x=-n.x,g.y=-n.y,g.z=-n.z,g.w=-h.dot(h.negate(n,n9),p),g=i[4],l(g)||(g=i[4]=new oe),g.x=t.x,g.y=t.y,g.z=t.z,g.w=-h.dot(t,d),h.multiplyByScalar(t,u,p),h.add(e,p,p),g=i[5],l(g)||(g=i[5]=new oe),g.x=-t.x,g.y=-t.y,g.z=-t.z,g.w=-h.dot(h.negate(t,n9),p),this._cullingVolume};am.prototype.getPixelDimensions=function(e,t,n,i,o){xie(this);let r=this.right-this.left,s=this.top-this.bottom,a=i*r/e,c=i*s/t;return o.x=a,o.y=c,o};am.prototype.clone=function(e){return l(e)||(e=new am),e.left=this.left,e.right=this.right,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};am.prototype.equals=function(e){return l(e)&&e instanceof am&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};am.prototype.equalsEpsilon=function(e,t,n){return e===this||l(e)&&e instanceof am&&R.equalsEpsilon(this.right,e.right,t,n)&&R.equalsEpsilon(this.left,e.left,t,n)&&R.equalsEpsilon(this.top,e.top,t,n)&&R.equalsEpsilon(this.bottom,e.bottom,t,n)&&R.equalsEpsilon(this.near,e.near,t,n)&&R.equalsEpsilon(this.far,e.far,t,n)};var Er=am;function Pl(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new Er,this.width=e.width,this._width=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far}Pl.packedLength=4;Pl.pack=function(e,t,n){return n=y(n,0),t[n++]=e.width,t[n++]=e.aspectRatio,t[n++]=e.near,t[n]=e.far,t};Pl.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Pl),n.width=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t],n};function Hg(e){let t=e._offCenterFrustum;if(e.width!==e._width||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far){e._aspectRatio=e.aspectRatio,e._width=e.width,e._near=e.near,e._far=e.far;let n=1/e.aspectRatio;t.right=e.width*.5,t.left=-t.right,t.top=n*t.right,t.bottom=-t.top,t.near=e.near,t.far=e.far}}Object.defineProperties(Pl.prototype,{projectionMatrix:{get:function(){return Hg(this),this._offCenterFrustum.projectionMatrix}},offCenterFrustum:{get:function(){return Hg(this),this._offCenterFrustum}}});Pl.prototype.computeCullingVolume=function(e,t,n){return Hg(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};Pl.prototype.getPixelDimensions=function(e,t,n,i,o){return Hg(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};Pl.prototype.clone=function(e){return l(e)||(e=new Pl),e.aspectRatio=this.aspectRatio,e.width=this.width,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._width=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};Pl.prototype.equals=function(e){return!l(e)||!(e instanceof Pl)?!1:(Hg(this),Hg(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};Pl.prototype.equalsEpsilon=function(e,t,n){return!l(e)||!(e instanceof Pl)?!1:(Hg(this),Hg(e),R.equalsEpsilon(this.width,e.width,t,n)&&R.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var rn=Pl;function bie(e){e=y(e,y.EMPTY_OBJECT),this._metadata=e.metadata}Object.defineProperties(bie.prototype,{metadata:{get:function(){return this._metadata}}});var kx=bie;function Gg(e,t,n){return t=y(t,0),n=y(n,e.byteLength-t),e=e.subarray(t,t+n),Gg.decode(e)}Gg.decodeWithTextDecoder=function(e){return new TextDecoder("utf-8").decode(e)};Gg.decodeWithFromCharCode=function(e){let t="",n=EMe(e),i=n.length;for(let o=0;o<i;++o){let r=n[o];r<=65535?t+=String.fromCharCode(r):(r-=65536,t+=String.fromCharCode((r>>10)+55296,(r&1023)+56320))}return t};function f1(e,t,n){return t<=e&&e<=n}function EMe(e){let t=0,n=0,i=0,o=128,r=191,s=[],a=e.length;for(let c=0;c<a;++c){let u=e[c];if(i===0){if(f1(u,0,127)){s.push(u);continue}if(f1(u,194,223)){i=1,t=u&31;continue}if(f1(u,224,239)){u===224&&(o=160),u===237&&(r=159),i=2,t=u&15;continue}if(f1(u,240,244)){u===240&&(o=144),u===244&&(r=143),i=3,t=u&7;continue}throw new le("String decoding failed.")}if(!f1(u,o,r)){t=i=n=0,o=128,r=191,--c;continue}o=128,r=191,t=t<<6|u&63,++n,n===i&&(s.push(t),t=i=n=0)}return s}typeof TextDecoder<"u"?Gg.decode=Gg.decodeWithTextDecoder:Gg.decode=Gg.decodeWithFromCharCode;var Il=Gg;function SMe(e,t){return t=y(t,0),Il(e,t,Math.min(4,e.length))}var Fd=SMe;function bf(e,t,n,i){this._tileset=e,this._tile=t,this._resource=n,l(i)||(i=[]),this._contents=i,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(bf.prototype,{featurePropertiesDirty:{get:function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)if(e[n].featurePropertiesDirty)return!0;return!1},set:function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].featurePropertiesDirty=e}},featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){return this._contents}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e;let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].metadata=e}},batchTable:{get:function(){}},group:{get:function(){return this._group},set:function(e){this._group=e;let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].group=e}}});var d1=Uint32Array.BYTES_PER_ELEMENT;bf.fromTileType=async function(e,t,n,i,o,r){o=y(o,0);let s=new Uint8Array(i),a=new DataView(i);o+=d1;let c=a.getUint32(o,!0);if(c!==1)throw new le(`Only Composite Tile version 1 is supported. Version ${c} is not.`);o+=d1,o+=d1;let u=a.getUint32(o,!0);o+=d1;let f=n.queryParameters.compositeIndex;l(f)?f=`${f}_`:f="";let d=[];d.length=u;for(let m=0;m<u;++m){let x=Fd(s,o),b=a.getUint32(o+d1*2,!0),T=r[x],C=`${f}${m}`,A=n.getDerivedResource({queryParameters:{compositeIndex:C}});if(l(T))d[m]=Promise.resolve(T(e,t,A,i,o));else throw new le(`Unknown tile content type, ${x}, inside Composite tile`);o+=b}let p=await Promise.all(d);return new bf(e,t,n,p)};bf.prototype.hasProperty=function(e,t){return!1};bf.prototype.getFeature=function(e){};bf.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyDebugSettings(e,t)};bf.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};bf.prototype.update=function(e,t){let n=this._contents,i=n.length,o=!0;for(let r=0;r<i;++r)n[r].update(e,t),o=o&&n[r].ready;!this._ready&&o&&(this._ready=!0)};bf.prototype.pick=function(e,t,n){if(!this._ready)return;let i,o=Number.POSITIVE_INFINITY,r=this._contents,s=r.length;for(let a=0;a<s;++a){let c=r[a].pick(e,t,n);if(!l(c))continue;let u=h.distance(e.origin,c);u<o&&(i=c,o=u)}if(l(i))return n};bf.prototype.isDestroyed=function(){return!1};bf.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var h1=bf;function vMe(e,t,n){return JSON.parse(Il(e,t,n))}var Ro=vMe;function oc(e){this._id=Hn();let t=e.featuresLength;this._showAlphaProperties=void 0,this._batchValues=void 0,this._batchValuesDirty=!1,this._batchTexture=void 0,this._defaultTexture=void 0,this._pickTexture=void 0,this._pickIds=[];let n,i;if(t>0){let o=Math.min(t,Nt.maximumTextureSize),r=Math.ceil(t/Nt.maximumTextureSize),s=1/o,a=s*.5,c=1/r,u=c*.5;n=new z(o,r),i=new oe(s,a,c,u)}this._translucentFeaturesLength=0,this._featuresLength=t,this._textureDimensions=n,this._textureStep=i,this._owner=e.owner,this._statistics=e.statistics,this._colorChangedCallback=e.colorChangedCallback}Object.defineProperties(oc.prototype,{translucentFeaturesLength:{get:function(){return this._translucentFeaturesLength}},byteLength:{get:function(){let e=0;return l(this._pickTexture)&&(e+=this._pickTexture.sizeInBytes),l(this._batchTexture)&&(e+=this._batchTexture.sizeInBytes),e}},textureDimensions:{get:function(){return this._textureDimensions}},textureStep:{get:function(){return this._textureStep}},batchTexture:{get:function(){return this._batchTexture}},defaultTexture:{get:function(){return this._defaultTexture}},pickTexture:{get:function(){return this._pickTexture}}});oc.DEFAULT_COLOR_VALUE=H.WHITE;oc.DEFAULT_SHOW_VALUE=!0;function Tie(e){let t=e._textureDimensions;return t.x*t.y*4}function Aie(e){if(!l(e._batchValues)){let t=Tie(e),n=new Uint8Array(t).fill(255);e._batchValues=n}return e._batchValues}function Cie(e){if(!l(e._showAlphaProperties)){let t=2*e._featuresLength,n=new Uint8Array(t).fill(255);e._showAlphaProperties=n}return e._showAlphaProperties}oc.prototype.setShow=function(e,t){if(t&&!l(this._showAlphaProperties))return;let n=Cie(this),i=e*2,o=t?255:0;if(n[i]!==o){n[i]=o;let r=Aie(this),s=e*4+3;r[s]=t?n[i+1]:0,this._batchValuesDirty=!0}};oc.prototype.setAllShow=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setShow(n,e)};oc.prototype.getShow=function(e){if(!l(this._showAlphaProperties))return!0;let t=e*2;return this._showAlphaProperties[t]===255};var wMe=new Array(4);oc.prototype.setColor=function(e,t){if(H.equals(t,oc.DEFAULT_COLOR_VALUE)&&!l(this._batchValues))return;let n=t.toBytes(wMe),i=n[3],o=Aie(this),r=e*4,s=Cie(this),a=e*2;if(o[r]!==n[0]||o[r+1]!==n[1]||o[r+2]!==n[2]||s[a+1]!==i){o[r]=n[0],o[r+1]=n[1],o[r+2]=n[2];let c=s[a+1]!==255,u=s[a]!==0;o[r+3]=u?i:0,s[a+1]=i;let f=i!==255;f&&!c?++this._translucentFeaturesLength:!f&&c&&--this._translucentFeaturesLength,this._batchValuesDirty=!0,l(this._colorChangedCallback)&&this._colorChangedCallback(e,t)}};oc.prototype.setAllColor=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setColor(n,e)};oc.prototype.getColor=function(e,t){if(!l(this._batchValues))return H.clone(oc.DEFAULT_COLOR_VALUE,t);let n=this._batchValues,i=e*4,o=this._showAlphaProperties,r=e*2;return H.fromBytes(n[i],n[i+1],n[i+2],o[r+1],t)};oc.prototype.getPickColor=function(e){return this._pickIds[e]};function Eie(e,t,n){let i=e._textureDimensions;return new Dt({context:t,pixelFormat:nt.RGBA,pixelDatatype:We.UNSIGNED_BYTE,source:{width:i.x,height:i.y,arrayBufferView:n},flipY:!1,sampler:on.NEAREST})}function DMe(e,t){let n=e._featuresLength;if(!l(e._pickTexture)&&n>0){let i=e._pickIds,o=Tie(e),r=new Uint8Array(o),s=e._owner,a=e._statistics;for(let c=0;c<n;++c){let u=t.createPickId(s.getFeature(c));i.push(u);let f=u.color,d=c*4;r[d]=H.floatToByte(f.red),r[d+1]=H.floatToByte(f.green),r[d+2]=H.floatToByte(f.blue),r[d+3]=H.floatToByte(f.alpha)}e._pickTexture=Eie(e,t,r),l(a)&&(a.batchTableByteLength+=e._pickTexture.sizeInBytes)}}function PMe(e){let t=e._textureDimensions;e._batchTexture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}oc.prototype.update=function(e,t){let n=t.context;this._defaultTexture=n.defaultTexture;let i=t.passes;(i.pick||i.postProcess)&&DMe(this,n),this._batchValuesDirty&&(this._batchValuesDirty=!1,l(this._batchTexture)||(this._batchTexture=Eie(this,n,this._batchValues),l(this._statistics)&&(this._statistics.batchTableByteLength+=this._batchTexture.sizeInBytes)),PMe(this))};oc.prototype.isDestroyed=function(){return!1};oc.prototype.destroy=function(){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),this._pickTexture=this._pickTexture&&this._pickTexture.destroy();let e=this._pickIds,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var Yc=oc;var IMe={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},RMe={SCALAR:void 0,VEC2:z,VEC3:h,VEC4:oe,MAT2:Qi,MAT3:$,MAT4:F};function OMe(e){let t=e.componentType,n;typeof t=="string"?n=X.fromName(t):n=t;let i=IMe[e.type],o=RMe[e.type];return{componentsPerAttribute:i,classType:o,createArrayBufferView:function(r,s,a){return X.createArrayBufferView(n,r,s,i*a)}}}var gu=OMe;function Fp(e){this._classes=void 0,this._classIds=void 0,this._classIndexes=void 0,this._parentCounts=void 0,this._parentIndexes=void 0,this._parentIds=void 0,this._byteLength=0,MMe(this,e.extension,e.binaryBody)}Object.defineProperties(Fp.prototype,{byteLength:{get:function(){return this._byteLength}}});function MMe(e,t,n){let i,o,r,s=t.instancesLength,a=t.classes,c=t.classIds,u=t.parentCounts,f=t.parentIds,d=s,p=0;l(c.byteOffset)&&(c.componentType=y(c.componentType,X.UNSIGNED_SHORT),c.type=tn.SCALAR,r=gu(c),c=r.createArrayBufferView(n.buffer,n.byteOffset+c.byteOffset,s),p+=c.byteLength);let g;if(l(u)){for(l(u.byteOffset)&&(u.componentType=y(u.componentType,X.UNSIGNED_SHORT),u.type=tn.SCALAR,r=gu(u),u=r.createArrayBufferView(n.buffer,n.byteOffset+u.byteOffset,s),p+=u.byteLength),g=new Uint16Array(s),d=0,i=0;i<s;++i)g[i]=d,d+=u[i];p+=g.byteLength}l(f)&&l(f.byteOffset)&&(f.componentType=y(f.componentType,X.UNSIGNED_SHORT),f.type=tn.SCALAR,r=gu(f),f=r.createArrayBufferView(n.buffer,n.byteOffset+f.byteOffset,d),p+=f.byteLength);let m=a.length;for(i=0;i<m;++i){let T=a[i].length,C=a[i].instances,A=LMe(T,C,n);p+=NMe(A),a[i].instances=_t(A,C)}let x=new Array(m).fill(0),b=new Uint16Array(s);for(i=0;i<s;++i)o=c[i],b[i]=x[o],++x[o];p+=b.byteLength,e._classes=a,e._classIds=c,e._classIndexes=b,e._parentCounts=u,e._parentIndexes=g,e._parentIds=f,e._byteLength=p}function LMe(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(l(s)){let a=r.componentType,c=r.type;if(!l(a))throw new le("componentType is required.");if(!l(c))throw new le("type is required.");if(!l(n))throw new le(`Property ${o} requires a batch table binary.`);let u=gu(r),f=u.componentsPerAttribute,d=u.classType,p=u.createArrayBufferView(n.buffer,n.byteOffset+s,e);l(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function NMe(e){let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}var FMe=[],BMe=[],kMe=0;function VMe(e,t,n){let i=e._classIds,o=e._parentCounts,r=e._parentIds,s=e._parentIndexes,a=i.length,c=FMe;c.length=Math.max(c.length,a);let u=++kMe,f=BMe;for(f.length=0,f.push(t);f.length>0;){if(t=f.pop(),c[t]===u)continue;c[t]=u;let d=n(e,t);if(l(d))return d;let p=o[t],g=s[t];for(let m=0;m<p;++m){let x=r[g+m];x!==t&&f.push(x)}}}function UMe(e,t,n){let i=!0;for(;i;){let o=n(e,t);if(l(o))return o;let r=e._parentIds[t];i=r!==t,t=r}}function m1(e,t,n){let i=e._parentCounts,o=e._parentIds;if(l(o)){if(l(i))return VMe(e,t,n)}else return n(e,t);return UMe(e,t,n)}Fp.prototype.hasProperty=function(e,t){let n=m1(this,e,function(i,o){let r=i._classIds[o],s=i._classes[r].instances;if(l(s[t]))return!0});return l(n)};Fp.prototype.propertyExists=function(e){let t=this._classes,n=t.length;for(let i=0;i<n;++i){let o=t[i].instances;if(l(o[e]))return!0}return!1};Fp.prototype.getPropertyIds=function(e,t){return t=l(t)?t:[],t.length=0,m1(this,e,function(n,i){let o=n._classIds[i],r=n._classes[o].instances;for(let s in r)r.hasOwnProperty(s)&&t.indexOf(s)===-1&&t.push(s)}),t};Fp.prototype.getProperty=function(e,t){return m1(this,e,function(n,i){let o=n._classIds[i],r=n._classes[o],s=n._classIndexes[i],a=r.instances[t];if(l(a))return l(a.typedArray)?zMe(a,s):He(a[s],!0)})};function zMe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}Fp.prototype.setProperty=function(e,t,n){let i=m1(this,e,function(o,r){let s=o._classIds[r],a=o._classes[s],c=o._classIndexes[r],u=a.instances[t];if(l(u))return l(u.typedArray)?HMe(u,c,n):u[c]=He(n,!0),!0});return l(i)};function HMe(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}Fp.prototype.isClass=function(e,t){let n=m1(this,e,function(i,o){let r=i._classIds[o];if(i._classes[r].name===t)return!0});return l(n)};Fp.prototype.getClassName=function(e){let t=this._classIds[e];return this._classes[t].name};var Vx=Fp;var GMe={HIGHLIGHT:0,REPLACE:1,MIX:2},Rl=Object.freeze(GMe);var i9=Yc.DEFAULT_COLOR_VALUE,o9=Yc.DEFAULT_SHOW_VALUE;function co(e,t,n,i,o){this.featuresLength=t;let r;l(n)&&(r=n.extensions),this._extensions=y(r,{});let s=WMe(n);this._properties=s,this._batchTableHierarchy=jMe(this,n,i);let a=vie(t,s,i);this._binaryPropertiesByteLength=qMe(a),this._batchTableBinaryProperties=a,this._content=e,this._batchTexture=new Yc({featuresLength:t,colorChangedCallback:o,owner:e,statistics:e.tileset.statistics})}co._deprecationWarning=Ls;Object.defineProperties(co.prototype,{batchTableByteLength:{get:function(){let e=this._binaryPropertiesByteLength;return l(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e+=this._batchTexture.byteLength,e}}});function WMe(e){let t={};if(!l(e))return t;for(let n in e)e.hasOwnProperty(n)&&n!=="HIERARCHY"&&n!=="extensions"&&n!=="extras"&&(t[n]=He(e[n],!0));return t}function jMe(e,t,n){if(!l(t))return;let i=e._extensions["3DTILES_batch_table_hierarchy"],o=t.HIERARCHY;if(l(o)&&(co._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),e._extensions["3DTILES_batch_table_hierarchy"]=o,i=o),!!l(i))return new Vx({extension:i,binaryBody:n})}function vie(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(l(s)){let a=r.componentType,c=r.type;if(!l(a))throw new le("componentType is required.");if(!l(c))throw new le("type is required.");if(!l(n))throw new le(`Property ${o} requires a batch table binary.`);let u=gu(r),f=u.componentsPerAttribute,d=u.classType,p=u.createArrayBufferView(n.buffer,n.byteOffset+s,e);l(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function qMe(e){if(!l(e))return 0;let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}co.getBinaryProperties=function(e,t,n){return vie(e,t,n)};co.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};co.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};co.prototype.getShow=function(e){return this._batchTexture.getShow(e)};co.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};co.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};co.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};co.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};var YMe=new H;co.prototype.applyStyle=function(e){if(!l(e)){this.setAllColor(i9),this.setAllShow(o9);return}let t=this._content,n=this.featuresLength;for(let i=0;i<n;++i){let o=t.getFeature(i),r=l(e.color)?y(e.color.evaluateColor(o,YMe),i9):i9,s=l(e.show)?y(e.show.evaluate(o),o9):o9;this.setColor(i,r),this.setShow(i,s)}};function XMe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}function KMe(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}co.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return l(n)?n.isClass(e,t):!1};co.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};co.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(l(t))return t.getClassName(e)};co.prototype.hasProperty=function(e,t){return l(this._properties[t])||l(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)};co.prototype.hasPropertyBySemantic=function(){return!1};co.prototype.getPropertyIds=function(e,t){t=l(t)?t:[],t.length=0;let n=Object.keys(this._properties);return t.push.apply(t,n),l(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,n)),t};co.prototype.getPropertyBySemantic=function(e,t){};co.prototype.getProperty=function(e,t){if(l(this._batchTableBinaryProperties)){let i=this._batchTableBinaryProperties[t];if(l(i))return XMe(i,e)}let n=this._properties[t];if(l(n))return He(n[e],!0);if(l(this._batchTableHierarchy)){let i=this._batchTableHierarchy.getProperty(e,t);if(l(i))return i}};co.prototype.setProperty=function(e,t,n){let i=this.featuresLength;if(l(this._batchTableBinaryProperties)){let r=this._batchTableBinaryProperties[t];if(l(r)){KMe(r,e,n);return}}if(l(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n))return;let o=this._properties[t];l(o)||(this._properties[t]=new Array(i),o=this._properties[t]),o[e]=He(n,!0)};function ZMe(e){return e._batchTexture.textureDimensions.y===1?`uniform vec4 tile_textureStep; vec2 computeSt(float batchId) { float stepX = tile_textureStep.x; float centerX = tile_textureStep.y; return vec2(centerX + (batchId * stepX), 0.5); } `:`uniform vec4 tile_textureStep; uniform vec2 tile_textureDimensions; vec2 computeSt(float batchId) { float stepX = tile_textureStep.x; float centerX = tile_textureStep.y; float stepY = tile_textureStep.z; float centerY = tile_textureStep.w; float xId = mod(batchId, tile_textureDimensions.x); float yId = floor(batchId / tile_textureDimensions.x); return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); } `}co.prototype.getVertexShaderCallback=function(e,t,n){if(this.featuresLength===0)return;let i=this;return function(o){let r=wie(o,n,!1),s;return Nt.maximumVertexTextureImageUnits>0?(s="",e&&(s+=`uniform bool tile_translucentCommand; `),s+=`uniform sampler2D tile_batchTexture; out vec4 tile_featureColor; out vec2 tile_featureSt; void main() { vec2 st = computeSt(${t}); vec4 featureProperties = texture(tile_batchTexture, st); tile_color(featureProperties); float show = ceil(featureProperties.a); gl_Position *= show; `,e&&(s+=` bool isStyleTranslucent = (featureProperties.a != 1.0); if (czm_pass == czm_passTranslucent) { if (!isStyleTranslucent && !tile_translucentCommand) { gl_Position *= 0.0; } } else { if (isStyleTranslucent) { gl_Position *= 0.0; } } `),s+=` tile_featureColor = featureProperties; tile_featureSt = st; }`):s=`out vec2 tile_featureSt; void main() { tile_color(vec4(1.0)); tile_featureSt = computeSt(${t}); }`,`${r} ${ZMe(i)}${s}`}};function Sie(e,t){return e=ze.replaceMain(e,"tile_main"),t?`${e}uniform float tile_colorBlend; void tile_color(vec4 tile_featureColor) { tile_main(); tile_featureColor = czm_gammaCorrect(tile_featureColor); out_FragColor.a *= tile_featureColor.a; float highlight = ceil(tile_colorBlend); out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); } `:`${e}void tile_color(vec4 tile_featureColor) { tile_main(); } `}function $Me(e,t){let n=`texture(${t}`,i=0,o=e.indexOf(n,i),r;for(;o>-1;){let s=0;for(let u=o;u<e.length;++u){let f=e.charAt(u);if(f==="(")++s;else if(f===")"&&(--s,s===0)){r=u+1;break}}let c=`tile_diffuse_final(${e.slice(o,r)}, tile_diffuse)`;e=e.slice(0,o)+c+e.slice(r),i=o+c.length,o=e.indexOf(n,i)}return e}function wie(e,t,n){if(!l(t))return Sie(e,n);let i=new RegExp(`(uniform|attribute|in)\\s+(vec[34]|sampler2D)\\s+${t};`),o=e.match(i);if(!l(o))return Sie(e,n);let r=o[0],s=o[2];e=ze.replaceMain(e,"tile_main"),e=e.replace(r,"");let a=`bool isWhite(vec3 color) { return all(greaterThan(color, vec3(1.0 - czm_epsilon3))); } vec4 tile_diffuse_final(vec4 sourceDiffuse, vec4 tileDiffuse) { vec4 blendDiffuse = mix(sourceDiffuse, tileDiffuse, tile_colorBlend); vec4 diffuse = isWhite(tileDiffuse.rgb) ? sourceDiffuse : blendDiffuse; return vec4(diffuse.rgb, sourceDiffuse.a); } `,c=` tile_featureColor = czm_gammaCorrect(tile_featureColor); out_FragColor.a *= tile_featureColor.a; float highlight = ceil(tile_colorBlend); out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); `,u;if(s==="vec3"||s==="vec4"){let f=s==="vec3"?`vec4(${t}, 1.0)`:t,d=s==="vec3"?"tile_diffuse.xyz":"tile_diffuse";i=new RegExp(t,"g"),e=e.replace(i,d),u=` vec4 source = ${f}; tile_diffuse = tile_diffuse_final(source, tile_featureColor); tile_main(); `}else s==="sampler2D"&&(e=$Me(e,t),u=` tile_diffuse = tile_featureColor; tile_main(); `);return e=`uniform float tile_colorBlend; vec4 tile_diffuse = vec4(1.0); ${a}${r} ${e} void tile_color(vec4 tile_featureColor) { ${u}`,n&&(e+=c),e+=`} `,e}co.prototype.getFragmentShaderCallback=function(e,t,n){if(this.featuresLength!==0)return function(i){return i=wie(i,t,!0),Nt.maximumVertexTextureImageUnits>0?(i+=`uniform sampler2D tile_pickTexture; in vec2 tile_featureSt; in vec4 tile_featureColor; void main() { tile_color(tile_featureColor); `,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; `),i+="}"):(e&&(i+=`uniform bool tile_translucentCommand; `),i+=`uniform sampler2D tile_pickTexture; uniform sampler2D tile_batchTexture; in vec2 tile_featureSt; void main() { vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); if (featureProperties.a == 0.0) { discard; } `,e&&(i+=` bool isStyleTranslucent = (featureProperties.a != 1.0); if (czm_pass == czm_passTranslucent) { if (!isStyleTranslucent && !tile_translucentCommand) { discard; } } else { if (isStyleTranslucent) { discard; } } `),i+=` tile_color(featureProperties); `,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; `),i+=`} `),i}};co.prototype.getClassificationFragmentShaderCallback=function(){if(this.featuresLength!==0)return function(e){return e=ze.replaceMain(e,"tile_main"),Nt.maximumVertexTextureImageUnits>0?e+=`uniform sampler2D tile_pickTexture; in vec2 tile_featureSt; in vec4 tile_featureColor; void main() { tile_main(); out_FragColor = tile_featureColor; out_FragColor.rgb *= out_FragColor.a; }`:e+=`uniform sampler2D tile_batchTexture; uniform sampler2D tile_pickTexture; in vec2 tile_featureSt; void main() { tile_main(); vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); if (featureProperties.a == 0.0) { discard; } out_FragColor = featureProperties; out_FragColor.rgb *= out_FragColor.a; } `,e}};function QMe(e){let t=e._content.tileset,n=t.colorBlendMode,i=t.colorBlendAmount;if(n===Rl.HIGHLIGHT)return 0;if(n===Rl.REPLACE)return 1;if(n===Rl.MIX)return R.clamp(i,R.EPSILON4,1)}co.prototype.getUniformMapCallback=function(){if(this.featuresLength===0)return;let e=this;return function(t){return _t(t,{tile_batchTexture:function(){return y(e._batchTexture.batchTexture,e._batchTexture.defaultTexture)},tile_textureDimensions:function(){return e._batchTexture.textureDimensions},tile_textureStep:function(){return e._batchTexture.textureStep},tile_colorBlend:function(){return QMe(e)},tile_pickTexture:function(){return e._batchTexture.pickTexture}})}};co.prototype.getPickId=function(){return"texture(tile_pickTexture, tile_featureSt)"};var Wg={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};co.prototype.addDerivedCommands=function(e,t){let n=e.commandList,i=n.length,o=this._content._tile,r=o._finalResolution,s=o.tileset,a=s.isSkippingLevelOfDetail&&s.hasMixedContent&&e.context.stencilBuffer,c=JMe(this);for(let u=t;u<i;++u){let f=n[u];if(f.pass===Ee.COMPUTE)continue;let d=f.derivedCommands.tileset;(!l(d)||f.dirty)&&(d={},f.derivedCommands.tileset=d,d.originalCommand=eLe(f),f.dirty=!1);let p=d.originalCommand;c!==Wg.ALL_OPAQUE&&f.pass!==Ee.TRANSLUCENT&&(l(d.translucent)||(d.translucent=tLe(p))),c!==Wg.ALL_TRANSLUCENT&&f.pass!==Ee.TRANSLUCENT&&(l(d.opaque)||(d.opaque=nLe(p)),a&&(r||(l(d.zback)||(d.zback=oLe(e.context,p)),s._backfaceCommands.push(d.zback)),(!l(d.stencil)||o._selectionDepth!==sLe(d.stencil))&&(f.renderState.depthMask?d.stencil=rLe(p,o._selectionDepth):d.stencil=d.opaque)));let g=a?d.stencil:d.opaque,m=d.translucent;f.pass!==Ee.TRANSLUCENT?(c===Wg.ALL_OPAQUE&&(n[u]=g),c===Wg.ALL_TRANSLUCENT&&(n[u]=m),c===Wg.OPAQUE_AND_TRANSLUCENT&&(n[u]=g,n.push(m))):n[u]=p}};function JMe(e){let t=e._batchTexture.translucentFeaturesLength;return t===0?Wg.ALL_OPAQUE:t===e.featuresLength?Wg.ALL_TRANSLUCENT:Wg.OPAQUE_AND_TRANSLUCENT}function eLe(e){let t=Ze.shallowClone(e),n=t.pass===Ee.TRANSLUCENT;return t.uniformMap=l(t.uniformMap)?t.uniformMap:{},t.uniformMap.tile_translucentCommand=function(){return n},t}function tLe(e){let t=Ze.shallowClone(e);return t.pass=Ee.TRANSLUCENT,t.renderState=aLe(e.renderState),t}function nLe(e){let t=Ze.shallowClone(e);return t.renderState=cLe(e.renderState),t}function iLe(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"zBackfaceLogDepth");if(!l(n)){let i=t.fragmentShaderSource.clone();i.defines=l(i.defines)?i.defines.slice(0):[],i.defines.push("POLYGON_OFFSET"),n=e.shaderCache.createDerivedShaderProgram(t,"zBackfaceLogDepth",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:i,attributeLocations:t._attributeLocations})}return n}function oLe(e,t){let n=Ze.shallowClone(t),i=He(n.renderState,!0);i.cull.enabled=!0,i.cull.face=hi.FRONT,i.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i.polygonOffset={enabled:!0,factor:5,units:5},i.stencilTest=Ft.setCesium3DTileBit(),i.stencilMask=Ft.CESIUM_3D_TILE_MASK,n.renderState=Ve.fromCache(i),n.castShadows=!1,n.receiveShadows=!1,n.uniformMap=He(t.uniformMap);let o=new z(5,5);return n.uniformMap.u_polygonOffset=function(){return o},n.shaderProgram=iLe(e,t.shaderProgram),n}function rLe(e,t){let n=Ze.shallowClone(e),i=He(n.renderState,!0);return i.stencilTest.enabled=!0,i.stencilTest.mask=Ft.SKIP_LOD_MASK,i.stencilTest.reference=Ft.CESIUM_3D_TILE_MASK|t<<Ft.SKIP_LOD_BIT_SHIFT,i.stencilTest.frontFunction=Un.GREATER_OR_EQUAL,i.stencilTest.frontOperation.zPass=lt.REPLACE,i.stencilTest.backFunction=Un.GREATER_OR_EQUAL,i.stencilTest.backOperation.zPass=lt.REPLACE,i.stencilMask=Ft.CESIUM_3D_TILE_MASK|Ft.SKIP_LOD_MASK,n.renderState=Ve.fromCache(i),n}function sLe(e){return(e.renderState.stencilTest.reference&Ft.SKIP_LOD_MASK)>>>Ft.SKIP_LOD_BIT_SHIFT}function aLe(e){let t=He(e,!0);return t.cull.enabled=!1,t.depthTest.enabled=!0,t.depthMask=!1,t.blending=un.ALPHA_BLEND,t.stencilTest=Ft.setCesium3DTileBit(),t.stencilMask=Ft.CESIUM_3D_TILE_MASK,Ve.fromCache(t)}function cLe(e){let t=He(e,!0);return t.stencilTest=Ft.setCesium3DTileBit(),t.stencilMask=Ft.CESIUM_3D_TILE_MASK,Ve.fromCache(t)}co.prototype.update=function(e,t){this._batchTexture.update(e,t)};co.prototype.isDestroyed=function(){return!1};co.prototype.destroy=function(){return this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var Bp=co;function lLe(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var cm=lLe;var cC=`in vec3 position; in float a_batchId; uniform mat4 u_modifiedModelViewProjection; void main() { gl_Position = czm_depthClamp(u_modifiedModelViewProjection * vec4(position, 1.0)); } `;function Tf(e,t){this._content=e,this._batchId=t,this._color=void 0}Object.defineProperties(Tf.prototype,{show:{get:function(){return this._content.batchTable.getShow(this._batchId)},set:function(e){this._content.batchTable.setShow(this._batchId,e)}},color:{get:function(){return l(this._color)||(this._color=new H),this._content.batchTable.getColor(this._batchId,this._color)},set:function(e){this._content.batchTable.setColor(this._batchId,e)}},polylinePositions:{get:function(){if(l(this._content.getPolylinePositions))return this._content.getPolylinePositions(this._batchId)}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},featureId:{get:function(){return this._batchId}},pickId:{get:function(){return this._content.batchTable.getPickColor(this._batchId)}}});Tf.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};Tf.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};Tf.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};Tf.getPropertyInherited=function(e,t,n){let i=e.batchTable;if(l(i)){if(i.hasPropertyBySemantic(t,n))return i.getPropertyBySemantic(t,n);if(i.hasProperty(t,n))return i.getProperty(t,n)}let o=e.metadata;if(l(o)){if(o.hasPropertyBySemantic(n))return o.getPropertyBySemantic(n);if(o.hasProperty(n))return o.getProperty(n)}let r=e.tile,s=r.metadata;if(l(s)){if(s.hasPropertyBySemantic(n))return s.getPropertyBySemantic(n);if(s.hasProperty(n))return s.getProperty(n)}let a;if(l(r.implicitSubtree)&&(a=r.implicitSubtree.metadata),l(a)){if(a.hasPropertyBySemantic(n))return a.getPropertyBySemantic(n);if(a.hasProperty(n))return a.getProperty(n)}let c=l(e.group)?e.group.metadata:void 0;if(l(c)){if(c.hasPropertyBySemantic(n))return c.getPropertyBySemantic(n);if(c.hasProperty(n))return c.getProperty(n)}let u=e.tileset.metadata;if(l(u)){if(u.hasPropertyBySemantic(n))return u.getPropertyBySemantic(n);if(u.hasProperty(n))return u.getProperty(n)}};Tf.prototype.getPropertyInherited=function(e){return Tf.getPropertyInherited(this._content,this._batchId,e)};Tf.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};Tf.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};Tf.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};Tf.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var Ns=Tf;var r9=class{add(t,n,i){if(typeof arguments[0]!="string")for(let o in arguments[0])this.add(o,arguments[0][o],arguments[1]);else(Array.isArray(t)?t:[t]).forEach(function(o){this[o]=this[o]||[],n&&this[o][i?"unshift":"push"](n)},this)}run(t,n){this[t]=this[t]||[],this[t].forEach(function(i){i.call(n&&n.context?n.context:n,n)})}},s9=class{constructor(t){this.jsep=t,this.registered={}}register(...t){t.forEach(n=>{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},Ol=class e{static get version(){return"1.3.8"}static toString(){return"JavaScript Expression Parser (JSEP) v"+e.version}static addUnaryOp(t){return e.max_unop_len=Math.max(t.length,e.max_unop_len),e.unary_ops[t]=1,e}static addBinaryOp(t,n,i){return e.max_binop_len=Math.max(t.length,e.max_binop_len),e.binary_ops[t]=n,i?e.right_associative.add(t):e.right_associative.delete(t),e}static addIdentifierChar(t){return e.additional_identifier_chars.add(t),e}static addLiteral(t,n){return e.literals[t]=n,e}static removeUnaryOp(t){return delete e.unary_ops[t],t.length===e.max_unop_len&&(e.max_unop_len=e.getMaxKeyLen(e.unary_ops)),e}static removeAllUnaryOps(){return e.unary_ops={},e.max_unop_len=0,e}static removeIdentifierChar(t){return e.additional_identifier_chars.delete(t),e}static removeBinaryOp(t){return delete e.binary_ops[t],t.length===e.max_binop_len&&(e.max_binop_len=e.getMaxKeyLen(e.binary_ops)),e.right_associative.delete(t),e}static removeAllBinaryOps(){return e.binary_ops={},e.max_binop_len=0,e}static removeLiteral(t){return delete e.literals[t],e}static removeAllLiterals(){return e.literals={},e}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(t){this.expr=t,this.index=0}static parse(t){return new e(t).parse()}static getMaxKeyLen(t){return Math.max(0,...Object.keys(t).map(n=>n.length))}static isDecimalDigit(t){return t>=48&&t<=57}static binaryPrecedence(t){return e.binary_ops[t]||0}static isIdentifierStart(t){return t>=65&&t<=90||t>=97&&t<=122||t>=128&&!e.binary_ops[String.fromCharCode(t)]||e.additional_identifier_chars.has(String.fromCharCode(t))}static isIdentifierPart(t){return e.isIdentifierStart(t)||e.isDecimalDigit(t)}throwError(t){let n=new Error(t+" at character "+this.index);throw n.index=this.index,n.description=t,n}runHook(t,n){if(e.hooks[t]){let i={context:this,node:n};return e.hooks.run(t,i),i.node}return n}searchHook(t){if(e.hooks[t]){let n={context:this};return e.hooks[t].find(function(i){return i.call(n.context,n),n.node}),n.node}}gobbleSpaces(){let t=this.code;for(;t===e.SPACE_CODE||t===e.TAB_CODE||t===e.LF_CODE||t===e.CR_CODE;)t=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let t=this.gobbleExpressions(),n=t.length===1?t[0]:{type:e.COMPOUND,body:t};return this.runHook("after-all",n)}gobbleExpressions(t){let n=[],i,o;for(;this.index<this.expr.length;)if(i=this.code,i===e.SEMCOL_CODE||i===e.COMMA_CODE)this.index++;else if(o=this.gobbleExpression())n.push(o);else if(this.index<this.expr.length){if(i===t)break;this.throwError('Unexpected "'+this.char+'"')}return n}gobbleExpression(){let t=this.searchHook("gobble-expression")||this.gobbleBinaryExpression();return this.gobbleSpaces(),this.runHook("after-expression",t)}gobbleBinaryOp(){this.gobbleSpaces();let t=this.expr.substr(this.index,e.max_binop_len),n=t.length;for(;n>0;){if(e.binary_ops.hasOwnProperty(t)&&(!e.isIdentifierStart(this.code)||this.index+t.length<this.expr.length&&!e.isIdentifierPart(this.expr.charCodeAt(this.index+t.length))))return this.index+=n,t;t=t.substr(0,--n)}return!1}gobbleBinaryExpression(){let t,n,i,o,r,s,a,c,u;if(s=this.gobbleToken(),!s||(n=this.gobbleBinaryOp(),!n))return s;for(r={value:n,prec:e.binaryPrecedence(n),right_a:e.right_associative.has(n)},a=this.gobbleToken(),a||this.throwError("Expected expression after "+n),o=[s,r,a];n=this.gobbleBinaryOp();){if(i=e.binaryPrecedence(n),i===0){this.index-=n.length;break}r={value:n,prec:i,right_a:e.right_associative.has(n)},u=n;let f=d=>r.right_a&&d.right_a?i>d.prec:i<=d.prec;for(;o.length>2&&f(o[o.length-2]);)a=o.pop(),n=o.pop().value,s=o.pop(),t={type:e.BINARY_EXP,operator:n,left:s,right:a},o.push(t);t=this.gobbleToken(),t||this.throwError("Expected expression after "+u),o.push(r,t)}for(c=o.length-1,t=o[c];c>1;)t={type:e.BINARY_EXP,operator:o[c-1].value,left:o[c-2],right:t},c-=2;return t}gobbleToken(){let t,n,i,o;if(this.gobbleSpaces(),o=this.searchHook("gobble-token"),o)return this.runHook("after-token",o);if(t=this.code,e.isDecimalDigit(t)||t===e.PERIOD_CODE)return this.gobbleNumericLiteral();if(t===e.SQUOTE_CODE||t===e.DQUOTE_CODE)o=this.gobbleStringLiteral();else if(t===e.OBRACK_CODE)o=this.gobbleArray();else{for(n=this.expr.substr(this.index,e.max_unop_len),i=n.length;i>0;){if(e.unary_ops.hasOwnProperty(n)&&(!e.isIdentifierStart(this.code)||this.index+n.length<this.expr.length&&!e.isIdentifierPart(this.expr.charCodeAt(this.index+n.length)))){this.index+=i;let r=this.gobbleToken();return r||this.throwError("missing unaryOp argument"),this.runHook("after-token",{type:e.UNARY_EXP,operator:n,argument:r,prefix:!0})}n=n.substr(0,--i)}e.isIdentifierStart(t)?(o=this.gobbleIdentifier(),e.literals.hasOwnProperty(o.name)?o={type:e.LITERAL,value:e.literals[o.name],raw:o.name}:o.name===e.this_str&&(o={type:e.THIS_EXP})):t===e.OPAREN_CODE&&(o=this.gobbleGroup())}return o?(o=this.gobbleTokenProperty(o),this.runHook("after-token",o)):this.runHook("after-token",!1)}gobbleTokenProperty(t){this.gobbleSpaces();let n=this.code;for(;n===e.PERIOD_CODE||n===e.OBRACK_CODE||n===e.OPAREN_CODE||n===e.QUMARK_CODE;){let i;if(n===e.QUMARK_CODE){if(this.expr.charCodeAt(this.index+1)!==e.PERIOD_CODE)break;i=!0,this.index+=2,this.gobbleSpaces(),n=this.code}this.index++,n===e.OBRACK_CODE?(t={type:e.MEMBER_EXP,computed:!0,object:t,property:this.gobbleExpression()},this.gobbleSpaces(),n=this.code,n!==e.CBRACK_CODE&&this.throwError("Unclosed ["),this.index++):n===e.OPAREN_CODE?t={type:e.CALL_EXP,arguments:this.gobbleArguments(e.CPAREN_CODE),callee:t}:(n===e.PERIOD_CODE||i)&&(i&&this.index--,this.gobbleSpaces(),t={type:e.MEMBER_EXP,computed:!1,object:t,property:this.gobbleIdentifier()}),i&&(t.optional=!0),this.gobbleSpaces(),n=this.code}return t}gobbleNumericLiteral(){let t="",n,i;for(;e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(this.code===e.PERIOD_CODE)for(t+=this.expr.charAt(this.index++);e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(n=this.char,n==="e"||n==="E"){for(t+=this.expr.charAt(this.index++),n=this.char,(n==="+"||n==="-")&&(t+=this.expr.charAt(this.index++));e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);e.isDecimalDigit(this.expr.charCodeAt(this.index-1))||this.throwError("Expected exponent ("+t+this.char+")")}return i=this.code,e.isIdentifierStart(i)?this.throwError("Variable names cannot start with a number ("+t+this.char+")"):(i===e.PERIOD_CODE||t.length===1&&t.charCodeAt(0)===e.PERIOD_CODE)&&this.throwError("Unexpected period"),{type:e.LITERAL,value:parseFloat(t),raw:t}}gobbleStringLiteral(){let t="",n=this.index,i=this.expr.charAt(this.index++),o=!1;for(;this.index<this.expr.length;){let r=this.expr.charAt(this.index++);if(r===i){o=!0;break}else if(r==="\\")switch(r=this.expr.charAt(this.index++),r){case"n":t+=` `;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:t+=r}else t+=r}return o||this.throwError('Unclosed quote after "'+t+'"'),{type:e.LITERAL,value:t,raw:this.expr.substring(n,this.index)}}gobbleIdentifier(){let t=this.code,n=this.index;for(e.isIdentifierStart(t)?this.index++:this.throwError("Unexpected "+this.char);this.index<this.expr.length&&(t=this.code,e.isIdentifierPart(t));)this.index++;return{type:e.IDENTIFIER,name:this.expr.slice(n,this.index)}}gobbleArguments(t){let n=[],i=!1,o=0;for(;this.index<this.expr.length;){this.gobbleSpaces();let r=this.code;if(r===t){i=!0,this.index++,t===e.CPAREN_CODE&&o&&o>=n.length&&this.throwError("Unexpected token "+String.fromCharCode(t));break}else if(r===e.COMMA_CODE){if(this.index++,o++,o!==n.length){if(t===e.CPAREN_CODE)this.throwError("Unexpected token ,");else if(t===e.CBRACK_CODE)for(let s=n.length;s<o;s++)n.push(null)}}else if(n.length!==o&&o!==0)this.throwError("Expected comma");else{let s=this.gobbleExpression();(!s||s.type===e.COMPOUND)&&this.throwError("Expected comma"),n.push(s)}}return i||this.throwError("Expected "+String.fromCharCode(t)),n}gobbleGroup(){this.index++;let t=this.gobbleExpressions(e.CPAREN_CODE);if(this.code===e.CPAREN_CODE)return this.index++,t.length===1?t[0]:t.length?{type:e.SEQUENCE_EXP,expressions:t}:!1;this.throwError("Unclosed (")}gobbleArray(){return this.index++,{type:e.ARRAY_EXP,elements:this.gobbleArguments(e.CBRACK_CODE)}}},uLe=new r9;Object.assign(Ol,{hooks:uLe,plugins:new s9(Ol),COMPOUND:"Compound",SEQUENCE_EXP:"SequenceExpression",IDENTIFIER:"Identifier",MEMBER_EXP:"MemberExpression",LITERAL:"Literal",THIS_EXP:"ThisExpression",CALL_EXP:"CallExpression",UNARY_EXP:"UnaryExpression",BINARY_EXP:"BinaryExpression",ARRAY_EXP:"ArrayExpression",TAB_CODE:9,LF_CODE:10,CR_CODE:13,SPACE_CODE:32,PERIOD_CODE:46,COMMA_CODE:44,SQUOTE_CODE:39,DQUOTE_CODE:34,OPAREN_CODE:40,CPAREN_CODE:41,OBRACK_CODE:91,CBRACK_CODE:93,QUMARK_CODE:63,SEMCOL_CODE:59,COLON_CODE:58,unary_ops:{"-":1,"!":1,"~":1,"+":1},binary_ops:{"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},right_associative:new Set,additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});Ol.max_unop_len=Ol.getMaxKeyLen(Ol.unary_ops);Ol.max_binop_len=Ol.getMaxKeyLen(Ol.binary_ops);var jg=e=>new Ol(e).parse(),fLe=Object.getOwnPropertyNames(Ol);fLe.forEach(e=>{jg[e]===void 0&&e!=="prototype"&&(jg[e]=Ol[e])});jg.Jsep=Ol;var dLe="ConditionalExpression",hLe={name:"ternary",init(e){e.hooks.add("after-expression",function(n){if(n.node&&this.code===e.QUMARK_CODE){this.index++;let i=n.node,o=this.gobbleExpression();if(o||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===e.COLON_CODE){this.index++;let r=this.gobbleExpression();if(r||this.throwError("Expected expression"),n.node={type:dLe,test:i,consequent:o,alternate:r},i.operator&&e.binary_ops[i.operator]<=.9){let s=i;for(;s.right.operator&&e.binary_ops[s.right.operator]<=.9;)s=s.right;n.node.test=s.right,s.right=n.node,n.node=i}}else this.throwError("Expected :")}})}};jg.plugins.register(hLe);var mLe={VARIABLE:0,UNARY:1,BINARY:2,TERNARY:3,CONDITIONAL:4,MEMBER:5,FUNCTION_CALL:6,ARRAY:7,REGEX:8,VARIABLE_IN_STRING:9,LITERAL_NULL:10,LITERAL_BOOLEAN:11,LITERAL_NUMBER:12,LITERAL_STRING:13,LITERAL_COLOR:14,LITERAL_VECTOR:15,LITERAL_REGEX:16,LITERAL_UNDEFINED:17,BUILTIN_VARIABLE:18},dt=Object.freeze(mLe);function Bd(e,t){this._expression=e,e=wLe(e,t),e=PLe(DLe(e)),jg.addBinaryOp("=~",0),jg.addBinaryOp("!~",0);let n;try{n=jg(e)}catch(i){throw new le(i)}this._runtimeAst=gi(this,n)}Object.defineProperties(Bd.prototype,{expression:{get:function(){return this._expression}}});var On={arrayIndex:0,arrayArray:[[]],cartesian2Index:0,cartesian3Index:0,cartesian4Index:0,cartesian2Array:[new z],cartesian3Array:[new h],cartesian4Array:[new oe],reset:function(){this.arrayIndex=0,this.cartesian2Index=0,this.cartesian3Index=0,this.cartesian4Index=0},getArray:function(){this.arrayIndex>=this.arrayArray.length&&this.arrayArray.push([]);let e=this.arrayArray[this.arrayIndex++];return e.length=0,e},getCartesian2:function(){return this.cartesian2Index>=this.cartesian2Array.length&&this.cartesian2Array.push(new z),this.cartesian2Array[this.cartesian2Index++]},getCartesian3:function(){return this.cartesian3Index>=this.cartesian3Array.length&&this.cartesian3Array.push(new h),this.cartesian3Array[this.cartesian3Index++]},getCartesian4:function(){return this.cartesian4Index>=this.cartesian4Array.length&&this.cartesian4Array.push(new oe),this.cartesian4Array[this.cartesian4Index++]}};Bd.prototype.evaluate=function(e,t){On.reset();let n=this._runtimeAst.evaluate(e);return t instanceof H&&n instanceof oe?H.fromCartesian4(n,t):n instanceof z||n instanceof h||n instanceof oe?n.clone(t):n};Bd.prototype.evaluateColor=function(e,t){On.reset();let n=this._runtimeAst.evaluate(e);return H.fromCartesian4(n,t)};Bd.prototype.getShaderFunction=function(e,t,n,i){let o=this.getShaderExpression(t,n);return o=`${i} ${e} { return ${o}; } `,o};Bd.prototype.getShaderExpression=function(e,t){return this._runtimeAst.getShaderExpression(e,t)};Bd.prototype.getVariables=function(){let e=[];return this._runtimeAst.getVariables(e),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var pLe=["!","-","+"],Die=["+","-","*","/","%","===","!==",">",">=","<","<=","&&","||","!~","=~"],YV=/\${(.*?)}/g,_Le=/\\/g,gLe="@#%",yLe=/@#%/g,XV=new H,KV={abs:Fs(Math.abs),sqrt:Fs(Math.sqrt),cos:Fs(Math.cos),sin:Fs(Math.sin),tan:Fs(Math.tan),acos:Fs(Math.acos),asin:Fs(Math.asin),atan:Fs(Math.atan),radians:Fs(R.toRadians),degrees:Fs(R.toDegrees),sign:Fs(R.sign),floor:Fs(Math.floor),ceil:Fs(Math.ceil),round:Fs(Math.round),exp:Fs(Math.exp),exp2:Fs(bLe),log:Fs(Math.log),log2:Fs(TLe),fract:Fs(xLe),length:ALe,normalize:CLe},ZV={atan2:jV(Math.atan2,!1),pow:jV(Math.pow,!1),min:jV(Math.min,!0),max:jV(Math.max,!0),distance:ELe,dot:SLe,cross:vLe},l9={clamp:Pie(R.clamp,!0),mix:Pie(R.lerp,!0)};function xLe(e){return e-Math.floor(e)}function bLe(e){return Math.pow(2,e)}function TLe(e){return R.log2(e)}function Fs(e){return function(t,n){if(typeof n=="number")return e(n);if(n instanceof z)return z.fromElements(e(n.x),e(n.y),On.getCartesian2());if(n instanceof h)return h.fromElements(e(n.x),e(n.y),e(n.z),On.getCartesian3());if(n instanceof oe)return oe.fromElements(e(n.x),e(n.y),e(n.z),e(n.w),On.getCartesian4());throw new le(`Function "${t}" requires a vector or number argument. Argument is ${n}.`)}}function jV(e,t){return function(n,i,o){if(t&&typeof o=="number"){if(typeof i=="number")return e(i,o);if(i instanceof z)return z.fromElements(e(i.x,o),e(i.y,o),On.getCartesian2());if(i instanceof h)return h.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),On.getCartesian3());if(i instanceof oe)return oe.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),e(i.w,o),On.getCartesian4())}if(typeof i=="number"&&typeof o=="number")return e(i,o);if(i instanceof z&&o instanceof z)return z.fromElements(e(i.x,o.x),e(i.y,o.y),On.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),On.getCartesian3());if(i instanceof oe&&o instanceof oe)return oe.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),e(i.w,o.w),On.getCartesian4());throw new le(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i} and ${o}.`)}}function Pie(e,t){return function(n,i,o,r){if(t&&typeof r=="number"){if(typeof i=="number"&&typeof o=="number")return e(i,o,r);if(i instanceof z&&o instanceof z)return z.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),On.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),On.getCartesian3());if(i instanceof oe&&o instanceof oe)return oe.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),e(i.w,o.w,r),On.getCartesian4())}if(typeof i=="number"&&typeof o=="number"&&typeof r=="number")return e(i,o,r);if(i instanceof z&&o instanceof z&&r instanceof z)return z.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),On.getCartesian2());if(i instanceof h&&o instanceof h&&r instanceof h)return h.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),On.getCartesian3());if(i instanceof oe&&o instanceof oe&&r instanceof oe)return oe.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),e(i.w,o.w,r.w),On.getCartesian4());throw new le(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i}, ${o}, and ${r}.`)}}function ALe(e,t){if(typeof t=="number")return Math.abs(t);if(t instanceof z)return z.magnitude(t);if(t instanceof h)return h.magnitude(t);if(t instanceof oe)return oe.magnitude(t);throw new le(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function CLe(e,t){if(typeof t=="number")return 1;if(t instanceof z)return z.normalize(t,On.getCartesian2());if(t instanceof h)return h.normalize(t,On.getCartesian3());if(t instanceof oe)return oe.normalize(t,On.getCartesian4());throw new le(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function ELe(e,t,n){if(typeof t=="number"&&typeof n=="number")return Math.abs(t-n);if(t instanceof z&&n instanceof z)return z.distance(t,n);if(t instanceof h&&n instanceof h)return h.distance(t,n);if(t instanceof oe&&n instanceof oe)return oe.distance(t,n);throw new le(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function SLe(e,t,n){if(typeof t=="number"&&typeof n=="number")return t*n;if(t instanceof z&&n instanceof z)return z.dot(t,n);if(t instanceof h&&n instanceof h)return h.dot(t,n);if(t instanceof oe&&n instanceof oe)return oe.dot(t,n);throw new le(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function vLe(e,t,n){if(t instanceof h&&n instanceof h)return h.cross(t,n,On.getCartesian3());throw new le(`Function "${e}" requires vec3 arguments. Arguments are ${t} and ${n}.`)}function gt(e,t,n,i,o){this._type=e,this._value=t,this._left=n,this._right=i,this._test=o,this.evaluate=void 0,VLe(this)}function wLe(e,t){if(!l(t))return e;for(let n in t)if(t.hasOwnProperty(n)){let i=new RegExp(`\\$\\{${n}\\}`,"g"),o=`(${t[n]})`;l(o)&&(e=e.replace(i,o))}return e}function DLe(e){return e.replace(_Le,gLe)}function c9(e){return e.replace(yLe,"\\")}function PLe(e){let t=e,n="",i=t.indexOf("${");for(;i>=0;){let o=t.indexOf("'"),r=t.indexOf('"'),s;if(o>=0&&o<i)s=t.indexOf("'",o+1),n+=t.substr(0,s+1),t=t.substr(s+1),i=t.indexOf("${");else if(r>=0&&r<i)s=t.indexOf('"',r+1),n+=t.substr(0,s+1),t=t.substr(s+1),i=t.indexOf("${");else{n+=t.substr(0,i);let a=t.indexOf("}");if(a<0)throw new le("Unmatched {.");n+=`czm_${t.substr(i+2,a-(i+2))}`,t=t.substr(a+1),i=t.indexOf("${")}}return n+=t,n}function ILe(e){let t=typeof e.value;if(e.value===null)return new gt(dt.LITERAL_NULL,null);if(t==="boolean")return new gt(dt.LITERAL_BOOLEAN,e.value);if(t==="number")return new gt(dt.LITERAL_NUMBER,e.value);if(t==="string")return e.value.indexOf("${")>=0?new gt(dt.VARIABLE_IN_STRING,e.value):new gt(dt.LITERAL_STRING,c9(e.value))}function RLe(e,t){let n=t.arguments,i=n.length,o,r,s,a;if(t.callee.type==="MemberExpression"){o=t.callee.property.name;let c=t.callee.object;if(o==="test"||o==="exec"){if(!l(c.callee)||c.callee.name!=="regExp")throw new le(`${o} is not a function.`);return i===0?o==="test"?new gt(dt.LITERAL_BOOLEAN,!1):new gt(dt.LITERAL_NULL,null):(s=gi(e,c),a=gi(e,n[0]),new gt(dt.FUNCTION_CALL,o,s,a))}else if(o==="toString")return r=gi(e,c),new gt(dt.FUNCTION_CALL,o,r);throw new le(`Unexpected function call "${o}".`)}if(o=t.callee.name,o==="color"){if(i===0)return new gt(dt.LITERAL_COLOR,o);if(r=gi(e,n[0]),l(n[1])){let c=gi(e,n[1]);return new gt(dt.LITERAL_COLOR,o,[r,c])}return new gt(dt.LITERAL_COLOR,o,[r])}else if(o==="rgb"||o==="hsl"){if(i<3)throw new le(`${o} requires three arguments.`);return r=[gi(e,n[0]),gi(e,n[1]),gi(e,n[2])],new gt(dt.LITERAL_COLOR,o,r)}else if(o==="rgba"||o==="hsla"){if(i<4)throw new le(`${o} requires four arguments.`);return r=[gi(e,n[0]),gi(e,n[1]),gi(e,n[2]),gi(e,n[3])],new gt(dt.LITERAL_COLOR,o,r)}else if(o==="vec2"||o==="vec3"||o==="vec4"){r=new Array(i);for(let c=0;c<i;++c)r[c]=gi(e,n[c]);return new gt(dt.LITERAL_VECTOR,o,r)}else{if(o==="isNaN"||o==="isFinite")return i===0?o==="isNaN"?new gt(dt.LITERAL_BOOLEAN,!0):new gt(dt.LITERAL_BOOLEAN,!1):(r=gi(e,n[0]),new gt(dt.UNARY,o,r));if(o==="isExactClass"||o==="isClass"){if(i<1||i>1)throw new le(`${o} requires exactly one argument.`);return r=gi(e,n[0]),new gt(dt.UNARY,o,r)}else if(o==="getExactClassName"){if(i>0)throw new le(`${o} does not take any argument.`);return new gt(dt.UNARY,o)}else if(l(KV[o])){if(i!==1)throw new le(`${o} requires exactly one argument.`);return r=gi(e,n[0]),new gt(dt.UNARY,o,r)}else if(l(ZV[o])){if(i!==2)throw new le(`${o} requires exactly two arguments.`);return s=gi(e,n[0]),a=gi(e,n[1]),new gt(dt.BINARY,o,s,a)}else if(l(l9[o])){if(i!==3)throw new le(`${o} requires exactly three arguments.`);s=gi(e,n[0]),a=gi(e,n[1]);let c=gi(e,n[2]);return new gt(dt.TERNARY,o,s,a,c)}else{if(o==="Boolean")return i===0?new gt(dt.LITERAL_BOOLEAN,!1):(r=gi(e,n[0]),new gt(dt.UNARY,o,r));if(o==="Number")return i===0?new gt(dt.LITERAL_NUMBER,0):(r=gi(e,n[0]),new gt(dt.UNARY,o,r));if(o==="String")return i===0?new gt(dt.LITERAL_STRING,""):(r=gi(e,n[0]),new gt(dt.UNARY,o,r));if(o==="regExp")return OLe(e,t)}}throw new le(`Unexpected function call "${o}".`)}function OLe(e,t){let n=t.arguments;if(n.length===0)return new gt(dt.LITERAL_REGEX,new RegExp);let i=gi(e,n[0]),o;if(n.length>1){let r=gi(e,n[1]);if(a9(i)&&a9(r)){try{o=new RegExp(c9(String(i._value)),r._value)}catch(s){throw new le(s)}return new gt(dt.LITERAL_REGEX,o)}return new gt(dt.REGEX,i,r)}if(a9(i)){try{o=new RegExp(c9(String(i._value)))}catch(r){throw new le(r)}return new gt(dt.LITERAL_REGEX,o)}return new gt(dt.REGEX,i)}function MLe(e){if(BLe(e.name)){let t=kLe(e.name);return t.substr(0,8)==="tiles3d_"?new gt(dt.BUILTIN_VARIABLE,t):new gt(dt.VARIABLE,t)}else{if(e.name==="NaN")return new gt(dt.LITERAL_NUMBER,NaN);if(e.name==="Infinity")return new gt(dt.LITERAL_NUMBER,1/0);if(e.name==="undefined")return new gt(dt.LITERAL_UNDEFINED,void 0)}throw new le(`${e.name} is not defined.`)}function LLe(e){let t=e.property.name;if(t==="PI")return new gt(dt.LITERAL_NUMBER,Math.PI);if(t==="E")return new gt(dt.LITERAL_NUMBER,Math.E)}function NLe(e){if(e.property.name==="POSITIVE_INFINITY")return new gt(dt.LITERAL_NUMBER,Number.POSITIVE_INFINITY)}function FLe(e,t){if(t.object.name==="Math")return LLe(t);if(t.object.name==="Number")return NLe(t);let n,i=gi(e,t.object);return t.computed?(n=gi(e,t.property),new gt(dt.MEMBER,"brackets",i,n)):(n=new gt(dt.LITERAL_STRING,t.property.name),new gt(dt.MEMBER,"dot",i,n))}function a9(e){return e._type>=dt.LITERAL_NULL}function BLe(e){return e.substr(0,4)==="czm_"}function kLe(e){return e.substr(4)}function gi(e,t){let n,i,o,r;if(t.type==="Literal")n=ILe(t);else if(t.type==="CallExpression")n=RLe(e,t);else if(t.type==="Identifier")n=MLe(t);else if(t.type==="UnaryExpression"){i=t.operator;let s=gi(e,t.argument);if(pLe.indexOf(i)>-1)n=new gt(dt.UNARY,i,s);else throw new le(`Unexpected operator "${i}".`)}else if(t.type==="BinaryExpression")if(i=t.operator,o=gi(e,t.left),r=gi(e,t.right),Die.indexOf(i)>-1)n=new gt(dt.BINARY,i,o,r);else throw new le(`Unexpected operator "${i}".`);else if(t.type==="LogicalExpression")i=t.operator,o=gi(e,t.left),r=gi(e,t.right),Die.indexOf(i)>-1&&(n=new gt(dt.BINARY,i,o,r));else if(t.type==="ConditionalExpression"){let s=gi(e,t.test);o=gi(e,t.consequent),r=gi(e,t.alternate),n=new gt(dt.CONDITIONAL,"?",o,r,s)}else if(t.type==="MemberExpression")n=FLe(e,t);else if(t.type==="ArrayExpression"){let s=[];for(let a=0;a<t.elements.length;a++)s[a]=gi(e,t.elements[a]);n=new gt(dt.ARRAY,s)}else throw t.type==="Compound"?new le("Provide exactly one expression."):new le("Cannot parse expression.");return n}function VLe(e){e._type===dt.CONDITIONAL?e.evaluate=e._evaluateConditional:e._type===dt.FUNCTION_CALL?e._value==="test"?e.evaluate=e._evaluateRegExpTest:e._value==="exec"?e.evaluate=e._evaluateRegExpExec:e._value==="toString"&&(e.evaluate=e._evaluateToString):e._type===dt.UNARY?e._value==="!"?e.evaluate=e._evaluateNot:e._value==="-"?e.evaluate=e._evaluateNegative:e._value==="+"?e.evaluate=e._evaluatePositive:e._value==="isNaN"?e.evaluate=e._evaluateNaN:e._value==="isFinite"?e.evaluate=e._evaluateIsFinite:e._value==="isExactClass"?e.evaluate=e._evaluateIsExactClass:e._value==="isClass"?e.evaluate=e._evaluateIsClass:e._value==="getExactClassName"?e.evaluate=e._evaluateGetExactClassName:e._value==="Boolean"?e.evaluate=e._evaluateBooleanConversion:e._value==="Number"?e.evaluate=e._evaluateNumberConversion:e._value==="String"?e.evaluate=e._evaluateStringConversion:l(KV[e._value])&&(e.evaluate=zLe(e._value)):e._type===dt.BINARY?e._value==="+"?e.evaluate=e._evaluatePlus:e._value==="-"?e.evaluate=e._evaluateMinus:e._value==="*"?e.evaluate=e._evaluateTimes:e._value==="/"?e.evaluate=e._evaluateDivide:e._value==="%"?e.evaluate=e._evaluateMod:e._value==="==="?e.evaluate=e._evaluateEqualsStrict:e._value==="!=="?e.evaluate=e._evaluateNotEqualsStrict:e._value==="<"?e.evaluate=e._evaluateLessThan:e._value==="<="?e.evaluate=e._evaluateLessThanOrEquals:e._value===">"?e.evaluate=e._evaluateGreaterThan:e._value===">="?e.evaluate=e._evaluateGreaterThanOrEquals:e._value==="&&"?e.evaluate=e._evaluateAnd:e._value==="||"?e.evaluate=e._evaluateOr:e._value==="=~"?e.evaluate=e._evaluateRegExpMatch:e._value==="!~"?e.evaluate=e._evaluateRegExpNotMatch:l(ZV[e._value])&&(e.evaluate=HLe(e._value)):e._type===dt.TERNARY?e.evaluate=GLe(e._value):e._type===dt.MEMBER?e._value==="brackets"?e.evaluate=e._evaluateMemberBrackets:e.evaluate=e._evaluateMemberDot:e._type===dt.ARRAY?e.evaluate=e._evaluateArray:e._type===dt.VARIABLE?e.evaluate=e._evaluateVariable:e._type===dt.VARIABLE_IN_STRING?e.evaluate=e._evaluateVariableString:e._type===dt.LITERAL_COLOR?e.evaluate=e._evaluateLiteralColor:e._type===dt.LITERAL_VECTOR?e.evaluate=e._evaluateLiteralVector:e._type===dt.LITERAL_STRING?e.evaluate=e._evaluateLiteralString:e._type===dt.REGEX?e.evaluate=e._evaluateRegExp:e._type===dt.BUILTIN_VARIABLE?e._value==="tiles3d_tileset_time"&&(e.evaluate=ULe):e.evaluate=e._evaluateLiteral}function ULe(e){return l(e)?e.content.tileset.timeSinceLoad:0}function zLe(e){let t=KV[e];return function(n){let i=this._left.evaluate(n);return t(e,i)}}function HLe(e){let t=ZV[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n);return t(e,i,o)}}function GLe(e){let t=l9[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n),r=this._test.evaluate(n);return t(e,i,o,r)}}function $V(e,t){if(l(e))return e.getPropertyInherited(t)}gt.prototype._evaluateLiteral=function(){return this._value};gt.prototype._evaluateLiteralColor=function(e){let t=XV,n=this._left;if(this._value==="color")l(n)?n.length>1?(H.fromCssColorString(n[0].evaluate(e),t),t.alpha=n[1].evaluate(e)):H.fromCssColorString(n[0].evaluate(e),t):H.fromBytes(255,255,255,255,t);else if(this._value==="rgb")H.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),255,t);else if(this._value==="rgba"){let i=n[3].evaluate(e)*255;H.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),i,t)}else this._value==="hsl"?H.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),1,t):this._value==="hsla"&&H.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),n[3].evaluate(e),t);return oe.fromColor(t,On.getCartesian4())};gt.prototype._evaluateLiteralVector=function(e){let t=On.getArray(),n=this._value,i=this._left,o=i.length;for(let a=0;a<o;++a){let c=i[a].evaluate(e);if(typeof c=="number")t.push(c);else if(c instanceof z)t.push(c.x,c.y);else if(c instanceof h)t.push(c.x,c.y,c.z);else if(c instanceof oe)t.push(c.x,c.y,c.z,c.w);else throw new le(`${n} argument must be a vector or number. Argument is ${c}.`)}let r=t.length,s=parseInt(n.charAt(3));if(r===0)throw new le(`Invalid ${n} constructor. No valid arguments.`);if(r<s&&r>1)throw new le(`Invalid ${n} constructor. Not enough arguments.`);if(r>s&&o>1)throw new le(`Invalid ${n} constructor. Too many arguments.`);if(r===1){let a=t[0];t.push(a,a,a)}if(n==="vec2")return z.fromArray(t,0,On.getCartesian2());if(n==="vec3")return h.fromArray(t,0,On.getCartesian3());if(n==="vec4")return oe.fromArray(t,0,On.getCartesian4())};gt.prototype._evaluateLiteralString=function(){return this._value};gt.prototype._evaluateVariableString=function(e){let t=this._value,n=YV.exec(t);for(;n!==null;){let i=n[0],o=n[1],r=$V(e,o);l(r)||(r=""),t=t.replace(i,r),n=YV.exec(t)}return t};gt.prototype._evaluateVariable=function(e){return $V(e,this._value)};function Ux(e){return e._value==="feature"}gt.prototype._evaluateMemberDot=function(e){if(Ux(this._left))return $V(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof z||t instanceof h||t instanceof oe){if(n==="r")return t.x;if(n==="g")return t.y;if(n==="b")return t.z;if(n==="a")return t.w}return t[n]};gt.prototype._evaluateMemberBrackets=function(e){if(Ux(this._left))return $V(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof z||t instanceof h||t instanceof oe){if(n===0||n==="r")return t.x;if(n===1||n==="g")return t.y;if(n===2||n==="b")return t.z;if(n===3||n==="a")return t.w}return t[n]};gt.prototype._evaluateArray=function(e){let t=[];for(let n=0;n<this._value.length;n++)t[n]=this._value[n].evaluate(e);return t};gt.prototype._evaluateNot=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new le(`Operator "!" requires a boolean argument. Argument is ${t}.`);return!t};gt.prototype._evaluateNegative=function(e){let t=this._left.evaluate(e);if(t instanceof z)return z.negate(t,On.getCartesian2());if(t instanceof h)return h.negate(t,On.getCartesian3());if(t instanceof oe)return oe.negate(t,On.getCartesian4());if(typeof t=="number")return-t;throw new le(`Operator "-" requires a vector or number argument. Argument is ${t}.`)};gt.prototype._evaluatePositive=function(e){let t=this._left.evaluate(e);if(!(t instanceof z||t instanceof h||t instanceof oe||typeof t=="number"))throw new le(`Operator "+" requires a vector or number argument. Argument is ${t}.`);return t};gt.prototype._evaluateLessThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new le(`Operator "<" requires number arguments. Arguments are ${t} and ${n}.`);return t<n};gt.prototype._evaluateLessThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new le(`Operator "<=" requires number arguments. Arguments are ${t} and ${n}.`);return t<=n};gt.prototype._evaluateGreaterThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new le(`Operator ">" requires number arguments. Arguments are ${t} and ${n}.`);return t>n};gt.prototype._evaluateGreaterThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new le(`Operator ">=" requires number arguments. Arguments are ${t} and ${n}.`);return t>=n};gt.prototype._evaluateOr=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new le(`Operator "||" requires boolean arguments. First argument is ${t}.`);if(t)return!0;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new le(`Operator "||" requires boolean arguments. Second argument is ${n}.`);return t||n};gt.prototype._evaluateAnd=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new le(`Operator "&&" requires boolean arguments. First argument is ${t}.`);if(!t)return!1;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new le(`Operator "&&" requires boolean arguments. Second argument is ${n}.`);return t&&n};gt.prototype._evaluatePlus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.add(t,n,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.add(t,n,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.add(t,n,On.getCartesian4());if(typeof t=="string"||typeof n=="string")return t+n;if(typeof t=="number"&&typeof n=="number")return t+n;throw new le(`Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateMinus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.subtract(t,n,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.subtract(t,n,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.subtract(t,n,On.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t-n;throw new le(`Operator "-" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateTimes=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.multiplyComponents(t,n,On.getCartesian2());if(n instanceof z&&typeof t=="number")return z.multiplyByScalar(n,t,On.getCartesian2());if(t instanceof z&&typeof n=="number")return z.multiplyByScalar(t,n,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.multiplyComponents(t,n,On.getCartesian3());if(n instanceof h&&typeof t=="number")return h.multiplyByScalar(n,t,On.getCartesian3());if(t instanceof h&&typeof n=="number")return h.multiplyByScalar(t,n,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.multiplyComponents(t,n,On.getCartesian4());if(n instanceof oe&&typeof t=="number")return oe.multiplyByScalar(n,t,On.getCartesian4());if(t instanceof oe&&typeof n=="number")return oe.multiplyByScalar(t,n,On.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t*n;throw new le(`Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateDivide=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.divideComponents(t,n,On.getCartesian2());if(t instanceof z&&typeof n=="number")return z.divideByScalar(t,n,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.divideComponents(t,n,On.getCartesian3());if(t instanceof h&&typeof n=="number")return h.divideByScalar(t,n,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.divideComponents(t,n,On.getCartesian4());if(t instanceof oe&&typeof n=="number")return oe.divideByScalar(t,n,On.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t/n;throw new le(`Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateMod=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.fromElements(t.x%n.x,t.y%n.y,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,t.w%n.w,On.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t%n;throw new le(`Operator "%" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof z&&t instanceof z||n instanceof h&&t instanceof h||n instanceof oe&&t instanceof oe?t.equals(n):t===n};gt.prototype._evaluateNotEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof z&&t instanceof z||n instanceof h&&t instanceof h||n instanceof oe&&t instanceof oe?!t.equals(n):t!==n};gt.prototype._evaluateConditional=function(e){let t=this._test.evaluate(e);if(typeof t!="boolean")throw new le(`Conditional argument of conditional expression must be a boolean. Argument is ${t}.`);return t?this._left.evaluate(e):this._right.evaluate(e)};gt.prototype._evaluateNaN=function(e){return isNaN(this._left.evaluate(e))};gt.prototype._evaluateIsFinite=function(e){return isFinite(this._left.evaluate(e))};gt.prototype._evaluateIsExactClass=function(e){return l(e)?e.isExactClass(this._left.evaluate(e)):!1};gt.prototype._evaluateIsClass=function(e){return l(e)?e.isClass(this._left.evaluate(e)):!1};gt.prototype._evaluateGetExactClassName=function(e){if(l(e))return e.getExactClassName()};gt.prototype._evaluateBooleanConversion=function(e){return!!this._left.evaluate(e)};gt.prototype._evaluateNumberConversion=function(e){return Number(this._left.evaluate(e))};gt.prototype._evaluateStringConversion=function(e){return String(this._left.evaluate(e))};gt.prototype._evaluateRegExp=function(e){let t=this._value.evaluate(e),n="";l(this._left)&&(n=this._left.evaluate(e));let i;try{i=new RegExp(t,n)}catch(o){throw new le(o)}return i};gt.prototype._evaluateRegExpTest=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new le(`RegExp.test requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);return t.test(n)};gt.prototype._evaluateRegExpMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return t.test(n);if(n instanceof RegExp&&typeof t=="string")return n.test(t);throw new le(`Operator "=~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateRegExpNotMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return!t.test(n);if(n instanceof RegExp&&typeof t=="string")return!n.test(t);throw new le(`Operator "!~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateRegExpExec=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new le(`RegExp.exec requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);let i=t.exec(n);return l(i)?i[1]:null};gt.prototype._evaluateToString=function(e){let t=this._left.evaluate(e);if(t instanceof RegExp||t instanceof z||t instanceof h||t instanceof oe)return String(t);throw new le(`Unexpected function call "${this._value}".`)};function Iie(e){let t=e._left,n=t.length;for(let a=0;a<n;++a)if(t[a]._type!==dt.LITERAL_NUMBER)return;let i=t[0]._value,o=t[1]._value,r=t[2]._value,s=n===4?t[3]._value:1;return H.fromHsl(i,o,r,s,XV)}function Rie(e){let t=e._left,n=t.length;for(let o=0;o<n;++o)if(t[o]._type!==dt.LITERAL_NUMBER)return;let i=XV;return i.red=t[0]._value/255,i.green=t[1]._value/255,i.blue=t[2]._value/255,i.alpha=n===4?t[3]._value:1,i}function qg(e){return e%1===0?e.toFixed(1):e.toString()}function WLe(e){let t=qg(e.red),n=qg(e.green),i=qg(e.blue);return`vec3(${t}, ${n}, ${i})`}function qV(e){let t=qg(e.red),n=qg(e.green),i=qg(e.blue),o=qg(e.alpha);return`vec4(${t}, ${n}, ${i}, ${o})`}function Oie(e,t,n,i){let o=e.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=e[s].getShaderExpression(t,n,i);return r}function Mie(e,t){return l(t[e])?t[e]:Bd.NULL_SENTINEL}Bd.NULL_SENTINEL="czm_infinity";gt.prototype.getShaderExpression=function(e,t,n){let i,o,r,s,a=this._type,c=this._value;l(this._left)&&(Array.isArray(this._left)?o=Oie(this._left,e,t,this):o=this._left.getShaderExpression(e,t,this)),l(this._right)&&(r=this._right.getShaderExpression(e,t,this)),l(this._test)&&(s=this._test.getShaderExpression(e,t,this)),Array.isArray(this._value)&&(c=Oie(this._value,e,t,this));let u,f,d;switch(a){case dt.VARIABLE:return Ux(this)?void 0:Mie(c,e);case dt.UNARY:if(c==="Boolean")return`bool(${o})`;if(c==="Number")return`float(${o})`;if(c==="round")return`floor(${o} + 0.5)`;if(l(KV[c]))return`${c}(${o})`;if(c==="isNaN")return`(${o} != ${o})`;if(c==="isFinite")return`(abs(${o}) < czm_infinity)`;if(c==="String"||c==="isExactClass"||c==="isClass"||c==="getExactClassName")throw new le(`Error generating style shader: "${c}" is not supported.`);return c+o;case dt.BINARY:return c==="%"?`mod(${o}, ${r})`:c==="==="?`(${o} == ${r})`:c==="!=="?`(${o} != ${r})`:c==="atan2"?`atan(${o}, ${r})`:l(ZV[c])?`${c}(${o}, ${r})`:`(${o} ${c} ${r})`;case dt.TERNARY:if(l(l9[c]))return`${c}(${o}, ${r}, ${s})`;break;case dt.CONDITIONAL:return`(${s} ? ${o} : ${r})`;case dt.MEMBER:return Ux(this._left)?Mie(r,e):r==="r"||r==="x"||r==="0.0"?`${o}[0]`:r==="g"||r==="y"||r==="1.0"?`${o}[1]`:r==="b"||r==="z"||r==="2.0"?`${o}[2]`:r==="a"||r==="w"||r==="3.0"?`${o}[3]`:`${o}[int(${r})]`;case dt.FUNCTION_CALL:throw new le(`Error generating style shader: "${c}" is not supported.`);case dt.ARRAY:if(c.length===4)return`vec4(${c[0]}, ${c[1]}, ${c[2]}, ${c[3]})`;if(c.length===3)return`vec3(${c[0]}, ${c[1]}, ${c[2]})`;if(c.length===2)return`vec2(${c[0]}, ${c[1]})`;throw new le("Error generating style shader: Invalid array length. Array length should be 2, 3, or 4.");case dt.REGEX:throw new le("Error generating style shader: Regular expressions are not supported.");case dt.VARIABLE_IN_STRING:throw new le("Error generating style shader: Converting a variable to a string is not supported.");case dt.LITERAL_NULL:return Bd.NULL_SENTINEL;case dt.LITERAL_BOOLEAN:return c?"true":"false";case dt.LITERAL_NUMBER:return qg(c);case dt.LITERAL_STRING:if(l(n)&&n._type===dt.MEMBER&&(c==="r"||c==="g"||c==="b"||c==="a"||c==="x"||c==="y"||c==="z"||c==="w"||Ux(n._left)))return c;if(i=H.fromCssColorString(c,XV),l(i))return WLe(i);throw new le("Error generating style shader: String literals are not supported.");case dt.LITERAL_COLOR:if(u=o,c==="color"){if(l(u)){if(u.length>1){let p=u[0],g=u[1];return g!=="1.0"&&(t.translucent=!0),`vec4(${p}, ${g})`}}else return"vec4(1.0)";return`vec4(${u[0]}, 1.0)`}else{if(c==="rgb")return i=Rie(this),l(i)?qV(i):`vec4(${u[0]} / 255.0, ${u[1]} / 255.0, ${u[2]} / 255.0, 1.0)`;if(c==="rgba")return u[3]!=="1.0"&&(t.translucent=!0),i=Rie(this),l(i)?qV(i):`vec4(${u[0]} / 255.0, ${u[1]} / 255.0, ${u[2]} / 255.0, ${u[3]})`;if(c==="hsl")return i=Iie(this),l(i)?qV(i):`vec4(czm_HSLToRGB(vec3(${u[0]}, ${u[1]}, ${u[2]})), 1.0)`;if(c==="hsla")return i=Iie(this),l(i)?(i.alpha!==1&&(t.translucent=!0),qV(i)):(u[3]!=="1.0"&&(t.translucent=!0),`vec4(czm_HSLToRGB(vec3(${u[0]}, ${u[1]}, ${u[2]})), ${u[3]})`)}break;case dt.LITERAL_VECTOR:f=o.length,d=`${c}(`;for(let p=0;p<f;++p)d+=o[p],p<f-1&&(d+=", ");return d+=")",d;case dt.LITERAL_REGEX:throw new le("Error generating style shader: Regular expressions are not supported.");case dt.LITERAL_UNDEFINED:return Bd.NULL_SENTINEL;case dt.BUILTIN_VARIABLE:if(c==="tiles3d_tileset_time")return c}};gt.prototype.getVariables=function(e,t){let n,i,o,r=this._type,s=this._value;if(l(this._left))if(Array.isArray(this._left))for(n=this._left,i=n.length,o=0;o<i;++o)n[o].getVariables(e,this);else this._left.getVariables(e,this);if(l(this._right)&&this._right.getVariables(e,this),l(this._test)&&this._test.getVariables(e,this),Array.isArray(this._value))for(n=this._value,i=n.length,o=0;o<i;++o)n[o].getVariables(e,this);let a;switch(r){case dt.VARIABLE:Ux(this)||e.push(s);break;case dt.VARIABLE_IN_STRING:for(a=YV.exec(s);a!==null;)e.push(a[1]),a=YV.exec(s);break;case dt.LITERAL_STRING:l(t)&&t._type===dt.MEMBER&&Ux(t._left)&&e.push(s);break}};var Af=Bd;function kp(e){e=y(e,y.EMPTY_OBJECT),this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._vertexBatchIds=e.vertexBatchIds,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=e.indexOffsets,this._batchedIndices=e.batchedIndices,this._boundingVolume=e.boundingVolume,this._boundingVolumes=e.boundingVolumes,this._center=y(e.center,h.ZERO),this._va=void 0,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._uniformMap=void 0,this._vaSwap=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._rsWireframe=void 0,this._commands=[],this._commandsIgnoreShow=[],this._pickCommands=[],this._constantColor=H.clone(H.WHITE),this._highlightColor=this._constantColor,this._batchDirty=!0,this._pickCommandsDirty=!0,this._framesSinceLastRebatch=0,this._updatingAllCommands=!1,this._trianglesLength=this._indices.length/3,this._geometryByteLength=this._indices.byteLength+this._positions.byteLength+this._vertexBatchIds.byteLength,this.debugWireframe=!1,this._debugWireframe=this.debugWireframe,this._wireframeDirty=!1,this.forceRebatch=!1,this.classificationType=y(e.classificationType,Vn.BOTH),this._vertexShaderSource=e._vertexShaderSource,this._fragmentShaderSource=e._fragmentShaderSource,this._attributeLocations=e._attributeLocations,this._uniformMap=e._uniformMap,this._pickId=e._pickId,this._modelMatrix=e._modelMatrix,this._boundingSphere=e._boundingSphere,this._batchIdLookUp={};let t=this._batchIds.length;for(let n=0;n<t;++n){let i=this._batchIds[n];this._batchIdLookUp[i]=n}}Object.defineProperties(kp.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}}});var jLe={position:0,a_batchId:1};function qLe(e,t){if(l(e._va))return;let n=ct.createVertexBuffer({context:t,typedArray:e._positions,usage:Fe.STATIC_DRAW}),i=ct.createVertexBuffer({context:t,typedArray:e._vertexBatchIds,usage:Fe.STATIC_DRAW}),o=ct.createIndexBuffer({context:t,typedArray:e._indices,usage:Fe.DYNAMIC_DRAW,indexDatatype:e._indices.BYTES_PER_ELEMENT===2?Ne.UNSIGNED_SHORT:Ne.UNSIGNED_INT}),r=[{index:0,vertexBuffer:n,componentDatatype:X.fromTypedArray(e._positions),componentsPerAttribute:3},{index:1,vertexBuffer:i,componentDatatype:X.fromTypedArray(e._vertexBatchIds),componentsPerAttribute:1}];e._va=new ei({context:t,attributes:r,indexBuffer:o}),t.webgl2&&(e._vaSwap=new ei({context:t,attributes:r,indexBuffer:ct.createIndexBuffer({context:t,sizeInBytes:o.sizeInBytes,usage:Fe.DYNAMIC_DRAW,indexDatatype:o.indexDatatype})})),e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0}function YLe(e,t){if(l(e._sp))return;let n=e._batchTable,i=y(e._attributeLocations,jLe),o=e._pickId,r=e._vertexShaderSource,s=e._fragmentShaderSource;if(l(r)){e._sp=$t.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i}),e._spStencil=e._sp,s=ze.replaceMain(s,"czm_non_pick_main"),s=`${s}void main() { czm_non_pick_main(); out_FragColor = ${o}; } `,e._spPick=$t.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i});return}let a=n.getVertexShaderCallback(!1,"a_batchId",void 0)(cC),c=n.getFragmentShaderCallback(!1,void 0,!0)(Ng);o=n.getPickId();let u=new ze({sources:[a]}),f=new ze({defines:["VECTOR_TILE"],sources:[c]});e._sp=$t.fromCache({context:t,vertexShaderSource:u,fragmentShaderSource:f,attributeLocations:i}),u=new ze({sources:[cC]}),f=new ze({defines:["VECTOR_TILE"],sources:[Ng]}),e._spStencil=$t.fromCache({context:t,vertexShaderSource:u,fragmentShaderSource:f,attributeLocations:i}),c=ze.replaceMain(c,"czm_non_pick_main"),c=`${c} void main() { czm_non_pick_main(); out_FragColor = ${o}; } `;let d=new ze({sources:[a]}),p=new ze({defines:["VECTOR_TILE"],sources:[c]});e._spPick=$t.fromCache({context:t,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:i})}function Lie(e){let t=e?Un.EQUAL:Un.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:t,frontOperation:{fail:lt.KEEP,zFail:lt.DECREMENT_WRAP,zPass:lt.KEEP},backFunction:t,backOperation:{fail:lt.KEEP,zFail:lt.INCREMENT_WRAP,zPass:lt.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:tc.LESS_OR_EQUAL},depthMask:!1}}var XLe={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND},KLe={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function ZLe(e){l(e._rsStencilDepthPass)||(e._rsStencilDepthPass=Ve.fromCache(Lie(!1)),e._rsStencilDepthPass3DTiles=Ve.fromCache(Lie(!0)),e._rsColorPass=Ve.fromCache(XLe),e._rsPickPass=Ve.fromCache(KLe))}var zx=new F,Nie=new h;function $Le(e,t){if(l(e._uniformMap))return;let n={u_modifiedModelViewProjection:function(){let i=t.uniformState.view,o=t.uniformState.projection;return F.clone(i,zx),F.multiplyByPoint(zx,e._center,Nie),F.setTranslation(zx,Nie,zx),F.multiply(o,zx,zx),zx},u_highlightColor:function(){return e._highlightColor}};e._uniformMap=e._batchTable.getUniformMapCallback()(n)}function u9(e,t,n,i,o,r,s){let a=e.constructor.BYTES_PER_ELEMENT,c=r.length;for(let u=0;u<c;++u){let f=r[u],d=s[f],p=i[d],g=o[d],m=new e.constructor(e.buffer,a*p,g);t.set(m,n),i[d]=n,n+=g}return n}function QLe(e,t){let n=e._indices,i=e._indexOffsets,o=e._indexCounts,r=e._batchIdLookUp,s=new n.constructor(n.length),a=t.pop(),c=[a],u=u9(n,s,0,i,o,a.batchIds,r);for(a.offset=0,a.count=u;t.length>0;){let f=t.pop();if(H.equals(f.color,a.color))u=u9(n,s,u,i,o,f.batchIds,r),a.batchIds=a.batchIds.concat(f.batchIds),a.count=u-a.offset;else{let d=u;u=u9(n,s,u,i,o,f.batchIds,r),f.offset=d,f.count=u-d,c.push(f),a=f}}e._va.indexBuffer.copyFromArrayView(s),e._indices=s,e._batchedIndices=c}function f9(e,t,n,i,o,r,s){let a=e.bytesPerIndex,c=r.length;for(let u=0;u<c;++u){let f=r[u],d=s[f],p=i[d],g=o[d];t.copyFromBuffer(e,p*a,n*a,g*a),i[d]=n,n+=g}return n}function JLe(e,t){let n=e._indexOffsets,i=e._indexCounts,o=e._batchIdLookUp,r=t.pop(),s=[r],a=e._va.indexBuffer,c=e._vaSwap.indexBuffer,u=f9(a,c,0,n,i,r.batchIds,o);for(r.offset=0,r.count=u;t.length>0;){let d=t.pop();if(H.equals(d.color,r.color))u=f9(a,c,u,n,i,d.batchIds,o),r.batchIds=r.batchIds.concat(d.batchIds),r.count=u-r.offset;else{let p=u;u=f9(a,c,u,n,i,d.batchIds,o),d.offset=p,d.count=u-p,s.push(d),r=d}}let f=e._va;e._va=e._vaSwap,e._vaSwap=f,e._batchedIndices=s}function eNe(e,t){return t.color.toRgba()-e.color.toRgba()}function tNe(e,t){if(!e._batchDirty)return!1;let n=e._batchedIndices,i=n.length,o=!1,r={};for(let s=0;s<i;++s){let c=n[s].color.toRgba();if(l(r[c])){o=!0;break}else r[c]=!0}if(!o)return e._batchDirty=!1,!1;if(o&&!e.forceRebatch&&e._framesSinceLastRebatch<120){++e._framesSinceLastRebatch;return}return n.sort(eNe),t.webgl2?JLe(e,n):QLe(e,n),e._framesSinceLastRebatch=0,e._batchDirty=!1,e._pickCommandsDirty=!0,e._wireframeDirty=!0,!0}function nNe(e,t){let n=tNe(e,t),i=e._commands,o=e._batchedIndices,r=o.length,s=r*2;if(l(i)&&!n&&i.length===s)return;i.length=s;let a=e._va,c=e._sp,u=y(e._modelMatrix,F.IDENTITY),f=e._uniformMap,d=e._boundingVolume;for(let p=0;p<r;++p){let g=o[p].offset,m=o[p].count,x=i[p*2];l(x)||(x=i[p*2]=new Ze({owner:e})),x.vertexArray=a,x.modelMatrix=u,x.offset=g,x.count=m,x.renderState=e._rsStencilDepthPass,x.shaderProgram=c,x.uniformMap=f,x.boundingVolume=d,x.cull=!1,x.pass=Ee.TERRAIN_CLASSIFICATION;let b=Ze.shallowClone(x,x.derivedCommands.tileset);b.renderState=e._rsStencilDepthPass3DTiles,b.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,x.derivedCommands.tileset=b;let T=i[p*2+1];l(T)||(T=i[p*2+1]=new Ze({owner:e})),T.vertexArray=a,T.modelMatrix=u,T.offset=g,T.count=m,T.renderState=e._rsColorPass,T.shaderProgram=c,T.uniformMap=f,T.boundingVolume=d,T.cull=!1,T.pass=Ee.TERRAIN_CLASSIFICATION;let C=Ze.shallowClone(T,T.derivedCommands.tileset);C.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,T.derivedCommands.tileset=C}e._commandsDirty=!0}function iNe(e,t){if(e.classificationType===Vn.TERRAIN||!t.invertClassification||l(e._commandsIgnoreShow)&&!e._commandsDirty)return;let n=e._commands,i=e._commandsIgnoreShow,o=e._spStencil,r=n.length,s=i.length=r/2,a=0;for(let c=0;c<s;++c){let u=i[c]=Ze.shallowClone(n[a],i[c]);u.shaderProgram=o,u.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,a+=2}e._commandsDirty=!1}function oNe(e){if(!e._pickCommandsDirty)return;let t=e._indexOffsets.length,n=e._pickCommands;n.length=t*2;let i=e._va,o=e._spStencil,r=e._spPick,s=y(e._modelMatrix,F.IDENTITY),a=e._uniformMap;for(let c=0;c<t;++c){let u=e._indexOffsets[c],f=e._indexCounts[c],d=l(e._boundingVolumes)?e._boundingVolumes[c]:e.boundingVolume,p=n[c*2];l(p)||(p=n[c*2]=new Ze({owner:e,pickOnly:!0})),p.vertexArray=i,p.modelMatrix=s,p.offset=u,p.count=f,p.renderState=e._rsStencilDepthPass,p.shaderProgram=o,p.uniformMap=a,p.boundingVolume=d,p.pass=Ee.TERRAIN_CLASSIFICATION;let g=Ze.shallowClone(p,p.derivedCommands.tileset);g.renderState=e._rsStencilDepthPass3DTiles,g.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,p.derivedCommands.tileset=g;let m=n[c*2+1];l(m)||(m=n[c*2+1]=new Ze({owner:e,pickOnly:!0})),m.vertexArray=i,m.modelMatrix=s,m.offset=u,m.count=f,m.renderState=e._rsPickPass,m.shaderProgram=r,m.uniformMap=a,m.boundingVolume=d,m.pass=Ee.TERRAIN_CLASSIFICATION;let x=Ze.shallowClone(m,m.derivedCommands.tileset);x.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,m.derivedCommands.tileset=x}e._pickCommandsDirty=!1}kp.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Ns(e,r)}};kp.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function rNe(e,t){e._updatingAllCommands=!0;let n=e._batchIds,i=n.length,o;for(o=0;o<i;++o){let s=n[o],a=t[s];a.show=!0,a.color=H.WHITE}let r=e._batchedIndices;for(i=r.length,o=0;o<i;++o)r[o].color=H.clone(H.WHITE);e._updatingAllCommands=!1,e._batchDirty=!0}var sNe=new H,aNe=H.WHITE,cNe=!0,lNe=/\$/;kp.prototype.applyStyle=function(e,t){if(!l(e)){rNe(this,t);return}let n=e.color,i=n instanceof Af&&!lNe.test(n.expression);this._updatingAllCommands=i;let o=this._batchIds,r=o.length,s;for(s=0;s<r;++s){let a=o[s],c=t[a];c.color=l(e.color)?e.color.evaluateColor(c,sNe):aNe,c.show=l(e.show)?e.show.evaluate(c):cNe}if(i){let a=this._batchedIndices;for(r=a.length,s=0;s<r;++s)a[s].color=H.clone(H.WHITE);this._updatingAllCommands=!1,this._batchDirty=!0}};kp.prototype.updateCommands=function(e,t){if(this._updatingAllCommands)return;let n=this._batchIdLookUp,i=n[e];if(!l(i))return;let o=this._indexOffsets,r=this._indexCounts,s=o[i],a=r[i],c=this._batchedIndices,u=c.length,f;for(f=0;f<u;++f){let x=c[f].offset,b=c[f].count;if(s>=x&&s<x+b)break}c.push(new cm({color:H.clone(t),offset:s,count:a,batchIds:[e]}));let d=[],p=[],g=c[f].batchIds,m=g.length;for(let x=0;x<m;++x){let b=g[x];if(b===e)continue;let T=n[b];o[T]<s?d.push(b):p.push(b)}p.length!==0&&c.push(new cm({color:H.clone(c[f].color),offset:s+a,count:c[f].offset+c[f].count-(s+a),batchIds:p})),d.length!==0?(c[f].count=s-c[f].offset,c[f].batchIds=d):c.splice(f,1),this._batchDirty=!0};function Fie(e,t,n,i){let o=e.classificationType,r=o!==Vn.CESIUM_3D_TILE,s=o!==Vn.TERRAIN,a=t.commandList,c=n.length,u,f;for(f=0;f<c;++f)r&&(u=n[f],u.pass=Ee.TERRAIN_CLASSIFICATION,a.push(u)),s&&(u=n[f].derivedCommands.tileset,u.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,a.push(u));if(!(!t.invertClassification||!l(i)))for(c=i.length,f=0;f<c;++f)a.push(i[f])}function uNe(e,t){let n=e.commandList,i=t.length;for(let o=0;o<i;o+=2){let r=t[o+1];r.pass=Ee.OPAQUE,n.push(r)}}function fNe(e){let t=e.debugWireframe===e._debugWireframe;if(t=t&&!(e.debugWireframe&&e._wireframeDirty),t)return;l(e._rsWireframe)||(e._rsWireframe=Ve.fromCache({}));let n,i;e.debugWireframe?(n=e._rsWireframe,i=Le.LINES):(n=e._rsColorPass,i=Le.TRIANGLES);let o=e._commands,r=o.length;for(let s=0;s<r;s+=2){let a=o[s+1];a.renderState=n,a.primitiveType=i}e._debugWireframe=e.debugWireframe,e._wireframeDirty=!1}kp.prototype.update=function(e){let t=e.context;qLe(this,t),YLe(this,t),ZLe(this),$Le(this,t);let n=e.passes;n.render&&(nNe(this,t),iNe(this,e),fNe(this),this._debugWireframe?uNe(e,this._commands):Fie(this,e,this._commands,this._commandsIgnoreShow)),n.pick&&(oNe(this),Fie(this,e,this._pickCommands))};kp.prototype.isDestroyed=function(){return!1};kp.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaSwap=this._vaSwap&&this._vaSwap.destroy(),ue(this)};var Hx=kp;function yu(e){this._boxes=e.boxes,this._boxBatchIds=e.boxBatchIds,this._cylinders=e.cylinders,this._cylinderBatchIds=e.cylinderBatchIds,this._ellipsoids=e.ellipsoids,this._ellipsoidBatchIds=e.ellipsoidBatchIds,this._spheres=e.spheres,this._sphereBatchIds=e.sphereBatchIds,this._modelMatrix=e.modelMatrix,this._batchTable=e.batchTable,this._boundingVolume=e.boundingVolume,this._center=e.center,l(this._center)||(l(this._boundingVolume)?this._center=h.clone(this._boundingVolume.center):this._center=h.clone(h.ZERO)),this._boundingVolumes=void 0,this._batchedIndices=void 0,this._indices=void 0,this._indexOffsets=void 0,this._indexCounts=void 0,this._positions=void 0,this._vertexBatchIds=void 0,this._batchIds=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0,this._verticesPromise=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=Vn.BOTH}Object.defineProperties(yu.prototype,{trianglesLength:{get:function(){return l(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});yu.packedBoxLength=F.packedLength+h.packedLength;yu.packedCylinderLength=F.packedLength+2;yu.packedEllipsoidLength=F.packedLength+h.packedLength;yu.packedSphereLength=h.packedLength+1;function dNe(e){let t=new Float64Array(F.packedLength+h.packedLength),n=0;return h.pack(e._center,t,n),n+=h.packedLength,F.pack(e._modelMatrix,t,n),t}function hNe(e,t){let n=0,i=t[n++],o=t[n++],r=e._boundingVolumes=new Array(o);for(let c=0;c<o;++c)r[c]=ae.unpack(t,n),n+=ae.packedLength;let s=t[n++],a=e._batchedIndices=new Array(s);for(let c=0;c<s;++c){let u=H.unpack(t,n);n+=H.packedLength;let f=t[n++],d=t[n++],p=t[n++],g=new Array(p);for(let m=0;m<p;++m)g[m]=t[n++];a[c]=new cm({color:u,offset:f,count:d,batchIds:g})}return i}var mNe=new mi("createVectorTileGeometries",5),pNe=new H;function _Ne(e){if(!l(e._primitive)&&!l(e._verticesPromise)){let t=e._boxes,n=e._boxBatchIds,i=e._cylinders,o=e._cylinderBatchIds,r=e._ellipsoids,s=e._ellipsoidBatchIds,a=e._spheres,c=e._sphereBatchIds,u=e._batchTableColors,f=e._packedBuffer;if(!l(u)){let m=0;l(e._boxes)&&(t=e._boxes=t.slice(),n=e._boxBatchIds=n.slice(),m+=n.length),l(e._cylinders)&&(i=e._cylinders=i.slice(),o=e._cylinderBatchIds=o.slice(),m+=o.length),l(e._ellipsoids)&&(r=e._ellipsoids=r.slice(),s=e._ellipsoidBatchIds=s.slice(),m+=s.length),l(e._spheres)&&(a=e._sphere=a.slice(),c=e._sphereBatchIds=c.slice(),m+=c.length),u=e._batchTableColors=new Uint32Array(m);let x=e._batchTable;for(let b=0;b<m;++b){let T=x.getColor(b,pNe);u[b]=T.toRgba()}f=e._packedBuffer=dNe(e)}let d=[];l(t)&&d.push(t.buffer,n.buffer),l(i)&&d.push(i.buffer,o.buffer),l(r)&&d.push(r.buffer,s.buffer),l(a)&&d.push(a.buffer,c.buffer),d.push(u.buffer,f.buffer);let p={boxes:l(t)?t.buffer:void 0,boxBatchIds:l(t)?n.buffer:void 0,cylinders:l(i)?i.buffer:void 0,cylinderBatchIds:l(i)?o.buffer:void 0,ellipsoids:l(r)?r.buffer:void 0,ellipsoidBatchIds:l(r)?s.buffer:void 0,spheres:l(a)?a.buffer:void 0,sphereBatchIds:l(a)?c.buffer:void 0,batchTableColors:u.buffer,packedBuffer:f.buffer},g=e._verticesPromise=mNe.scheduleTask(p,d);return l(g)?g.then(function(m){if(e.isDestroyed())return;let x=new Float64Array(m.packedBuffer);hNe(e,x)===2?e._indices=new Uint16Array(m.indices):e._indices=new Uint32Array(m.indices),e._indexOffsets=new Uint32Array(m.indexOffsets),e._indexCounts=new Uint32Array(m.indexCounts),e._positions=new Float32Array(m.positions),e._vertexBatchIds=new Uint16Array(m.vertexBatchIds),e._batchIds=new Uint16Array(m.batchIds),gNe(e),e._ready=!0}).catch(m=>{e.isDestroyed()||(e._error=m)}):void 0}}function gNe(e){l(e._primitive)||(e._primitive=new Hx({batchTable:e._batchTable,positions:e._positions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center,pickObject:y(e._pickObject,e)}),e._boxes=void 0,e._boxBatchIds=void 0,e._cylinders=void 0,e._cylinderBatchIds=void 0,e._ellipsoids=void 0,e._ellipsoidBatchIds=void 0,e._spheres=void 0,e._sphereBatchIds=void 0,e._center=void 0,e._modelMatrix=void 0,e._batchTable=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0,e._indices=void 0,e._indexOffsets=void 0,e._indexCounts=void 0,e._positions=void 0,e._vertexBatchIds=void 0,e._batchIds=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._verticesPromise=void 0)}yu.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};yu.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};yu.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};yu.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};yu.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=_Ne(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};yu.prototype.isDestroyed=function(){return!1};yu.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var Vp=yu;function lm(e,t,n,i,o){this._tileset=e,this._tile=t,this._resource=n,this._geometries=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,bNe(this,i,o)}Object.defineProperties(lm.prototype,{featuresLength:{get:function(){return l(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return l(this._geometries)?this._geometries.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._geometries)?this._geometries.geometryByteLength:0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return l(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function yNe(e){return function(t,n){l(e._geometries)&&e._geometries.updateCommands(t,n)}}function xNe(e,t){let n,i,o,r,s,a=y(e.BOXES_LENGTH,0),c=y(e.CYLINDERS_LENGTH,0),u=y(e.ELLIPSOIDS_LENGTH,0),f=y(e.SPHERES_LENGTH,0);if(a>0&&l(e.BOX_BATCH_IDS)){let m=t.byteOffset+e.BOX_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,m,a)}if(c>0&&l(e.CYLINDER_BATCH_IDS)){let m=t.byteOffset+e.CYLINDER_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,m,c)}if(u>0&&l(e.ELLIPSOID_BATCH_IDS)){let m=t.byteOffset+e.ELLIPSOID_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,m,u)}if(f>0&&l(e.SPHERE_BATCH_IDS)){let m=t.byteOffset+e.SPHERE_BATCH_IDS.byteOffset;r=new Uint16Array(t.buffer,m,f)}let d=l(n)||l(i)||l(o)||l(r),p=a>0&&!l(n)||c>0&&!l(i)||u>0&&!l(o)||f>0&&!l(r);if(d&&p)throw new le("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)&&!l(r)){let m=0;if(!l(n)&&a>0)for(n=new Uint16Array(a),s=0;s<a;++s)n[s]=m++;if(!l(i)&&c>0)for(i=new Uint16Array(c),s=0;s<c;++s)i[s]=m++;if(!l(o)&&u>0)for(o=new Uint16Array(u),s=0;s<u;++s)o[s]=m++;if(!l(r)&&f>0)for(r=new Uint16Array(f),s=0;s<f;++s)r[s]=m++}return{boxes:n,cylinders:i,ellipsoids:o,spheres:r}}var Gx=Uint32Array.BYTES_PER_ELEMENT;function bNe(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=Gx;let r=o.getUint32(n,!0);if(r!==1)throw new le(`Only Geometry tile version 1 is supported. Version ${r} is not.`);n+=Gx;let s=o.getUint32(n,!0);if(n+=Gx,s===0){e._ready=!0;return}let a=o.getUint32(n,!0);if(n+=Gx,a===0)throw new le("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=Gx;let u=o.getUint32(n,!0);n+=Gx;let f=o.getUint32(n,!0);n+=Gx;let d=Ro(i,n,a);n+=a;let p=new Uint8Array(t,n,c);n+=c;let g,m;u>0&&(g=Ro(i,n,u),n+=u,f>0&&(m=new Uint8Array(t,n,f),m=new Uint8Array(m)));let x=y(d.BOXES_LENGTH,0),b=y(d.CYLINDERS_LENGTH,0),T=y(d.ELLIPSOIDS_LENGTH,0),C=y(d.SPHERES_LENGTH,0),A=x+b+T+C,E=new Bp(e,A,g,m,yNe(e));if(e._batchTable=E,A===0)return;let v=e.tile.computedTransform,D;l(d.RTC_CENTER)&&(D=h.unpack(d.RTC_CENTER),F.multiplyByPoint(v,D,D));let O=xNe(d,p);if(x>0||b>0||T>0||C>0){let I,L,N,_;if(x>0){let S=p.byteOffset+d.BOXES.byteOffset;I=new Float32Array(p.buffer,S,Vp.packedBoxLength*x)}if(b>0){let S=p.byteOffset+d.CYLINDERS.byteOffset;L=new Float32Array(p.buffer,S,Vp.packedCylinderLength*b)}if(T>0){let S=p.byteOffset+d.ELLIPSOIDS.byteOffset;N=new Float32Array(p.buffer,S,Vp.packedEllipsoidLength*T)}if(C>0){let S=p.byteOffset+d.SPHERES.byteOffset;_=new Float32Array(p.buffer,S,Vp.packedSphereLength*C)}return e._geometries=new Vp({boxes:I,boxBatchIds:O.boxes,cylinders:L,cylinderBatchIds:O.cylinders,ellipsoids:N,ellipsoidBatchIds:O.ellipsoids,spheres:_,sphereBatchIds:O.spheres,center:D,modelMatrix:v,batchTable:E,boundingVolume:e.tile.boundingVolume.boundingVolume}),e}return Promise.resolve(e)}function Bie(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._geometries)&&e._geometries.createFeatures(e,n),e._features=n}}lm.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};lm.prototype.getFeature=function(e){return Bie(this),this._features[e]};lm.prototype.applyDebugSettings=function(e,t){l(this._geometries)&&this._geometries.applyDebugSettings(e,t)};lm.prototype.applyStyle=function(e){Bie(this),l(this._geometries)&&this._geometries.applyStyle(e,this._features)};lm.prototype.update=function(e,t){l(this._geometries)&&(this._geometries.classificationType=this._tileset.classificationType,this._geometries.debugWireframe=this._tileset.debugWireframe,this._geometries.update(t)),l(this._batchTable)&&this._geometries.ready&&(this._batchTable.update(e,t),this._ready=!0)};lm.prototype.pick=function(e,t,n){};lm.prototype.isDestroyed=function(){return!1};lm.prototype.destroy=function(){return this._geometries=this._geometries&&this._geometries.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};var p1=lm;var d9={};d9.encode2D=function(e,t,n){let i=Math.pow(2,e),o={x:t,y:n},r,s,a,c=BigInt(0);for(a=i/2;a>0;a/=2)r=(o.x&a)>0?1:0,s=(o.y&a)>0?1:0,c+=BigInt((3*r^s)*a*a),kie(i,o,r,s);return c};d9.decode2D=function(e,t){let n=Math.pow(2,e),i={x:0,y:0},o,r,s,a;for(s=1,a=t;s<n;s*=2)o=1&Number(a/BigInt(2)),r=1&Number(a^BigInt(o)),kie(s,i,o,r),i.x+=s*o,i.y+=s*r,a/=BigInt(4);return[i.x,i.y]};function kie(e,t,n,i){if(i!==0)return;n===1&&(t.x=e-1-t.x,t.y=e-1-t.y);let o=t.x;t.x=t.y,t.y=o}var lC=d9;var Wx=30,TNe=1<<Wx,ANe=1<<Wx+1>>>0,h9=2*Wx+1,Yg=4,zie=[],Hie=[],CNe=[[0,1,3,2],[0,2,3,1],[3,2,0,1],[3,1,0,2]],Xg=1,uC=2,QV=[Xg,0,0,Xg|uC];function Wr(e){if(!Vt.supportsBigInt())throw new le("S2 required BigInt support");this._cellId=e,this._level=Wr.getLevel(e)}Wr.fromToken=function(e){return new Wr(Wr.getIdFromToken(e))};Wr.isValidId=function(e){return!(e<=0||e>>BigInt(h9)>5||!(e&~e+BigInt(1)&BigInt("0x1555555555555555")))};Wr.isValidToken=function(e){return/^[0-9a-fA-F]{1,16}$/.test(e)?Wr.isValidId(Wr.getIdFromToken(e)):!1};Wr.getIdFromToken=function(e){return BigInt("0x"+e+"0".repeat(16-e.length))};Wr.getTokenFromId=function(e){let t=Math.floor(MNe(e)/4),n=e.toString(16).replace(/0*$/,"");return Array(17-t-n.length).join("0")+n};Wr.getLevel=function(e){let t=0;for(;e!==BigInt(0)&&!(e&BigInt(1));)t++,e=e>>BigInt(1);return Wx-(t>>1)};Wr.prototype.getChild=function(e){let t=jie(this._cellId)>>BigInt(2),n=this._cellId+BigInt(2*e+1-4)*t;return new Wr(n)};Wr.prototype.getParent=function(){let e=jie(this._cellId)<<BigInt(2);return new Wr(this._cellId&~e+BigInt(1)|e)};Wr.prototype.getParentAtLevel=function(e){let t=RNe(e);return new Wr(this._cellId&-t|t)};Wr.prototype.getCenter=function(e){e=y(e,te.WGS84);let t=ENe(this._cellId,this._level);t=h.normalize(t,t);let n=new fe.fromCartesian(t,te.UNIT_SPHERE);return fe.toCartesian(n,e,new h)};Wr.prototype.getVertex=function(e,t){t=y(t,te.WGS84);let n=SNe(this._cellId,this._level,e);n=h.normalize(n,n);let i=new fe.fromCartesian(n,te.UNIT_SPHERE);return fe.toCartesian(i,t,new h)};Wr.fromFacePositionLevel=function(e,t,n){let i=(e<4?"0":"")+(e<2?"0":"")+e.toString(2),o=t.toString(2),r=Array(2*n-o.length+1).join("0"),s=Array(h9-2*n).join("0"),a=BigInt(`0b${i}${r}${o}1${s}`);return new Wr(a)};function ENe(e,t){let n=vNe(e,t);return wNe(n[0],n[1],n[2])}function SNe(e,t,n){let i=Gie(e,t),o=DNe([i[1],i[2]],t),r=n>>1&1;return Wie(i[0],o[0][r^n&1],o[1][r])}function vNe(e,t){let n=Gie(e),i=n[0],o=n[1],r=n[2],s=t===30,a=!s&&(BigInt(o)^e>>BigInt(2))&BigInt(1),c=s?1:a?2:0,u=(o<<1)+c,f=(r<<1)+c;return[i,u,f]}function Gie(e){zie.length===0&&INe();let t=Number(e>>BigInt(h9)),n=t&Xg,i=(1<<Yg)-1,o=0,r=0;for(let s=7;s>=0;s--){let c=(1<<2*(s===7?Wx-7*Yg:Yg))-1;n+=Number(e>>BigInt(s*2*Yg+1)&BigInt(c))<<2,n=Hie[n];let u=s*Yg;o+=n>>Yg+2<<u,r+=(n>>2&i)<<u,n&=Xg|uC}return[t,o,r]}function wNe(e,t,n){let i=Vie(t),o=Vie(n),r=JV(i),s=JV(o);return Wie(e,r,s)}function Wie(e,t,n){switch(e){case 0:return new h(1,t,n);case 1:return new h(-t,1,n);case 2:return new h(-t,-n,1);case 3:return new h(-1,-n,-t);case 4:return new h(n,-1,-t);default:return new h(n,t,-1)}}function JV(e){return e>=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function Vie(e){return 1/ANe*e}function DNe(e,t){let n=[[],[]],i=PNe(t);for(let o=0;o<2;++o){let r=e[o]&-i,s=r+i;n[o][0]=JV(Uie(r)),n[o][1]=JV(Uie(s))}return n}function PNe(e){return 1<<Wx-e>>>0}function Uie(e){return 1/TNe*e}function Kg(e,t,n,i,o,r){if(e===Yg){let s=(t<<Yg)+n;zie[(s<<2)+i]=(o<<2)+r,Hie[(o<<2)+i]=(s<<2)+r}else{e++,t<<=1,n<<=1,o<<=2;let s=CNe[r];Kg(e,t+(s[0]>>1),n+(s[0]&1),i,o,r^QV[0]),Kg(e,t+(s[1]>>1),n+(s[1]&1),i,o+1,r^QV[1]),Kg(e,t+(s[2]>>1),n+(s[2]&1),i,o+2,r^QV[2]),Kg(e,t+(s[3]>>1),n+(s[3]&1),i,o+3,r^QV[3])}}function INe(){Kg(0,0,0,0,0,0),Kg(0,0,0,Xg,0,Xg),Kg(0,0,0,uC,0,uC),Kg(0,0,0,Xg|uC,0,Xg|uC)}function jie(e){return e&~e+BigInt(1)}function RNe(e){return BigInt(1)<<BigInt(2*(Wx-e))}var ONe=[64,0,1,39,2,15,40,23,3,12,16,59,41,19,24,54,4,64,13,10,17,62,60,28,42,30,20,51,25,44,55,47,5,32,65,38,14,22,11,58,18,53,63,9,61,27,29,50,43,46,31,37,21,57,52,8,26,49,45,36,56,7,48,35,6,34,33,0];function MNe(e){return ONe[(-e&e)%BigInt(67)]}var Up=Wr;function LNe(e,t){return l(e)&&l(e.extensions)&&l(e.extensions[t])}var oi=LNe;function m9(e){let t=e.lengthBits,n=e.availableCount,i=e.constant,o=e.bitstream;if(l(i))n=t;else{let r=Math.ceil(t/8);if(o.length!==r)throw new le(`Availability bitstream must be exactly ${r} bytes long to store ${t} bits. Actual bitstream was ${o.length} bytes long.`);let s=y(e.computeAvailableCountEnabled,!1);!l(n)&&s&&(n=NNe(o,t))}this._lengthBits=t,this._availableCount=n,this._constant=i,this._bitstream=o}function NNe(e,t){let n=0;for(let i=0;i<t;i++){let o=i>>3,r=i%8;n+=e[o]>>r&1}return n}Object.defineProperties(m9.prototype,{lengthBits:{get:function(){return this._lengthBits}},availableCount:{get:function(){return this._availableCount}}});m9.prototype.getBit=function(e){if(l(this._constant))return this._constant;let t=e>>3,n=e%8;return(this._bitstream[t]>>n&1)===1};var fC=m9;function zp(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataTable,n=e.class,i=e.entityId,o=e.propertyTableJson;this._class=n,this._metadataTable=t,this._entityId=i,this._extensions=o.extensions,this._extras=o.extras}Object.defineProperties(zp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});zp.prototype.hasProperty=function(e){return this._metadataTable.hasProperty(e)};zp.prototype.hasPropertyBySemantic=function(e){return this._metadataTable.hasPropertyBySemantic(e)};zp.prototype.getPropertyIds=function(e){return this._metadataTable.getPropertyIds(e)};zp.prototype.getProperty=function(e){return this._metadataTable.getProperty(this._entityId,e)};zp.prototype.setProperty=function(e,t){return this._metadataTable.setProperty(this._entityId,e,t)};zp.prototype.getPropertyBySemantic=function(e){return this._metadataTable.getPropertyBySemantic(this._entityId,e)};zp.prototype.setPropertyBySemantic=function(e,t){return this._metadataTable.setPropertyBySemantic(this._entityId,e,t)};var dC=zp;var eU={QUADTREE:"QUADTREE",OCTREE:"OCTREE"};eU.getBranchingFactor=function(e){switch(e){case eU.OCTREE:return 8;case eU.QUADTREE:return 4}};var jr=Object.freeze(eU);function Js(){}Object.defineProperties(Js.prototype,{class:{get:function(){de.throwInstantiationError()}}});Js.prototype.hasProperty=function(e){de.throwInstantiationError()};Js.prototype.hasPropertyBySemantic=function(e){de.throwInstantiationError()};Js.prototype.getPropertyIds=function(e){de.throwInstantiationError()};Js.prototype.getProperty=function(e){de.throwInstantiationError()};Js.prototype.setProperty=function(e,t){de.throwInstantiationError()};Js.prototype.getPropertyBySemantic=function(e){de.throwInstantiationError()};Js.prototype.setPropertyBySemantic=function(e,t){de.throwInstantiationError()};Js.hasProperty=function(e,t,n){if(l(t[e]))return!0;let i=n.properties;if(!l(i))return!1;let o=i[e];return!!(l(o)&&l(o.default))};Js.hasPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return!1;let o=i[e];return l(o)};Js.getPropertyIds=function(e,t,n){n=l(n)?n:[],n.length=0;for(let o in e)e.hasOwnProperty(o)&&l(e[o])&&n.push(o);let i=t.properties;if(l(i))for(let o in i)i.hasOwnProperty(o)&&!l(e[o])&&l(i[o].default)&&n.push(o);return n};Js.getProperty=function(e,t,n){let i=n.properties[e],o=t[e];Array.isArray(o)&&(o=o.slice());let r=!0;if(o=i.handleNoData(o),!l(o)&&l(i.default))return o=He(i.default,!0),i.unpackVectorAndMatrixTypes(o,r);if(l(o))return o=i.normalize(o),o=i.applyValueTransform(o),i.unpackVectorAndMatrixTypes(o,r)};Js.setProperty=function(e,t,n,i){if(!l(n[e]))return!1;Array.isArray(t)&&(t=t.slice());let o,r=i.properties;return l(r)&&(o=r[e]),l(o)&&(t=o.packVectorAndMatrixTypes(t,!0),t=o.unapplyValueTransform(t),t=o.unnormalize(t)),n[e]=t,!0};Js.getPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return;let o=i[e];if(l(o))return Js.getProperty(o.id,t,n)};Js.setPropertyBySemantic=function(e,t,n,i){let o=i.propertiesBySemantic;if(!l(o))return!1;let r=i.propertiesBySemantic[e];return l(r)?Js.setProperty(r.id,t,n,i):!1};var Fn=Js;function Hp(e){e=y(e,y.EMPTY_OBJECT);let t=e.subtreeMetadata,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Hp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Hp.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};Hp.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};Hp.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};Hp.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};Hp.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};Hp.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};Hp.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var _1=Hp;var Rt={INT8:"INT8",UINT8:"UINT8",INT16:"INT16",UINT16:"UINT16",INT32:"INT32",UINT32:"UINT32",INT64:"INT64",UINT64:"UINT64",FLOAT32:"FLOAT32",FLOAT64:"FLOAT64"};Rt.getMinimum=function(e){switch(e){case Rt.INT8:return-128;case Rt.UINT8:return 0;case Rt.INT16:return-32768;case Rt.UINT16:return 0;case Rt.INT32:return-2147483648;case Rt.UINT32:return 0;case Rt.INT64:return Vt.supportsBigInt()?BigInt("-9223372036854775808"):-Math.pow(2,63);case Rt.UINT64:return Vt.supportsBigInt()?BigInt(0):0;case Rt.FLOAT32:return-34028234663852886e22;case Rt.FLOAT64:return-Number.MAX_VALUE}};Rt.getMaximum=function(e){switch(e){case Rt.INT8:return 127;case Rt.UINT8:return 255;case Rt.INT16:return 32767;case Rt.UINT16:return 65535;case Rt.INT32:return 2147483647;case Rt.UINT32:return 4294967295;case Rt.INT64:return Vt.supportsBigInt()?BigInt("9223372036854775807"):Math.pow(2,63)-1;case Rt.UINT64:return Vt.supportsBigInt()?BigInt("18446744073709551615"):Math.pow(2,64)-1;case Rt.FLOAT32:return 34028234663852886e22;case Rt.FLOAT64:return Number.MAX_VALUE}};Rt.isIntegerType=function(e){switch(e){case Rt.INT8:case Rt.UINT8:case Rt.INT16:case Rt.UINT16:case Rt.INT32:case Rt.UINT32:case Rt.INT64:case Rt.UINT64:return!0;default:return!1}};Rt.isUnsignedIntegerType=function(e){switch(e){case Rt.UINT8:case Rt.UINT16:case Rt.UINT32:case Rt.UINT64:return!0;default:return!1}};Rt.isVectorCompatible=function(e){switch(e){case Rt.INT8:case Rt.UINT8:case Rt.INT16:case Rt.UINT16:case Rt.INT32:case Rt.UINT32:case Rt.FLOAT32:case Rt.FLOAT64:return!0;default:return!1}};Rt.normalize=function(e,t){return Math.max(Number(e)/Number(Rt.getMaximum(t)),-1)};Rt.unnormalize=function(e,t){let n=Rt.getMaximum(t),i=Rt.isUnsignedIntegerType(t)?0:-n;return e=R.sign(e)*Math.round(Math.abs(e)*Number(n)),(t===Rt.INT64||t===Rt.UINT64)&&Vt.supportsBigInt()&&(e=BigInt(e)),e>n?n:e<i?i:e};Rt.applyValueTransform=function(e,t,n){return n*e+t};Rt.unapplyValueTransform=function(e,t,n){return n===0?0:(e-t)/n};Rt.getSizeInBytes=function(e){switch(e){case Rt.INT8:case Rt.UINT8:return 1;case Rt.INT16:case Rt.UINT16:return 2;case Rt.INT32:case Rt.UINT32:return 4;case Rt.INT64:case Rt.UINT64:return 8;case Rt.FLOAT32:return 4;case Rt.FLOAT64:return 8}};Rt.fromComponentDatatype=function(e){switch(e){case X.BYTE:return Rt.INT8;case X.UNSIGNED_BYTE:return Rt.UINT8;case X.SHORT:return Rt.INT16;case X.UNSIGNED_SHORT:return Rt.UINT16;case X.INT:return Rt.INT32;case X.UNSIGNED_INT:return Rt.UINT32;case X.FLOAT:return Rt.FLOAT32;case X.DOUBLE:return Rt.FLOAT64}};Rt.toComponentDatatype=function(e){switch(e){case Rt.INT8:return X.BYTE;case Rt.UINT8:return X.UNSIGNED_BYTE;case Rt.INT16:return X.SHORT;case Rt.UINT16:return X.UNSIGNED_SHORT;case Rt.INT32:return X.INT;case Rt.UINT32:return X.UNSIGNED_INT;case Rt.FLOAT32:return X.FLOAT;case Rt.FLOAT64:return X.DOUBLE}};var sn=Object.freeze(Rt);var Fo={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4",BOOLEAN:"BOOLEAN",STRING:"STRING",ENUM:"ENUM"};Fo.isVectorType=function(e){switch(e){case Fo.VEC2:case Fo.VEC3:case Fo.VEC4:return!0;default:return!1}};Fo.isMatrixType=function(e){switch(e){case Fo.MAT2:case Fo.MAT3:case Fo.MAT4:return!0;default:return!1}};Fo.getComponentCount=function(e){switch(e){case Fo.SCALAR:case Fo.STRING:case Fo.ENUM:case Fo.BOOLEAN:return 1;case Fo.VEC2:return 2;case Fo.VEC3:return 3;case Fo.VEC4:return 4;case Fo.MAT2:return 4;case Fo.MAT3:return 9;case Fo.MAT4:return 16}};Fo.getMathType=function(e){switch(e){case Fo.VEC2:return z;case Fo.VEC3:return h;case Fo.VEC4:return oe;case Fo.MAT2:return Qi;case Fo.MAT3:return $;case Fo.MAT4:return F;default:return}};var Ht=Object.freeze(Fo);function va(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.type,i=e.componentType,o=e.enumType,r=l(i)&&sn.isIntegerType(i)&&y(e.normalized,!1);this._id=t,this._name=e.name,this._description=e.description,this._semantic=e.semantic,this._isLegacyExtension=e.isLegacyExtension,this._type=n,this._componentType=i,this._enumType=o,this._valueType=l(o)?o.valueType:i,this._isArray=y(e.isArray,!1),this._isVariableLengthArray=y(e.isVariableLengthArray,!1),this._arrayLength=e.arrayLength,this._min=He(e.min,!0),this._max=He(e.max,!0),this._normalized=r;let s=He(e.offset,!0),a=He(e.scale,!0),c=l(s)||l(a),u=!0;l(s)||(s=this.expandConstant(0,u)),l(a)||(a=this.expandConstant(1,u)),this._offset=s,this._scale=a,this._hasValueTransform=c,this._noData=He(e.noData,!0),this._default=He(e.default,!0),this._required=y(e.required,!0),this._extras=He(e.extras,!0),this._extensions=He(e.extensions,!0)}va.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.property,i=FNe(n),o=BNe(n,e.enums),r;return l(i)?i?r=l(n.optional)?!n.optional:!0:r=y(n.required,!1):r=!1,new va({id:t,type:o.type,componentType:o.componentType,enumType:o.enumType,isArray:o.isArray,isVariableLengthArray:o.isVariableLengthArray,arrayLength:o.arrayLength,normalized:n.normalized,min:n.min,max:n.max,offset:n.offset,scale:n.scale,noData:n.noData,default:n.default,required:r,name:n.name,description:n.description,semantic:n.semantic,extras:n.extras,extensions:n.extensions,isLegacyExtension:i})};Object.defineProperties(va.prototype,{id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},type:{get:function(){return this._type}},enumType:{get:function(){return this._enumType}},componentType:{get:function(){return this._componentType}},valueType:{get:function(){return this._valueType}},isArray:{get:function(){return this._isArray}},isVariableLengthArray:{get:function(){return this._isVariableLengthArray}},arrayLength:{get:function(){return this._arrayLength}},normalized:{get:function(){return this._normalized}},max:{get:function(){return this._max}},min:{get:function(){return this._min}},noData:{get:function(){return this._noData}},default:{get:function(){return this._default}},required:{get:function(){return this._required}},semantic:{get:function(){return this._semantic}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});function FNe(e){if(e.type==="ARRAY")return!0;let t=e.type;if(t===Ht.SCALAR||Ht.isMatrixType(t)||Ht.isVectorType(t))return!1;if(l(sn[t]))return!0;if(l(e.noData)||l(e.scale)||l(e.offset)||l(e.required)||l(e.count)||l(e.array)||l(e.optional))return!1}function BNe(e,t){let n=e.type,i=e.componentType,o=n==="ARRAY",r,s,a;o?(r=!0,s=e.componentCount,a=!l(s)):e.array?(r=!0,s=e.count,a=!l(e.count)):(r=!1,s=void 0,a=!1);let c;if(l(e.enumType)&&(c=t[e.enumType]),n===Ht.ENUM)return{type:n,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&i===Ht.ENUM)return{type:i,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===Ht.SCALAR||Ht.isMatrixType(n)||Ht.isVectorType(n))return{type:n,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===Ht.BOOLEAN||n===Ht.STRING)return{type:n,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&(i===Ht.BOOLEAN||i===Ht.STRING))return{type:i,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(l(i)&&l(sn[i]))return{type:Ht.SCALAR,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(l(sn[n]))return{type:Ht.SCALAR,componentType:n,enumType:void 0,valueType:n,isArray:r,isVariableLengthArray:a,arrayLength:s}}va.prototype.normalize=function(e){return this._normalized?p9(e,this._valueType,sn.normalize):e};va.prototype.unnormalize=function(e){return this._normalized?p9(e,this._valueType,sn.unnormalize):e};va.prototype.applyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:va.valueTransformInPlace(e,this._offset,this._scale,sn.applyValueTransform)};va.prototype.unapplyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:va.valueTransformInPlace(e,this._offset,this._scale,sn.unapplyValueTransform)};va.prototype.expandConstant=function(e,t){t=y(t,!1);let n=this._isArray,i=this._arrayLength,o=Ht.getComponentCount(this._type),r=n&&o>1;if(!n&&o===1)return e;if(!n)return new Array(o).fill(e);if(!r)return new Array(i).fill(e);if(!t)return new Array(this._arrayLength*o).fill(e);let s=new Array(o).fill(e);return new Array(this._arrayLength).fill(s)};va.prototype.handleNoData=function(e){let t=this._noData;if(!l(t))return e;if(!Kie(e,t))return e};function Kie(e,t){if(!Array.isArray(e))return e===t;if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Kie(e[n],t[n]))return!1;return!0}va.prototype.unpackVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=Ht.getMathType(this._type),i=this._isArray,o=Ht.getComponentCount(this._type),r=i&&o>1;return l(n)?t&&r?e.map(function(s){return n.unpack(s)}):i?n.unpackArray(e):n.unpack(e):e};va.prototype.packVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=Ht.getMathType(this._type),i=this._isArray,o=Ht.getComponentCount(this._type),r=i&&o>1;return l(n)?t&&r?e.map(function(s){return n.pack(s,[])}):i?n.packArray(e,[]):n.pack(e,[]):e};va.prototype.validate=function(e){if(!(!l(e)&&l(this._default)))return this._required&&!l(e)?"required property must have a value":this._isArray?kNe(this,e):Zie(this,e)};function kNe(e,t){if(!Array.isArray(t))return`value ${t} must be an array`;let n=t.length;if(!e._isVariableLengthArray&&n!==e._arrayLength)return"Array length does not match property.arrayLength";for(let i=0;i<n;i++){let o=Zie(e,t[i]);if(l(o))return o}}function Zie(e,t){let n=e._type,i=e._componentType,o=e._enumType,r=e._normalized;return Ht.isVectorType(n)?VNe(t,n,i):Ht.isMatrixType(n)?UNe(t,n,i):n===Ht.STRING?zNe(t):n===Ht.BOOLEAN?HNe(t):n===Ht.ENUM?GNe(t,o):WNe(t,i,r)}function VNe(e,t,n){if(!sn.isVectorCompatible(n))return`componentType ${n} is incompatible with vector type ${t}`;if(t===Ht.VEC2&&!(e instanceof z))return`vector value ${e} must be a Cartesian2`;if(t===Ht.VEC3&&!(e instanceof h))return`vector value ${e} must be a Cartesian3`;if(t===Ht.VEC4&&!(e instanceof oe))return`vector value ${e} must be a Cartesian4`}function UNe(e,t,n){if(!sn.isVectorCompatible(n))return`componentType ${n} is incompatible with matrix type ${t}`;if(t===Ht.MAT2&&!(e instanceof Qi))return`matrix value ${e} must be a Matrix2`;if(t===Ht.MAT3&&!(e instanceof $))return`matrix value ${e} must be a Matrix3`;if(t===Ht.MAT4&&!(e instanceof F))return`matrix value ${e} must be a Matrix4`}function zNe(e){if(typeof e!="string")return tU(e,Ht.STRING)}function HNe(e){if(typeof e!="boolean")return tU(e,Ht.BOOLEAN)}function GNe(e,t){let n=typeof e;if(l(t))return n!=="string"||!l(t.valuesByName[e])?`value ${e} is not a valid enum name for ${t.id}`:void 0}function WNe(e,t,n){let i=typeof e;switch(t){case sn.INT8:case sn.UINT8:case sn.INT16:case sn.UINT16:case sn.INT32:case sn.UINT32:case sn.FLOAT32:case sn.FLOAT64:return i!=="number"?tU(e,t):isFinite(e)?Yie(e,t,n):Xie(e,t);case sn.INT64:case sn.UINT64:return i!=="number"&&i!=="bigint"?tU(e,t):i==="number"&&!isFinite(e)?Xie(e,t):Yie(e,t,n)}}function tU(e,t){return`value ${e} does not match type ${t}`}function qie(e,t,n){let i=`value ${e} is out of range for type ${t}`;return n&&(i+=" (normalized)"),i}function Yie(e,t,n){if(n){let i=sn.isUnsignedIntegerType(t)?0:-1;return e<i||e>1?qie(e,t,n):void 0}if(e<sn.getMinimum(t)||e>sn.getMaximum(t))return qie(e,t,n)}function Xie(e,t){return`value ${e} of type ${t} must be finite`}function p9(e,t,n){if(!Array.isArray(e))return n(e,t);for(let i=0;i<e.length;i++)e[i]=p9(e[i],t,n);return e}va.valueTransformInPlace=function(e,t,n,i){if(!Array.isArray(e))return i(e,t,n);for(let o=0;o<e.length;o++)e[o]=va.valueTransformInPlace(e[o],t[o],n[o],i);return e};var Zg=va;function g1(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.property,i=e.classProperty,o=e.bufferViews,r=i.type,s=i.isArray,a=i.isVariableLengthArray,c=i.valueType,u=i.enumType,f=r===Ht.STRING,d=r===Ht.BOOLEAN,p=0,g;if(a){let _=y(n.arrayOffsetType,n.offsetType);_=y(sn[_],sn.UINT32);let S=y(n.arrayOffsets,n.arrayOffsetBufferView);g=new _9(o[S],_,t+1),p+=g.typedArray.byteLength}let m=Ht.getComponentCount(r),x;a?x=g.get(t)-g.get(0):s?x=t*i.arrayLength:x=t;let b=m*x,T;if(f){let _=y(n.stringOffsetType,n.offsetType);_=y(sn[_],sn.UINT32);let S=y(n.stringOffsets,n.stringOffsetBufferView);T=new _9(o[S],_,b+1),p+=T.typedArray.byteLength}(f||d)&&(c=sn.UINT8);let C;f?C=T.get(b)-T.get(0):d?C=Math.ceil(b/8):C=b;let A=y(n.values,n.bufferView),E=new _9(o[A],c,C);p+=E.typedArray.byteLength;let v=n.offset,D=n.scale,O=i.hasValueTransform||l(v)||l(D);v=y(v,i.offset),D=y(D,i.scale),v=$ie(v),D=$ie(D);let I,L,N=this;f?I=function(_){return YNe(_,N._values,N._stringOffsets)}:d?(I=function(_){return XNe(_,N._values)},L=function(_,S){KNe(_,N._values,S)}):l(u)?(I=function(_){let S=N._values.get(_);return u.namesByValue[S]},L=function(_,S){let w=u.valuesByName[S];N._values.set(_,w)}):(I=function(_){return N._values.get(_)},L=function(_,S){N._values.set(_,S)}),this._arrayOffsets=g,this._stringOffsets=T,this._values=E,this._classProperty=i,this._count=t,this._vectorComponentCount=m,this._min=n.min,this._max=n.max,this._offset=v,this._scale=D,this._hasValueTransform=O,this._getValue=I,this._setValue=L,this._unpackedValues=void 0,this._extras=n.extras,this._extensions=n.extensions,this._byteLength=p}Object.defineProperties(g1.prototype,{hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},byteLength:{get:function(){return this._byteLength}}});g1.prototype.get=function(e){let t=jNe(this,e);return t=this._classProperty.handleNoData(t),l(t)?(t=this._classProperty.normalize(t),t=iFe(this,t),this._classProperty.unpackVectorAndMatrixTypes(t)):(t=this._classProperty.default,this._classProperty.unpackVectorAndMatrixTypes(t))};g1.prototype.set=function(e,t){let n=this._classProperty;t=n.packVectorAndMatrixTypes(t),t=oFe(this,t),t=n.unnormalize(t),qNe(this,e,t)};g1.prototype.getTypedArray=function(){if(l(this._values))return this._values.typedArray};function $ie(e){if(!Array.isArray(e))return e;let t=[];for(let n=0;n<e.length;n++){let i=e[n];Array.isArray(i)?t.push.apply(t,i):t.push(i)}return t}function jNe(e,t){Jie(e)&&eoe(e);let n=e._classProperty,i=n.isArray,o=n.type,r=Ht.getComponentCount(o);if(l(e._unpackedValues)){let s=e._unpackedValues[t];return i?He(s,!0):s}return!i&&r===1?e._getValue(t):Qie(e,n,t)}function Qie(e,t,n){let i,o;if(t.isVariableLengthArray){i=e._arrayOffsets.get(n),o=e._arrayOffsets.get(n+1)-i;let s=Ht.getComponentCount(t.type);i*=s,o*=s}else{let a=y(t.arrayLength,1)*e._vectorComponentCount;i=n*a,o=a}let r=new Array(o);for(let s=0;s<o;s++)r[s]=e._getValue(i+s);return r}function qNe(e,t,n){tFe(e,t,n)&&eoe(e);let i=e._classProperty,o=i.isArray,r=i.type,s=Ht.getComponentCount(r);if(l(e._unpackedValues)){i.isArray&&(n=He(n,!0)),e._unpackedValues[t]=n;return}if(!o&&s===1){e._setValue(t,n);return}let a,c;if(i.isVariableLengthArray)a=e._arrayOffsets.get(t),c=e._arrayOffsets.get(t+1)-a;else{let f=y(i.arrayLength,1)*e._vectorComponentCount;a=t*f,c=f}for(let u=0;u<c;++u)e._setValue(a+u,n[u])}function YNe(e,t,n){let i=n.get(e),o=n.get(e+1)-i;return Il(t.typedArray,i,o)}function XNe(e,t){let n=e>>3,i=e%8;return(t.typedArray[n]>>i&1)===1}function KNe(e,t,n){let i=e>>3,o=e%8;n?t.typedArray[i]|=1<<o:t.typedArray[i]&=~(1<<o)}function ZNe(e,t){let n=t.dataView,i=e*8,o=0,r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=c*Math.pow(256,a)}return r&&(o=-o),o}function $Ne(e,t){let n=t.dataView,i=e*8,o=BigInt(0),r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=BigInt(c)*(BigInt(1)<<BigInt(a*8))}return r&&(o=-o),o}function QNe(e,t){let n=t.dataView,i=e*8,o=n.getUint32(i,!0),r=n.getUint32(i+4,!0);return o+4294967296*r}function JNe(e,t){let n=t.dataView,i=e*8,o=BigInt(n.getUint32(i,!0)),r=BigInt(n.getUint32(i+4,!0));return o+BigInt(4294967296)*r}function eFe(e){switch(e){case sn.INT8:return X.BYTE;case sn.UINT8:return X.UNSIGNED_BYTE;case sn.INT16:return X.SHORT;case sn.UINT16:return X.UNSIGNED_SHORT;case sn.INT32:return X.INT;case sn.UINT32:return X.UNSIGNED_INT;case sn.FLOAT32:return X.FLOAT;case sn.FLOAT64:return X.DOUBLE}}function Jie(e){if(l(e._unpackedValues))return!1;let t=e._classProperty,n=t.type,i=t.valueType;return n===Ht.STRING||i===sn.INT64&&!Vt.supportsBigInt64Array()||i===sn.UINT64&&!Vt.supportsBigUint64Array()}function tFe(e,t,n){if(Jie(e))return!0;let i=e._arrayOffsets;if(l(i)){let o=i.get(t+1)-i.get(t),r=n.length;if(o!==r)return!0}return!1}function eoe(e){e._unpackedValues=nFe(e),e._arrayOffsets=void 0,e._stringOffsets=void 0,e._values=void 0}function nFe(e){let t=e._count,n=new Array(t),i=e._classProperty,o=i.isArray,r=i.type,s=Ht.getComponentCount(r);if(!o&&s===1){for(let a=0;a<t;++a)n[a]=e._getValue(a);return n}for(let a=0;a<t;a++)n[a]=Qie(e,i,a);return n}function iFe(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:Zg.valueTransformInPlace(t,e._offset,e._scale,sn.applyValueTransform)}function oFe(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:Zg.valueTransformInPlace(t,e._offset,e._scale,sn.unapplyValueTransform)}function _9(e,t,n){let i=this,o,r,s;if(t===sn.INT64)Vt.supportsBigInt()?Vt.supportsBigInt64Array()?(o=new BigInt64Array(e.buffer,e.byteOffset,n),s=function(a,c){i.typedArray[a]=BigInt(c)}):(o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return $Ne(a,i)}):(Lt("INT64 type is not fully supported on this platform. Values greater than 2^53 - 1 or less than -(2^53 - 1) may lose precision when read."),o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return ZNe(a,i)});else if(t===sn.UINT64)Vt.supportsBigInt()?Vt.supportsBigUint64Array()?(o=new BigUint64Array(e.buffer,e.byteOffset,n),s=function(a,c){i.typedArray[a]=BigInt(c)}):(o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return JNe(a,i)}):(Lt("UINT64 type is not fully supported on this platform. Values greater than 2^53 - 1 may lose precision when read."),o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return QNe(a,i)});else{let a=eFe(t);o=X.createArrayBufferView(a,e.buffer,e.byteOffset,n),s=function(c,u){i.typedArray[c]=u}}l(r)||(r=function(a){return i.typedArray[a]}),this.typedArray=o,this.dataView=new DataView(o.buffer,o.byteOffset),this.get=r,this.set=s,this._componentType=t}var y1=g1;function kd(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.class,i=0,o={};if(l(e.properties)){for(let r in e.properties)if(e.properties.hasOwnProperty(r)){let s=new y1({count:t,property:e.properties[r],classProperty:n.properties[r],bufferViews:e.bufferViews});o[r]=s,i+=s.byteLength}}this._count=t,this._class=n,this._properties=o,this._byteLength=i}Object.defineProperties(kd.prototype,{count:{get:function(){return this._count}},class:{get:function(){return this._class}},byteLength:{get:function(){return this._byteLength}}});kd.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};kd.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};kd.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};kd.prototype.getProperty=function(e,t){let n=this._properties[t],i;return l(n)?i=n.get(e):i=rFe(this._class,t),i};kd.prototype.setProperty=function(e,t,n){let i=this._properties[t];return l(i)?(i.set(e,n),!0):!1};kd.prototype.getPropertyBySemantic=function(e,t){let n,i=this._class.propertiesBySemantic;if(l(i)&&(n=i[t]),l(n))return this.getProperty(e,n.id)};kd.prototype.setPropertyBySemantic=function(e,t,n){let i,o=this._class.propertiesBySemantic;return l(o)&&(i=o[t]),l(i)?this.setProperty(e,i.id,n):!1};kd.prototype.getPropertyTypedArray=function(e){let t=this._properties[e];if(l(t))return t.getTypedArray()};kd.prototype.getPropertyTypedArrayBySemantic=function(e){let t,n=this._class.propertiesBySemantic;if(l(n)&&(t=n[e]),l(t))return this.getPropertyTypedArray(t.id)};function rFe(e,t){let n=e.properties;if(!l(n))return;let i=n[t];if(l(i)&&l(i.default)){let o=i.default;return i.isArray&&(o=He(o,!0)),o=i.normalize(o),i.unpackVectorAndMatrixTypes(o)}}var Ml=kd;function $g(){}Object.defineProperties($g.prototype,{cacheKey:{get:function(){de.throwInstantiationError()}}});$g.prototype.load=function(){de.throwInstantiationError()};$g.prototype.unload=function(){};$g.prototype.process=function(e){return!1};$g.prototype.getError=function(e,t){l(t)&&l(t.message)&&(e+=` ${t.message}`);let n=new le(e);return l(t)&&(n.stack=`Original stack: ${t.stack} Handler stack: ${n.stack}`),n};$g.prototype.isDestroyed=function(){return!1};$g.prototype.destroy=function(){return this.unload(),ue(this)};var no=$g;var sFe={UNLOADED:0,LOADING:1,LOADED:2,PROCESSING:3,READY:4,FAILED:5},Pt=Object.freeze(sFe);function Gp(e){e=y(e,y.EMPTY_OBJECT);let t=e.typedArray,n=e.resource,i=e.cacheKey;this._typedArray=t,this._resource=n,this._cacheKey=i,this._state=Pt.UNLOADED,this._promise=void 0}l(Object.create)&&(Gp.prototype=Object.create(no.prototype),Gp.prototype.constructor=Gp);Object.defineProperties(Gp.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});Gp.prototype.load=async function(){return l(this._promise)?this._promise:l(this._typedArray)?(this._promise=Promise.resolve(this),this._promise):(this._promise=aFe(this),this._promise)};async function aFe(e){let t=e._resource;e._state=Pt.LOADING;try{let n=await Gp._fetchArrayBuffer(t);return e.isDestroyed()?void 0:(e._typedArray=new Uint8Array(n),e._state=Pt.READY,e)}catch(n){if(e.isDestroyed())return;e._state=Pt.FAILED;let i=`Failed to load external buffer: ${t.url}`;throw e.getError(i,n)}}Gp._fetchArrayBuffer=function(e){return e.fetchArrayBuffer()};Gp.prototype.unload=function(){this._typedArray=void 0};var jx=Gp;var soe=wo(roe(),1);function qx(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.bufferViewId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.bufferViews[i],c=a.buffer,u=a.byteOffset,f=a.byteLength,d=!1,p,g,m,x;if(oi(a,"EXT_meshopt_compression")){let T=a.extensions.EXT_meshopt_compression;c=T.buffer,u=y(T.byteOffset,0),f=T.byteLength,d=!0,p=T.byteStride,g=T.count,m=T.mode,x=y(T.filter,"NONE")}let b=n.buffers[c];this._hasMeshopt=d,this._meshoptByteStride=p,this._meshoptCount=g,this._meshoptMode=m,this._meshoptFilter=x,this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._buffer=b,this._bufferId=c,this._byteOffset=u,this._byteLength=f,this._cacheKey=s,this._bufferLoader=void 0,this._typedArray=void 0,this._state=Pt.UNLOADED,this._promise=void 0}l(Object.create)&&(qx.prototype=Object.create(no.prototype),qx.prototype.constructor=qx);Object.defineProperties(qx.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});async function fFe(e){try{let t=dFe(e);if(e._bufferLoader=t,await t.load(),e.isDestroyed())return;let n=t.typedArray,i=new Uint8Array(n.buffer,n.byteOffset+e._byteOffset,e._byteLength);if(e.unload(),e._typedArray=i,e._hasMeshopt){let o=e._meshoptCount,r=e._meshoptByteStride,s=new Uint8Array(o*r);soe.MeshoptDecoder.decodeGltfBuffer(s,o,r,e._typedArray,e._meshoptMode,e._meshoptFilter),e._typedArray=s}return e._state=Pt.READY,e}catch(t){if(e.isDestroyed())return;throw e.unload(),e._state=Pt.FAILED,e.getError("Failed to load buffer view",t)}}qx.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=Pt.LOADING,this._promise=fFe(this),this._promise)};function dFe(e){let t=e._resourceCache,n=e._buffer;if(l(n.uri)){let o=e._baseResource.getDerivedResource({url:n.uri});return t.getExternalBufferLoader({resource:o})}return t.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:e._bufferId})}qx.prototype.unload=function(){l(this._bufferLoader)&&!this._bufferLoader.isDestroyed()&&this._resourceCache.unload(this._bufferLoader),this._bufferLoader=void 0,this._typedArray=void 0};var hC=qx;function Sr(){}Sr._maxDecodingConcurrency=Math.max(Vt.hardwareConcurrency-1,1);Sr._decoderTaskProcessor=void 0;Sr._taskProcessorReady=!1;Sr._error=void 0;Sr._getDecoderTaskProcessor=function(){if(!l(Sr._decoderTaskProcessor)){let e=new mi("decodeDraco",Sr._maxDecodingConcurrency);e.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(function(t){t?Sr._taskProcessorReady=!0:Sr._error=new le("Draco decoder could not be initialized.")}).catch(t=>{Sr._error=t}),Sr._decoderTaskProcessor=e}return Sr._decoderTaskProcessor};Sr.decodePointCloud=function(e){let t=Sr._getDecoderTaskProcessor();if(l(Sr._error))throw Sr._error;if(Sr._taskProcessorReady)return t.scheduleTask(e,[e.buffer.buffer])};Sr.decodeBufferView=function(e){let t=Sr._getDecoderTaskProcessor();if(l(Sr._error))throw Sr._error;if(Sr._taskProcessorReady)return t.scheduleTask(e,[e.array.buffer])};var Wp=Sr;function Qg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.draco,o=e.gltfResource,r=e.baseResource,s=e.cacheKey;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._draco=i,this._cacheKey=s,this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodePromise=void 0,this._decodedData=void 0,this._state=Pt.UNLOADED,this._promise=void 0,this._dracoError=void 0}l(Object.create)&&(Qg.prototype=Object.create(no.prototype),Qg.prototype.constructor=Qg);Object.defineProperties(Qg.prototype,{cacheKey:{get:function(){return this._cacheKey}},decodedData:{get:function(){return this._decodedData}}});async function hFe(e){let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._draco.bufferView,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._bufferViewTypedArray=n.typedArray,e._state=Pt.PROCESSING,e)}catch(n){if(e.isDestroyed())return;aoe(e,n)}}Qg.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=Pt.LOADING,this._promise=hFe(this),this._promise)};function aoe(e,t){throw e.unload(),e._state=Pt.FAILED,e.getError("Failed to load Draco",t)}async function mFe(e,t){try{let n=await t;return e.isDestroyed()?void 0:(e.unload(),e._decodedData={indices:n.indexArray,vertexAttributes:n.attributeData},e._state=Pt.READY,e._baseResource)}catch(n){if(e.isDestroyed())return;e._dracoError=n}}Qg.prototype.process=function(e){if(this._state===Pt.READY)return!0;if(this._state!==Pt.PROCESSING||(l(this._dracoError)&&aoe(this,this._dracoError),!l(this._bufferViewTypedArray))||l(this._decodePromise))return!1;let t=this._draco,i=this._gltf.bufferViews,o=t.bufferView,r=i[o],s=t.attributes,a={array:new Uint8Array(this._bufferViewTypedArray),bufferView:r,compressedAttributes:s,dequantizeInShader:!0},c=Wp.decodeBufferView(a);if(!l(c))return!1;this._decodePromise=mFe(this,c)};Qg.prototype.unload=function(){l(this._bufferViewLoader)&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodedData=void 0,this._gltf=void 0};var mC=Qg;function pFe(e){let t=e.uint8Array,n=e.format,i=e.request,o=y(e.flipY,!1),r=y(e.skipColorSpaceConversion,!1),s=new Blob([t],{type:n}),a;return De.supportsImageBitmapOptions().then(function(c){return c?Promise.resolve(De.createImageBitmapFromBlob(s,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:r})):(a=window.URL.createObjectURL(s),new De({url:a,request:i}).fetchImage({flipY:o,skipColorSpaceConversion:r}))}).then(function(c){return l(a)&&window.URL.revokeObjectURL(a),c}).catch(function(c){return l(a)&&window.URL.revokeObjectURL(a),Promise.reject(c)})}var Yx=pFe;function jp(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.imageId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.images[i],c=a.bufferView,u=a.uri;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._bufferViewId=c,this._uri=u,this._cacheKey=s,this._bufferViewLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._state=Pt.UNLOADED,this._promise=void 0}l(Object.create)&&(jp.prototype=Object.create(no.prototype),jp.prototype.constructor=jp);Object.defineProperties(jp.prototype,{cacheKey:{get:function(){return this._cacheKey}},image:{get:function(){return this._image}},mipLevels:{get:function(){return this._mipLevels}}});jp.prototype.load=function(){return l(this._promise)?this._promise:l(this._bufferViewId)?(this._promise=_Fe(this),this._promise):(this._promise=gFe(this),this._promise)};function coe(e){let t;return Array.isArray(e)&&(t=e.slice(1,e.length).map(function(n){return n.bufferView}),e=e[0]),{image:e,mipLevels:t}}async function _Fe(e){e._state=Pt.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=n,await n.load(),e.isDestroyed())return;let i=n.typedArray,o=await xFe(i);if(e.isDestroyed())return;let r=coe(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=Pt.READY,e}catch(n){return e.isDestroyed()?void 0:loe(e,n,"Failed to load embedded image")}}async function gFe(e){e._state=Pt.LOADING;let t=e._baseResource,n=e._uri,i=t.getDerivedResource({url:n});try{let o=await TFe(i);if(e.isDestroyed())return;let r=coe(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=Pt.READY,e}catch(o){return e.isDestroyed()?void 0:loe(e,o,`Failed to load image: ${n}`)}}function loe(e,t,n){return e.unload(),e._state=Pt.FAILED,Promise.reject(e.getError(n,t))}function yFe(e){let t=e.subarray(0,2),n=e.subarray(0,4),i=e.subarray(8,12);if(t[0]===255&&t[1]===216)return"image/jpeg";if(t[0]===137&&t[1]===80)return"image/png";if(t[0]===171&&t[1]===75)return"image/ktx2";if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&i[0]===87&&i[1]===69&&i[2]===66&&i[3]===80)return"image/webp";throw new le("Image format is not recognized")}async function xFe(e){let t=yFe(e);if(t==="image/ktx2"){let n=new Uint8Array(e);return Cl(n)}return jp._loadImageFromTypedArray({uint8Array:e,format:t,flipY:!1,skipColorSpaceConversion:!0})}var bFe=/(^data:image\/ktx2)|(\.ktx2$)/i;function TFe(e){let t=e.getUrlComponent(!1,!0);return bFe.test(t)?Cl(e):e.fetchImage({skipColorSpaceConversion:!0,preferImageBitmap:!0})}jp.prototype.unload=function(){l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._uri=void 0,this._image=void 0,this._mipLevels=void 0,this._gltf=void 0};jp._loadImageFromTypedArray=Yx;var pC=jp;var AFe={TEXTURE:0,PROGRAM:1,BUFFER:2,NUMBER_OF_JOB_TYPES:3},wa=Object.freeze(AFe);function Jg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.accessorId,o=e.gltfResource,r=e.baseResource,s=e.draco,a=e.cacheKey,c=y(e.asynchronous,!0),u=y(e.loadBuffer,!1),f=y(e.loadTypedArray,!1),d=n.accessors[i].componentType;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._accessorId=i,this._indexDatatype=d,this._draco=s,this._cacheKey=a,this._asynchronous=c,this._loadBuffer=u,this._loadTypedArray=f,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=Pt.UNLOADED,this._promise=void 0}l(Object.create)&&(Jg.prototype=Object.create(no.prototype),Jg.prototype.constructor=Jg);Object.defineProperties(Jg.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},indexDatatype:{get:function(){return this._indexDatatype}}});var CFe=new T9;Jg.prototype.load=async function(){return l(this._promise)?this._promise:l(this._draco)?(this._promise=EFe(this),this._promise):(this._promise=SFe(this),this._promise)};async function EFe(e){e._state=Pt.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=Pt.LOADED,e)}catch(n){if(e.isDestroyed())return;b9(e,n)}}async function SFe(e){let t=e._gltf,n=e._accessorId,o=t.accessors[n].bufferView;e._state=Pt.LOADING;let r=e._resourceCache;try{let s=r.getBufferViewLoader({gltf:t,bufferViewId:o,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=s,await s.load(),e.isDestroyed())return;let a=s.typedArray;return e._typedArray=vFe(e,a),e._state=Pt.PROCESSING,e}catch(s){if(e.isDestroyed())return;b9(e,s)}}function vFe(e,t){let n=e._gltf,i=e._accessorId,o=n.accessors[i],r=o.count,s=o.componentType,a=Ne.getSizeInBytes(s),c=t.buffer,u=t.byteOffset+o.byteOffset;if(u%a!==0){let d=r*a,p=new Uint8Array(c,u,d);c=new Uint8Array(p).buffer,u=0,Ls("index-buffer-unaligned",`The index array is not aligned to a ${a}-byte boundary.`)}let f;return s===Ne.UNSIGNED_BYTE?f=new Uint8Array(c,u,r):s===Ne.UNSIGNED_SHORT?f=new Uint16Array(c,u,r):s===Ne.UNSIGNED_INT&&(f=new Uint32Array(c,u,r)),f}function b9(e,t){throw e.unload(),e._state=Pt.FAILED,e.getError("Failed to load index buffer",t)}function T9(){this.typedArray=void 0,this.indexDatatype=void 0,this.context=void 0,this.buffer=void 0}T9.prototype.set=function(e,t,n){this.typedArray=e,this.indexDatatype=t,this.context=n};T9.prototype.execute=function(){this.buffer=uoe(this.typedArray,this.indexDatatype,this.context)};function uoe(e,t,n){let i=ct.createIndexBuffer({typedArray:e,context:n,usage:Fe.STATIC_DRAW,indexDatatype:t});return i.vertexArrayDestroyable=!1,i}Jg.prototype.process=function(e){if(this._state===Pt.READY)return!0;if(this._state!==Pt.LOADED&&this._state!==Pt.PROCESSING)return!1;let t=this._typedArray,n=this._indexDatatype;if(l(this._dracoLoader))try{this._dracoLoader.process(e)&&(t=this._dracoLoader.decodedData.indices.typedArray,this._typedArray=t,n=X.fromTypedArray(t),this._indexDatatype=n)}catch(o){b9(this,o)}if(!l(t))return!1;let i;if(this._loadBuffer&&this._asynchronous){let o=CFe;if(o.set(t,n,e.context),!e.jobScheduler.execute(o,wa.BUFFER))return!1;i=o.buffer}else this._loadBuffer&&(i=uoe(t,n,e.context));return this.unload(),this._buffer=i,this._typedArray=this._loadTypedArray?t:void 0,this._state=Pt.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};Jg.prototype.unload=function(){l(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),l(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var _C=Jg;function wFe(e,t,n){if(n=y(n,!1),n){let i=e.indexOf(t);if(i>-1)return i}return e.push(t),e.length-1}var ps=wFe;function DFe(e,t){return l(e.extensionsUsed)&&e.extensionsUsed.indexOf(t)>=0}var rr=DFe;function qt(){}qt.objectLegacy=function(e,t){if(l(e)){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(l(o))return o}}};qt.object=function(e,t){if(l(e)){let n=e.length;for(let i=0;i<n;i++){let o=e[i],r=t(o,i);if(l(r))return r}}};qt.topLevel=function(e,t,n){let i=e[t];return l(i)&&!Array.isArray(i)?qt.objectLegacy(i,n):qt.object(i,n)};qt.accessor=function(e,t){return qt.topLevel(e,"accessors",t)};qt.accessorWithSemantic=function(e,t,n){let i={};return qt.mesh(e,function(o){return qt.meshPrimitive(o,function(r){let s=qt.meshPrimitiveAttribute(r,function(a,c){if(c.indexOf(t)===0&&!l(i[a])){i[a]=!0;let u=n(a);if(l(u))return u}});return l(s)?s:qt.meshPrimitiveTarget(r,function(a){return qt.meshPrimitiveTargetAttribute(a,function(c,u){if(u.indexOf(t)===0&&!l(i[c])){i[c]=!0;let f=n(c);if(l(f))return f}})})})})};qt.accessorContainingVertexAttributeData=function(e,t){let n={};return qt.mesh(e,function(i){return qt.meshPrimitive(i,function(o){let r=qt.meshPrimitiveAttribute(o,function(s){if(!l(n[s])){n[s]=!0;let a=t(s);if(l(a))return a}});return l(r)?r:qt.meshPrimitiveTarget(o,function(s){return qt.meshPrimitiveTargetAttribute(s,function(a){if(!l(n[a])){n[a]=!0;let c=t(a);if(l(c))return c}})})})})};qt.accessorContainingIndexData=function(e,t){let n={};return qt.mesh(e,function(i){return qt.meshPrimitive(i,function(o){let r=o.indices;if(l(r)&&!l(n[r])){n[r]=!0;let s=t(r);if(l(s))return s}})})};qt.animation=function(e,t){return qt.topLevel(e,"animations",t)};qt.animationChannel=function(e,t){let n=e.channels;return qt.object(n,t)};qt.animationSampler=function(e,t){let n=e.samplers;return qt.object(n,t)};qt.buffer=function(e,t){return qt.topLevel(e,"buffers",t)};qt.bufferView=function(e,t){return qt.topLevel(e,"bufferViews",t)};qt.camera=function(e,t){return qt.topLevel(e,"cameras",t)};qt.image=function(e,t){return qt.topLevel(e,"images",t)};qt.material=function(e,t){return qt.topLevel(e,"materials",t)};qt.materialValue=function(e,t){let n=e.values;l(e.extensions)&&l(e.extensions.KHR_techniques_webgl)&&(n=e.extensions.KHR_techniques_webgl.values);for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};qt.mesh=function(e,t){return qt.topLevel(e,"meshes",t)};qt.meshPrimitive=function(e,t){let n=e.primitives;if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r,o);if(l(s))return s}}};qt.meshPrimitiveAttribute=function(e,t){let n=e.attributes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};qt.meshPrimitiveTarget=function(e,t){let n=e.targets;if(l(n)){let i=n.length;for(let o=0;o<i;++o){let r=t(n[o],o);if(l(r))return r}}};qt.meshPrimitiveTargetAttribute=function(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(l(o))return o}};qt.node=function(e,t){return qt.topLevel(e,"nodes",t)};qt.nodeInTree=function(e,t,n){let i=e.nodes;if(l(i)){let o=t.length;for(let r=0;r<o;r++){let s=t[r],a=i[s];if(l(a)){let c=n(a,s);if(l(c))return c;let u=a.children;if(l(u)&&(c=qt.nodeInTree(e,u,n),l(c)))return c}}}};qt.nodeInScene=function(e,t,n){let i=t.nodes;if(l(i))return qt.nodeInTree(e,i,n)};qt.program=function(e,t){return rr(e,"KHR_techniques_webgl")?qt.object(e.extensions.KHR_techniques_webgl.programs,t):qt.topLevel(e,"programs",t)};qt.sampler=function(e,t){return qt.topLevel(e,"samplers",t)};qt.scene=function(e,t){return qt.topLevel(e,"scenes",t)};qt.shader=function(e,t){return rr(e,"KHR_techniques_webgl")?qt.object(e.extensions.KHR_techniques_webgl.shaders,t):qt.topLevel(e,"shaders",t)};qt.skin=function(e,t){return qt.topLevel(e,"skins",t)};qt.skinJoint=function(e,t){let n=e.joints;if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r);if(l(s))return s}}};qt.techniqueAttribute=function(e,t){let n=e.attributes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};qt.techniqueUniform=function(e,t){let n=e.uniforms;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};qt.techniqueParameter=function(e,t){let n=e.parameters;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};qt.technique=function(e,t){return rr(e,"KHR_techniques_webgl")?qt.object(e.extensions.KHR_techniques_webgl.techniques,t):qt.topLevel(e,"techniques",t)};qt.texture=function(e,t){return qt.topLevel(e,"textures",t)};var Pe=qt;function PFe(e){switch(e){case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16}}var xu=PFe;function IFe(e,t){let n=t.bufferView;if(l(n)){let i=e.bufferViews[n];if(l(i.byteStride)&&i.byteStride>0)return i.byteStride}return X.getSizeInBytes(t.componentType)*xu(t.type)}var Ll=IFe;function RFe(e){Pe.accessor(e,function(n){l(n.bufferView)&&(n.byteOffset=y(n.byteOffset,0))}),Pe.bufferView(e,function(n){l(n.buffer)&&(n.byteOffset=y(n.byteOffset,0))}),Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){if(i.mode=y(i.mode,ee.TRIANGLES),!l(i.material)){l(e.materials)||(e.materials=[]);let o={name:"default"};i.material=ps(e.materials,o)}})}),Pe.accessorContainingVertexAttributeData(e,function(n){let i=e.accessors[n],o=i.bufferView;if(i.normalized=y(i.normalized,!1),l(o)){let r=e.bufferViews[o];r.byteStride=Ll(e,i),r.target=ee.ARRAY_BUFFER}}),Pe.accessorContainingIndexData(e,function(n){let o=e.accessors[n].bufferView;if(l(o)){let r=e.bufferViews[o];r.target=ee.ELEMENT_ARRAY_BUFFER}}),Pe.material(e,function(n){let i=y(n.extensions,y.EMPTY_OBJECT),o=i.KHR_materials_common;if(l(o)){let c=o.technique,u=l(o.values)?o.values:{};o.values=u,u.ambient=l(u.ambient)?u.ambient:[0,0,0,1],u.emission=l(u.emission)?u.emission:[0,0,0,1],u.transparency=y(u.transparency,1),c!=="CONSTANT"&&(u.diffuse=l(u.diffuse)?u.diffuse:[0,0,0,1],c!=="LAMBERT"&&(u.specular=l(u.specular)?u.specular:[0,0,0,1],u.shininess=y(u.shininess,0))),o.transparent=y(o.transparent,!1),o.doubleSided=y(o.doubleSided,!1);return}n.emissiveFactor=y(n.emissiveFactor,[0,0,0]),n.alphaMode=y(n.alphaMode,"OPAQUE"),n.doubleSided=y(n.doubleSided,!1),n.alphaMode==="MASK"&&(n.alphaCutoff=y(n.alphaCutoff,.5));let r=i.KHR_techniques_webgl;l(r)&&Pe.materialValue(n,function(c){l(c.index)&&Xx(c)}),Xx(n.emissiveTexture),Xx(n.normalTexture),Xx(n.occlusionTexture);let s=n.pbrMetallicRoughness;l(s)&&(s.baseColorFactor=y(s.baseColorFactor,[1,1,1,1]),s.metallicFactor=y(s.metallicFactor,1),s.roughnessFactor=y(s.roughnessFactor,1),Xx(s.baseColorTexture),Xx(s.metallicRoughnessTexture));let a=i.KHR_materials_pbrSpecularGlossiness;l(a)&&(a.diffuseFactor=y(a.diffuseFactor,[1,1,1,1]),a.specularFactor=y(a.specularFactor,[1,1,1]),a.glossinessFactor=y(a.glossinessFactor,1),Xx(a.specularGlossinessTexture))}),Pe.animation(e,function(n){Pe.animationSampler(n,function(i){i.interpolation=y(i.interpolation,"LINEAR")})});let t=OFe(e);return Pe.node(e,function(n,i){l(t[i])||l(n.translation)||l(n.rotation)||l(n.scale)?(n.translation=y(n.translation,[0,0,0]),n.rotation=y(n.rotation,[0,0,0,1]),n.scale=y(n.scale,[1,1,1])):n.matrix=y(n.matrix,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}),Pe.sampler(e,function(n){n.wrapS=y(n.wrapS,ee.REPEAT),n.wrapT=y(n.wrapT,ee.REPEAT)}),l(e.scenes)&&!l(e.scene)&&(e.scene=0),e}function OFe(e){let t={};return Pe.animation(e,function(n){Pe.animationChannel(n,function(i){let o=i.target,r=o.node,s=o.path;(s==="translation"||s==="rotation"||s==="scale")&&(t[r]=!0)})}),t}function Xx(e){l(e)&&(e.texCoord=y(e.texCoord,0))}var A1=RFe;function MFe(e){return Pe.shader(e,function(t){rU(t)}),Pe.buffer(e,function(t){rU(t)}),Pe.image(e,function(t){rU(t)}),rU(e),e}function rU(e){e.extras=l(e.extras)?e.extras:{},e.extras._pipeline=l(e.extras._pipeline)?e.extras._pipeline:{}}var ey=MFe;function LFe(e,t){let n=e.extensionsRequired;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),n.length===0&&delete e.extensionsRequired}}var C1=LFe;function NFe(e,t){let n=e.extensionsUsed;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),C1(e,t),n.length===0&&delete e.extensionsUsed}}var Kx=NFe;var FFe=4;function BFe(e){if(Fd(e)!=="glTF")throw new le("File is not valid binary glTF");let n=foe(e,0,5),i=n[1];if(i!==1&&i!==2)throw new le("Binary glTF version is not 1 or 2");return i===1?kFe(e,n):VFe(e,n)}function foe(e,t,n){let i=new DataView(e.buffer),o=new Array(n);for(let r=0;r<n;++r)o[r]=i.getUint32(e.byteOffset+t+r*FFe,!0);return o}function kFe(e,t){let n=t[2],i=t[3];if(t[4]!==0)throw new le("Binary glTF scene format is not JSON");let r=20,s=r+i,a=Il(e,r,i),c=JSON.parse(a);ey(c);let u=e.subarray(s,n),f=c.buffers;if(l(f)&&Object.keys(f).length>0){let d=y(f.binary_glTF,f.KHR_binary_glTF);l(d)&&(d.extras._pipeline.source=u,delete d.uri)}return Kx(c,"KHR_binary_glTF"),c}function VFe(e,t){let n=t[2],i=12,o,r;for(;i<n;){let s=foe(e,i,2),a=s[0],c=s[1];i+=8;let u=e.subarray(i,i+a);if(i+=a,c===1313821514){let f=Il(u);o=JSON.parse(f),ey(o)}else c===5130562&&(r=u)}if(l(o)&&l(r)){let s=o.buffers;if(l(s)&&s.length>0){let a=s[0];a.extras._pipeline.source=r}}return o}var E1=BFe;function UFe(e){return Pe.shader(e,function(t){sU(t)}),Pe.buffer(e,function(t){sU(t)}),Pe.image(e,function(t){sU(t)}),sU(e),e}function sU(e){l(e.extras)&&(l(e.extras._pipeline)&&delete e.extras._pipeline,Object.keys(e.extras).length===0&&delete e.extras)}var S1=UFe;function zFe(e,t){let n=e.extensionsUsed;l(n)||(n=[],e.extensionsUsed=n),ps(n,t,!0)}var Cf=zFe;function HFe(e){switch(e){case X.BYTE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt8(n+s*o)};case X.UNSIGNED_BYTE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint8(n+s*o)};case X.SHORT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt16(n+s*o,!0)};case X.UNSIGNED_SHORT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint16(n+s*o,!0)};case X.INT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt32(n+s*o,!0)};case X.UNSIGNED_INT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint32(n+s*o,!0)};case X.FLOAT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getFloat32(n+s*o,!0)};case X.DOUBLE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getFloat64(n+s*o,!0)}}}var qp=HFe;function GFe(e,t){let n=e.bufferViews,i=e.buffers,o=t.bufferView,r=xu(t.type);if(!l(t.bufferView))return{min:new Array(r).fill(0),max:new Array(r).fill(0)};let s=new Array(r).fill(Number.POSITIVE_INFINITY),a=new Array(r).fill(Number.NEGATIVE_INFINITY),c=n[o],u=c.buffer,d=i[u].extras._pipeline.source,p=t.count,g=Ll(e,t),m=t.byteOffset+c.byteOffset+d.byteOffset,x=t.componentType,b=X.getSizeInBytes(x),T=new DataView(d.buffer),C=new Array(r),A=qp(x);for(let E=0;E<p;E++){A(T,m,r,b,C);for(let v=0;v<r;v++){let D=C[v];s[v]=Math.min(s[v],D),a[v]=Math.max(a[v],D)}m+=g}return{min:s,max:a}}var Zx=GFe;var WFe=[ee.FUNC_ADD,ee.FUNC_ADD],jFe=[ee.ONE,ee.ZERO,ee.ONE,ee.ZERO];function doe(e,t){let n=e.enable;return l(n)?n.indexOf(t)>-1:!1}var qFe=[ee.ZERO,ee.ONE,ee.SRC_COLOR,ee.ONE_MINUS_SRC_COLOR,ee.SRC_ALPHA,ee.ONE_MINUS_SRC_ALPHA,ee.DST_ALPHA,ee.ONE_MINUS_DST_ALPHA,ee.DST_COLOR,ee.ONE_MINUS_DST_COLOR];function YFe(e,t){if(!l(e))return t;for(let n=0;n<4;n++)if(qFe.indexOf(e[n])===-1)return t;return e}function XFe(e){let t={},n={},i=e.techniques;return l(i)&&(Pe.technique(e,function(o,r){let s=o.states;if(l(s)){let a=n[r]={};if(doe(s,ee.BLEND)){a.alphaMode="BLEND";let c=s.functions;l(c)&&(l(c.blendEquationSeparate)||l(c.blendFuncSeparate))&&(t[r]={blendEquation:y(c.blendEquationSeparate,WFe),blendFactors:YFe(c.blendFuncSeparate,jFe)})}doe(s,ee.CULL_FACE)||(a.doubleSided=!0),delete o.states}}),Object.keys(t).length>0&&(l(e.extensions)||(e.extensions={}),Cf(e,"KHR_blend")),Pe.material(e,function(o){if(l(o.technique)){let r=n[o.technique];Pe.objectLegacy(r,function(a,c){o[c]=a});let s=t[o.technique];l(s)&&(l(o.extensions)||(o.extensions={}),o.extensions.KHR_blend=s)}})),e}var v1=XFe;function KFe(e,t){let n=e.extensionsRequired;l(n)||(n=[],e.extensionsRequired=n),ps(n,t,!0),Cf(e,t)}var w1=KFe;function ZFe(e){let t=e.techniques,n={},i={},o={};if(l(t)){let r={programs:[],shaders:[],techniques:[]},s=e.glExtensionsUsed;delete e.glExtensionsUsed,Pe.technique(e,function(a,c){let u={name:a.name,program:void 0,attributes:{},uniforms:{}},f;if(Pe.techniqueAttribute(a,function(d,p){f=a.parameters[d],u.attributes[p]={semantic:f.semantic}}),Pe.techniqueUniform(a,function(d,p){f=a.parameters[d],u.uniforms[p]={count:f.count,node:f.node,type:f.type,semantic:f.semantic,value:f.value},l(n[c])||(n[c]={}),n[c][d]=p}),l(o[a.program]))u.program=o[a.program];else{let d=e.programs[a.program],p={name:d.name,fragmentShader:void 0,vertexShader:void 0,glExtensions:s},g=e.shaders[d.fragmentShader];p.fragmentShader=ps(r.shaders,g,!0);let m=e.shaders[d.vertexShader];p.vertexShader=ps(r.shaders,m,!0),u.program=ps(r.programs,p),o[a.program]=u.program}i[c]=ps(r.techniques,u)}),r.techniques.length>0&&(l(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl=r,Cf(e,"KHR_techniques_webgl"),w1(e,"KHR_techniques_webgl"))}return Pe.material(e,function(r){if(l(r.technique)){let s={technique:i[r.technique]};Pe.objectLegacy(r.values,function(a,c){l(s.values)||(s.values={});let u=n[r.technique][c];l(u)&&(s.values[u]=a)}),l(r.extensions)||(r.extensions={}),r.extensions.KHR_techniques_webgl=s}delete r.technique,delete r.values}),delete e.techniques,delete e.programs,delete e.shaders,e}var D1=ZFe;function $Fe(e,t){go.typeOf.object("material",e),go.defined("handler",t);let n=e.pbrMetallicRoughness;if(l(n)){if(l(n.baseColorTexture)){let r=n.baseColorTexture,s=t(r.index,r);if(l(s))return s}if(l(n.metallicRoughnessTexture)){let r=n.metallicRoughnessTexture,s=t(r.index,r);if(l(s))return s}}let{extensions:i}=e;if(l(i)){let r=i.KHR_materials_pbrSpecularGlossiness;if(l(r)){if(l(r.diffuseTexture)){let c=r.diffuseTexture,u=t(c.index,c);if(l(u))return u}if(l(r.specularGlossinessTexture)){let c=r.specularGlossinessTexture,u=t(c.index,c);if(l(u))return u}}let s=i.KHR_materials_specular;if(l(s)){let{specularTexture:c,specularColorTexture:u}=s;if(l(c)){let f=t(c.index,c);if(l(f))return f}if(l(u)){let f=t(u.index,u);if(l(f))return f}}let a=i.KHR_materials_common;if(l(a)&&l(a.values)){let{diffuse:c,ambient:u,emission:f,specular:d}=a.values;if(l(c)&&l(c.index)){let p=t(c.index,c);if(l(p))return p}if(l(u)&&l(u.index)){let p=t(u.index,u);if(l(p))return p}if(l(f)&&l(f.index)){let p=t(f.index,f);if(l(p))return p}if(l(d)&&l(d.index)){let p=t(d.index,d);if(l(p))return p}}}let o=Pe.materialValue(e,function(r){if(l(r.index)){let s=t(r.index,r);if(l(s))return s}});if(l(o))return o;if(l(e.emissiveTexture)){let r=e.emissiveTexture,s=t(r.index,r);if(l(s))return s}if(l(e.normalTexture)){let r=e.normalTexture,s=t(r.index,r);if(l(s))return s}if(l(e.occlusionTexture)){let r=e.occlusionTexture,s=t(r.index,r);if(l(s))return s}}var gC=$Fe;var hoe=["mesh","node","material","accessor","bufferView","buffer","texture","sampler","image"];function QFe(e,t){return t=y(t,hoe),hoe.forEach(function(n){t.indexOf(n)>-1&&e2e(e,n)}),e}var JFe={accessor:"accessors",buffer:"buffers",bufferView:"bufferViews",image:"images",node:"nodes",material:"materials",mesh:"meshes",sampler:"samplers",texture:"textures"};function e2e(e,t){let n=JFe[t],i=e[n];if(l(i)){let o=0,r=fm[t](e),s=i.length;for(let a=0;a<s;++a)r[a]||(um[t](e,a-o),o++)}}function um(){}um.accessor=function(e,t){e.accessors.splice(t,1),Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){Pe.meshPrimitiveAttribute(o,function(a,c){a>t&&o.attributes[c]--}),Pe.meshPrimitiveTarget(o,function(a){Pe.meshPrimitiveTargetAttribute(a,function(c,u){c>t&&a[u]--})});let r=o.indices;l(r)&&r>t&&o.indices--;let s=o.extensions;l(s)&&l(s.CESIUM_primitive_outline)&&s.CESIUM_primitive_outline.indices>t&&--s.CESIUM_primitive_outline.indices})}),Pe.skin(e,function(i){l(i.inverseBindMatrices)&&i.inverseBindMatrices>t&&i.inverseBindMatrices--}),Pe.animation(e,function(i){Pe.animationSampler(i,function(o){l(o.input)&&o.input>t&&o.input--,l(o.output)&&o.output>t&&o.output--})})};um.buffer=function(e,t){e.buffers.splice(t,1),Pe.bufferView(e,function(i){l(i.buffer)&&i.buffer>t&&i.buffer--,l(i.extensions)&&l(i.extensions.EXT_meshopt_compression)&&i.extensions.EXT_meshopt_compression.buffer--})};um.bufferView=function(e,t){if(e.bufferViews.splice(t,1),Pe.accessor(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Pe.shader(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Pe.image(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),rr(e,"KHR_draco_mesh_compression")&&Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){l(o.extensions)&&l(o.extensions.KHR_draco_mesh_compression)&&o.extensions.KHR_draco_mesh_compression.bufferView>t&&o.extensions.KHR_draco_mesh_compression.bufferView--})}),rr(e,"EXT_feature_metadata")){let o=e.extensions.EXT_feature_metadata.featureTables;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];l(u.bufferView)&&u.bufferView>t&&u.bufferView--,l(u.arrayOffsetBufferView)&&u.arrayOffsetBufferView>t&&u.arrayOffsetBufferView--,l(u.stringOffsetBufferView)&&u.stringOffsetBufferView>t&&u.stringOffsetBufferView--}}}}if(rr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTables;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let u in c)if(c.hasOwnProperty(u)){let f=c[u];l(f.values)&&f.values>t&&f.values--,l(f.arrayOffsets)&&f.arrayOffsets>t&&f.arrayOffsets--,l(f.stringOffsets)&&f.stringOffsets>t&&f.stringOffsets--}}}}};um.image=function(e,t){e.images.splice(t,1),Pe.texture(e,function(i){l(i.source)&&i.source>t&&--i.source;let o=i.extensions;l(o)&&l(o.EXT_texture_webp)&&o.EXT_texture_webp.source>t?--i.extensions.EXT_texture_webp.source:l(o)&&l(o.KHR_texture_basisu)&&o.KHR_texture_basisu.source>t&&--i.extensions.KHR_texture_basisu.source})};um.mesh=function(e,t){e.meshes.splice(t,1),Pe.node(e,function(i){l(i.mesh)&&(i.mesh>t?i.mesh--:i.mesh===t&&delete i.mesh)})};um.node=function(e,t){e.nodes.splice(t,1),Pe.skin(e,function(i){l(i.skeleton)&&i.skeleton>t&&i.skeleton--,i.joints=i.joints.map(function(o){return o>t?o-1:o})}),Pe.animation(e,function(i){Pe.animationChannel(i,function(o){l(o.target)&&l(o.target.node)&&o.target.node>t&&o.target.node--})}),Pe.technique(e,function(i){Pe.techniqueUniform(i,function(o){l(o.node)&&o.node>t&&o.node--})}),Pe.node(e,function(i){l(i.children)&&(i.children=i.children.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o}))}),Pe.scene(e,function(i){i.nodes=i.nodes.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o})})};um.material=function(e,t){e.materials.splice(t,1),Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){l(o.material)&&o.material>t&&o.material--})})};um.sampler=function(e,t){e.samplers.splice(t,1),Pe.texture(e,function(i){l(i.sampler)&&i.sampler>t&&--i.sampler})};um.texture=function(e,t){if(e.textures.splice(t,1),Pe.material(e,function(i){gC(i,function(o,r){r.index>t&&--r.index})}),rr(e,"EXT_feature_metadata")){Pe.mesh(e,function(r){Pe.meshPrimitive(r,function(s){let a=s.extensions;if(l(a)&&l(a.EXT_feature_metadata)){let u=a.EXT_feature_metadata.featureIdTextures;if(l(u)){let f=u.length;for(let d=0;d<f;++d){let g=u[d].featureIds.texture;g.index>t&&--g.index}}}})});let o=e.extensions.EXT_feature_metadata.featureTextures;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let f=a[c].texture;f.index>t&&--f.index}}}}if(rr(e,"EXT_mesh_features")&&Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){let r=o.extensions;if(l(r)&&l(r.EXT_mesh_features)){let a=r.EXT_mesh_features.featureIds;if(l(a)){let c=a.length;for(let u=0;u<c;++u){let f=a[u];l(f.texture)&&f.texture.index>t&&--f.texture.index}}}})}),rr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTextures;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let u in c)if(c.hasOwnProperty(u)){let f=c[u];f.index>t&&--f.index}}}}};function fm(){}fm.accessor=function(e){let t={};return Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){Pe.meshPrimitiveAttribute(i,function(r){t[r]=!0}),Pe.meshPrimitiveTarget(i,function(r){Pe.meshPrimitiveTargetAttribute(r,function(s){t[s]=!0})});let o=i.indices;l(o)&&(t[o]=!0)})}),Pe.skin(e,function(n){l(n.inverseBindMatrices)&&(t[n.inverseBindMatrices]=!0)}),Pe.animation(e,function(n){Pe.animationSampler(n,function(i){l(i.input)&&(t[i.input]=!0),l(i.output)&&(t[i.output]=!0)})}),rr(e,"EXT_mesh_gpu_instancing")&&Pe.node(e,function(n){l(n.extensions)&&l(n.extensions.EXT_mesh_gpu_instancing)&&Object.keys(n.extensions.EXT_mesh_gpu_instancing.attributes).forEach(function(i){let o=n.extensions.EXT_mesh_gpu_instancing.attributes[i];t[o]=!0})}),rr(e,"CESIUM_primitive_outline")&&Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){let o=i.extensions;if(l(o)&&l(o.CESIUM_primitive_outline)){let s=o.CESIUM_primitive_outline.indices;l(s)&&(t[s]=!0)}})}),t};fm.buffer=function(e){let t={};return Pe.bufferView(e,function(n){l(n.buffer)&&(t[n.buffer]=!0),l(n.extensions)&&l(n.extensions.EXT_meshopt_compression)&&(t[n.extensions.EXT_meshopt_compression.buffer]=!0)}),t};fm.bufferView=function(e){let t={};if(Pe.accessor(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Pe.shader(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Pe.image(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),rr(e,"KHR_draco_mesh_compression")&&Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){l(i.extensions)&&l(i.extensions.KHR_draco_mesh_compression)&&(t[i.extensions.KHR_draco_mesh_compression.bufferView]=!0)})}),rr(e,"EXT_feature_metadata")){let i=e.extensions.EXT_feature_metadata.featureTables;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(l(s)){for(let a in s)if(s.hasOwnProperty(a)){let c=s[a];l(c.bufferView)&&(t[c.bufferView]=!0),l(c.arrayOffsetBufferView)&&(t[c.arrayOffsetBufferView]=!0),l(c.stringOffsetBufferView)&&(t[c.stringOffsetBufferView]=!0)}}}}if(rr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTables;if(l(i)){let o=i.length;for(let r=0;r<o;++r){let a=i[r].properties;for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];l(u.values)&&(t[u.values]=!0),l(u.arrayOffsets)&&(t[u.arrayOffsets]=!0),l(u.stringOffsets)&&(t[u.stringOffsets]=!0)}}}}return t};fm.image=function(e){let t={};return Pe.texture(e,function(n){l(n.source)&&(t[n.source]=!0),l(n.extensions)&&l(n.extensions.EXT_texture_webp)?t[n.extensions.EXT_texture_webp.source]=!0:l(n.extensions)&&l(n.extensions.KHR_texture_basisu)&&(t[n.extensions.KHR_texture_basisu.source]=!0)}),t};fm.mesh=function(e){let t={};return Pe.node(e,function(n){if(l(n.mesh&&l(e.meshes))){let i=e.meshes[n.mesh];l(i)&&l(i.primitives)&&i.primitives.length>0&&(t[n.mesh]=!0)}}),t};function moe(e,t,n){let i=e.nodes[t];return l(i.mesh)||l(i.camera)||l(i.skin)||l(i.weights)||l(i.extras)||l(i.extensions)&&Object.keys(i.extensions).length!==0||l(n[t])?!1:!l(i.children)||i.children.filter(function(o){return!moe(e,o,n)}).length===0}fm.node=function(e){let t={};return Pe.skin(e,function(n){l(n.skeleton)&&(t[n.skeleton]=!0),Pe.skinJoint(n,function(i){t[i]=!0})}),Pe.animation(e,function(n){Pe.animationChannel(n,function(i){l(i.target)&&l(i.target.node)&&(t[i.target.node]=!0)})}),Pe.technique(e,function(n){Pe.techniqueUniform(n,function(i){l(i.node)&&(t[i.node]=!0)})}),Pe.node(e,function(n,i){moe(e,i,t)||(t[i]=!0)}),t};fm.material=function(e){let t={};return Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){l(i.material)&&(t[i.material]=!0)})}),t};fm.texture=function(e){let t={};if(Pe.material(e,function(n){gC(n,function(i){t[i]=!0})}),rr(e,"EXT_feature_metadata")){Pe.mesh(e,function(o){Pe.meshPrimitive(o,function(r){let s=r.extensions;if(l(s)&&l(s.EXT_feature_metadata)){let c=s.EXT_feature_metadata.featureIdTextures;if(l(c)){let u=c.length;for(let f=0;f<u;++f){let p=c[f].featureIds.texture;t[p.index]=!0}}}})});let i=e.extensions.EXT_feature_metadata.featureTextures;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(l(s)){for(let a in s)if(s.hasOwnProperty(a)){let u=s[a].texture;t[u.index]=!0}}}}if(rr(e,"EXT_mesh_features")&&Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){let o=i.extensions;if(l(o)&&l(o.EXT_mesh_features)){let s=o.EXT_mesh_features.featureIds;if(l(s)){let a=s.length;for(let c=0;c<a;++c){let u=s[c];l(u.texture)&&(t[u.texture.index]=!0)}}}})}),rr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTextures;if(l(i)){let o=i.length;for(let r=0;r<o;++r){let a=i[r].properties;for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];t[u.index]=!0}}}}return t};fm.sampler=function(e){let t={};return Pe.texture(e,function(n){l(n.sampler)&&(t[n.sampler]=!0)}),t};var P1=QFe;function t2e(e,t){let n={byteLength:t.length,extras:{_pipeline:{source:t}}},o={buffer:ps(e.buffers,n),byteOffset:0,byteLength:t.length};return ps(e.bufferViews,o)}var I1=t2e;function n2e(e,t){let n=Ll(e,t),i=X.getSizeInBytes(t.componentType),o=xu(t.type),r=t.count,s=new Array(o*r);if(!l(t.bufferView))return s.fill(0);let a=e.bufferViews[t.bufferView],c=e.buffers[a.buffer].extras._pipeline.source,u=t.byteOffset+a.byteOffset+c.byteOffset,f=new DataView(c.buffer),d=new Array(o),p=qp(t.componentType);for(let g=0;g<r;++g){p(f,u,o,i,d);for(let m=0;m<o;++m)s[g*o+m]=d[m];u+=n}return s}var R1=n2e;function i2e(e){let t;return Pe.accessorWithSemantic(e,"JOINTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===ee.BYTE?aU(e,i,X.UNSIGNED_BYTE):t!==ee.UNSIGNED_BYTE&&t!==ee.UNSIGNED_SHORT&&aU(e,i,X.UNSIGNED_SHORT)}),Pe.accessorWithSemantic(e,"WEIGHTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===ee.BYTE?aU(e,i,X.UNSIGNED_BYTE):t===ee.SHORT&&aU(e,i,X.UNSIGNED_SHORT)}),e}function aU(e,t,n){let i=X.createTypedArray(n,R1(e,t)),o=new Uint8Array(i.buffer);t.bufferView=I1(e,o),t.componentType=n,t.byteOffset=0}var O1=i2e;function o2e(e,t){return Kx(e,t),t==="CESIUM_RTC"&&r2e(e),A9(e,t)}function r2e(e){Pe.technique(e,function(t){Pe.techniqueUniform(t,function(n){n.semantic==="CESIUM_RTC_MODELVIEW"&&(n.semantic="MODELVIEW")})})}function A9(e,t){if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;++i)A9(e[i],t)}else if(e!==null&&typeof e=="object"&&e.constructor===Object){let n=e.extensions,i;l(n)&&(i=n[t],l(i)&&(delete n[t],Object.keys(n).length===0&&delete e.extensions));for(let o in e)Object.prototype.hasOwnProperty.call(e,o)&&A9(e[o],t);return i}}var $x=o2e;var cU={.8:f2e,"1.0":O2e,"2.0":void 0};function s2e(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.targetVersion,i=e.version;e.asset=y(e.asset,{version:"1.0"}),e.asset.version=y(e.asset.version,"1.0"),i=y(i,e.asset.version).toString(),Object.prototype.hasOwnProperty.call(cU,i)||(l(i)&&(i=i.substring(0,3)),Object.prototype.hasOwnProperty.call(cU,i)||(i="1.0"));let o=cU[i];for(;l(o)&&i!==n;)o(e,t),i=e.asset.version,o=cU[i];return t.keepLegacyExtensions||(N2e(e,t),F2e(e)),e}function goe(e){let t=e.materials;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.instanceTechnique;l(o)&&(i.technique=o.technique,i.values=o.values,delete i.instanceTechnique)}}function a2e(e){let t=e.meshes;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let o=t[n].primitives;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let a=o[s],c=y(a.primitive,ee.TRIANGLES);a.mode=y(a.mode,c),delete a.primitive}}}}function c2e(e){let t=e.nodes,n=new h,i=new Me;for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o];if(l(r.rotation)){let a=r.rotation;h.fromArray(a,0,n),Me.fromAxisAngle(n,a[3],i),r.rotation=[i.x,i.y,i.z,i.w]}let s=r.instanceSkin;l(s)&&(r.skeletons=s.skeletons,r.skin=s.skin,r.meshes=s.meshes,delete r.instanceSkin)}}function l2e(e){let t=e.animations,n=e.accessors,i=e.bufferViews,o=e.buffers,r={},s=new h,a=new Me;for(let c in t)if(Object.prototype.hasOwnProperty.call(t,c)){let u=t[c],f=u.channels,d=u.parameters,p=u.samplers;if(l(f)){let g=f.length;for(let m=0;m<g;++m){let x=f[m];if(x.target.path==="rotation"){let b=d[p[x.sampler].output];if(l(r[b]))continue;r[b]=!0;let T=n[b],C=i[T.bufferView],E=o[C.buffer].extras._pipeline.source,v=E.byteOffset+C.byteOffset+T.byteOffset,D=T.componentType,O=T.count,I=xu(T.type),L=T.count*I,N=X.createArrayBufferView(D,E.buffer,v,L);for(let _=0;_<O;_++){let S=_*I;h.unpack(N,S,s);let w=N[S+3];Me.fromAxisAngle(s,w,a),Me.pack(a,N,S)}}}}}}function u2e(e){let t=e.techniques;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.passes;if(l(o)){let r=y(i.pass,"defaultPass");if(Object.prototype.hasOwnProperty.call(o,r)){let s=o[r],a=s.instanceProgram;i.attributes=y(i.attributes,a.attributes),i.program=y(i.program,a.program),i.uniforms=y(i.uniforms,a.uniforms),i.states=y(i.states,s.states)}delete i.passes,delete i.pass}}}function f2e(e){l(e.asset)||(e.asset={});let t=e.asset;if(t.version="1.0",typeof t.profile=="string"){let n=t.profile.split(" ");t.profile={api:n[0],version:n[1]}}else t.profile={};if(l(e.version)&&delete e.version,goe(e),a2e(e),c2e(e),l2e(e),u2e(e),l(e.allExtensions)&&(e.extensionsUsed=e.allExtensions,delete e.allExtensions),l(e.lights)){let n=y(e.extensions,{});e.extensions=n;let i=y(n.KHR_materials_common,{});n.KHR_materials_common=i,i.lights=e.lights,delete e.lights,Cf(e,"KHR_materials_common")}}function d2e(e){let t=e.animations;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.parameters;if(l(o)){let r=i.samplers;for(let s in r)if(Object.prototype.hasOwnProperty.call(r,s)){let a=r[s];a.input=o[a.input],a.output=o[a.output]}delete i.parameters}}}function poe(e,t){let n=[];for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let o=e[i];t[i]=n.length,n.push(o),l(o.name)||(o.name=i)}return n}function h2e(e){let t,n={accessors:{},animations:{},buffers:{},bufferViews:{},cameras:{},images:{},materials:{},meshes:{},nodes:{},programs:{},samplers:{},scenes:{},shaders:{},skins:{},textures:{},techniques:{}},i,o={},r=e.nodes;for(let s in r)Object.prototype.hasOwnProperty.call(r,s)&&(i=r[s].jointName,l(i)&&(o[i]=s));for(let s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&l(n[s])){let a={},c=e[s];e[s]=poe(c,a),n[s]=a}for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(o[i]=n.nodes[o[i]]);l(e.scene)&&(e.scene=n.scenes[e.scene]),Pe.bufferView(e,function(s){l(s.buffer)&&(s.buffer=n.buffers[s.buffer])}),Pe.accessor(e,function(s){l(s.bufferView)&&(s.bufferView=n.bufferViews[s.bufferView])}),Pe.shader(e,function(s){let a=s.extensions;if(l(a)){let c=a.KHR_binary_glTF;l(c)&&(s.bufferView=n.bufferViews[c.bufferView],delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Pe.program(e,function(s){l(s.vertexShader)&&(s.vertexShader=n.shaders[s.vertexShader]),l(s.fragmentShader)&&(s.fragmentShader=n.shaders[s.fragmentShader])}),Pe.technique(e,function(s){l(s.program)&&(s.program=n.programs[s.program]),Pe.techniqueParameter(s,function(a){l(a.node)&&(a.node=n.nodes[a.node]);let c=a.value;typeof c=="string"&&(a.value={index:n.textures[c]})})}),Pe.mesh(e,function(s){Pe.meshPrimitive(s,function(a){l(a.indices)&&(a.indices=n.accessors[a.indices]),Pe.meshPrimitiveAttribute(a,function(c,u){a.attributes[u]=n.accessors[c]}),l(a.material)&&(a.material=n.materials[a.material])})}),Pe.node(e,function(s){let a=s.children;if(l(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}if(l(s.meshes)){let c=s.meshes,u=c.length;if(u>0)for(s.mesh=n.meshes[c[0]],t=1;t<u;++t){let f={mesh:n.meshes[c[t]]},d=ps(e.nodes,f);l(a)||(a=[],s.children=a),a.push(d)}delete s.meshes}if(l(s.camera)&&(s.camera=n.cameras[s.camera]),l(s.skin)&&(s.skin=n.skins[s.skin]),l(s.skeletons)){let c=s.skeletons;if(c.length>0&&l(s.skin)){let f=e.skins[s.skin];f.skeleton=n.nodes[c[0]]}delete s.skeletons}l(s.jointName)&&delete s.jointName}),Pe.skin(e,function(s){l(s.inverseBindMatrices)&&(s.inverseBindMatrices=n.accessors[s.inverseBindMatrices]);let a=s.jointNames;if(l(a)){let c=[],u=a.length;for(t=0;t<u;++t)c[t]=o[a[t]];s.joints=c,delete s.jointNames}}),Pe.scene(e,function(s){let a=s.nodes;if(l(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}}),Pe.animation(e,function(s){let a={};s.samplers=poe(s.samplers,a),Pe.animationSampler(s,function(c){c.input=n.accessors[c.input],c.output=n.accessors[c.output]}),Pe.animationChannel(s,function(c){c.sampler=a[c.sampler];let u=c.target;l(u)&&(u.node=n.nodes[u.id],delete u.id)})}),Pe.material(e,function(s){l(s.technique)&&(s.technique=n.techniques[s.technique]),Pe.materialValue(s,function(c,u){typeof c=="string"&&(s.values[u]={index:n.textures[c]})});let a=s.extensions;if(l(a)){let c=a.KHR_materials_common;l(c)&&l(c.values)&&Pe.materialValue(c,function(u,f){typeof u=="string"&&(c.values[f]={index:n.textures[u]})})}}),Pe.image(e,function(s){let a=s.extensions;if(l(a)){let c=a.KHR_binary_glTF;l(c)&&(s.bufferView=n.bufferViews[c.bufferView],s.mimeType=c.mimeType,delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Pe.texture(e,function(s){l(s.sampler)&&(s.sampler=n.samplers[s.sampler]),l(s.source)&&(s.source=n.images[s.source])})}function m2e(e){Pe.animation(e,function(t){Pe.animationSampler(t,function(n){delete n.name})})}function p2e(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];Array.isArray(n)&&n.length===0&&delete e[t]}Pe.node(e,function(t){l(t.children)&&t.children.length===0&&delete t.children})}function _2e(e){let t=e.asset;delete t.profile,delete t.premultipliedAlpha}var g2e={CESIUM_RTC:!0,KHR_materials_common:!0,WEB3D_quantized_attributes:!0};function y2e(e){let t=e.extensionsUsed;if(e.extensionsRequired=y(e.extensionsRequired,[]),l(t)){let n=t.length;for(let i=0;i<n;++i){let o=t[i];l(g2e[o])&&e.extensionsRequired.push(o)}}}function x2e(e){Pe.buffer(e,function(t){delete t.type})}function b2e(e){Pe.texture(e,function(t){delete t.format,delete t.internalFormat,delete t.target,delete t.type})}function T2e(e){Pe.mesh(e,function(t){Pe.meshPrimitive(t,function(n){Pe.meshPrimitiveAttribute(n,function(i,o){o==="TEXCOORD"?n.attributes.TEXCOORD_0=i:o==="COLOR"&&(n.attributes.COLOR_0=i)}),delete n.attributes.TEXCOORD,delete n.attributes.COLOR})}),Pe.technique(e,function(t){Pe.techniqueParameter(t,function(n){let i=n.semantic;l(i)&&(i==="TEXCOORD"?n.semantic="TEXCOORD_0":i==="COLOR"&&(n.semantic="COLOR_0"))})})}var A2e={POSITION:!0,NORMAL:!0,TANGENT:!0},C2e={COLOR:"COLOR",JOINT:"JOINTS",JOINTS:"JOINTS",TEXCOORD:"TEXCOORD",WEIGHT:"WEIGHTS",WEIGHTS:"WEIGHTS"};function E2e(e){let t={};Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){Pe.meshPrimitiveAttribute(i,function(o,r){if(r.charAt(0)!=="_"){let s=r.search(/_[0-9]+/g),a=r,c="_0";s>=0&&(a=r.substring(0,s),c=r.substring(s));let u,f=C2e[a];l(f)?(u=f+c,t[r]=u):l(A2e[a])||(u=`_${r}`,t[r]=u)}});for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o],s=i.attributes[o];l(s)&&(delete i.attributes[o],i.attributes[r]=s)}})}),Pe.technique(e,function(n){Pe.techniqueParameter(n,function(i){let o=t[i.semantic];l(o)&&(i.semantic=o)})})}function S2e(e){Pe.camera(e,function(t){let n=t.perspective;if(l(n)){let i=n.aspectRatio;l(i)&&i===0&&delete n.aspectRatio;let o=n.yfov;l(o)&&o===0&&(n.yfov=1)}})}function E9(e,t){return l(t.byteStride)&&t.byteStride!==0?t.byteStride:Ll(e,t)}function v2e(e){Pe.buffer(e,function(t){l(t.byteLength)||(t.byteLength=t.extras._pipeline.source.length)}),Pe.accessor(e,function(t){let n=t.bufferView;if(l(n)){let i=e.bufferViews[n],o=E9(e,t),r=t.byteOffset+t.count*o;i.byteLength=Math.max(y(i.byteLength,0),r)}})}function w2e(e){let t,n,i,o=e.bufferViews,r={};Pe.accessorContainingVertexAttributeData(e,function(a){let c=e.accessors[a];l(c.bufferView)&&(r[c.bufferView]=!0)});let s={};Pe.accessor(e,function(a){l(a.bufferView)&&(s[a.bufferView]=y(s[a.bufferView],[]),s[a.bufferView].push(a))});for(let a in s)if(Object.prototype.hasOwnProperty.call(s,a)){i=o[a];let c=s[a];c.sort(function(p,g){return p.byteOffset-g.byteOffset});let u=0,f=0,d=c.length;for(t=0;t<d;++t){let p=c[t],g=E9(e,p),m=p.byteOffset,x=p.count*g;delete p.byteStride;let b=t<d-1,T=b?E9(e,c[t+1]):void 0;if(g!==T){let C=He(i,!0);r[a]&&(C.byteStride=g),C.byteOffset+=u,C.byteLength=m+x-u;let A=ps(o,C);for(n=f;n<=t;++n)p=c[n],p.bufferView=A,p.byteOffset=p.byteOffset-u;u=b?c[t+1].byteOffset:void 0,f=t+1}}}P1(e,["accessor","bufferView","buffer"])}function D2e(e){Pe.accessorWithSemantic(e,"POSITION",function(t){let n=e.accessors[t];if(!l(n.min)||!l(n.max)){let i=Zx(e,n);n.min=i.min,n.max=i.max}})}function yoe(e){return(!l(e.children)||e.children.length===0)&&(!l(e.meshes)||e.meshes.length===0)&&!l(e.camera)&&!l(e.skin)&&!l(e.skeletons)&&!l(e.jointName)&&(!l(e.translation)||h.fromArray(e.translation).equals(h.ZERO))&&(!l(e.scale)||h.fromArray(e.scale).equals(new h(1,1,1)))&&(!l(e.rotation)||oe.fromArray(e.rotation).equals(new oe(0,0,0,1)))&&(!l(e.matrix)||F.fromColumnMajorArray(e.matrix).equals(F.IDENTITY))&&!l(e.extensions)&&!l(e.extras)}function xoe(e,t){Pe.scene(e,function(n){let i=n.nodes;if(l(i)){let o=i.length;for(let r=o;r>=0;--r)if(i[r]===t){i.splice(r,1);return}}}),Pe.node(e,function(n,i){if(l(n.children)){let o=n.children.indexOf(t);o>-1&&(n.children.splice(o,1),yoe(n)&&xoe(e,i))}}),delete e.nodes[t]}function P2e(e){return Pe.node(e,function(t,n){yoe(t)&&xoe(e,n)}),e}function I2e(e){Pe.animation(e,function(t){Pe.animationSampler(t,function(n){let i=e.accessors[n.input];if(!l(i.min)||!l(i.max)){let o=Zx(e,i);i.min=o.min,i.max=o.max}})})}function R2e(e){Pe.accessor(e,function(t){if(l(t.min)||l(t.max)){let n=Zx(e,t);l(t.min)&&(t.min=n.min),l(t.max)&&(t.max=n.max)}})}function O2e(e){e.asset=y(e.asset,{}),e.asset.version="2.0",goe(e),d2e(e),P2e(e),h2e(e),m2e(e),_2e(e),y2e(e),v2e(e),w2e(e),D2e(e),I2e(e),R2e(e),x2e(e),b2e(e),T2e(e),E2e(e),O1(e),S2e(e),v1(e),D1(e),p2e(e)}var M2e=["u_tex","u_diffuse","u_emission","u_diffuse_tex"],L2e=["u_diffuse","u_diffuse_mat"];function S9(e){e.pbrMetallicRoughness=l(e.pbrMetallicRoughness)?e.pbrMetallicRoughness:{},e.pbrMetallicRoughness.roughnessFactor=1,e.pbrMetallicRoughness.metallicFactor=0}function v9(e){return l(e.index)}function w9(e){return Array.isArray(e)&&e.length===4}function boe(e){let t=new Array(4);t[3]=e[3];for(let n=0;n<3;n++){let i=e[n];i<=.04045?t[n]=e[n]*.07739938080495357:t[n]=Math.pow((i+.055)*.9478672985781991,2.4)}return t}function N2e(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.baseColorTextureNames,M2e),i=y(t.baseColorFactorNames,L2e);Pe.material(e,function(o){Pe.materialValue(o,function(r,s){n.indexOf(s)!==-1&&v9(r)?(S9(o),o.pbrMetallicRoughness.baseColorTexture=r):i.indexOf(s)!==-1&&w9(r)&&(S9(o),o.pbrMetallicRoughness.baseColorFactor=boe(r))})}),$x(e,"KHR_techniques_webgl"),$x(e,"KHR_blend")}function C9(e,t){l(t)&&(w9(t)?e.pbrMetallicRoughness.baseColorFactor=boe(t):v9(t)&&(e.pbrMetallicRoughness.baseColorTexture=t))}function _oe(e,t){l(t)&&(w9(t)?e.emissiveFactor=t.slice(0,3):v9(t)&&(e.emissiveTexture=t))}function F2e(e){Pe.material(e,function(t){let n=y(t.extensions,y.EMPTY_OBJECT).KHR_materials_common;if(!l(n))return;let i=y(n.values,{}),o=i.ambient,r=i.diffuse,s=i.emission,a=i.transparency,c=n.doubleSided,u=n.transparent;S9(t),n.technique==="CONSTANT"?(Cf(e,"KHR_materials_unlit"),t.extensions=l(t.extensions)?t.extensions:{},t.extensions.KHR_materials_unlit={},C9(t,s),C9(t,o)):(C9(t,r),_oe(t,o),_oe(t,s)),l(c)&&(t.doubleSided=c),l(a)&&(l(t.pbrMetallicRoughness.baseColorFactor)?t.pbrMetallicRoughness.baseColorFactor[3]*=a:t.pbrMetallicRoughness.baseColorFactor=[1,1,1,a]),l(u)&&(t.alphaMode=u?"BLEND":"OPAQUE")}),$x(e,"KHR_materials_common")}var M1=s2e;var ri={POSITION:"POSITION",NORMAL:"NORMAL",TANGENT:"TANGENT",TEXCOORD:"TEXCOORD",COLOR:"COLOR",JOINTS:"JOINTS",WEIGHTS:"WEIGHTS",FEATURE_ID:"_FEATURE_ID"};function B2e(e){switch(e){case ri.POSITION:return"positionMC";case ri.NORMAL:return"normalMC";case ri.TANGENT:return"tangentMC";case ri.TEXCOORD:return"texCoord";case ri.COLOR:return"color";case ri.JOINTS:return"joints";case ri.WEIGHTS:return"weights";case ri.FEATURE_ID:return"featureId"}}ri.hasSetIndex=function(e){switch(e){case ri.POSITION:case ri.NORMAL:case ri.TANGENT:return!1;case ri.TEXCOORD:case ri.COLOR:case ri.JOINTS:case ri.WEIGHTS:case ri.FEATURE_ID:return!0}};ri.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"POSITION":return ri.POSITION;case"NORMAL":return ri.NORMAL;case"TANGENT":return ri.TANGENT;case"TEXCOORD":return ri.TEXCOORD;case"COLOR":return ri.COLOR;case"JOINTS":return ri.JOINTS;case"WEIGHTS":return ri.WEIGHTS;case"_FEATURE_ID":return ri.FEATURE_ID}};ri.fromPntsSemantic=function(e){switch(e){case"POSITION":case"POSITION_QUANTIZED":return ri.POSITION;case"RGBA":case"RGB":case"RGB565":return ri.COLOR;case"NORMAL":case"NORMAL_OCT16P":return ri.NORMAL;case"BATCH_ID":return ri.FEATURE_ID}};ri.getGlslType=function(e){switch(e){case ri.POSITION:case ri.NORMAL:case ri.TANGENT:return"vec3";case ri.TEXCOORD:return"vec2";case ri.COLOR:return"vec4";case ri.JOINTS:return"ivec4";case ri.WEIGHTS:return"vec4";case ri.FEATURE_ID:return"int"}};ri.getVariableName=function(e,t){let n=B2e(e);return l(t)&&(n+=`_${t}`),n};var yt=Object.freeze(ri);function rc(){}rc.getError=function(e,t,n){let i=`Failed to load ${e}: ${t}`;l(n)&&l(n.message)&&(i+=` ${n.message}`);let o=new le(i);return l(n)&&(o.stack=`Original stack: ${n.stack} Handler stack: ${o.stack}`),o};rc.getNodeTransform=function(e){return l(e.matrix)?e.matrix:F.fromTranslationQuaternionRotationScale(l(e.translation)?e.translation:h.ZERO,l(e.rotation)?e.rotation:Me.IDENTITY,l(e.scale)?e.scale:h.ONE)};rc.getAttributeBySemantic=function(e,t,n){let i=e.attributes,o=i.length;for(let r=0;r<o;++r){let s=i[r],a=l(n)?s.setIndex===n:!0;if(s.semantic===t&&a)return s}};rc.getAttributeByName=function(e,t){let n=e.attributes,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.name===t)return r}};rc.getFeatureIdsByLabel=function(e,t){for(let n=0;n<e.length;n++){let i=e[n];if(i.positionalLabel===t||i.label===t)return i}};rc.hasQuantizedAttributes=function(e){if(!l(e))return!1;for(let t=0;t<e.length;t++){let n=e[t];if(l(n.quantization))return!0}return!1};rc.getAttributeInfo=function(e){let t=e.semantic,n=e.setIndex,i,o=!1;l(t)?(i=yt.getVariableName(t,n),o=!0):(i=e.name,i=i.replace(/^_/,""),i=i.toLowerCase());let r=/^color_\d+$/.test(i),s=e.type,a=tn.getGlslType(s);r&&(a="vec4");let c=l(e.quantization),u;return c&&(u=r?"vec4":tn.getGlslType(e.quantization.type)),{attribute:e,isQuantized:c,variableName:i,hasSemantic:o,glslType:a,quantizedGlslType:u}};var k2e=new h,V2e=new h;rc.getPositionMinMax=function(e,t,n){let i=rc.getAttributeBySemantic(e,"POSITION"),o=i.max,r=i.min;return l(n)&&l(t)&&(r=h.add(r,t,V2e),o=h.add(o,n,k2e)),{min:r,max:o}};rc.getAxisCorrectionMatrix=function(e,t,n){return n=F.clone(F.IDENTITY,n),e===Io.Y?n=F.clone(Io.Y_UP_TO_Z_UP,n):e===Io.X&&(n=F.clone(Io.X_UP_TO_Z_UP,n)),t===Io.Z&&(n=F.multiplyTransformation(n,Io.Z_UP_TO_X_UP,n)),n};var U2e=new $;rc.getCullFace=function(e,t){if(!Le.isTriangles(t))return hi.BACK;let n=F.getMatrix3(e,U2e);return $.determinant(n)<0?hi.FRONT:hi.BACK};rc.sanitizeGlslIdentifier=function(e){let t=e.replaceAll(/[^A-Za-z0-9]+/g,"_");return t=t.replace(/^gl_/,""),/^\d/.test(t)&&(t=`_${t}`),t};rc.supportedExtensions={AGI_articulations:!0,CESIUM_primitive_outline:!0,CESIUM_RTC:!0,EXT_feature_metadata:!0,EXT_instance_features:!0,EXT_mesh_features:!0,EXT_mesh_gpu_instancing:!0,EXT_meshopt_compression:!0,EXT_structural_metadata:!0,EXT_texture_webp:!0,KHR_blend:!0,KHR_draco_mesh_compression:!0,KHR_techniques_webgl:!0,KHR_materials_common:!0,KHR_materials_pbrSpecularGlossiness:!0,KHR_materials_specular:!0,KHR_materials_anisotropy:!0,KHR_materials_clearcoat:!0,KHR_materials_unlit:!0,KHR_mesh_quantization:!0,KHR_texture_basisu:!0,KHR_texture_transform:!0,WEB3D_quantized_attributes:!0};rc.checkSupportedExtensions=function(e){let t=e.length;for(let n=0;n<t;n++){let i=e[n];if(!rc.supportedExtensions[i])throw new le(`Unsupported glTF Extension: ${i}`)}};var Xt=rc;function ty(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltfResource,i=e.baseResource,o=e.typedArray,r=e.gltfJson,s=e.cacheKey;this._resourceCache=t,this._gltfResource=n,this._baseResource=i,this._typedArray=o,this._gltfJson=r,this._cacheKey=s,this._gltf=void 0,this._bufferLoaders=[],this._state=Pt.UNLOADED,this._promise=void 0}l(Object.create)&&(ty.prototype=Object.create(no.prototype),ty.prototype.constructor=ty);Object.defineProperties(ty.prototype,{cacheKey:{get:function(){return this._cacheKey}},gltf:{get:function(){return this._gltf}}});ty.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=Pt.LOADING,l(this._gltfJson)?(this._promise=Toe(this,this._gltfJson),this._promise):l(this._typedArray)?(this._promise=Aoe(this,this._typedArray),this._promise):(this._promise=z2e(this),this._promise))};async function z2e(e){let t;try{let n=await e._fetchGltf();if(e.isDestroyed())return;t=new Uint8Array(n)}catch(n){if(e.isDestroyed())return;D9(e,n)}return Aoe(e,t)}function D9(e,t){e.unload(),e._state=Pt.FAILED;let n=`Failed to load glTF: ${e._gltfResource.url}`;throw e.getError(n,t)}async function H2e(e,t){if(l(t.asset)&&t.asset.version==="2.0"&&!rr(t,"KHR_techniques_webgl")&&!rr(t,"KHR_materials_common"))return Promise.resolve();let n=[];Pe.buffer(t,function(i){if(!l(i.extras._pipeline.source)&&l(i.uri)){let o=e._baseResource.getDerivedResource({url:i.uri}),s=e._resourceCache.getExternalBufferLoader({resource:o});e._bufferLoaders.push(s),n.push(s.load().then(function(){s.isDestroyed()||(i.extras._pipeline.source=s.typedArray)}))}}),await Promise.all(n),M1(t)}function G2e(e){let t=[];return Pe.buffer(e,function(n){let i=n.uri;!l(n.extras._pipeline.source)&&l(i)&&dp(i)&&(delete n.uri,t.push(De.fetchArrayBuffer(i).then(function(o){n.extras._pipeline.source=new Uint8Array(o)})))}),Promise.all(t)}function W2e(e,t){let n=[];return Pe.buffer(t,function(i,o){let r=i.extras._pipeline.source;if(l(r)&&!l(i.uri)){let a=e._resourceCache.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:o,typedArray:r});e._bufferLoaders.push(a),n.push(a.load())}}),Promise.all(n)}async function Toe(e,t){try{ey(t),await G2e(t),await H2e(e,t),A1(t),await W2e(e,t),S1(t);let n=t.asset.version;if(n!=="1.0"&&n!=="2.0")throw new le(`Unsupported glTF version: ${n}`);let i=t.extensionsRequired;return l(i)&&Xt.checkSupportedExtensions(i),e._gltf=t,e._state=Pt.READY,e}catch(n){if(e.isDestroyed())return;D9(e,n)}}async function Aoe(e,t){let n;try{Fd(t)==="glTF"?n=E1(t):n=Ro(t)}catch(i){if(e.isDestroyed())return;D9(e,i)}return Toe(e,n)}ty.prototype.unload=function(){let e=this._bufferLoaders,t=e.length;for(let n=0;n<t;++n)e[n]=!e[n].isDestroyed()&&this._resourceCache.unload(e[n]);this._bufferLoaders.length=0,this._gltf=void 0};ty.prototype._fetchGltf=function(){return this._gltfResource.fetchArrayBuffer()};var yC=ty;var j2e={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"},dm=Object.freeze(j2e);var Ao={};function q2e(){this.octEncoded=!1,this.octEncodedZXY=!1,this.normalizationRange=void 0,this.quantizedVolumeOffset=void 0,this.quantizedVolumeDimensions=void 0,this.quantizedVolumeStepSize=void 0,this.componentDatatype=void 0,this.type=void 0}function Y2e(){this.name=void 0,this.semantic=void 0,this.setIndex=void 0,this.componentDatatype=void 0,this.type=void 0,this.normalized=!1,this.count=void 0,this.min=void 0,this.max=void 0,this.constant=void 0,this.quantization=void 0,this.typedArray=void 0,this.buffer=void 0,this.byteOffset=0,this.byteStride=void 0}function X2e(){this.indexDatatype=void 0,this.count=void 0,this.buffer=void 0,this.typedArray=void 0}function K2e(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.setIndex=void 0,this.label=void 0,this.positionalLabel=void 0}function Z2e(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.offset=0,this.repeat=void 0,this.label=void 0,this.positionalLabel=void 0}function $2e(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.textureReader=void 0,this.label=void 0,this.positionalLabel=void 0}function Q2e(){this.attributes=[]}function J2e(){this.attributes=[],this.morphTargets=[],this.indices=void 0,this.material=void 0,this.primitiveType=void 0,this.featureIds=[],this.propertyTextureIds=[],this.propertyAttributeIds=[],this.outlineCoordinates=void 0}function eBe(){this.attributes=[],this.featureIds=[],this.transformInWorldSpace=!1}function tBe(){this.index=void 0,this.joints=[],this.inverseBindMatrices=[]}function nBe(){this.name=void 0,this.index=void 0,this.children=[],this.primitives=[],this.instances=void 0,this.skin=void 0,this.matrix=void 0,this.translation=void 0,this.rotation=void 0,this.scale=void 0,this.morphWeights=[],this.articulationName=void 0}function iBe(){this.nodes=[]}var oBe={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};function rBe(){this.input=[],this.interpolation=void 0,this.output=[]}function sBe(){this.node=void 0,this.path=void 0}function aBe(){this.sampler=void 0,this.target=void 0}function cBe(){this.name=void 0,this.samplers=[],this.channels=[]}function lBe(){this.name=void 0,this.type=void 0,this.minimumValue=void 0,this.maximumValue=void 0,this.initialValue=void 0}function uBe(){this.name=void 0,this.stages=[]}function Coe(){this.credits=[]}function fBe(){this.asset=new Coe,this.scene=void 0,this.nodes=[],this.skins=[],this.animations=[],this.articulations=[],this.structuralMetadata=void 0,this.upAxis=void 0,this.forwardAxis=void 0,this.transform=F.clone(F.IDENTITY)}function dBe(){this.texture=void 0,this.index=void 0,this.texCoord=0,this.transform=$.clone($.IDENTITY),this.channels=void 0}function ny(){this.baseColorTexture=void 0,this.metallicRoughnessTexture=void 0,this.baseColorFactor=oe.clone(ny.DEFAULT_BASE_COLOR_FACTOR),this.metallicFactor=ny.DEFAULT_METALLIC_FACTOR,this.roughnessFactor=ny.DEFAULT_ROUGHNESS_FACTOR}ny.DEFAULT_BASE_COLOR_FACTOR=oe.ONE;ny.DEFAULT_METALLIC_FACTOR=1;ny.DEFAULT_ROUGHNESS_FACTOR=1;function Qx(){this.diffuseTexture=void 0,this.specularGlossinessTexture=void 0,this.diffuseFactor=oe.clone(Qx.DEFAULT_DIFFUSE_FACTOR),this.specularFactor=h.clone(Qx.DEFAULT_SPECULAR_FACTOR),this.glossinessFactor=Qx.DEFAULT_GLOSSINESS_FACTOR}Qx.DEFAULT_DIFFUSE_FACTOR=oe.ONE;Qx.DEFAULT_SPECULAR_FACTOR=h.ONE;Qx.DEFAULT_GLOSSINESS_FACTOR=1;function L1(){this.specularFactor=L1.DEFAULT_SPECULAR_FACTOR,this.specularTexture=void 0,this.specularColorFactor=h.clone(L1.DEFAULT_SPECULAR_COLOR_FACTOR),this.specularColorTexture=void 0}L1.DEFAULT_SPECULAR_FACTOR=1;L1.DEFAULT_SPECULAR_COLOR_FACTOR=h.ONE;function N1(){this.anisotropyStrength=N1.DEFAULT_ANISOTROPY_STRENGTH,this.anisotropyRotation=N1.DEFAULT_ANISOTROPY_ROTATION,this.anisotropyTexture=void 0}N1.DEFAULT_ANISOTROPY_STRENGTH=0;N1.DEFAULT_ANISOTROPY_ROTATION=0;function F1(){this.clearcoatFactor=F1.DEFAULT_CLEARCOAT_FACTOR,this.clearcoatTexture=void 0,this.clearcoatRoughnessFactor=F1.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR,this.clearcoatRoughnessTexture=void 0,this.clearcoatNormalTexture=void 0}F1.DEFAULT_CLEARCOAT_FACTOR=0;F1.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR=0;function P9(){this.metallicRoughness=new ny,this.specularGlossiness=void 0,this.specular=void 0,this.anisotropy=void 0,this.clearcoat=void 0,this.emissiveTexture=void 0,this.normalTexture=void 0,this.occlusionTexture=void 0,this.emissiveFactor=h.clone(P9.DEFAULT_EMISSIVE_FACTOR),this.alphaMode=dm.OPAQUE,this.alphaCutoff=.5,this.doubleSided=!1,this.unlit=!1}P9.DEFAULT_EMISSIVE_FACTOR=h.ZERO;Ao.Quantization=q2e;Ao.Attribute=Y2e;Ao.Indices=X2e;Ao.FeatureIdAttribute=K2e;Ao.FeatureIdTexture=$2e;Ao.FeatureIdImplicitRange=Z2e;Ao.MorphTarget=Q2e;Ao.Primitive=J2e;Ao.Instances=eBe;Ao.Skin=tBe;Ao.Node=nBe;Ao.Scene=iBe;Ao.AnimatedPropertyType=Object.freeze(oBe);Ao.AnimationSampler=rBe;Ao.AnimationTarget=sBe;Ao.AnimationChannel=aBe;Ao.Animation=cBe;Ao.ArticulationStage=lBe;Ao.Articulation=uBe;Ao.Asset=Coe;Ao.Components=fBe;Ao.TextureReader=dBe;Ao.MetallicRoughness=ny;Ao.SpecularGlossiness=Qx;Ao.Specular=L1;Ao.Anisotropy=N1;Ao.Clearcoat=F1;Ao.Material=P9;var xn=Ao;var lU={};lU.getImageIdFromTexture=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureId:n,supportedImageFormats:i}=e,o=t.textures[n],r=o.extensions;if(l(r)){if(i.webp&&l(r.EXT_texture_webp))return r.EXT_texture_webp.source;if(i.basis&&l(r.KHR_texture_basisu))return r.KHR_texture_basisu.source}return o.source};lU.createSampler=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureInfo:n,compressedTextureNoMipmap:i=!1}=e,o=An.REPEAT,r=An.REPEAT,s=nn.LINEAR,a=li.LINEAR,c=n.index,f=t.textures[c].sampler;if(l(f)){let d=t.samplers[f];o=y(d.wrapS,o),r=y(d.wrapT,r),s=y(d.minFilter,s),a=y(d.magFilter,a)}return i&&s!==nn.LINEAR&&s!==nn.NEAREST&&(s===nn.NEAREST_MIPMAP_NEAREST||s===nn.NEAREST_MIPMAP_LINEAR?s=nn.NEAREST:s=nn.LINEAR),new on({wrapS:o,wrapT:r,minificationFilter:s,magnificationFilter:a})};var hBe=new z(1,1);lU.createModelTextureReader=function(e){e=y(e,y.EMPTY_OBJECT);let{textureInfo:t,channels:n,texture:i}=e,o=y(t.texCoord,0),r,s=y(t.extensions,y.EMPTY_OBJECT).KHR_texture_transform;if(l(s)){o=y(s.texCoord,o);let c=l(s.offset)?z.unpack(s.offset):z.ZERO,u=y(s.rotation,0),f=l(s.scale)?z.unpack(s.scale):hBe;u=-u,r=new $(Math.cos(u)*f.x,-Math.sin(u)*f.y,c.x,Math.sin(u)*f.x,Math.cos(u)*f.y,c.y,0,0,1)}let a=new xn.TextureReader;return a.index=t.index,a.texture=i,a.texCoord=o,a.transform=r,a.channels=n,a};var Nl=lU;function mBe(e){let t=document.createElement("canvas");return t.width=R.nextPowerOfTwo(e.width),t.height=R.nextPowerOfTwo(e.height),t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),t}var iy=mBe;function oy(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.textureInfo,o=e.gltfResource,r=e.baseResource,s=e.supportedImageFormats,a=e.cacheKey,c=y(e.asynchronous,!0),u=i.index,f=Nl.getImageIdFromTexture({gltf:n,textureId:u,supportedImageFormats:s});this._resourceCache=t,this._gltf=n,this._textureInfo=i,this._imageId=f,this._gltfResource=o,this._baseResource=r,this._cacheKey=a,this._asynchronous=c,this._imageLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._texture=void 0,this._state=Pt.UNLOADED,this._promise=void 0}l(Object.create)&&(oy.prototype=Object.create(no.prototype),oy.prototype.constructor=oy);Object.defineProperties(oy.prototype,{cacheKey:{get:function(){return this._cacheKey}},texture:{get:function(){return this._texture}}});var pBe=new I9;async function _Be(e){let t=e._resourceCache;try{let n=t.getImageLoader({gltf:e._gltf,imageId:e._imageId,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._imageLoader=n,await n.load(),e.isDestroyed()?void 0:(e._image=n.image,e._mipLevels=n.mipLevels,e._state=Pt.LOADED,e)}catch(n){if(e.isDestroyed())return;throw e.unload(),e._state=Pt.FAILED,e.getError("Failed to load texture",n)}}oy.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=Pt.LOADING,this._promise=_Be(this),this._promise)};function I9(){this.gltf=void 0,this.textureInfo=void 0,this.image=void 0,this.context=void 0,this.texture=void 0}I9.prototype.set=function(e,t,n,i,o){this.gltf=e,this.textureInfo=t,this.image=n,this.mipLevels=i,this.context=o};I9.prototype.execute=function(){this.texture=Eoe(this.gltf,this.textureInfo,this.image,this.mipLevels,this.context)};function Eoe(e,t,n,i,o){let r=n.internalFormat,s=!1;nt.isCompressedFormat(r)&&!l(i)&&(s=!0);let a=Nl.createSampler({gltf:e,textureInfo:t,compressedTextureNoMipmap:s}),c=a.minificationFilter,u=a.wrapS,f=a.wrapT,d=c===nn.NEAREST_MIPMAP_NEAREST||c===nn.NEAREST_MIPMAP_LINEAR||c===nn.LINEAR_MIPMAP_NEAREST||c===nn.LINEAR_MIPMAP_LINEAR,p=!l(r)&&d,g=p||u===An.REPEAT||u===An.MIRRORED_REPEAT||f===An.REPEAT||f===An.MIRRORED_REPEAT,m=!R.isPowerOfTwo(n.width)||!R.isPowerOfTwo(n.height),x=g&&m,b;return l(r)?(!o.webgl2&&nt.isCompressedFormat(r)&&m&&g&&console.warn("Compressed texture uses REPEAT or MIRRORED_REPEAT texture wrap mode and dimensions are not powers of two. The texture may be rendered incorrectly."),b=Dt.create({context:o,source:{arrayBufferView:n.bufferView,mipLevels:i},width:n.width,height:n.height,pixelFormat:n.internalFormat,sampler:a})):(x&&(n=iy(n)),b=Dt.create({context:o,source:n,sampler:a,flipY:!1,skipColorSpaceConversion:!0})),p&&b.generateMipmap(),b}oy.prototype.process=function(e){if(this._state===Pt.READY)return!0;if(this._state!==Pt.LOADED&&this._state!==Pt.PROCESSING||l(this._texture)||!l(this._image))return!1;this._state=Pt.PROCESSING;let t;if(this._asynchronous){let n=pBe;if(n.set(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context),!e.jobScheduler.execute(n,wa.TEXTURE))return;t=n.texture}else t=Eoe(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context);return this.unload(),this._texture=t,this._state=Pt.READY,this._resourceCache.statistics.addTextureLoader(this),!0};oy.prototype.unload=function(){l(this._texture)&&this._texture.destroy(),l(this._imageLoader)&&!this._imageLoader.isDestroyed()&&this._resourceCache.unload(this._imageLoader),this._imageLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._texture=void 0,this._gltf=void 0};var xC=oy;function ry(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.gltfResource,o=e.baseResource,r=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=e.accessorId,u=e.cacheKey,f=y(e.asynchronous,!0),d=y(e.loadBuffer,!1),p=y(e.loadTypedArray,!1);this._resourceCache=t,this._gltfResource=i,this._baseResource=o,this._gltf=n,this._bufferViewId=r,this._draco=s,this._attributeSemantic=a,this._accessorId=c,this._cacheKey=u,this._asynchronous=f,this._loadBuffer=d,this._loadTypedArray=p,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._quantization=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=Pt.UNLOADED,this._promise=void 0}l(Object.create)&&(ry.prototype=Object.create(no.prototype),ry.prototype.constructor=ry);Object.defineProperties(ry.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},quantization:{get:function(){return this._quantization}}});function gBe(e,t){return l(e)&&l(e.attributes)&&l(e.attributes[t])}ry.prototype.load=async function(){return l(this._promise)?this._promise:gBe(this._draco,this._attributeSemantic)?(this._promise=xBe(this),this._promise):(this._promise=TBe(this),this._promise)};function yBe(e,t,n,i){let r=(1<<e.quantizationBits)-1,s=1/r,a=new xn.Quantization;if(a.componentDatatype=t,a.octEncoded=e.octEncoded,a.octEncodedZXY=!0,a.type=i,a.octEncoded)a.type=tn.VEC2,a.normalizationRange=r;else{let c=tn.getMathType(i);if(c===Number){let u=e.range;a.quantizedVolumeOffset=e.minValues[0],a.quantizedVolumeDimensions=u,a.normalizationRange=r,a.quantizedVolumeStepSize=u*s}else{a.quantizedVolumeOffset=c.unpack(e.minValues),a.normalizationRange=c.unpack(new Array(n).fill(r));let u=new Array(n).fill(e.range);a.quantizedVolumeDimensions=c.unpack(u);let f=u.map(function(d){return d*s});a.quantizedVolumeStepSize=c.unpack(f)}}return a}async function xBe(e){e._state=Pt.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=Pt.LOADED,e)}catch{if(e.isDestroyed())return;R9(e)}}function bBe(e){e._state=Pt.PROCESSING;let n=e._dracoLoader.decodedData.vertexAttributes,i=e._attributeSemantic,o=n[i],r=e._accessorId,a=e._gltf.accessors[r].type,c=o.array,u=o.data.quantization;l(u)&&(e._quantization=yBe(u,o.data.componentDatatype,o.data.componentsPerAttribute,a)),e._typedArray=new Uint8Array(c.buffer,c.byteOffset,c.byteLength)}async function TBe(e){e._state=Pt.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._typedArray=n.typedArray,e._state=Pt.PROCESSING,e)}catch(n){if(e.isDestroyed())return;R9(e,n)}}function R9(e,t){throw e.unload(),e._state=Pt.FAILED,e.getError("Failed to load vertex buffer",t)}function O9(){this.typedArray=void 0,this.context=void 0,this.buffer=void 0}O9.prototype.set=function(e,t){this.typedArray=e,this.context=t};O9.prototype.execute=function(){this.buffer=Soe(this.typedArray,this.context)};function Soe(e,t){let n=ct.createVertexBuffer({typedArray:e,context:t,usage:Fe.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}var ABe=new O9;ry.prototype.process=function(e){if(this._state===Pt.READY)return!0;if(this._state!==Pt.LOADED&&this._state!==Pt.PROCESSING)return!1;if(l(this._dracoLoader)){try{if(!this._dracoLoader.process(e))return!1}catch(i){R9(this,i)}bBe(this)}let t,n=this._typedArray;if(this._loadBuffer&&this._asynchronous){let i=ABe;if(i.set(n,e.context),!e.jobScheduler.execute(i,wa.BUFFER))return!1;t=i.buffer}else this._loadBuffer&&(t=Soe(n,e.context));return this.unload(),this._buffer=t,this._typedArray=this._loadTypedArray?n:void 0,this._state=Pt.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};ry.prototype.unload=function(){l(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),l(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var bC=ry;function B1(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=y(e.properties,{}),i={};for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];l(r.semantic)&&(i[r.semantic]=r)}this._id=t,this._name=e.name,this._description=e.description,this._properties=n,this._propertiesBySemantic=i,this._extras=He(e.extras,!0),this._extensions=He(e.extensions,!0)}B1.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.class,i={};for(let o in n.properties)if(n.properties.hasOwnProperty(o)){let r=Zg.fromJson({id:o,property:n.properties[o],enums:e.enums});i[o]=r}return new B1({id:t,name:n.name,description:n.description,properties:i,extras:n.extras,extensions:n.extensions})};Object.defineProperties(B1.prototype,{properties:{get:function(){return this._properties}},propertiesBySemantic:{get:function(){return this._propertiesBySemantic}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});B1.BATCH_TABLE_CLASS_NAME="_batchTable";var Vd=B1;function uU(e){e=y(e,y.EMPTY_OBJECT);let t=e.value,n=e.name;this._value=t,this._name=n,this._description=e.description,this._extras=He(e.extras,!0),this._extensions=He(e.extensions,!0)}uU.fromJson=function(e){return new uU({value:e.value,name:e.name,description:e.description,extras:e.extras,extensions:e.extensions})};Object.defineProperties(uU.prototype,{value:{get:function(){return this._value}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var k1=uU;function fU(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.values,i={},o={},r=n.length;for(let a=0;a<r;++a){let c=n[a];i[c.value]=c.name,o[c.name]=c.value}let s=y(e.valueType,sn.UINT16);this._values=n,this._namesByValue=i,this._valuesByName=o,this._valueType=s,this._id=t,this._name=e.name,this._description=e.description,this._extras=He(e.extras,!0),this._extensions=He(e.extensions,!0)}fU.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.enum,i=n.values.map(function(o){return k1.fromJson(o)});return new fU({id:t,values:i,valueType:sn[n.valueType],name:n.name,description:n.description,extras:n.extras,extensions:n.extensions})};Object.defineProperties(fU.prototype,{values:{get:function(){return this._values}},namesByValue:{get:function(){return this._namesByValue}},valuesByName:{get:function(){return this._valuesByName}},valueType:{get:function(){return this._valueType}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var V1=fU;function dU(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.classes,{}),n=y(e.enums,{});this._classes=t,this._enums=n,this._id=e.id,this._name=e.name,this._description=e.description,this._version=e.version,this._extras=He(e.extras,!0),this._extensions=He(e.extensions,!0)}dU.fromJson=function(e){let t={};if(l(e.enums))for(let i in e.enums)e.enums.hasOwnProperty(i)&&(t[i]=V1.fromJson({id:i,enum:e.enums[i]}));let n={};if(l(e.classes))for(let i in e.classes)e.classes.hasOwnProperty(i)&&(n[i]=Vd.fromJson({id:i,class:e.classes[i],enums:t}));return new dU({id:e.id,name:e.name,description:e.description,version:e.version,classes:n,enums:t,extras:e.extras,extensions:e.extensions})};Object.defineProperties(dU.prototype,{classes:{get:function(){return this._classes}},enums:{get:function(){return this._enums}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},version:{get:function(){return this._version}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var Ud=dU;function Jx(e){e=y(e,y.EMPTY_OBJECT);let t=e.schema,n=e.resource,i=e.cacheKey;this._schema=l(t)?Ud.fromJson(t):void 0,this._resource=n,this._cacheKey=i,this._state=Pt.UNLOADED,this._promise=void 0}l(Object.create)&&(Jx.prototype=Object.create(no.prototype),Jx.prototype.constructor=Jx);Object.defineProperties(Jx.prototype,{cacheKey:{get:function(){return this._cacheKey}},schema:{get:function(){return this._schema}}});Jx.prototype.load=async function(){return l(this._promise)?this._promise:l(this._schema)?(this._promise=Promise.resolve(this),this._promise):(this._promise=CBe(this),this._promise)};async function CBe(e){let t=e._resource;e._state=Pt.LOADING;try{let n=await t.fetchJson();return e.isDestroyed()?void 0:(e._schema=Ud.fromJson(n),e._state=Pt.READY,e)}catch(n){if(e.isDestroyed())return;e._state=Pt.FAILED;let i=`Failed to load schema: ${t.url}`;throw e.getError(i,n)}}Jx.prototype.unload=function(){this._schema=void 0};var TC=Jx;var zd={};function AC(e){return jh(e.url)}function hU(e){let{byteOffset:t,byteLength:n}=e;if(oi(e,"EXT_meshopt_compression")){let i=e.extensions.EXT_meshopt_compression;t=y(i.byteOffset,0),n=i.byteLength}return`${t}-${t+n}`}function EBe(e,t){let n=t.byteOffset+e.byteOffset,{componentType:i,type:o,count:r}=e;return`${n}-${i}-${o}-${r}`}function voe(e,t){return`${AC(e)}-buffer-id-${t}`}function U1(e,t,n,i){if(l(e.uri)){let o=i.getDerivedResource({url:e.uri});return AC(o)}return voe(n,t)}function M9(e,t,n,i){let o=t.bufferView,r=e.bufferViews[o],s=r.buffer,a=e.buffers[s],c=U1(a,s,n,i),u=hU(r);return`${c}-range-${u}`}function woe(e,t,n,i){let o=e.images[t],r=o.bufferView,s=o.uri;if(l(s)){let p=i.getDerivedResource({url:s});return AC(p)}let a=e.bufferViews[r],c=a.buffer,u=e.buffers[c],f=U1(u,c,n,i),d=hU(a);return`${f}-range-${d}`}function SBe(e,t){let n=Nl.createSampler({gltf:e,textureInfo:t});return`${n.wrapS}-${n.wrapT}-${n.minificationFilter}-${n.magnificationFilter}`}zd.getSchemaCacheKey=function(e){let{schema:t,resource:n}=e;return l(t)?`embedded-schema:${JSON.stringify(t)}`:`external-schema:${AC(n)}`};zd.getExternalBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{resource:t}=e;return`external-buffer:${AC(t)}`};zd.getEmbeddedBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{parentResource:t,bufferId:n}=e;return`embedded-buffer:${voe(t,n)}`};zd.getGltfCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltfResource:t}=e;return`gltf:${AC(t)}`};zd.getBufferViewCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}=e,r=t.bufferViews[n],s=r.buffer,a=t.buffers[s];oi(r,"EXT_meshopt_compression")&&(s=r.extensions.EXT_meshopt_compression.buffer);let c=U1(a,s,i,o),u=hU(r);return`buffer-view:${c}-range-${u}`};zd.getDracoCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,draco:n,gltfResource:i,baseResource:o}=e;return`draco:${M9(t,n,i,o)}`};zd.getVertexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,dequantize:c=!1,loadBuffer:u=!1,loadTypedArray:f=!1}=e,d="";if(c&&(d+="-dequantize"),u&&(d+="-buffer",d+=`-context-${o.context.id}`),f&&(d+="-typed-array"),l(s))return`vertex-buffer:${M9(t,s,n,i)}-draco-${a}${d}`;let p=t.bufferViews[r],g=p.buffer,m=t.buffers[g],x=U1(m,g,n,i),b=hU(p);return`vertex-buffer:${x}-range-${b}${d}`};zd.getIndexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,loadBuffer:a=!1,loadTypedArray:c=!1}=e,u="";if(a&&(u+="-buffer",u+=`-context-${r.context.id}`),c&&(u+="-typed-array"),l(s))return`index-buffer:${M9(t,s,i,o)}-draco${u}`;let f=t.accessors[n],d=f.bufferView,p=t.bufferViews[d],g=p.buffer,m=t.buffers[g],x=U1(m,g,i,o),b=EBe(f,p);return`index-buffer:${x}-accessor-${b}${u}`};zd.getImageCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,imageId:n,gltfResource:i,baseResource:o}=e;return`image:${woe(t,n,i,o)}`};zd.getTextureCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s}=e,a=n.index,c=Nl.getImageIdFromTexture({gltf:t,textureId:a,supportedImageFormats:r}),u=woe(t,c,i,o),f=SBe(t,n);return`texture:${u}-sampler-${f}-context-${s.context.id}`};var Fl=zd;function z1(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}}z1.prototype.clear=function(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}};z1.prototype.addGeometryLoader=function(e){let t=e.cacheKey;if(this._geometrySizes.hasOwnProperty(t))return;this._geometrySizes[t]=0;let n=e.buffer,i=e.typedArray,o=0;l(n)&&(o+=n.sizeInBytes),l(i)&&(o+=i.byteLength),this.geometryByteLength+=o,this._geometrySizes[t]=o};z1.prototype.addTextureLoader=function(e){let t=e.cacheKey;if(this._textureSizes.hasOwnProperty(t))return;this._textureSizes[t]=0;let n=e.texture.sizeInBytes;this.texturesByteLength+=e.texture.sizeInBytes,this._textureSizes[t]=n};z1.prototype.removeLoader=function(e){let t=e.cacheKey,n=this._geometrySizes[t];delete this._geometrySizes[t],l(n)&&(this.geometryByteLength-=n);let i=this._textureSizes[t];delete this._textureSizes[t],l(i)&&(this.texturesByteLength-=i)};var H1=z1;function Ln(){}Ln.cacheEntries={};Ln.statistics=new H1;function vBe(e){this.referenceCount=1,this.resourceLoader=e,this._statisticsPromise=void 0}Ln.get=function(e){let t=Ln.cacheEntries[e];if(l(t))return++t.referenceCount,t.resourceLoader};Ln.add=function(e){let t=e.cacheKey;return Ln.cacheEntries[t]=new vBe(e),e};Ln.unload=function(e){let t=e.cacheKey,n=Ln.cacheEntries[t];--n.referenceCount,n.referenceCount===0&&(Ln.statistics.removeLoader(e),e.destroy(),delete Ln.cacheEntries[t])};Ln.getSchemaLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{schema:t,resource:n}=e,i=Fl.getSchemaCacheKey({schema:t,resource:n}),o=Ln.get(i);return l(o)?o:(o=new TC({schema:t,resource:n,cacheKey:i}),Ln.add(o))};Ln.getEmbeddedBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{parentResource:t,bufferId:n,typedArray:i}=e,o=Fl.getEmbeddedBufferCacheKey({parentResource:t,bufferId:n}),r=Ln.get(o);return l(r)?r:(r=new jx({typedArray:i,cacheKey:o}),Ln.add(r))};Ln.getExternalBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{resource:t}=e,n=Fl.getExternalBufferCacheKey({resource:t}),i=Ln.get(n);return l(i)?i:(i=new jx({resource:t,cacheKey:n}),Ln.add(i))};Ln.getGltfJsonLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltfResource:t,baseResource:n,typedArray:i,gltfJson:o}=e,r=Fl.getGltfCacheKey({gltfResource:t}),s=Ln.get(r);return l(s)?s:(s=new yC({resourceCache:Ln,gltfResource:t,baseResource:n,typedArray:i,gltfJson:o,cacheKey:r}),Ln.add(s))};Ln.getBufferViewLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}=e,r=Fl.getBufferViewCacheKey({gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}),s=Ln.get(r);return l(s)?s:(s=new hC({resourceCache:Ln,gltf:t,bufferViewId:n,gltfResource:i,baseResource:o,cacheKey:r}),Ln.add(s))};Ln.getDracoLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,draco:n,gltfResource:i,baseResource:o}=e,r=Fl.getDracoCacheKey({gltf:t,draco:n,gltfResource:i,baseResource:o}),s=Ln.get(r);return l(s)?s:(s=new mC({resourceCache:Ln,gltf:t,draco:n,gltfResource:i,baseResource:o,cacheKey:r}),Ln.add(s))};Ln.getVertexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,accessorId:c,asynchronous:u=!0,dequantize:f=!1,loadBuffer:d=!1,loadTypedArray:p=!1}=e,g=Fl.getVertexBufferCacheKey({gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,dequantize:f,loadBuffer:d,loadTypedArray:p}),m=Ln.get(g);return l(m)?m:(m=new bC({resourceCache:Ln,gltf:t,gltfResource:n,baseResource:i,bufferViewId:r,draco:s,attributeSemantic:a,accessorId:c,cacheKey:g,asynchronous:u,dequantize:f,loadBuffer:d,loadTypedArray:p}),Ln.add(m))};Ln.getIndexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,asynchronous:a=!0,loadBuffer:c=!1,loadTypedArray:u=!1}=e,f=Fl.getIndexBufferCacheKey({gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,loadBuffer:c,loadTypedArray:u}),d=Ln.get(f);return l(d)?d:(d=new _C({resourceCache:Ln,gltf:t,accessorId:n,gltfResource:i,baseResource:o,draco:s,cacheKey:f,asynchronous:a,loadBuffer:c,loadTypedArray:u}),Ln.add(d))};Ln.getImageLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,imageId:n,gltfResource:i,baseResource:o}=e,r=Fl.getImageCacheKey({gltf:t,imageId:n,gltfResource:i,baseResource:o}),s=Ln.get(r);return l(s)?s:(s=new pC({resourceCache:Ln,gltf:t,imageId:n,gltfResource:i,baseResource:o,cacheKey:r}),Ln.add(s))};Ln.getTextureLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s,asynchronous:a=!0}=e,c=Fl.getTextureCacheKey({gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s}),u=Ln.get(c);return l(u)?u:(u=new xC({resourceCache:Ln,gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,cacheKey:c,asynchronous:a}),Ln.add(u))};Ln.clearForSpecs=function(){let e=[bC,_C,mC,xC,pC,hC,jx,TC,yC],t,n=Ln.cacheEntries,i=[];for(t in n)n.hasOwnProperty(t)&&i.push(n[t]);i.sort(function(r,s){let a=e.indexOf(r.resourceLoader.constructor),c=e.indexOf(s.resourceLoader.constructor);return a-c});let o=i.length;for(let r=0;r<o;++r){let s=i[r];t=s.resourceLoader.cacheKey,l(n[t])&&(s.resourceLoader.destroy(),delete n[t])}Ln.statistics.clear()};var zi=Ln;function ea(e,t,n){this._resource=e,this._subtreeJson=void 0,this._bufferLoader=void 0,this._tileAvailability=void 0,this._contentAvailabilityBitstreams=[],this._childSubtreeAvailability=void 0,this._implicitCoordinates=n,this._subtreeLevels=t.subtreeLevels,this._subdivisionScheme=t.subdivisionScheme,this._branchingFactor=t.branchingFactor,this._metadata=void 0,this._tileMetadataTable=void 0,this._tilePropertyTableJson=void 0,this._contentMetadataTables=[],this._contentPropertyTableJsons=[],this._tileJumpBuffer=void 0,this._contentJumpBuffers=[],this._ready=!1}Object.defineProperties(ea.prototype,{ready:{get:function(){return this._ready}},metadata:{get:function(){return this._metadata}},tileMetadataTable:{get:function(){return this._tileMetadataTable}},tilePropertyTableJson:{get:function(){return this._tilePropertyTableJson}},contentMetadataTables:{get:function(){return this._contentMetadataTables}},contentPropertyTableJsons:{get:function(){return this._contentPropertyTableJsons}},implicitCoordinates:{get:function(){return this._implicitCoordinates}}});ea.prototype.tileIsAvailableAtIndex=function(e){return this._tileAvailability.getBit(e)};ea.prototype.tileIsAvailableAtCoordinates=function(e){let t=this.getTileIndex(e);return this.tileIsAvailableAtIndex(t)};ea.prototype.contentIsAvailableAtIndex=function(e,t){return t=y(t,0),this._contentAvailabilityBitstreams[t].getBit(e)};ea.prototype.contentIsAvailableAtCoordinates=function(e,t){let n=this.getTileIndex(e);return this.contentIsAvailableAtIndex(n,t)};ea.prototype.childSubtreeIsAvailableAtIndex=function(e){return this._childSubtreeAvailability.getBit(e)};ea.prototype.childSubtreeIsAvailableAtCoordinates=function(e){let t=this.getChildSubtreeIndex(e);return this.childSubtreeIsAvailableAtIndex(t)};ea.prototype.getLevelOffset=function(e){let t=this._branchingFactor;return(Math.pow(t,e)-1)/(t-1)};ea.prototype.getParentMortonIndex=function(e){let t=2;return this._subdivisionScheme===jr.OCTREE&&(t=3),e>>t};ea.fromSubtreeJson=async function(e,t,n,i,o){let r=new ea(e,i,o),s;l(t)?s={json:t,binary:void 0}:s=wBe(n);let a=s.json;r._subtreeJson=a;let c;if(oi(a,"3DTILES_metadata"))c=a.extensions["3DTILES_metadata"];else if(l(a.tileMetadata)){let C=a.tileMetadata;c=a.propertyTables[C]}let u=[];if(l(a.contentMetadata)){let C=a.contentMetadata.length;for(let A=0;A<C;A++){let E=a.contentMetadata[A];u.push(a.propertyTables[E])}}let f,d=i.metadataSchema,p=a.subtreeMetadata;if(l(p)){let C=p.class,A=d.classes[C];f=new _1({subtreeMetadata:p,class:A})}r._metadata=f,r._tilePropertyTableJson=c,r._contentPropertyTableJsons=u;let g={constant:0};a.contentAvailabilityHeaders=[],oi(a,"3DTILES_multiple_contents")?a.contentAvailabilityHeaders=a.extensions["3DTILES_multiple_contents"].contentAvailability:Array.isArray(a.contentAvailability)?a.contentAvailabilityHeaders=a.contentAvailability:a.contentAvailabilityHeaders.push(y(a.contentAvailability,g));let m=DBe(a.buffers),x=PBe(a.bufferViews,m);IBe(a,x),l(c)&&Doe(c,x);for(let C=0;C<u.length;C++){let A=u[C];Doe(A,x)}let b=await RBe(r,m,s.binary),T=MBe(x,b);return LBe(r,a,i,T),l(c)&&(NBe(r,i,T),BBe(r)),FBe(r,i,T),kBe(r),r._ready=!0,r};function wBe(e){let n=new DataView(e.buffer,e.byteOffset),i=8,o=n.getUint32(i,!0);i+=8;let r=n.getUint32(i,!0);i+=8;let s=Ro(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}function DBe(e){e=l(e)?e:[];for(let t=0;t<e.length;t++){let n=e[t];n.isExternal=l(n.uri),n.isActive=!1}return e}function PBe(e,t){e=l(e)?e:[];for(let n=0;n<e.length;n++){let i=e[n],o=t[i.buffer];i.bufferHeader=o,i.isActive=!1}return e}function IBe(e,t){let n,i=e.tileAvailability;l(i.bitstream)?n=t[i.bitstream]:l(i.bufferView)&&(n=t[i.bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);let o=e.contentAvailabilityHeaders;for(let s=0;s<o.length;s++)n=void 0,l(o[s].bitstream)?n=t[o[s].bitstream]:l(o[s].bufferView)&&(n=t[o[s].bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);n=void 0;let r=e.childSubtreeAvailability;l(r.bitstream)?n=t[r.bitstream]:l(r.bufferView)&&(n=t[r.bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0)}function Doe(e,t){let n=e.properties,i;for(let o in n)if(n.hasOwnProperty(o)){let r=n[o],s=y(r.values,r.bufferView);i=t[s],i.isActive=!0,i.bufferHeader.isActive=!0;let a=y(r.stringOffsets,r.stringOffsetBufferView);l(a)&&(i=t[a],i.isActive=!0,i.bufferHeader.isActive=!0);let c=y(r.arrayOffsets,r.arrayOffsetBufferView);l(c)&&(i=t[c],i.isActive=!0,i.bufferHeader.isActive=!0)}}function RBe(e,t,n){let i=[];for(let o=0;o<t.length;o++){let r=t[o];if(!r.isActive)i.push(Promise.resolve(void 0));else if(r.isExternal){let s=OBe(e,r);i.push(s)}else i.push(Promise.resolve(n))}return Promise.all(i).then(function(o){let r={};for(let s=0;s<o.length;s++){let a=o[s];l(a)&&(r[s]=a)}return r})}async function OBe(e,t){let i=e._resource.getDerivedResource({url:t.uri}),o=zi.getExternalBufferLoader({resource:i});e._bufferLoader=o;try{await o.load()}catch(r){if(o.isDestroyed())return;throw r}return o.typedArray}function MBe(e,t){let n={};for(let i=0;i<e.length;i++){let o=e[i];if(!o.isActive)continue;let r=o.byteOffset,s=r+o.byteLength,c=t[o.buffer].subarray(r,s);n[i]=c}return n}function LBe(e,t,n,i){let o=n.branchingFactor,r=n.subtreeLevels,s=(Math.pow(o,r)-1)/(o-1),a=Math.pow(o,r),c=oi(t,"3DTILES_metadata"),u=l(e._tilePropertyTableJson),f=c||u;e._tileAvailability=L9(t.tileAvailability,i,s,f);let d=e._contentPropertyTableJsons.length>0;f=f||d;for(let p=0;p<t.contentAvailabilityHeaders.length;p++){let g=L9(t.contentAvailabilityHeaders[p],i,s,f);e._contentAvailabilityBitstreams.push(g)}e._childSubtreeAvailability=L9(t.childSubtreeAvailability,i,a)}function L9(e,t,n,i){if(l(e.constant))return new fC({constant:!!e.constant,lengthBits:n,availableCount:e.availableCount});let o;return l(e.bitstream)?o=t[e.bitstream]:l(e.bufferView)&&(o=t[e.bufferView]),new fC({bitstream:o,lengthBits:n,availableCount:e.availableCount,computeAvailableCountEnabled:i})}function NBe(e,t,n){let i=e._tilePropertyTableJson,o=e._tileAvailability.availableCount,r=t.metadataSchema,s=i.class,a=r.classes[s];e._tileMetadataTable=new Ml({class:a,count:o,properties:i.properties,bufferViews:n})}function FBe(e,t,n){let i=e._contentPropertyTableJsons,o=e._contentAvailabilityBitstreams,r=t.metadataSchema,s=e._contentMetadataTables;for(let a=0;a<i.length;a++){let c=i[a],f=o[a].availableCount,d=c.class,p=r.classes[d],g=new Ml({class:p,count:f,properties:c.properties,bufferViews:n});s.push(g)}}function Poe(e){let t=0,n=e.lengthBits,i=e.availableCount,o;i<256?o=new Uint8Array(n):i<65536?o=new Uint16Array(n):o=new Uint32Array(n);for(let r=0;r<e.lengthBits;r++)e.getBit(r)&&(o[r]=t,t++);return o}function BBe(e){let t=Poe(e._tileAvailability);e._tileJumpBuffer=t}function kBe(e){let t=e._contentJumpBuffers,n=e._contentAvailabilityBitstreams;for(let i=0;i<n.length;i++){let o=n[i],r=Poe(o);t.push(r)}}ea.prototype.getTileIndex=function(e){let t=e.level-this._implicitCoordinates.level;if(t<0||this._subtreeLevels<=t)throw new le("level is out of bounds for this subtree");return e.getSubtreeCoordinates().getOffsetCoordinates(e).tileIndex};ea.prototype.getChildSubtreeIndex=function(e){if(e.level-this._implicitCoordinates.level!==this._implicitCoordinates.subtreeLevels)throw new le("level is out of bounds for this subtree");return e.getParentSubtreeCoordinates().getOffsetCoordinates(e).mortonIndex};function VBe(e,t){if(!l(e._tileMetadataTable))return;let n=e.getTileIndex(t);if(e._tileAvailability.getBit(n))return e._tileJumpBuffer[n]}function UBe(e,t,n){let i=e._contentMetadataTables;if(!l(i))return;let o=i[n];if(!l(o))return;let r=e._contentAvailabilityBitstreams[n],s=e.getTileIndex(t);if(r.getBit(s))return e._contentJumpBuffers[n][s]}ea.prototype.getTileMetadataView=function(e){let t=VBe(this,e);if(!l(t))return;let n=this._tileMetadataTable;return new dC({class:n.class,metadataTable:n,entityId:t,propertyTableJson:this._tilePropertyTableJson})};ea.prototype.getContentMetadataView=function(e,t){let n=UBe(this,e,t);if(!l(n))return;let i=this._contentMetadataTables[t],o=this._contentPropertyTableJsons[t];return new dC({class:i.class,metadataTable:i,entityId:n,contentIndex:t,propertyTableJson:o})};ea.prototype.isDestroyed=function(){return!1};ea.prototype.destroy=function(){return l(this._bufferLoader)&&zi.unload(this._bufferLoader),ue(this)};var eb=ea;var zBe={ID:"ID",NAME:"NAME",DESCRIPTION:"DESCRIPTION",TILESET_TILE_COUNT:"TILESET_TILE_COUNT",TILE_BOUNDING_BOX:"TILE_BOUNDING_BOX",TILE_BOUNDING_REGION:"TILE_BOUNDING_REGION",TILE_BOUNDING_SPHERE:"TILE_BOUNDING_SPHERE",TILE_MINIMUM_HEIGHT:"TILE_MINIMUM_HEIGHT",TILE_MAXIMUM_HEIGHT:"TILE_MAXIMUM_HEIGHT",TILE_HORIZON_OCCLUSION_POINT:"TILE_HORIZON_OCCLUSION_POINT",TILE_GEOMETRIC_ERROR:"TILE_GEOMETRIC_ERROR",CONTENT_BOUNDING_BOX:"CONTENT_BOUNDING_BOX",CONTENT_BOUNDING_REGION:"CONTENT_BOUNDING_REGION",CONTENT_BOUNDING_SPHERE:"CONTENT_BOUNDING_SPHERE",CONTENT_MINIMUM_HEIGHT:"CONTENT_MINIMUM_HEIGHT",CONTENT_MAXIMUM_HEIGHT:"CONTENT_MAXIMUM_HEIGHT",CONTENT_HORIZON_OCCLUSION_POINT:"CONTENT_HORIZON_OCCLUSION_POINT"},tb=Object.freeze(zBe);var Hd={};Hd.parseAllBoundingVolumeSemantics=function(e){return{tile:{boundingVolume:Hd.parseBoundingVolumeSemantic("TILE",e),minimumHeight:Hd._parseMinimumHeight("TILE",e),maximumHeight:Hd._parseMaximumHeight("TILE",e)},content:{boundingVolume:Hd.parseBoundingVolumeSemantic("CONTENT",e),minimumHeight:Hd._parseMinimumHeight("CONTENT",e),maximumHeight:Hd._parseMaximumHeight("CONTENT",e)}}};Hd.parseBoundingVolumeSemantic=function(e,t){let n=`${e}_BOUNDING_BOX`,i=t.getPropertyBySemantic(n);if(l(i))return{box:i};let o=`${e}_BOUNDING_REGION`,r=t.getPropertyBySemantic(o);if(l(r))return{region:r};let s=`${e}_BOUNDING_SPHERE`,a=t.getPropertyBySemantic(s);if(l(a))return{sphere:a}};Hd._parseMinimumHeight=function(e,t){let n=`${e}_MINIMUM_HEIGHT`;return t.getPropertyBySemantic(n)};Hd._parseMaximumHeight=function(e,t){let n=`${e}_MAXIMUM_HEIGHT`;return t.getPropertyBySemantic(n)};var nb=Hd;function Xc(e,t,n){let i=t.implicitTileset,o=t.implicitCoordinates;this._implicitTileset=i,this._implicitCoordinates=o,this._implicitSubtree=void 0,this._tileset=e,this._tile=t,this._resource=n,this._metadata=void 0,this.featurePropertiesDirty=!1,this._group=void 0;let r=o.getTemplateValues(),s=i.subtreeUriTemplate.getDerivedResource({templateValues:r});this._url=s.getUrlComponent(!0),this._ready=!1}Object.defineProperties(Xc.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._url}},metadata:{get:function(){},set:function(){}},batchTable:{get:function(){}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Xc.fromSubtreeJson=async function(e,t,n,i,o,r){r=y(r,0);let s;l(o)&&(s=new Uint8Array(o,r));let a=t.implicitTileset,c=t.implicitCoordinates,u=await eb.fromSubtreeJson(n,i,s,a,c),f=new Xc(e,t,n);return f._implicitSubtree=u,HBe(f,u),f._ready=!0,f};function HBe(e,t){let n=e._tile,i=e._implicitCoordinates.childIndex,o=WBe(e,t,n,i),r=e._tileset.statistics;n.children.push(o.rootTile),r.numberOfTilesTotal++;let s=GBe(e,t,o.bottomRow);for(let a=0;a<s.length;a++){let c=s[a],u=c.tile,f=JBe(e,u,c.childIndex);u.children.push(f),r.numberOfTilesTotal++}}function GBe(e,t,n){let i=[],o=e._implicitTileset.branchingFactor;for(let r=0;r<n.length;r++){let s=n[r];if(l(s))for(let a=0;a<o;a++){let c=r*o+a;t.childSubtreeIsAvailableAtIndex(c)&&i.push({tile:s,childIndex:a})}}return i}function WBe(e,t,n,i){let s=Ioe(e,t,n,i,0,!0),a=e._tileset.statistics,c=[s],u=[],f=e._implicitTileset;for(let d=1;d<f.subtreeLevels;d++){let p=t.getLevelOffset(d),g=f.branchingFactor*c.length;for(let m=0;m<g;m++){let x=p+m;if(!t.tileIsAvailableAtIndex(x)){u.push(void 0);continue}let b=t.getParentMortonIndex(m),T=c[b],C=m%f.branchingFactor,A=Ioe(e,t,T,C,x);T.children.push(A),a.numberOfTilesTotal++,u.push(A)}c=u,u=[]}return{rootTile:s,bottomRow:c}}function Roe(e,t,n){let i=tb.TILE_GEOMETRIC_ERROR;return l(e)&&e.hasPropertyBySemantic(i)?e.getPropertyBySemantic(i):t.geometricError/Math.pow(2,n.level)}function Ioe(e,t,n,i,o,r){let s=e._implicitTileset,a;y(r,!1)?a=n.implicitCoordinates:a=n.implicitCoordinates.getChildCoordinates(i);let c,u,f;if(l(t.tilePropertyTableJson)){c=t.getTileMetadataView(a);let D=nb.parseAllBoundingVolumeSemantics(c);u=D.tile,f=D.content}let p=t.contentPropertyTableJsons.length,g=!1;for(let D=0;D<p;D++)if(t.contentIsAvailableAtCoordinates(a,D)){g=!0;break}let m=YBe(s,a,i,r,n,u),x=[];for(let D=0;D<s.contentCount;D++){if(!t.contentIsAvailableAtIndex(o,D))continue;let L={uri:s.contentUriTemplates[D].getDerivedResource({templateValues:a.getTemplateValues()}).url},N=XBe(m,f);l(N)&&(L.boundingVolume=N),x.push(_t(L,s.contentHeaders[D]))}let b=Roe(c,s,a),T={boundingVolume:m,geometricError:b,refine:s.refine,contents:x},C=!0,A=He(s.tileHeader,C);delete A.boundingVolume,delete A.transform,delete A.metadata;let E=_t(T,A,C),v=Foe(e,s.baseResource,E,n);return v.implicitCoordinates=a,v.implicitSubtree=t,v.metadata=c,v.hasImplicitContentMetadata=g,v}function mU(e,t){return l(e)&&l(t)&&(l(t.minimumHeight)||l(t.maximumHeight))&&(oi(e,"3DTILES_bounding_volume_S2")||l(e.region))}function F9(e,t){l(t)&&(oi(e,"3DTILES_bounding_volume_S2")?qBe(e.extensions["3DTILES_bounding_volume_S2"],t.minimumHeight,t.maximumHeight):l(e.region)&&jBe(e.region,t.minimumHeight,t.maximumHeight))}function jBe(e,t,n){l(t)&&(e[4]=t),l(n)&&(e[5]=n)}function qBe(e,t,n){l(t)&&(e.minimumHeight=t),l(n)&&(e.maximumHeight=n)}function YBe(e,t,n,i,o,r){let s;return!l(r)||!l(r.boundingVolume)||!mU(r.boundingVolume,r)&&mU(e.boundingVolume,r)?s=Ooe(e,t,n,y(i,!1),o):s=r.boundingVolume,F9(s,r),s}function XBe(e,t){let n;return l(t)&&(n=t.boundingVolume),mU(n,t)?F9(n,t):mU(e,t)&&(n=He(e,!0),F9(n,t)),n}function Ooe(e,t,n,i,o){let r=e.boundingVolume;return oi(r,"3DTILES_bounding_volume_S2")?Moe(i,o,n,t.level,t.x,t.y,t.z):l(r.region)?{region:Noe(r.region,t.level,t.x,t.y,t.z)}:{box:Loe(r.box,t.level,t.x,t.y,t.z)}}function Moe(e,t,n,i,o,r,s){let a=t._boundingVolume;if(e)return{extensions:{"3DTILES_bounding_volume_S2":{token:Up.getTokenFromId(a.s2Cell._cellId),minimumHeight:a.minimumHeight,maximumHeight:a.maximumHeight}}};let c=Number(t._boundingVolume.s2Cell._cellId>>BigInt(61)),u=c%2===0?lC.encode2D(i,o,r):lC.encode2D(i,r,o),f=Up.fromFacePositionLevel(c,BigInt(u),i),d,p;if(l(s)){let g=(a.maximumHeight+a.minimumHeight)/2;d=n<4?a.minimumHeight:g,p=n<4?g:a.maximumHeight}else d=a.minimumHeight,p=a.maximumHeight;return{extensions:{"3DTILES_bounding_volume_S2":{token:Up.getTokenFromId(f._cellId),minimumHeight:d,maximumHeight:p}}}}var KBe=new h,ZBe=new h,N9=new h,$Be=new $;function Loe(e,t,n,i,o){if(t===0)return e;let r=h.unpack(e,0,ZBe),s=$.unpack(e,3,$Be),a=Math.pow(2,-t),c=-1+(2*n+1)*a,u=-1+(2*i+1)*a,f=0,d=h.fromElements(a,a,1,KBe);l(o)&&(f=-1+(2*o+1)*a,d.z=a);let p=h.fromElements(c,u,f,N9);p=$.multiplyByVector(s,p,N9),p=h.add(p,r,N9);let g=$.clone(s);g=$.multiplyByScale(g,d,g);let m=new Array(12);return h.pack(p,m),$.pack(g,m,3),m}var QBe=new se;function Noe(e,t,n,i,o){if(t===0)return e.slice();let r=se.unpack(e,0,QBe),s=e[4],a=e[5],c=Math.pow(2,-t),u=c*r.width,f=R.negativePiToPi(r.west+n*u),d=R.negativePiToPi(f+u),p=c*r.height,g=R.negativePiToPi(r.south+i*p),m=R.negativePiToPi(g+p),x=s,b=a;if(l(o)){let T=c*(a-s);x+=o*T,b=x+T}return[f,g,d,m,x,b]}function JBe(e,t,n){let i=e._implicitTileset,o=t.implicitCoordinates.getChildCoordinates(n),r=Ooe(i,o,n,!1,t),s=Roe(void 0,i,o),a=i.subtreeUriTemplate.getDerivedResource({templateValues:o.getTemplateValues()}).url,c={boundingVolume:r,geometricError:s,refine:i.refine,contents:[{uri:a}]},u=Foe(e,i.baseResource,c,t);return u.implicitTileset=i,u.implicitCoordinates=o,u}function Foe(e,t,n,i){let o=e._tile.constructor;return new o(e._tileset,t,n,i)}Xc.prototype.hasProperty=function(e,t){return!1};Xc.prototype.getFeature=function(e){};Xc.prototype.applyDebugSettings=function(e,t){};Xc.prototype.applyStyle=function(e){};Xc.prototype.update=function(e,t){};Xc.prototype.pick=function(e,t,n){};Xc.prototype.isDestroyed=function(){return!1};Xc.prototype.destroy=function(){return this._implicitSubtree=this._implicitSubtree&&this._implicitSubtree.destroy(),ue(this)};Xc._deriveBoundingBox=Loe;Xc._deriveBoundingRegion=Noe;Xc._deriveBoundingVolumeS2=Moe;var CC=Xc;var e3e={NONE:0,REPEAT:1,MIRRORED_REPEAT:2},Bl=Object.freeze(e3e);function EC(e,t){this._distance=t,this._normal=new Boe(e,this),this.onChangeCallback=void 0,this.index=-1}Object.defineProperties(EC.prototype,{distance:{get:function(){return this._distance},set:function(e){l(this.onChangeCallback)&&e!==this._distance&&this.onChangeCallback(this.index),this._distance=e}},normal:{get:function(){return this._normal},set:function(e){l(this.onChangeCallback)&&!h.equals(this._normal._cartesian3,e)&&this.onChangeCallback(this.index),h.clone(e,this._normal._cartesian3)}}});EC.fromPlane=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance):t=new EC(e.normal,e.distance),t};EC.clone=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance,t):new EC(e.normal,e.distance)};function Boe(e,t){this._clippingPlane=t,this._cartesian3=h.clone(e)}Object.defineProperties(Boe.prototype,{x:{get:function(){return this._cartesian3.x},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.x&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.x=e}},y:{get:function(){return this._cartesian3.y},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.y&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.y=e}},z:{get:function(){return this._cartesian3.z},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.z&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.z=e}}});var ib=EC;function sc(e){e=y(e,y.EMPTY_OBJECT),this._planes=[],this._dirtyIndex=-1,this._multipleDirtyPlanes=!1,this._enabled=y(e.enabled,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.edgeColor=H.clone(y(e.edgeColor,H.WHITE)),this.edgeWidth=y(e.edgeWidth,0),this.planeAdded=new pe,this.planeRemoved=new pe,this._owner=void 0;let t=y(e.unionClippingRegions,!1);this._unionClippingRegions=t,this._testIntersection=t?Hoe:Goe,this._uint8View=void 0,this._float32View=void 0,this._clippingPlanesTexture=void 0;let n=e.planes;if(l(n)){let i=n.length;for(let o=0;o<i;++o)this.add(n[o])}}function Hoe(e){return e===Gt.OUTSIDE}function Goe(e){return e===Gt.INSIDE}Object.defineProperties(sc.prototype,{length:{get:function(){return this._planes.length}},unionClippingRegions:{get:function(){return this._unionClippingRegions},set:function(e){this._unionClippingRegions!==e&&(this._unionClippingRegions=e,this._testIntersection=e?Hoe:Goe)}},enabled:{get:function(){return this._enabled},set:function(e){this._enabled!==e&&(this._enabled=e)}},texture:{get:function(){return this._clippingPlanesTexture}},owner:{get:function(){return this._owner}},clippingPlanesState:{get:function(){return this._unionClippingRegions?this._planes.length:-this._planes.length}}});function koe(e,t){e._multipleDirtyPlanes=e._multipleDirtyPlanes||e._dirtyIndex!==-1&&e._dirtyIndex!==t,e._dirtyIndex=t}sc.prototype.add=function(e){let t=this._planes.length,n=this;e.onChangeCallback=function(i){koe(n,i)},e.index=t,koe(this,t),this._planes.push(e),this.planeAdded.raiseEvent(e,t)};sc.prototype.get=function(e){return this._planes[e]};function Woe(e,t){let n=e.length;for(let i=0;i<n;++i)if(ln.equals(e[i],t))return i;return-1}sc.prototype.contains=function(e){return Woe(this._planes,e)!==-1};sc.prototype.remove=function(e){let t=this._planes,n=Woe(t,e);if(n===-1)return!1;e instanceof ib&&(e.onChangeCallback=void 0,e.index=-1);let i=t.length-1;for(let o=n;o<i;++o){let r=t[o+1];t[o]=r,r instanceof ib&&(r.index=o)}return this._multipleDirtyPlanes=!0,t.length=i,this.planeRemoved.raiseEvent(e,n),!0};sc.prototype.removeAll=function(){let e=this._planes,t=e.length;for(let n=0;n<t;++n){let i=e[n];i instanceof ib&&(i.onChangeCallback=void 0,i.index=-1),this.planeRemoved.raiseEvent(i,n)}this._multipleDirtyPlanes=!0,this._planes=[]};var t3e=new oe,n3e=new oe;function Voe(e,t,n){let i=e._uint8View,o=e._planes,r=0;for(let s=t;s<n;++s){let a=o[s],c=Mn.octEncodeToCartesian4(a.normal,n3e);i[r]=c.x,i[r+1]=c.y,i[r+2]=c.z,i[r+3]=c.w;let u=oe.packFloat(a.distance,t3e);i[r+4]=u.x,i[r+5]=u.y,i[r+6]=u.z,i[r+7]=u.w,r+=8}}function Uoe(e,t,n){let i=e._float32View,o=e._planes,r=0;for(let s=t;s<n;++s){let a=o[s],c=a.normal;i[r]=c.x,i[r+1]=c.y,i[r+2]=c.z,i[r+3]=a.distance,r+=4}}function joe(e,t){let n=Nt.maximumTextureSize;return t.x=Math.min(e,n),t.y=Math.ceil(e/t.x),t}var i3e=new z;sc.prototype.update=function(e){let t=this._clippingPlanesTexture,n=e.context,i=sc.useFloatTexture(n),o=i?this.length:this.length*2;if(l(t)){let s=t.width*t.height;(s<o||o<.25*s)&&(t.destroy(),t=void 0,this._clippingPlanesTexture=void 0)}if(this.length===0)return;if(!l(t)){let s=joe(o,i3e);s.y*=2,i?(t=new Dt({context:n,width:s.x,height:s.y,pixelFormat:nt.RGBA,pixelDatatype:We.FLOAT,sampler:on.NEAREST,flipY:!1}),this._float32View=new Float32Array(s.x*s.y*4)):(t=new Dt({context:n,width:s.x,height:s.y,pixelFormat:nt.RGBA,pixelDatatype:We.UNSIGNED_BYTE,sampler:on.NEAREST,flipY:!1}),this._uint8View=new Uint8Array(s.x*s.y*4)),this._clippingPlanesTexture=t,this._multipleDirtyPlanes=!0}let r=this._dirtyIndex;if(!(!this._multipleDirtyPlanes&&r===-1)){if(this._multipleDirtyPlanes)i?(Uoe(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._float32View}})):(Voe(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._uint8View}}));else{let s=0,a=0;i?(a=Math.floor(r/t.width),s=Math.floor(r-a*t.width),Uoe(this,r,r+1),t.copyFrom({source:{width:1,height:1,arrayBufferView:this._float32View},xOffset:s,yOffset:a})):(a=Math.floor(r*2/t.width),s=Math.floor(r*2-a*t.width),Voe(this,r,r+1),t.copyFrom({source:{width:2,height:1,arrayBufferView:this._uint8View},xOffset:s,yOffset:a}))}this._multipleDirtyPlanes=!1,this._dirtyIndex=-1}};var o3e=new F,zoe=new ln(h.UNIT_X,0);sc.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._planes,i=n.length,o=this.modelMatrix;l(t)&&(o=F.multiply(t,o,o3e));let r=Gt.INSIDE;!this.unionClippingRegions&&i>0&&(r=Gt.OUTSIDE);for(let s=0;s<i;++s){let a=n[s];ln.transform(a,o,zoe);let c=e.intersectPlane(zoe);if(c===Gt.INTERSECTING)r=c;else if(this._testIntersection(c))return c}return r};sc.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),l(e)&&(e._owner=t,t[n]=e))};sc.useFloatTexture=function(e){return e.floatingPointTexture};sc.getTextureResolution=function(e,t,n){let i=e.texture;if(l(i))return n.x=i.width,n.y=i.height,n;let o=sc.useFloatTexture(t)?e.length:e.length*2,r=joe(o,n);return r.y*=2,r};sc.prototype.isDestroyed=function(){return!1};sc.prototype.destroy=function(){return this._clippingPlanesTexture=this._clippingPlanesTexture&&this._clippingPlanesTexture.destroy(),ue(this)};var cs=sc;var ere=wo(Zoe(),1);var b3e=new h,T3e=new h,sy={};sy.computeArea2D=function(e){let t=e.length,n=0;for(let i=t-1,o=0;o<t;i=o++){let r=e[i],s=e[o];n+=r.x*s.y-s.x*r.y}return n*.5};sy.computeWindingOrder2D=function(e){return sy.computeArea2D(e)>0?ss.COUNTER_CLOCKWISE:ss.CLOCKWISE};sy.triangulate=function(e,t){let n=z.packArray(e);return(0,ere.default)(n,t,2)};var tre=new h,nre=new h,ire=new h,$oe=new h,Qoe=new h,Joe=new h,Yp=new h,ore=new z,rre=new z,sre=new z,vC=new z;sy.computeSubdivision=function(e,t,n,i,o){o=y(o,R.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,u=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let A=t[a];if(u[d++]=A.x,u[d++]=A.y,u[d++]=A.z,r){let E=i[a];f[p++]=E.x,f[p++]=E.y}}let g=[],m={},x=e.maximumRadius,b=R.chordLength(o,x),T=b*b;for(;s.length>0;){let A=s.pop(),E=s.pop(),v=s.pop(),D=h.fromArray(u,v*3,tre),O=h.fromArray(u,E*3,nre),I=h.fromArray(u,A*3,ire),L,N,_;r&&(L=z.fromArray(f,v*2,ore),N=z.fromArray(f,E*2,rre),_=z.fromArray(f,A*2,sre));let S=h.multiplyByScalar(h.normalize(D,$oe),x,$oe),w=h.multiplyByScalar(h.normalize(O,Qoe),x,Qoe),P=h.multiplyByScalar(h.normalize(I,Joe),x,Joe),M=h.magnitudeSquared(h.subtract(S,w,Yp)),B=h.magnitudeSquared(h.subtract(w,P,Yp)),U=h.magnitudeSquared(h.subtract(P,S,Yp)),V=Math.max(M,B,U),G,k,Y;V>T?M===V?(G=`${Math.min(v,E)} ${Math.max(v,E)}`,a=m[G],l(a)||(k=h.add(D,O,Yp),h.multiplyByScalar(k,.5,k),u.push(k.x,k.y,k.z),a=u.length/3-1,m[G]=a,r&&(Y=z.add(L,N,vC),z.multiplyByScalar(Y,.5,Y),f.push(Y.x,Y.y))),s.push(v,a,A),s.push(a,E,A)):B===V?(G=`${Math.min(E,A)} ${Math.max(E,A)}`,a=m[G],l(a)||(k=h.add(O,I,Yp),h.multiplyByScalar(k,.5,k),u.push(k.x,k.y,k.z),a=u.length/3-1,m[G]=a,r&&(Y=z.add(N,_,vC),z.multiplyByScalar(Y,.5,Y),f.push(Y.x,Y.y))),s.push(E,a,v),s.push(a,A,v)):U===V&&(G=`${Math.min(A,v)} ${Math.max(A,v)}`,a=m[G],l(a)||(k=h.add(I,D,Yp),h.multiplyByScalar(k,.5,k),u.push(k.x,k.y,k.z),a=u.length/3-1,m[G]=a,r&&(Y=z.add(_,L,vC),z.multiplyByScalar(Y,.5,Y),f.push(Y.x,Y.y))),s.push(A,a,E),s.push(a,v,E)):(g.push(v),g.push(E),g.push(A))}let C={attributes:{position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})},indices:g,primitiveType:Le.TRIANGLES};return r&&(C.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new st(C)};var A3e=new fe,C3e=new fe,E3e=new fe,z9=new fe;sy.computeRhumbLineSubdivision=function(e,t,n,i,o){o=y(o,R.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,u=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let v=t[a];if(u[d++]=v.x,u[d++]=v.y,u[d++]=v.z,r){let D=i[a];f[p++]=D.x,f[p++]=D.y}}let g=[],m={},x=e.maximumRadius,b=R.chordLength(o,x),T=new Ea(void 0,void 0,e),C=new Ea(void 0,void 0,e),A=new Ea(void 0,void 0,e);for(;s.length>0;){let v=s.pop(),D=s.pop(),O=s.pop(),I=h.fromArray(u,O*3,tre),L=h.fromArray(u,D*3,nre),N=h.fromArray(u,v*3,ire),_,S,w;r&&(_=z.fromArray(f,O*2,ore),S=z.fromArray(f,D*2,rre),w=z.fromArray(f,v*2,sre));let P=e.cartesianToCartographic(I,A3e),M=e.cartesianToCartographic(L,C3e),B=e.cartesianToCartographic(N,E3e);T.setEndPoints(P,M);let U=T.surfaceDistance;C.setEndPoints(M,B);let V=C.surfaceDistance;A.setEndPoints(B,P);let G=A.surfaceDistance,k=Math.max(U,V,G),Y,W,Q,j,K;k>b?U===k?(Y=`${Math.min(O,D)} ${Math.max(O,D)}`,a=m[Y],l(a)||(W=T.interpolateUsingFraction(.5,z9),Q=(P.height+M.height)*.5,j=h.fromRadians(W.longitude,W.latitude,Q,e,Yp),u.push(j.x,j.y,j.z),a=u.length/3-1,m[Y]=a,r&&(K=z.add(_,S,vC),z.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(O,a,v),s.push(a,D,v)):V===k?(Y=`${Math.min(D,v)} ${Math.max(D,v)}`,a=m[Y],l(a)||(W=C.interpolateUsingFraction(.5,z9),Q=(M.height+B.height)*.5,j=h.fromRadians(W.longitude,W.latitude,Q,e,Yp),u.push(j.x,j.y,j.z),a=u.length/3-1,m[Y]=a,r&&(K=z.add(S,w,vC),z.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(D,a,O),s.push(a,v,O)):G===k&&(Y=`${Math.min(v,O)} ${Math.max(v,O)}`,a=m[Y],l(a)||(W=A.interpolateUsingFraction(.5,z9),Q=(B.height+P.height)*.5,j=h.fromRadians(W.longitude,W.latitude,Q,e,Yp),u.push(j.x,j.y,j.z),a=u.length/3-1,m[Y]=a,r&&(K=z.add(w,_,vC),z.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(v,a,D),s.push(a,O,D)):(g.push(O),g.push(D),g.push(v))}let E={attributes:{position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})},indices:g,primitiveType:Le.TRIANGLES};return r&&(E.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new st(E)};sy.scaleToGeodeticHeight=function(e,t,n,i){n=y(n,te.WGS84);let o=b3e,r=T3e;if(t=y(t,0),i=y(i,!0),l(e)){let s=e.length;for(let a=0;a<s;a+=3)h.fromArray(e,a,r),i&&(r=n.scaleToGeodeticSurface(r,r)),t!==0&&(o=n.geodeticSurfaceNormal(r,o),h.multiplyByScalar(o,t,o),h.add(r,o,r)),e[a]=r.x,e[a+1]=r.y,e[a+2]=r.z}return e};var si=sy;function ay(){this._array=[],this._offset=0,this._length=0}Object.defineProperties(ay.prototype,{length:{get:function(){return this._length}}});ay.prototype.enqueue=function(e){this._array.push(e),this._length++};ay.prototype.dequeue=function(){if(this._length===0)return;let e=this._array,t=this._offset,n=e[t];return e[t]=void 0,t++,t>10&&t*2>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,n};ay.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};ay.prototype.contains=function(e){return this._array.indexOf(e)!==-1};ay.prototype.clear=function(){this._array.length=this._offset=this._length=0};ay.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};var cy=ay;var $o={};$o.computeHierarchyPackedLength=function(e,t){let n=0,i=[e];for(;i.length>0;){let o=i.pop();if(!l(o))continue;n+=2;let r=o.positions,s=o.holes;if(l(r)&&r.length>0&&(n+=r.length*t.packedLength),l(s)){let a=s.length;for(let c=0;c<a;++c)i.push(s[c])}}return n};$o.packPolygonHierarchy=function(e,t,n,i){let o=[e];for(;o.length>0;){let r=o.pop();if(!l(r))continue;let s=r.positions,a=r.holes;if(t[n++]=l(s)?s.length:0,t[n++]=l(a)?a.length:0,l(s)){let c=s.length;for(let u=0;u<c;++u,n+=i.packedLength)i.pack(s[u],t,n)}if(l(a)){let c=a.length;for(let u=0;u<c;++u)o.push(a[u])}}return n};$o.unpackPolygonHierarchy=function(e,t,n){let i=e[t++],o=e[t++],r=new Array(i),s=o>0?new Array(o):void 0;for(let a=0;a<i;++a,t+=n.packedLength)r[a]=n.unpack(e,t);for(let a=0;a<o;++a)s[a]=$o.unpackPolygonHierarchy(e,t,n),t=s[a].startingIndex,delete s[a].startingIndex;return{positions:r,holes:s,startingIndex:t}};var rb=new z;function lre(e,t,n,i){return z.subtract(t,e,rb),z.multiplyByScalar(rb,n/i,rb),z.add(e,rb,rb),[rb.x,rb.y]}var ly=new h;function S3e(e,t,n,i){return h.subtract(t,e,ly),h.multiplyByScalar(ly,n/i,ly),h.add(e,ly,ly),[ly.x,ly.y,ly.z]}$o.subdivideLineCount=function(e,t,n){let o=h.distance(e,t)/n,r=Math.max(0,Math.ceil(R.log2(o)));return Math.pow(2,r)};var bU=new fe,TU=new fe,v3e=new fe,w3e=new h,xU=new Ea;$o.subdivideRhumbLineCount=function(e,t,n,i){let o=e.cartesianToCartographic(t,bU),r=e.cartesianToCartographic(n,TU),a=new Ea(o,r,e).surfaceDistance/i,c=Math.max(0,Math.ceil(R.log2(a)));return Math.pow(2,c)};$o.subdivideTexcoordLine=function(e,t,n,i,o,r){let s=$o.subdivideLineCount(n,i,o),a=z.distance(e,t),c=a/s,u=r;u.length=s*2;let f=0;for(let d=0;d<s;d++){let p=lre(e,t,d*c,a);u[f++]=p[0],u[f++]=p[1]}return u};$o.subdivideLine=function(e,t,n,i){let o=$o.subdivideLineCount(e,t,n),r=h.distance(e,t),s=r/o;l(i)||(i=[]);let a=i;a.length=o*3;let c=0;for(let u=0;u<o;u++){let f=S3e(e,t,u*s,r);a[c++]=f[0],a[c++]=f[1],a[c++]=f[2]}return a};$o.subdivideTexcoordRhumbLine=function(e,t,n,i,o,r,s){let a=n.cartesianToCartographic(i,bU),c=n.cartesianToCartographic(o,TU);xU.setEndPoints(a,c);let u=xU.surfaceDistance/r,f=Math.max(0,Math.ceil(R.log2(u))),d=Math.pow(2,f),p=z.distance(e,t),g=p/d,m=s;m.length=d*2;let x=0;for(let b=0;b<d;b++){let T=lre(e,t,b*g,p);m[x++]=T[0],m[x++]=T[1]}return m};$o.subdivideRhumbLine=function(e,t,n,i,o){let r=e.cartesianToCartographic(t,bU),s=e.cartesianToCartographic(n,TU),a=new Ea(r,s,e),c=a.surfaceDistance/i,u=Math.max(0,Math.ceil(R.log2(c))),f=Math.pow(2,u),d=a.surfaceDistance/f;l(o)||(o=[]);let p=o;p.length=f*3;let g=0;for(let m=0;m<f;m++){let x=a.interpolateUsingSurfaceDistance(m*d,v3e),b=e.cartographicToCartesian(x,w3e);p[g++]=b.x,p[g++]=b.y,p[g++]=b.z}return p};var D3e=new h,P3e=new h,I3e=new h,R3e=new h;$o.scaleToGeodeticHeightExtruded=function(e,t,n,i,o){i=y(i,te.WGS84);let r=D3e,s=P3e,a=I3e,c=R3e;if(l(e)&&l(e.attributes)&&l(e.attributes.position)){let u=e.attributes.position.values,f=u.length/2;for(let d=0;d<f;d+=3)h.fromArray(u,d,a),i.geodeticSurfaceNormal(a,r),c=i.scaleToGeodeticSurface(a,c),s=h.multiplyByScalar(r,n,s),s=h.add(c,s,s),u[d+f]=s.x,u[d+1+f]=s.y,u[d+2+f]=s.z,o&&(c=h.clone(a,c)),s=h.multiplyByScalar(r,t,s),s=h.add(c,s,s),u[d]=s.x,u[d+1]=s.y,u[d+2]=s.z}return e};$o.polygonOutlinesFromHierarchy=function(e,t,n){let i=[],o=new cy;o.enqueue(e);let r,s,a;for(;o.length!==0;){let c=o.dequeue(),u=c.positions;if(t)for(a=u.length,r=0;r<a;r++)n.scaleToGeodeticSurface(u[r],u[r]);if(u=xo(u,h.equalsEpsilon,!0),u.length<3)continue;let f=c.holes?c.holes.length:0;for(r=0;r<f;r++){let d=c.holes[r],p=d.positions;if(t)for(a=p.length,s=0;s<a;++s)n.scaleToGeodeticSurface(p[s],p[s]);if(p=xo(p,h.equalsEpsilon,!0),p.length<3)continue;i.push(p);let g=0;for(l(d.holes)&&(g=d.holes.length),s=0;s<g;s++)o.enqueue(d.holes[s])}i.push(u)}return i};var O3e=new fe;function M3e(e,t,n){let i=n.cartesianToCartographic(e,bU),o=n.cartesianToCartographic(t,TU);if(Math.sign(i.latitude)===Math.sign(o.latitude))return;xU.setEndPoints(i,o);let r=xU.findIntersectionWithLatitude(0,O3e);if(!l(r))return;let s=Math.min(i.longitude,o.longitude),a=Math.max(i.longitude,o.longitude);if(Math.abs(a-s)>R.PI){let c=s;s=a,a=c}if(!(r.longitude<s||r.longitude>a))return n.cartographicToCartesian(r)}function L3e(e,t,n,i){if(i===Qt.RHUMB)return M3e(e,t,n);let o=Qn.lineSegmentPlane(e,t,ln.ORIGIN_XY_PLANE);if(l(o))return n.scaleToGeodeticSurface(o,o)}var N3e=new fe;function F3e(e,t,n){let i=[],o,r,s,a,c,u=0;for(;u<e.length;){o=e[u],r=e[(u+1)%e.length],s=R.sign(o.z),a=R.sign(r.z);let f=d=>t.cartesianToCartographic(d,N3e).longitude;if(s===0)i.push({position:u,type:s,visited:!1,next:a,theta:f(o)});else if(a!==0){if(c=L3e(o,r,t,n),++u,!l(c))continue;e.splice(u,0,c),i.push({position:u,type:s,visited:!1,next:a,theta:f(c)})}++u}return i}function ure(e,t,n,i,o,r,s){let a=[],c=r,u=d=>p=>p.position===d,f=[];do{let d=n[c];a.push(d);let p=i.findIndex(u(c)),g=i[p];if(!l(g)){++c;continue}let{visited:m,type:x,next:b}=g;if(g.visited=!0,x===0){if(b===0){let E=i[p-(s?1:-1)];if(E?.position===c+1)E.visited=!0;else{++c;continue}}if(!m&&s&&b>0||r===c&&!s&&b<0){++c;continue}}if(!(s?x>=0:x<=0)){++c;continue}m||f.push(c);let C=p+(s?1:-1),A=i[C];if(!l(A)){++c;continue}c=A.position}while(c<n.length&&c>=0&&c!==r&&a.length<n.length);e.splice(t,o,a);for(let d of f)t=ure(e,++t,n,i,0,d,!s);return t}$o.splitPolygonsOnEquator=function(e,t,n,i){l(i)||(i=[]),i.splice(0,0,...e),i.length=e.length;let o=0;for(;o<i.length;){let r=i[o],s=r.slice();if(r.length<3){i[o]=s,++o;continue}let a=F3e(s,t,n);if(s.length===r.length||a.length<=1){i[o]=s,++o;continue}a.sort((u,f)=>u.theta-f.theta);let c=s[0].z>=0;o=ure(i,o,s,a,1,0,c)}return i};$o.polygonsFromHierarchy=function(e,t,n,i,o,r){let s=[],a=[],c=new cy;c.enqueue(e);let u=l(r);for(;c.length!==0;){let f=c.dequeue(),d=f.positions,p=f.holes,g,m;if(i)for(m=d.length,g=0;g<m;g++)o.scaleToGeodeticSurface(d[g],d[g]);if(t||(d=xo(d,h.equalsEpsilon,!0)),d.length<3)continue;let x=n(d);if(!l(x))continue;let b=[],T=si.computeWindingOrder2D(x);if(T===ss.CLOCKWISE&&(x.reverse(),d=d.slice().reverse()),u){u=!1;let D=[d];if(D=r(D,D),D.length>1){for(let O of D)c.enqueue(new Sa(O,p));continue}}let C=d.slice(),A=l(p)?p.length:0,E=[],v;for(g=0;g<A;g++){let D=p[g],O=D.positions;if(i)for(m=O.length,v=0;v<m;++v)o.scaleToGeodeticSurface(O[v],O[v]);if(t||(O=xo(O,h.equalsEpsilon,!0)),O.length<3)continue;let I=n(O);if(!l(I))continue;T=si.computeWindingOrder2D(I),T===ss.CLOCKWISE&&(I.reverse(),O=O.slice().reverse()),E.push(O),b.push(C.length),C=C.concat(O),x=x.concat(I);let L=0;for(l(D.holes)&&(L=D.holes.length),v=0;v<L;v++)c.enqueue(D.holes[v])}s.push({outerRing:d,holes:E}),a.push({positions:C,positions2D:x,holes:b})}return{hierarchy:s,polygons:a}};var B3e=new z,k3e=new h,V3e=new Me,U3e=new $;$o.computeBoundingRectangle=function(e,t,n,i,o){let r=Me.fromAxisAngle(e,i,V3e),s=$.fromQuaternion(r,U3e),a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,u=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,d=n.length;for(let p=0;p<d;++p){let g=h.clone(n[p],k3e);$.multiplyByVector(s,g,g);let m=t(g,B3e);l(m)&&(a=Math.min(a,m.x),c=Math.max(c,m.x),u=Math.min(u,m.y),f=Math.max(f,m.y))}return o.x=a,o.y=u,o.width=c-a,o.height=f-u,o};$o.createGeometryFromPositions=function(e,t,n,i,o,r,s){let a=si.triangulate(t.positions2D,t.holes);a.length<3&&(a=[0,1,2]);let c=t.positions,u=l(n),f=u?n.positions:void 0;if(o){let d=c.length,p=new Array(d*3),g=0;for(let b=0;b<d;b++){let T=c[b];p[g++]=T.x,p[g++]=T.y,p[g++]=T.z}let m={attributes:{position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:p})},indices:a,primitiveType:Le.TRIANGLES};u&&(m.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:z.packArray(f)}));let x=new st(m);return r.normal?Nn.computeNormal(x):x}if(s===Qt.GEODESIC)return si.computeSubdivision(e,c,a,f,i);if(s===Qt.RHUMB)return si.computeRhumbLineSubdivision(e,c,a,f,i)};var are=[],cre=[],z3e=new h,H3e=new h;$o.computeWallGeometry=function(e,t,n,i,o,r){let s,a,c,u,f,d,p,g,m,x=e.length,b=0,T=0,C=l(t),A=C?t.positions:void 0;if(o)for(a=x*3*2,s=new Array(a*2),C&&(m=x*2*2,g=new Array(m*2)),c=0;c<x;c++)u=e[c],f=e[(c+1)%x],s[b]=s[b+a]=u.x,++b,s[b]=s[b+a]=u.y,++b,s[b]=s[b+a]=u.z,++b,s[b]=s[b+a]=f.x,++b,s[b]=s[b+a]=f.y,++b,s[b]=s[b+a]=f.z,++b,C&&(d=A[c],p=A[(c+1)%x],g[T]=g[T+m]=d.x,++T,g[T]=g[T+m]=d.y,++T,g[T]=g[T+m]=p.x,++T,g[T]=g[T+m]=p.y,++T);else{let I=R.chordLength(i,n.maximumRadius),L=0;if(r===Qt.GEODESIC)for(c=0;c<x;c++)L+=$o.subdivideLineCount(e[c],e[(c+1)%x],I);else if(r===Qt.RHUMB)for(c=0;c<x;c++)L+=$o.subdivideRhumbLineCount(n,e[c],e[(c+1)%x],I);for(a=(L+x)*3,s=new Array(a*2),C&&(m=(L+x)*2,g=new Array(m*2)),c=0;c<x;c++){u=e[c],f=e[(c+1)%x];let N,_;C&&(d=A[c],p=A[(c+1)%x]),r===Qt.GEODESIC?(N=$o.subdivideLine(u,f,I,cre),C&&(_=$o.subdivideTexcoordLine(d,p,u,f,I,are))):r===Qt.RHUMB&&(N=$o.subdivideRhumbLine(n,u,f,I,cre),C&&(_=$o.subdivideTexcoordRhumbLine(d,p,n,u,f,I,are)));let S=N.length;for(let w=0;w<S;++w,++b)s[b]=N[w],s[b+a]=N[w];if(s[b]=f.x,s[b+a]=f.x,++b,s[b]=f.y,s[b+a]=f.y,++b,s[b]=f.z,s[b+a]=f.z,++b,C){let w=_.length;for(let P=0;P<w;++P,++T)g[T]=_[P],g[T+m]=_[P];g[T]=p.x,g[T+m]=p.x,++T,g[T]=p.y,g[T+m]=p.y,++T}}}x=s.length;let E=Ne.createTypedArray(x/3,x-e.length*6),v=0;for(x/=6,c=0;c<x;c++){let I=c,L=I+1,N=I+x,_=N+1;u=h.fromArray(s,I*3,z3e),f=h.fromArray(s,L*3,H3e),!h.equalsEpsilon(u,f,R.EPSILON10,R.EPSILON10)&&(E[v++]=I,E[v++]=N,E[v++]=L,E[v++]=L,E[v++]=N,E[v++]=_)}let D={attributes:new fn({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),indices:E,primitiveType:Le.TRIANGLES};return C&&(D.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),new st(D)};var zn=$o;function wr(e,t){this.position=e,l(this.position)||(this.position=new z),this.tangentPlane=t,l(this.tangentPlane)||(this.tangentPlane=wr.NORTH_POLE_TANGENT_PLANE)}Object.defineProperties(wr.prototype,{ellipsoid:{get:function(){return this.tangentPlane.ellipsoid}},x:{get:function(){return this.position.x}},y:{get:function(){return this.position.y}},conformalLatitude:{get:function(){let e=z.magnitude(this.position),t=2*this.ellipsoid.maximumRadius;return this.tangentPlane.plane.normal.z*(R.PI_OVER_TWO-2*Math.atan2(e,t))}},longitude:{get:function(){let e=R.PI_OVER_TWO+Math.atan2(this.y,this.x);return e>Math.PI&&(e-=R.TWO_PI),e}}});var wC=new fe,G3e=new h;wr.prototype.getLatitude=function(e){l(e)||(e=te.WGS84),wC.latitude=this.conformalLatitude,wC.longitude=this.longitude,wC.height=0;let t=this.ellipsoid.cartographicToCartesian(wC,G3e);return e.cartesianToCartographic(t,wC),wC.latitude};var W3e=new pn,j3e=new h,q3e=new h;wr.fromCartesian=function(e,t){let n=R.signNotZero(e.z),i=wr.NORTH_POLE_TANGENT_PLANE,o=wr.SOUTH_POLE;n<0&&(i=wr.SOUTH_POLE_TANGENT_PLANE,o=wr.NORTH_POLE);let r=W3e;r.origin=i.ellipsoid.scaleToGeocentricSurface(e,r.origin),r.direction=h.subtract(r.origin,o,j3e),h.normalize(r.direction,r.direction);let s=Qn.rayPlane(r,i.plane,q3e),a=h.subtract(s,o,s),c=h.dot(i.xAxis,a),u=n*h.dot(i.yAxis,a);return l(t)?(t.position=new z(c,u),t.tangentPlane=i,t):new wr(new z(c,u),i)};wr.fromCartesianArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;i++)t[i]=wr.fromCartesian(e[i],t[i]);return t};wr.clone=function(e,t){if(l(e))return l(t)?(t.position=e.position,t.tangentPlane=e.tangentPlane,t):new wr(e.position,e.tangentPlane)};wr.HALF_UNIT_SPHERE=Object.freeze(new te(.5,.5,.5));wr.NORTH_POLE=Object.freeze(new h(0,0,.5));wr.SOUTH_POLE=Object.freeze(new h(0,0,-.5));wr.NORTH_POLE_TANGENT_PLANE=Object.freeze(new Hr(wr.NORTH_POLE,wr.HALF_UNIT_SPHERE));wr.SOUTH_POLE_TANGENT_PLANE=Object.freeze(new Hr(wr.SOUTH_POLE,wr.HALF_UNIT_SPHERE));var ac=wr;var Y3e=new fe,fre=new fe;function X3e(e,t,n,i){let r=i.cartesianToCartographic(e,Y3e).height,s=i.cartesianToCartographic(t,fre);s.height=r,i.cartographicToCartesian(s,t);let a=i.cartesianToCartographic(n,fre);a.height=r-100,i.cartographicToCartesian(a,n)}var dre=new Ge,K3e=new h,Z3e=new h,$3e=new h,Q3e=new h,J3e=new h,eke=new h,AU=new h,hm=new h,DC=new h,tke=new z,nke=new z,ike=new h,hre=new Me,oke=new $,rke=new $;function H9(e){let t=e.vertexFormat,n=e.geometry,i=e.shadowVolume,o=n.attributes.position.values,r=l(n.attributes.st)?n.attributes.st.values:void 0,s=o.length,a=e.wall,c=e.top||a,u=e.bottom||a;if(t.st||t.normal||t.tangent||t.bitangent||i){let f=e.boundingRectangle,d=e.rotationAxis,p=e.projectTo2d,g=e.ellipsoid,m=e.stRotation,x=e.perPositionHeight,b=tke;b.x=f.x,b.y=f.y;let T=t.st?new Float32Array(2*(s/3)):void 0,C;t.normal&&(x&&c&&!a?C=n.attributes.normal.values:C=new Float32Array(s));let A=t.tangent?new Float32Array(s):void 0,E=t.bitangent?new Float32Array(s):void 0,v=i?new Float32Array(s):void 0,D=0,O=0,I=Z3e,L=$3e,N=Q3e,_=!0,S=oke,w=rke;if(m!==0){let B=Me.fromAxisAngle(d,m,hre);S=$.fromQuaternion(B,S),B=Me.fromAxisAngle(d,-m,hre),w=$.fromQuaternion(B,w)}else S=$.clone($.IDENTITY,S),w=$.clone($.IDENTITY,w);let P=0,M=0;c&&u&&(P=s/2,M=s/3,s/=2);for(let B=0;B<s;B+=3){let U=h.fromArray(o,B,ike);if(t.st&&!l(r)){let V=$.multiplyByVector(S,U,K3e);V=g.scaleToGeodeticSurface(V,V);let G=p([V],nke)[0];z.subtract(G,b,G);let k=R.clamp(G.x/f.width,0,1),Y=R.clamp(G.y/f.height,0,1);u&&(T[D+M]=k,T[D+1+M]=Y),c&&(T[D]=k,T[D+1]=Y),D+=2}if(t.normal||t.tangent||t.bitangent||i){let V=O+1,G=O+2;if(a){if(B+3<s){let k=h.fromArray(o,B+3,J3e);if(_){let Y=h.fromArray(o,B+s,eke);x&&X3e(U,k,Y,g),h.subtract(k,U,k),h.subtract(Y,U,Y),I=h.normalize(h.cross(Y,k,I),I),_=!1}h.equalsEpsilon(k,U,R.EPSILON10)&&(_=!0)}(t.tangent||t.bitangent)&&(N=g.geodeticSurfaceNormal(U,N),t.tangent&&(L=h.normalize(h.cross(N,I,L),L)))}else I=g.geodeticSurfaceNormal(U,I),(t.tangent||t.bitangent)&&(x&&(AU=h.fromArray(C,O,AU),hm=h.cross(h.UNIT_Z,AU,hm),hm=h.normalize($.multiplyByVector(w,hm,hm),hm),t.bitangent&&(DC=h.normalize(h.cross(AU,hm,DC),DC))),L=h.cross(h.UNIT_Z,I,L),L=h.normalize($.multiplyByVector(w,L,L),L),t.bitangent&&(N=h.normalize(h.cross(I,L,N),N)));t.normal&&(e.wall?(C[O+P]=I.x,C[V+P]=I.y,C[G+P]=I.z):u&&(C[O+P]=-I.x,C[V+P]=-I.y,C[G+P]=-I.z),(c&&!x||a)&&(C[O]=I.x,C[V]=I.y,C[G]=I.z)),i&&(a&&(I=g.geodeticSurfaceNormal(U,I)),v[O+P]=-I.x,v[V+P]=-I.y,v[G+P]=-I.z),t.tangent&&(e.wall?(A[O+P]=L.x,A[V+P]=L.y,A[G+P]=L.z):u&&(A[O+P]=-L.x,A[V+P]=-L.y,A[G+P]=-L.z),c&&(x?(A[O]=hm.x,A[V]=hm.y,A[G]=hm.z):(A[O]=L.x,A[V]=L.y,A[G]=L.z))),t.bitangent&&(u&&(E[O+P]=N.x,E[V+P]=N.y,E[G+P]=N.z),c&&(x?(E[O]=DC.x,E[V]=DC.y,E[G]=DC.z):(E[O]=N.x,E[V]=N.y,E[G]=N.z))),O+=3}}t.st&&!l(r)&&(n.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:T})),t.normal&&(n.attributes.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.tangent&&(n.attributes.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),t.bitangent&&(n.attributes.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:E})),i&&(n.attributes.extrudeDirection=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:v}))}if(e.extrude&&l(e.offsetAttribute)){let f=o.length/3,d=new Uint8Array(f);if(e.offsetAttribute===an.TOP)c&&u||a?d=d.fill(1,0,f/2):c&&(d=d.fill(1));else{let p=e.offsetAttribute===an.NONE?0:1;d=d.fill(p)}n.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return n}var mre=[];function ske(e,t,n,i,o,r,s,a,c,u){let f={walls:[]},d;if(s||a){let C=zn.createGeometryFromPositions(e,t,n,i,r,c,u),A=C.attributes.position.values,E=C.indices,v,D;if(s&&a){let O=A.concat(A);v=O.length/3,D=Ne.createTypedArray(v,E.length*2),D.set(E);let I=E.length,L=v/2;for(d=0;d<I;d+=3){let N=D[d]+L,_=D[d+1]+L,S=D[d+2]+L;D[d+I]=S,D[d+1+I]=_,D[d+2+I]=N}if(C.attributes.position.values=O,r&&c.normal){let N=C.attributes.normal.values;C.attributes.normal.values=new Float32Array(O.length),C.attributes.normal.values.set(N)}if(c.st&&l(n)){let N=C.attributes.st.values;C.attributes.st.values=new Float32Array(v*2),C.attributes.st.values=N.concat(N)}C.indices=D}else if(a){for(v=A.length/3,D=Ne.createTypedArray(v,E.length),d=0;d<E.length;d+=3)D[d]=E[d+2],D[d+1]=E[d+1],D[d+2]=E[d];C.indices=D}f.topAndBottom=new xt({geometry:C})}let p=o.outerRing,g=Hr.fromPoints(p,e),m=g.projectPointsOntoPlane(p,mre),x=si.computeWindingOrder2D(m);x===ss.CLOCKWISE&&(p=p.slice().reverse());let b=zn.computeWallGeometry(p,n,e,i,r,u);f.walls.push(new xt({geometry:b}));let T=o.holes;for(d=0;d<T.length;d++){let C=T[d];m=g.projectPointsOntoPlane(C,mre),x=si.computeWindingOrder2D(m),x===ss.COUNTER_CLOCKWISE&&(C=C.slice().reverse()),b=zn.computeWallGeometry(C,n,e,i,r,u),f.walls.push(new xt({geometry:b}))}return f}function Sf(e){let t=e.polygonHierarchy,n=y(e.vertexFormat,Ie.DEFAULT),i=y(e.ellipsoid,te.WGS84),o=y(e.granularity,R.RADIANS_PER_DEGREE),r=y(e.stRotation,0),s=e.textureCoordinates,a=y(e.perPositionHeight,!1),c=a&&l(e.extrudedHeight),u=y(e.height,0),f=y(e.extrudedHeight,u);if(!c){let d=Math.max(u,f);f=Math.min(u,f),u=d}this._vertexFormat=Ie.clone(n),this._ellipsoid=te.clone(i),this._granularity=o,this._stRotation=r,this._height=u,this._extrudedHeight=f,this._closeTop=y(e.closeTop,!0),this._closeBottom=y(e.closeBottom,!0),this._polygonHierarchy=t,this._perPositionHeight=a,this._perPositionHeightExtrude=c,this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createPolygonGeometry",this._offsetAttribute=e.offsetAttribute,this._arcType=y(e.arcType,Qt.GEODESIC),this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0,this._textureCoordinates=s,this.packedLength=zn.computeHierarchyPackedLength(t,h)+te.packedLength+Ie.packedLength+(s?zn.computeHierarchyPackedLength(s,z):1)+12}Sf.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,closeTop:e.closeTop,closeBottom:e.closeBottom,offsetAttribute:e.offsetAttribute,arcType:e.arcType,textureCoordinates:e.textureCoordinates};return new Sf(t)};Sf.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),te.pack(e._ellipsoid,t,n),n+=te.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._granularity,t[n++]=e._stRotation,t[n++]=e._perPositionHeightExtrude?1:0,t[n++]=e._perPositionHeight?1:0,t[n++]=e._closeTop?1:0,t[n++]=e._closeBottom?1:0,t[n++]=e._shadowVolume?1:0,t[n++]=y(e._offsetAttribute,-1),t[n++]=e._arcType,l(e._textureCoordinates)?n=zn.packPolygonHierarchy(e._textureCoordinates,t,n,z):t[n++]=-1,t[n++]=e.packedLength,t};var ake=te.clone(te.UNIT_SPHERE),cke=new Ie,lke={polygonHierarchy:{}};Sf.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=te.unpack(e,t,ake);t+=te.packedLength;let r=Ie.unpack(e,t,cke);t+=Ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++]===1,d=e[t++]===1,p=e[t++]===1,g=e[t++]===1,m=e[t++]===1,x=e[t++],b=e[t++],T=e[t]===-1?void 0:zn.unpackPolygonHierarchy(e,t,z);l(T)?(t=T.startingIndex,delete T.startingIndex):t++;let C=e[t++];return l(n)||(n=new Sf(lke)),n._polygonHierarchy=i,n._ellipsoid=te.clone(o,n._ellipsoid),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._height=s,n._extrudedHeight=a,n._granularity=c,n._stRotation=u,n._perPositionHeightExtrude=f,n._perPositionHeight=d,n._closeTop=p,n._closeBottom=g,n._shadowVolume=m,n._offsetAttribute=x===-1?void 0:x,n._arcType=b,n._textureCoordinates=T,n.packedLength=C,n};var uke=new z,fke=new z,dke=new ac;function pre(e,t,n,i,o,r){let s=e.longitude,a=s>=0?s:s+R.TWO_PI;o.westOverIdl=Math.min(o.westOverIdl,a),o.eastOverIdl=Math.max(o.eastOverIdl,a),r.west=Math.min(r.west,s),r.east=Math.max(r.east,s);let c=e.getLatitude(n),u=c;if(r.south=Math.min(r.south,c),r.north=Math.max(r.north,c),i!==Qt.RHUMB){let p=z.subtract(t.position,e.position,uke),g=z.dot(t.position,p)/z.dot(p,p);if(g>0&&g<1){let m=z.add(t.position,z.multiplyByScalar(p,-g,p),fke),x=ac.clone(t,dke);x.position=m;let b=x.getLatitude(n);r.south=Math.min(r.south,b),r.north=Math.max(r.north,b),Math.abs(c)>Math.abs(b)&&(u=b)}}let f=t.x*e.y-e.x*t.y,d=Math.sign(f);d!==0&&(d*=z.angleBetween(t.position,e.position)),u>=0&&(o.northAngle+=d),u<=0&&(o.southAngle+=d)}var _re=new ac,hke=new ac,Ef={northAngle:0,southAngle:0,westOverIdl:0,eastOverIdl:0};Sf.computeRectangleFromPositions=function(e,t,n,i){if(l(i)||(i=new se),e.length<3)return i;i.west=Number.POSITIVE_INFINITY,i.east=Number.NEGATIVE_INFINITY,i.south=Number.POSITIVE_INFINITY,i.north=Number.NEGATIVE_INFINITY,Ef.northAngle=0,Ef.southAngle=0,Ef.westOverIdl=Number.POSITIVE_INFINITY,Ef.eastOverIdl=Number.NEGATIVE_INFINITY;let o=e.length,r=ac.fromCartesian(e[0],hke);for(let s=1;s<o;s++){let a=ac.fromCartesian(e[s],_re);pre(a,r,t,n,Ef,i),r=ac.clone(a,r)}return pre(ac.fromCartesian(e[0],_re),r,t,n,Ef,i),i.east-i.west>Ef.eastOverIdl-Ef.westOverIdl&&(i.west=Ef.westOverIdl,i.east=Ef.eastOverIdl,i.east>R.PI&&(i.east=i.east-R.TWO_PI),i.west>R.PI&&(i.west=i.west-R.TWO_PI)),R.equalsEpsilon(Math.abs(Ef.northAngle),R.TWO_PI,R.EPSILON10)&&(i.north=R.PI_OVER_TWO,i.east=R.PI,i.west=-R.PI),R.equalsEpsilon(Math.abs(Ef.southAngle),R.TWO_PI,R.EPSILON10)&&(i.south=-R.PI_OVER_TWO,i.east=R.PI,i.west=-R.PI),i};var mke=new ac;function pke(e,t,n){return e.height>=R.PI||e.width>=R.PI?ac.fromCartesian(t[0],mke).tangentPlane:Hr.fromPoints(t,n)}var gre=new fe;function _ke(e,t,n){return(i,o)=>{if(e.height>=R.PI||e.width>=R.PI){if(e.south<0&&e.north>0){l(o)||(o=[]);for(let s=0;s<i.length;++s){let a=n.cartesianToCartographic(i[s],gre);o[s]=new z(a.longitude/R.PI,a.latitude/R.PI_OVER_TWO)}return o.length=i.length,o}return ac.fromCartesianArray(i,o)}return Hr.fromPoints(t,n).projectPointsOntoPlane(i,o)}}function gke(e,t,n){if(e.height>=R.PI||e.width>=R.PI)return(o,r)=>{if(e.south<0&&e.north>0){let s=n.cartesianToCartographic(o,gre);return l(r)||(r=new z),r.x=s.longitude/R.PI,r.y=s.latitude/R.PI_OVER_TWO,r}return ac.fromCartesian(o,r)};let i=Hr.fromPoints(t,n);return(o,r)=>i.projectPointsOntoPlane(o,r)}function yke(e,t,n,i){return(o,r)=>!i&&(e.height>=R.PI_OVER_TWO||e.width>=2*R.PI_OVER_THREE)?zn.splitPolygonsOnEquator(o,t,n,r):o}function xke(e,t,n,i){if(t.height>=R.PI||t.width>=R.PI)return Ge.fromRectangle(t,void 0,dre);let o=e,r=Hr.fromPoints(o,n);return zn.computeBoundingRectangle(r.plane.normal,r.projectPointOntoPlane.bind(r),o,i,dre)}Sf.createGeometry=function(e){let t=e._vertexFormat,n=e._ellipsoid,i=e._granularity,o=e._stRotation,r=e._polygonHierarchy,s=e._perPositionHeight,a=e._closeTop,c=e._closeBottom,u=e._arcType,f=e._textureCoordinates,d=l(f),p=r.positions;if(p.length<3)return;let g=e.rectangle,m=zn.polygonsFromHierarchy(r,d,_ke(g,p,n),!s,n,yke(g,n,u,s)),x=m.hierarchy,b=m.polygons,T=function(P){return P},C=d?zn.polygonsFromHierarchy(f,!0,T,!1,n).polygons:void 0;if(x.length===0)return;let A=x[0].outerRing,E=xke(A,g,n,o),v=[],D=e._height,O=e._extrudedHeight,I=e._perPositionHeightExtrude||!R.equalsEpsilon(D,O,0,R.EPSILON2),L={perPositionHeight:s,vertexFormat:t,geometry:void 0,rotationAxis:pke(g,A,n).plane.normal,projectTo2d:gke(g,A,n),boundingRectangle:E,ellipsoid:n,stRotation:o,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:u},N;if(I)for(L.extrude=!0,L.top=a,L.bottom=c,L.shadowVolume=e._shadowVolume,L.offsetAttribute=e._offsetAttribute,N=0;N<b.length;N++){let P=ske(n,b[N],d?C[N]:void 0,i,x[N],s,a,c,t,u),M;a&&c?(M=P.topAndBottom,L.geometry=zn.scaleToGeodeticHeightExtruded(M.geometry,D,O,n,s)):a?(M=P.topAndBottom,M.geometry.attributes.position.values=si.scaleToGeodeticHeight(M.geometry.attributes.position.values,D,n,!s),L.geometry=M.geometry):c&&(M=P.topAndBottom,M.geometry.attributes.position.values=si.scaleToGeodeticHeight(M.geometry.attributes.position.values,O,n,!0),L.geometry=M.geometry),(a||c)&&(L.wall=!1,M.geometry=H9(L),v.push(M));let B=P.walls;L.wall=!0;for(let U=0;U<B.length;U++){let V=B[U];L.geometry=zn.scaleToGeodeticHeightExtruded(V.geometry,D,O,n,s),V.geometry=H9(L),v.push(V)}}else for(N=0;N<b.length;N++){let P=new xt({geometry:zn.createGeometryFromPositions(n,b[N],d?C[N]:void 0,i,s,t,u)});if(P.geometry.attributes.position.values=si.scaleToGeodeticHeight(P.geometry.attributes.position.values,D,n,!s),L.geometry=P.geometry,P.geometry=H9(L),l(e._offsetAttribute)){let M=P.geometry.attributes.position.values.length,B=e._offsetAttribute===an.NONE?0:1,U=new Uint8Array(M/3).fill(B);P.geometry.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:U})}v.push(P)}let _=Nn.combineInstances(v)[0];_.attributes.position.values=new Float64Array(_.attributes.position.values),_.indices=Ne.createTypedArray(_.attributes.position.values.length/3,_.indices);let S=_.attributes,w=ae.fromVertices(S.position.values);return t.position||delete S.position,new st({attributes:S,indices:_.indices,primitiveType:_.primitiveType,boundingSphere:w,offsetAttribute:e._offsetAttribute})};Sf.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Sf({polygonHierarchy:e._polygonHierarchy,ellipsoid:o,stRotation:e._stRotation,granularity:i,perPositionHeight:!1,extrudedHeight:r,height:s,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0,arcType:e._arcType})};function bke(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let n=e._ellipsoid,i=e._polygonHierarchy.positions,o=e.rectangle;return st._textureCoordinateRotationPoints(i,t,n,o)}Object.defineProperties(Sf.prototype,{rectangle:{get:function(){if(!l(this._rectangle)){let e=this._polygonHierarchy.positions;this._rectangle=Sf.computeRectangleFromPositions(e,this._ellipsoid,this._arcType)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=bke(this)),this._textureCoordinateRotationPoints}}});var Xp=Sf;function sb(e){this._ellipsoid=y(e.ellipsoid,te.WGS84),this._positions=[...e.positions]}Object.defineProperties(sb.prototype,{length:{get:function(){return this._positions.length}},positions:{get:function(){return this._positions}},ellipsoid:{get:function(){return this._ellipsoid}}});sb.clone=function(e,t){return l(t)?(t._ellipsoid=e.ellipsoid,t._positions.length=0,t._positions.push(...e.positions),t):new sb({positions:e.positions,ellipsoid:e.ellipsoid})};sb.equals=function(e,t){return e.ellipsoid.equals(t.ellipsoid)&&e.positions===t.positions};sb.prototype.computeRectangle=function(e){return Xp.computeRectangleFromPositions(this.positions,this.ellipsoid,void 0,e)};var Tke=new se,yre=new h;sb.prototype.computeSphericalExtents=function(e){l(e)||(e=new se);let t=this.computeRectangle(Tke),n=fe.toCartesian(se.southwest(t),this.ellipsoid,yre),i=Math.sqrt(n.x*n.x+n.y*n.y),o=R.fastApproximateAtan2(i,n.z),r=R.fastApproximateAtan2(n.x,n.y);return e.south=o,e.west=r,n=fe.toCartesian(se.northeast(t),this.ellipsoid,yre),i=Math.sqrt(n.x*n.x+n.y*n.y),o=R.fastApproximateAtan2(i,n.z),r=R.fastApproximateAtan2(n.x,n.y),e.north=o,e.east=r,e};var PC=sb;var q1=`in vec2 v_textureCoordinates; uniform int u_polygonsLength; uniform int u_extentsLength; uniform highp sampler2D u_polygonTexture; uniform highp sampler2D u_extentsTexture; int getPolygonIndex(float dimension, vec2 coord) { vec2 uv = coord.xy * dimension; return int(floor(uv.y) * dimension + floor(uv.x)); } vec2 getLookupUv(ivec2 dimensions, int i) { int pixY = i / dimensions.x; int pixX = i - (pixY * dimensions.x); float pixelWidth = 1.0 / float(dimensions.x); float pixelHeight = 1.0 / float(dimensions.y); float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel float v = (float(pixY) + 0.5) * pixelHeight; return vec2(u, v); } vec4 getExtents(int i) { return texture(u_extentsTexture, getLookupUv(textureSize(u_extentsTexture, 0), i)); } ivec2 getPositionsLengthAndExtentsIndex(int i) { vec2 uv = getLookupUv(textureSize(u_polygonTexture, 0), i); vec4 value = texture(u_polygonTexture, uv); return ivec2(int(value.x), int(value.y)); } vec2 getPolygonPosition(int i) { vec2 uv = getLookupUv(textureSize(u_polygonTexture, 0), i); return texture(u_polygonTexture, uv).xy; } vec2 getCoordinates(vec2 textureCoordinates, vec4 extents) { float latitude = mix(extents.x, extents.x + 1.0 / extents.z, textureCoordinates.y); float longitude = mix(extents.y, extents.y + 1.0 / extents.w, textureCoordinates.x); return vec2(latitude, longitude); } void main() { int lastPolygonIndex = 0; out_FragColor = vec4(1.0); // Get the relevant region of the texture float dimension = float(u_extentsLength); if (u_extentsLength > 2) { dimension = ceil(log2(float(u_extentsLength))); } int regionIndex = getPolygonIndex(dimension, v_textureCoordinates); for (int polygonIndex = 0; polygonIndex < u_polygonsLength; polygonIndex++) { ivec2 positionsLengthAndExtents = getPositionsLengthAndExtentsIndex(lastPolygonIndex); int positionsLength = positionsLengthAndExtents.x; int polygonExtentsIndex = positionsLengthAndExtents.y; lastPolygonIndex += 1; // Only compute signed distance for the relevant part of the atlas if (polygonExtentsIndex == regionIndex) { float clipAmount = czm_infinity; vec4 extents = getExtents(polygonExtentsIndex); vec2 textureOffset = vec2(mod(float(polygonExtentsIndex), dimension), floor(float(polygonExtentsIndex) / dimension)) / dimension; vec2 p = getCoordinates((v_textureCoordinates - textureOffset) * dimension, extents); float s = 1.0; // Check each edge for absolute distance for (int i = 0, j = positionsLength - 1; i < positionsLength; j = i, i++) { vec2 a = getPolygonPosition(lastPolygonIndex + i); vec2 b = getPolygonPosition(lastPolygonIndex + j); vec2 ab = b - a; vec2 pa = p - a; float t = dot(pa, ab) / dot(ab, ab); t = clamp(t, 0.0, 1.0); vec2 pq = pa - t * ab; float d = length(pq); // Inside / outside computation to determine sign bvec3 cond = bvec3(p.y >= a.y, p.y < b.y, ab.x * pa.y > ab.y * pa.x); if (all(cond) || all(not(cond))) s = -s; if (abs(d) < abs(clipAmount)) { clipAmount = d; } } // Normalize the range to [0,1] vec4 result = (s * vec4(clipAmount * length(extents.zw))) / 2.0 + 0.5; // In the case where we've iterated through multiple polygons, take the minimum out_FragColor = min(out_FragColor, result); } lastPolygonIndex += positionsLength; } }`;function qr(e){e=y(e,y.EMPTY_OBJECT),this._polygons=[],this._totalPositions=0,this.enabled=y(e.enabled,!0),this.inverse=y(e.inverse,!1),this.polygonAdded=new pe,this.polygonRemoved=new pe,this._owner=void 0,this._float32View=void 0,this._extentsFloat32View=void 0,this._extentsCount=0,this._polygonsTexture=void 0,this._extentsTexture=void 0,this._signedDistanceTexture=void 0,this._signedDistanceComputeCommand=void 0;let t=e.polygons;if(l(t)){let n=t.length;for(let i=0;i<n;++i)this._polygons.push(t[i])}}Object.defineProperties(qr.prototype,{length:{get:function(){return this._polygons.length}},totalPositions:{get:function(){return this._totalPositions}},extentsTexture:{get:function(){return this._extentsTexture}},extentsCount:{get:function(){return this._extentsCount}},pixelsNeededForExtents:{get:function(){return this.length}},pixelsNeededForPolygonPositions:{get:function(){return this.totalPositions+this.length}},clippingTexture:{get:function(){return this._signedDistanceTexture}},owner:{get:function(){return this._owner}},clippingPolygonsState:{get:function(){return this.inverse?-this.extentsCount:this.extentsCount}}});qr.prototype.add=function(e){let t=this._polygons.length;return this._polygons.push(e),this.polygonAdded.raiseEvent(e,t),e};qr.prototype.get=function(e){return this._polygons[e]};qr.prototype.contains=function(e){return this._polygons.some(t=>PC.equals(t,e))};qr.prototype.remove=function(e){let t=this._polygons,n=t.findIndex(i=>PC.equals(i,e));return n===-1?!1:(t.splice(n,1),this.polygonRemoved.raiseEvent(e,n),!0)};var Ake=new se;function Cke(e){let t=[],n=[],i=e.length;for(let r=0;r<i;++r){let a=e[r].computeSphericalExtents(),c=Math.max(a.height*2.5,.001),u=Math.max(a.width*2.5,.001),f=se.clone(a);f.south-=c,f.west-=u,f.north+=c,f.east+=u,f.south=Math.max(f.south,-Math.PI),f.west=Math.max(f.west,-Math.PI),f.north=Math.min(f.north,Math.PI),f.east=Math.min(f.east,Math.PI);let d=[r];for(let p=0;p<t.length;++p){let g=t[p];if(l(g)&&l(se.simpleIntersection(g,f))&&!se.equals(g,f)){let m=n[p];d.push(...m),m.reduce((x,b)=>se.union(e[b].computeSphericalExtents(Ake),x,x),a),t[p]=void 0,n[p]=void 0,c=Math.max(a.height*2.5,.001),u=Math.max(a.width*2.5,.001),f=se.clone(a,f),f.south-=c,f.west-=u,f.north+=c,f.east+=u,f.south=Math.max(f.south,-Math.PI),f.west=Math.max(f.west,-Math.PI),f.north=Math.min(f.north,Math.PI),f.east=Math.min(f.east,Math.PI),p=-1}}t.push(f),n.push(d)}let o=new Map;return n.filter(l).forEach((r,s)=>r.forEach(a=>o.set(a,s))),{extentsList:t.filter(l),extentsIndexByPolygon:o}}qr.prototype.removeAll=function(){let e=this._polygons,t=e.length;for(let n=0;n<t;++n){let i=e[n];this.polygonRemoved.raiseEvent(i,n)}this._polygons=[]};function Eke(e){let t=e._float32View,n=e._extentsFloat32View,i=e._polygons,{extentsList:o,extentsIndexByPolygon:r}=Cke(i),s=0;for(let[c,u]of i.entries()){let f=u.length;t[s++]=f,t[s++]=r.get(c);for(let d=0;d<f;++d){let p=u.positions[d],g=Math.hypot(p.x,p.y),m=R.fastApproximateAtan2(g,p.z),x=R.fastApproximateAtan2(p.x,p.y);t[s++]=m,t[s++]=x}}let a=0;for(let c of o){let u=1/(c.east-c.west),f=1/(c.north-c.south);n[a++]=c.south,n[a++]=c.west,n[a++]=f,n[a++]=u}e._extentsCount=o.length}var G9=new z;qr.prototype.update=function(e){let t=e.context;if(!qr.isSupported(e))throw new le("ClippingPolygonCollections are only supported for WebGL 2.");let n=this._polygons.reduce((s,a)=>s+a.length,0);if(n===this.totalPositions||(this._totalPositions=n,this.length===0))return;l(this._signedDistanceComputeCommand)&&(this._signedDistanceComputeCommand.canceled=!0,this._signedDistanceComputeCommand=void 0);let i=this._polygonsTexture,o=this._extentsTexture,r=this._signedDistanceTexture;if(l(i)){let s=i.width*i.height;(s<this.pixelsNeededForPolygonPositions||this.pixelsNeededForPolygonPositions<.25*s)&&(i.destroy(),i=void 0,this._polygonsTexture=void 0)}if(!l(i)){let s=qr.getTextureResolution(i,this.pixelsNeededForPolygonPositions,G9);i=new Dt({context:t,width:s.x,height:s.y,pixelFormat:nt.RG,pixelDatatype:We.FLOAT,sampler:on.NEAREST,flipY:!1}),this._float32View=new Float32Array(s.x*s.y*2),this._polygonsTexture=i}if(l(o)){let s=o.width*o.height;(s<this.pixelsNeededForExtents||this.pixelsNeededForExtents<.25*s)&&(o.destroy(),o=void 0,this._extentsTexture=void 0)}if(!l(o)){let s=qr.getTextureResolution(o,this.pixelsNeededForExtents,G9);o=new Dt({context:t,width:s.x,height:s.y,pixelFormat:nt.RGBA,pixelDatatype:We.FLOAT,sampler:on.NEAREST,flipY:!1}),this._extentsFloat32View=new Float32Array(s.x*s.y*4),this._extentsTexture=o}if(Eke(this),o.copyFrom({source:{width:o.width,height:o.height,arrayBufferView:this._extentsFloat32View}}),i.copyFrom({source:{width:i.width,height:i.height,arrayBufferView:this._float32View}}),!l(r)){let s=qr.getClippingDistanceTextureResolution(this,G9);r=new Dt({context:t,width:s.x,height:s.y,pixelFormat:t.webgl2?nt.RED:nt.LUMINANCE,pixelDatatype:We.FLOAT,sampler:new on({wrapS:An.CLAMP_TO_EDGE,wrapT:An.CLAMP_TO_EDGE,minificationFilter:nn.LINEAR,magnificationFilter:li.LINEAR}),flipY:!1}),this._signedDistanceTexture=r}this._signedDistanceComputeCommand=Ske(this)};qr.prototype.queueCommands=function(e){l(this._signedDistanceComputeCommand)&&e.commandList.push(this._signedDistanceComputeCommand)};function Ske(e){let t=e._polygonsTexture,n=e._extentsTexture;return new Dl({fragmentShaderSource:q1,outputTexture:e._signedDistanceTexture,uniformMap:{u_polygonsLength:function(){return e.length},u_extentsLength:function(){return e.extentsCount},u_extentsTexture:function(){return n},u_polygonTexture:function(){return t}},persists:!1,owner:e,postExecute:()=>{e._signedDistanceComputeCommand=void 0}})}var xre=new se,vke=new se;qr.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._polygons,i=n.length,o=Gt.OUTSIDE;this.inverse&&(o=Gt.INSIDE);for(let r=0;r<i;++r){let a=n[r].computeRectangle(),c=e.rectangle;if(!l(c)&&l(e.boundingVolume?.computeCorners)){let f=e.boundingVolume.computeCorners();c=se.fromCartesianArray(f,t,xre)}l(c)||(c=se.fromBoundingSphere(e.boundingSphere,t,xre));let u=se.simpleIntersection(c,a,vke);l(u)&&(o=Gt.INTERSECTING)}return o};qr.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),l(e)&&(e._owner=t,t[n]=e))};qr.isSupported=function(e){return e?.context.webgl2};qr.getTextureResolution=function(e,t,n){if(l(e))return n.x=e.width,n.y=e.height,n;let i=Nt.maximumTextureSize;return n.x=Math.min(t,i),n.y=Math.ceil(t/n.x),n.y*=2,n};qr.getClippingDistanceTextureResolution=function(e,t){let n=e.signedDistanceTexture;return l(n)?(t.x=n.width,t.y=n.height,t):(t.x=Math.min(Nt.maximumTextureSize,4096),t.y=Math.min(Nt.maximumTextureSize,4096),t)};qr.getClippingExtentsTextureResolution=function(e,t){let n=e.extentsTexture;return l(n)?(t.x=n.width,t.y=n.height,t):qr.getTextureResolution(n,e.pixelsNeededForExtents,t)};qr.prototype.isDestroyed=function(){return!1};qr.prototype.destroy=function(){return l(this._signedDistanceComputeCommand)&&(this._signedDistanceComputeCommand.canceled=!0),this._polygonsTexture=this._polygonsTexture&&this._polygonsTexture.destroy(),this._extentsTexture=this._extentsTexture&&this._extentsTexture.destroy(),this._signedDistanceTexture=this._signedDistanceTexture&&this._signedDistanceTexture.destroy(),ue(this)};var Gd=qr;var Y1={HIGHLIGHT:0,REPLACE:1,MIX:2};Y1.getColorBlend=function(e,t){if(e===Y1.HIGHLIGHT)return 0;if(e===Y1.REPLACE)return 1;if(e===Y1.MIX)return R.clamp(t,R.EPSILON4,1)};var cc=Object.freeze(Y1);var wke={XTRANSLATE:"xTranslate",YTRANSLATE:"yTranslate",ZTRANSLATE:"zTranslate",XROTATE:"xRotate",YROTATE:"yRotate",ZROTATE:"zRotate",XSCALE:"xScale",YSCALE:"yScale",ZSCALE:"zScale",UNIFORMSCALE:"uniformScale"},lc=Object.freeze(wke);var Dke={STEP:0,LINEAR:1,CUBICSPLINE:2},Wd=Object.freeze(Dke);var bre={};function X1(e){this._count=e.count,this._properties=He(e.properties,!0)}X1.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,bre)};X1.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,bre,e)};X1.prototype.getProperty=function(e,t){let n=this._properties[t];if(l(n))return He(n[e],!0)};X1.prototype.setProperty=function(e,t,n){let i=this._properties[t];l(i)||(i=new Array(this._count),this._properties[t]=i),i[e]=He(n,!0)};var Kp=X1;function uc(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._id=e.id,this._count=e.count,this._extras=e.extras,this._extensions=e.extensions,this._metadataTable=e.metadataTable,this._jsonMetadataTable=e.jsonMetadataTable,this._batchTableHierarchy=e.batchTableHierarchy}Object.defineProperties(uc.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},count:{get:function(){return this._count}},class:{get:function(){if(l(this._metadataTable))return this._metadataTable.class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},byteLength:{get:function(){let e=0;return l(this._metadataTable)&&(e+=this._metadataTable.byteLength),l(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e}}});uc.prototype.hasProperty=function(e,t){return!!(l(this._metadataTable)&&this._metadataTable.hasProperty(t)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)||l(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(t))};uc.prototype.hasPropertyBySemantic=function(e,t){return l(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(t):!1};uc.prototype.propertyExists=function(e){return!!(l(this._metadataTable)&&this._metadataTable.hasProperty(e)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.propertyExists(e)||l(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(e))};uc.prototype.propertyExistsBySemantic=function(e){return l(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(e):!1};var W9=[];uc.prototype.getPropertyIds=function(e,t){return t=l(t)?t:[],t.length=0,l(this._metadataTable)&&t.push.apply(t,this._metadataTable.getPropertyIds(W9)),l(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,W9)),l(this._jsonMetadataTable)&&t.push.apply(t,this._jsonMetadataTable.getPropertyIds(W9)),t};uc.prototype.getProperty=function(e,t){let n;if(l(this._metadataTable)&&(n=this._metadataTable.getProperty(e,t),l(n))||l(this._batchTableHierarchy)&&(n=this._batchTableHierarchy.getProperty(e,t),l(n))||l(this._jsonMetadataTable)&&(n=this._jsonMetadataTable.getProperty(e,t),l(n)))return n};uc.prototype.setProperty=function(e,t,n){l(this._metadataTable)&&this._metadataTable.setProperty(e,t,n)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n)||(l(this._jsonMetadataTable)||(this._jsonMetadataTable=new Kp({count:this._count,properties:{}})),this._jsonMetadataTable.setProperty(e,t,n))};uc.prototype.getPropertyBySemantic=function(e,t){if(l(this._metadataTable))return this._metadataTable.getPropertyBySemantic(e,t)};uc.prototype.setPropertyBySemantic=function(e,t,n){return l(this._metadataTable)?this._metadataTable.setPropertyBySemantic(e,t,n):!1};uc.prototype.getPropertyTypedArray=function(e){if(l(this._metadataTable))return this._metadataTable.getPropertyTypedArray(e)};uc.prototype.getPropertyTypedArrayBySemantic=function(e){if(l(this._metadataTable))return this._metadataTable.getPropertyTypedArrayBySemantic(e)};uc.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return l(n)?n.isClass(e,t):!1};uc.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};uc.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(l(t))return t.getClassName(e)};var Kc=uc;function K1(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty,i=e.textures,o=l(t.channels)?t.channels:[0],r=t,s=Nl.createModelTextureReader({textureInfo:r,channels:Rke(o),texture:i[r.index]});this._min=t.min,this._max=t.max;let a=t.offset,c=t.scale,u=n.hasValueTransform||l(a)||l(c);a=y(a,n.offset),c=y(c,n.scale),a=n.unpackVectorAndMatrixTypes(a),c=n.unpackVectorAndMatrixTypes(c),this._offset=a,this._scale=c,this._hasValueTransform=u,this._textureReader=s,this._classProperty=n,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(K1.prototype,{textureReader:{get:function(){return this._textureReader}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},classProperty:{get:function(){return this._classProperty}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});K1.prototype.isGpuCompatible=function(){let e=this._classProperty,t=e.type,n=e.componentType;return e.isArray?!e.isVariableLengthArray&&e.arrayLength<=4&&t===Ht.SCALAR&&n===sn.UINT8:Ht.isVectorType(t)||t===Ht.SCALAR?n===sn.UINT8:!1};var Pke=[void 0,"float","vec2","vec3","vec4"],Ike=[void 0,"int","ivec2","ivec3","ivec4"];K1.prototype.getGlslType=function(){let e=this._classProperty,t=Ht.getComponentCount(e.type);return e.isArray&&(t=e.arrayLength),e.normalized?Pke[t]:Ike[t]};K1.prototype.unpackInShader=function(e){return this._classProperty.normalized?e:`${this.getGlslType()}(255.0 * ${e})`};function Rke(e){return e.map(function(t){return"rgba".charAt(t)}).join("")}var Z1=K1;function j9(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyTexture,n=e.class,i=e.textures,o=t.extensions,r=t.extras,s={};if(l(t.properties))for(let a in t.properties)t.properties.hasOwnProperty(a)&&(s[a]=new Z1({property:t.properties[a],classProperty:n.properties[a],textures:i}));this._name=e.name,this._id=e.id,this._class=n,this._properties=s,this._extras=r,this._extensions=o}Object.defineProperties(j9.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});j9.prototype.getProperty=function(e){return this._properties[e]};var ab=j9;function Tre(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty;this._attribute=t.attribute,this._classProperty=n,this._min=t.min,this._max=t.max;let i=t.offset,o=t.scale,r=n.hasValueTransform||l(i)||l(o);i=y(i,n.offset),o=y(o,n.scale),i=n.unpackVectorAndMatrixTypes(i),o=n.unpackVectorAndMatrixTypes(o),this._offset=i,this._scale=o,this._hasValueTransform=r,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Tre.prototype,{attribute:{get:function(){return this._attribute}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},classProperty:{get:function(){return this._classProperty}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var $1=Tre;function q9(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyAttribute,n=e.class,i={};if(l(t.properties))for(let o in t.properties)t.properties.hasOwnProperty(o)&&(i[o]=new $1({property:t.properties[o],classProperty:n.properties[o]}));this._name=e.name,this._id=e.id,this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(q9.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});q9.prototype.getProperty=function(e){return this._properties[e]};var cb=q9;function Q1(e){e=y(e,y.EMPTY_OBJECT),this._schema=e.schema;let t=e.propertyTables;this._propertyTableCount=l(t)?t.length:0,this._propertyTables=t,this._propertyTextures=e.propertyTextures,this._propertyAttributes=e.propertyAttributes,this._statistics=e.statistics,this._extras=e.extras,this._extensions=e.extensions}Object.defineProperties(Q1.prototype,{schema:{get:function(){return this._schema}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},propertyTableCount:{get:function(){return this._propertyTableCount}},propertyTables:{get:function(){return this._propertyTables}},propertyTextures:{get:function(){return this._propertyTextures}},propertyAttributes:{get:function(){return this._propertyAttributes}},propertyTablesByteLength:{get:function(){if(!l(this._propertyTables))return 0;let e=0,t=this._propertyTables.length;for(let n=0;n<t;n++)e+=this._propertyTables[n].byteLength;return e}}});Q1.prototype.getPropertyTable=function(e){return this._propertyTables[e]};Q1.prototype.getPropertyTexture=function(e){return this._propertyTextures[e]};Q1.prototype.getPropertyAttribute=function(e){return this._propertyAttributes[e]};var Da=Q1;function Oke(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i=[];if(l(t.propertyTables))for(let s=0;s<t.propertyTables.length;s++){let a=t.propertyTables[s],c=n.classes[a.class],u=new Ml({count:a.count,properties:a.properties,class:c,bufferViews:e.bufferViews});i.push(new Kc({id:s,name:a.name,count:a.count,metadataTable:u,extras:a.extras,extensions:a.extensions}))}let o=[];if(l(t.propertyTextures))for(let s=0;s<t.propertyTextures.length;s++){let a=t.propertyTextures[s];o.push(new ab({id:s,name:a.name,propertyTexture:a,class:n.classes[a.class],textures:e.textures}))}let r=[];if(l(t.propertyAttributes))for(let s=0;s<t.propertyAttributes.length;s++){let a=t.propertyAttributes[s];r.push(new cb({id:s,name:a.name,class:n.classes[a.class],propertyAttribute:a}))}return new Da({schema:n,propertyTables:i,propertyTextures:o,propertyAttributes:r,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}var J1=Oke;function Mke(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i,o=[],r;if(l(t.featureTables))for(r=Object.keys(t.featureTables).sort(),i=0;i<r.length;i++){let a=r[i],c=t.featureTables[a],u=n.classes[c.class],f=new Ml({count:c.count,properties:c.properties,class:u,bufferViews:e.bufferViews});o.push(new Kc({id:a,count:c.count,metadataTable:f,extras:c.extras,extensions:c.extensions}))}let s=[];if(l(t.featureTextures))for(r=Object.keys(t.featureTextures).sort(),i=0;i<r.length;i++){let a=r[i],c=t.featureTextures[a];s.push(new ab({id:a,propertyTexture:Lke(c),class:n.classes[c.class],textures:e.textures}))}return new Da({schema:n,propertyTables:o,propertyTextures:s,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}function Lke(e){let t={class:e.class,properties:{}},n=e.properties;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i],r={channels:Nke(o.channels),extras:o.extras,extensions:o.extensions};t.properties[i]=_t(o.texture,r,!0)}return t}function Nke(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]="rgba".indexOf(e[i]);return n}var eR=Mke;function uy(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,extension:n,extensionLegacy:i,gltfResource:o,baseResource:r,supportedImageFormats:s,frameState:a,cacheKey:c,asynchronous:u=!0}=e;this._gltfResource=o,this._baseResource=r,this._gltf=t,this._extension=n,this._extensionLegacy=i,this._supportedImageFormats=s,this._frameState=a,this._cacheKey=c,this._asynchronous=u,this._bufferViewLoaders=[],this._bufferViewIds=[],this._textureLoaders=[],this._textureIds=[],this._schemaLoader=void 0,this._structuralMetadata=void 0,this._state=Pt.UNLOADED,this._promise=void 0}l(Object.create)&&(uy.prototype=Object.create(no.prototype),uy.prototype.constructor=uy);Object.defineProperties(uy.prototype,{cacheKey:{get:function(){return this._cacheKey}},structuralMetadata:{get:function(){return this._structuralMetadata}}});async function Fke(e){try{let t=zke(e),n=qke(e),i=Yke(e);return await Promise.all([t,n,i]),e.isDestroyed()?void 0:(e._gltf=void 0,e._state=Pt.LOADED,e)}catch(t){if(e.isDestroyed())return;throw e.unload(),e._state=Pt.FAILED,e.getError("Failed to load structural metadata",t)}}uy.prototype.load=function(){return l(this._promise)?this._promise:(this._state=Pt.LOADING,this._promise=Fke(this),this._promise)};function Bke(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.values,r=i.arrayOffsets,s=i.stringOffsets;l(o)&&(t[o]=!0),l(r)&&(t[r]=!0),l(s)&&(t[s]=!0)}}function kke(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.bufferView,r=i.arrayOffsetBufferView,s=i.stringOffsetBufferView;l(o)&&(t[o]=!0),l(r)&&(t[r]=!0),l(s)&&(t[s]=!0)}}function Vke(e){let t=e.propertyTables,n={};if(l(t))for(let i=0;i<t.length;i++){let o=t[i];Bke(o.properties,n)}return n}function Uke(e){let t=e.featureTables,n={};if(l(t)){for(let i in t)if(t.hasOwnProperty(i)){let r=t[i].properties;l(r)&&kke(r,n)}}return n}async function zke(e){let t;l(e._extension)?t=Vke(e._extension):t=Uke(e._extensionLegacy);let n=[];for(let i in t)if(t.hasOwnProperty(i)){let o=zi.getBufferViewLoader({gltf:e._gltf,bufferViewId:parseInt(i),gltfResource:e._gltfResource,baseResource:e._baseResource});e._bufferViewLoaders.push(o),e._bufferViewIds.push(i),n.push(o.load())}return Promise.all(n)}function Hke(e){let t={},n=e.propertyTextures;if(l(n))for(let i=0;i<n.length;i++){let r=n[i].properties;l(r)&&Gke(r,t)}return t}function Gke(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];t[i.index]=i}}function Wke(e){let t={},n=e.featureTextures;if(l(n)){for(let i in n)if(n.hasOwnProperty(i)){let r=n[i].properties;l(r)&&jke(r,t)}}return t}function jke(e,t){for(let n in e)if(e.hasOwnProperty(n)){let o=e[n].texture;t[o.index]=o}}function qke(e){let t;l(e._extension)?t=Hke(e._extension):t=Wke(e._extensionLegacy);let n=e._gltf,i=e._gltfResource,o=e._baseResource,r=e._supportedImageFormats,s=e._frameState,a=e._asynchronous,c=[];for(let u in t)if(t.hasOwnProperty(u)){let f=zi.getTextureLoader({gltf:n,textureInfo:t[u],gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s,asynchronous:a});e._textureLoaders.push(f),e._textureIds.push(u),c.push(f.load())}return Promise.all(c)}async function Yke(e){let t=y(e._extension,e._extensionLegacy),n;if(l(t.schemaUri)){let i=e._baseResource.getDerivedResource({url:t.schemaUri});n=zi.getSchemaLoader({resource:i})}else n=zi.getSchemaLoader({schema:t.schema});if(e._schemaLoader=n,await n.load(),!n.isDestroyed())return n.schema}uy.prototype.process=function(e){if(this._state===Pt.READY)return!0;if(this._state!==Pt.LOADED)return!1;let t=this._textureLoaders,n=t.length,i=!0;for(let a=0;a<n;++a){let u=t[a].process(e);i=i&&u}if(!i)return!1;let o=this._schemaLoader.schema,r={};for(let a=0;a<this._bufferViewIds.length;++a){let c=this._bufferViewIds[a],u=this._bufferViewLoaders[a];if(!u.isDestroyed()){let f=new Uint8Array(u.typedArray);r[c]=f}}let s={};for(let a=0;a<this._textureIds.length;++a){let c=this._textureIds[a],u=t[a];u.isDestroyed()||(s[c]=u.texture)}return l(this._extension)?this._structuralMetadata=J1({extension:this._extension,schema:o,bufferViews:r,textures:s}):this._structuralMetadata=eR({extension:this._extensionLegacy,schema:o,bufferViews:r,textures:s}),Are(this),this._state=Pt.READY,!0};function Are(e){let t=e._bufferViewLoaders,n=t.length;for(let i=0;i<n;++i)zi.unload(t[i]);e._bufferViewLoaders.length=0,e._bufferViewIds.length=0}function Xke(e){let t=e._textureLoaders,n=t.length;for(let i=0;i<n;++i)zi.unload(t[i]);e._textureLoaders.length=0,e._textureIds.length=0}uy.prototype.unload=function(){Are(this),Xke(this),l(this._schemaLoader)&&zi.unload(this._schemaLoader),this._schemaLoader=void 0,this._structuralMetadata=void 0};var tR=uy;var IC={TRANSLATION:"TRANSLATION",ROTATION:"ROTATION",SCALE:"SCALE",FEATURE_ID:"_FEATURE_ID"};IC.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"TRANSLATION":return IC.TRANSLATION;case"ROTATION":return IC.ROTATION;case"SCALE":return IC.SCALE;case"_FEATURE_ID":return IC.FEATURE_ID}};var Yr=Object.freeze(IC);var Kke=65534,Zke=255;function CU(e){e=y(e,y.EMPTY_OBJECT);let t=e.triangleIndices,n=e.outlineIndices,i=e.originalVertexCount;this._triangleIndices=t,this._originalVertexCount=i,this._edges=new Sre(n,i),this._outlineCoordinatesTypedArray=void 0,this._extraVertices=[],$ke(this)}Object.defineProperties(CU.prototype,{updatedTriangleIndices:{get:function(){return this._triangleIndices}},outlineCoordinates:{get:function(){return this._outlineCoordinatesTypedArray}}});function $ke(e){let t=e._triangleIndices,n=e._edges,i=[],o=e._extraVertices,r=e._originalVertexCount,s={};for(let a=0;a<t.length;a+=3){let c=t[a],u=t[a+1],f=t[a+2],d=!1,p=d||n.hasEdge(c,u),g=d||n.hasEdge(u,f),m=d||n.hasEdge(f,c),x=Cre(i,c,u,f,p,g,m);for(;l(x);){let b=s[x];if(!l(b)){b=r+o.length;let T=x;for(;T>=r;)T=o[T-r];o.push(T),s[x]=b}b>Kke&&(t instanceof Uint16Array||t instanceof Uint8Array)?t=new Uint32Array(t):b>Zke&&t instanceof Uint8Array&&(t=new Uint16Array(t)),x===c?(c=b,t[a]=b):x===u?(u=b,t[a+1]=b):(f=b,t[a+2]=b),x=Cre(i,c,u,f,p,g,m)}}e._triangleIndices=t,e._outlineCoordinatesTypedArray=new Float32Array(i)}function Cre(e,t,n,i,o,r,s){let a=s?1:0,c=o?1:0,u=0,f=Y9(e,t,a,c,u);if(f===0)return t;let d=0,p=o?1:0,g=r?1:0,m=Y9(e,n,d,p,g);if(m===0)return n;let x=s?1:0,b=0,T=r?1:0,C=Y9(e,i,x,b,T);if(C===0)return i;let A=f&m&C,E,v,D;if(A&1)E=0,v=1,D=2;else if(A&2)E=0,D=1,v=2;else if(A&4)v=0,E=1,D=2;else if(A&8)v=0,D=1,E=2;else if(A&16)D=0,E=1,v=2;else if(A&32)D=0,v=1,E=2;else{let N=X9(f),_=X9(m),S=X9(C);return N<_&&N<S?t:_<S?n:i}let O=t*3;e[O+E]=a,e[O+v]=c,e[O+D]=u;let I=n*3;e[I+E]=d,e[I+v]=p,e[I+D]=g;let L=i*3;e[L+E]=x,e[L+v]=b,e[L+D]=T}function Y9(e,t,n,i,o){let r=t*3,s=e[r],a=e[r+1],c=e[r+2];return l(s)?(s===n&&a===i&&c===o)<<0|(s===n&&a===o&&c===i)<<1|(s===i&&a===n&&c===o)<<2|(s===i&&a===o&&c===n)<<3|(s===o&&a===n&&c===i)<<4|(s===o&&a===i&&c===n)<<5:63}function X9(e){return(e&1)+(e>>1&1)+(e>>2&1)+(e>>3&1)+(e>>4&1)+(e>>5&1)}CU.prototype.updateAttribute=function(e){let t=this._extraVertices,n=e.length,i=n/this._originalVertexCount,o=t.length,r=e.constructor,s=new r(e.length+o*i);s.set(e);for(let a=0;a<o;a++){let c=t[a]*i,u=n+a*i;for(let f=0;f<i;f++)s[u+f]=s[c+f]}return s};CU.createTexture=function(e){let t=e.cache.modelOutliningCache;if(l(t)||(t=e.cache.modelOutliningCache={}),l(t.outlineTexture))return t.outlineTexture;let n=Math.min(4096,Nt.maximumTextureSize),i=n,o=Ere(i),r=[];for(;i>1;)i>>=1,r.push(Ere(i));let s=new Dt({context:e,source:{arrayBufferView:o,mipLevels:r},width:n,height:1,pixelFormat:nt.LUMINANCE,sampler:new on({wrapS:An.CLAMP_TO_EDGE,wrapT:An.CLAMP_TO_EDGE,minificationFilter:nn.LINEAR_MIPMAP_LINEAR,magnificationFilter:li.LINEAR})});return t.outlineTexture=s,s};function Ere(e){let t=new Uint8Array(e);return t[e-1]=192,e===8?t[e-1]=96:e===4?t[e-1]=48:e===2?t[e-1]=24:e===1&&(t[e-1]=12),t}function Sre(e,t){this._originalVertexCount=t,this._edges=new Set;for(let n=0;n<e.length;n+=2){let i=e[n],o=e[n+1],r=Math.min(i,o),s=Math.max(i,o),a=r*this._originalVertexCount+s;this._edges.add(a)}}Sre.prototype.hasEdge=function(e,t){let n=Math.min(e,t),i=Math.max(e,t),o=n*this._originalVertexCount+i;return this._edges.has(o)};var lb=CU;function vre(e){this.attribute=e,this.loadBuffer=!1,this.loadTypedArray=!1}function Qke(e){this.indices=e,this.loadBuffer=!1,this.loadTypedArray=!1}function EU(e){this.primitive=e,this.attributePlans=[],this.indicesPlan=void 0,this.needsOutlines=!1,this.outlineIndices=void 0}EU.prototype.postProcess=function(e){this.needsOutlines&&(Jke(this),tVe(this,e))};function Jke(e){let t=e.primitive,n=t.indices,i=t.attributes[0].count,o=new lb({triangleIndices:n.typedArray,outlineIndices:e.outlineIndices,originalVertexCount:i});n.typedArray=o.updatedTriangleIndices,n.indexDatatype=Ne.fromTypedArray(n.typedArray);let r=eVe(o.outlineCoordinates),s=new vre(r);s.loadBuffer=!0,s.loadTypedArray=!1,e.attributePlans.push(s),t.outlineCoordinates=s.attribute;let a=e.attributePlans,c=e.attributePlans.length;for(let u=0;u<c;u++){let f=a[u].attribute;f.typedArray=o.updateAttribute(f.typedArray)}}function eVe(e){let t=new xn.Attribute;return t.name="_OUTLINE_COORDINATES",t.typedArray=e,t.componentDatatype=X.FLOAT,t.type=tn.VEC3,t.normalized=!1,t.count=e.length/3,t}function tVe(e,t){nVe(e.attributePlans,t),l(e.indicesPlan)&&iVe(e.indicesPlan,t)}function nVe(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i],r=o.attribute,s=r.typedArray;if(o.loadBuffer){let a=ct.createVertexBuffer({typedArray:s,context:t,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,r.buffer=a}o.loadTypedArray||(r.typedArray=void 0)}}function iVe(e,t){let n=e.indices;if(e.loadBuffer){let i=ct.createIndexBuffer({typedArray:n.typedArray,context:t,usage:Fe.STATIC_DRAW,indexDatatype:n.indexDatatype});n.buffer=i,i.vertexArrayDestroyable=!1}e.loadTypedArray||(n.typedArray=void 0)}EU.AttributeLoadPlan=vre;EU.IndicesLoadPlan=Qke;var ub=EU;function oVe(e){e=y(e,y.EMPTY_OBJECT),this.webp=y(e.webp,!1),this.basis=y(e.basis,!1)}var nR=oVe;var{Attribute:rVe,Indices:sVe,FeatureIdAttribute:wre,FeatureIdTexture:Dre,FeatureIdImplicitRange:Pre,MorphTarget:aVe,Primitive:cVe,Instances:lVe,Skin:uVe,Node:fVe,AnimatedPropertyType:dVe,AnimationSampler:hVe,AnimationTarget:mVe,AnimationChannel:pVe,Animation:_Ve,ArticulationStage:gVe,Articulation:yVe,Asset:xVe,Scene:bVe,Components:TVe,MetallicRoughness:AVe,SpecularGlossiness:CVe,Specular:EVe,Anisotropy:K9,Clearcoat:Z9,Material:SVe}=xn,Oo={NOT_LOADED:0,LOADING:1,LOADED:2,PROCESSING:3,POST_PROCESSING:4,PROCESSED:5,READY:6,FAILED:7,UNLOADED:8};function jd(e){e=y(e,y.EMPTY_OBJECT);let{gltfResource:t,typedArray:n,releaseGltfJson:i=!1,asynchronous:o=!0,incrementallyLoadTextures:r=!0,upAxis:s=Io.Y,forwardAxis:a=Io.Z,loadAttributesAsTypedArray:c=!1,loadAttributesFor2D:u=!1,enablePick:f=!1,loadIndicesForWireframe:d=!1,loadPrimitiveOutline:p=!0,loadForClassification:g=!1,renameBatchIdSemantic:m=!1}=e,{baseResource:x=t.clone()}=e;this._gltfJson=e.gltfJson,this._gltfResource=t,this._baseResource=x,this._typedArray=n,this._releaseGltfJson=i,this._asynchronous=o,this._incrementallyLoadTextures=r,this._upAxis=s,this._forwardAxis=a,this._loadAttributesAsTypedArray=c,this._loadAttributesFor2D=u,this._enablePick=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._loadForClassification=g,this._renameBatchIdSemantic=m,this._sortedPropertyTableIds=void 0,this._sortedFeatureTextureIds=void 0,this._gltfJsonLoader=void 0,this._state=Oo.NOT_LOADED,this._textureState=Oo.NOT_LOADED,this._promise=void 0,this._processError=void 0,this._textureErrors=[],this._primitiveLoadPlans=[],this._loaderPromises=[],this._textureLoaders=[],this._texturesPromises=[],this._textureCallbacks=[],this._bufferViewLoaders=[],this._geometryLoaders=[],this._geometryCallbacks=[],this._structuralMetadataLoader=void 0,this._loadResourcesPromise=void 0,this._resourcesLoaded=!1,this._texturesLoaded=!1,this._supportedImageFormats=void 0,this._postProcessBuffers=[],this._components=void 0}l(Object.create)&&(jd.prototype=Object.create(no.prototype),jd.prototype.constructor=jd);Object.defineProperties(jd.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},gltfJson:{get:function(){return l(this._gltfJsonLoader)?this._gltfJsonLoader.gltf:this._gltfJson}},incrementallyLoadTextures:{get:function(){return this._incrementallyLoadTextures}},texturesLoaded:{get:function(){return this._texturesLoaded}}});async function vVe(e){e._state=Oo.LOADING,e._textureState=Oo.LOADING;try{let t=zi.getGltfJsonLoader({gltfResource:e._gltfResource,baseResource:e._baseResource,typedArray:e._typedArray,gltfJson:e._gltfJson});return e._gltfJsonLoader=t,await t.load(),e.isDestroyed()||e.isUnloaded()||t.isDestroyed()?void 0:(e._state=Oo.LOADED,e._textureState=Oo.LOADED,e)}catch(t){if(e.isDestroyed())return;e._state=Oo.FAILED,e._textureState=Oo.FAILED,SU(e,t)}}async function wVe(e,t){Vt.supportsWebP.initialized||await Vt.supportsWebP.initialize(),e._supportedImageFormats=new nR({webp:Vt.supportsWebP(),basis:t.context.supportsBasis});let n=PUe(e,t);return e._state=Oo.PROCESSING,e._textureState=Oo.PROCESSING,l(e._gltfJsonLoader)&&e._releaseGltfJson&&(zi.unload(e._gltfJsonLoader),e._gltfJsonLoader=void 0),n}jd.prototype.load=async function(){return l(this._promise)?this._promise:(this._promise=vVe(this),this._promise)};function SU(e,t){throw e.unload(),e.getError("Failed to load glTF",t)}function DVe(e,t){let n=!0,i=e._geometryLoaders;for(let r=0;r<i.length;++r){let s=i[r].process(t);s&&l(e._geometryCallbacks[r])&&(e._geometryCallbacks[r](),e._geometryCallbacks[r]=void 0),n=n&&s}let o=e._structuralMetadataLoader;if(l(o)){let r=o.process(t);r&&(e._components.structuralMetadata=o.structuralMetadata),n=n&&r}n&&(e._state=Oo.POST_PROCESSING)}function PVe(e,t){let n=e._primitiveLoadPlans;for(let i=0;i<n.length;i++){let o=n[i];o.postProcess(t),o.needsOutlines&&IVe(e,o)}}function IVe(e,t){let n=e._postProcessBuffers,i=t.primitive,o=i.outlineCoordinates;l(o)&&n.push(o.buffer);let r=i.attributes;for(let a=0;a<r.length;a++){let c=r[a];l(c.buffer)&&n.push(c.buffer)}let s=i.indices;l(s)&&l(s.buffer)&&n.push(s.buffer)}jd.prototype._process=function(e){return this._state===Oo.READY?!0:(this._state===Oo.PROCESSING&&DVe(this,e),this._resourcesLoaded&&this._state===Oo.POST_PROCESSING&&(PVe(this,e.context),this._state=Oo.PROCESSED),this._resourcesLoaded&&this._state===Oo.PROCESSED?(kre(this),this._typedArray=void 0,this._state=Oo.READY,!0):!1)};jd.prototype._processTextures=function(e){if(this._textureState===Oo.READY)return!0;if(this._textureState!==Oo.PROCESSING)return!1;let t=!0,n=this._textureLoaders;for(let i=0;i<n.length;++i){let o=n[i].process(e);o&&l(this._textureCallbacks[i])&&(this._textureCallbacks[i](),this._textureCallbacks[i]=void 0),t=t&&o}return t?(this._textureState=Oo.READY,this._texturesLoaded=!0,!0):!1};jd.prototype.process=function(e){if(this._state===Oo.LOADED&&!l(this._loadResourcesPromise)&&(this._loadResourcesPromise=wVe(this,e).then(()=>{this._resourcesLoaded=!0}).catch(o=>{this._processError=o})),l(this._processError)){this._state=Oo.FAILED;let o=this._processError;this._processError=void 0,SU(this,o)}let t=this._textureErrors.pop();if(l(t)){let o=this.getError("Failed to load glTF texture",t);throw o.name="TextureError",o}if(this._state===Oo.FAILED)return!1;let n=!1;try{n=this._process(e)}catch(o){this._state=Oo.FAILED,SU(this,o)}let i=!1;try{i=this._processTextures(e)}catch(o){this._textureState=Oo.FAILED,SU(this,o)}return this._incrementallyLoadTextures?n:n&&i};function RVe(e,t,n,i,o,r,s){let a=e.gltfJson,u=a.accessors[t].bufferView;return zi.getVertexBufferLoader({gltf:a,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:s,bufferViewId:u,draco:i,attributeSemantic:n,accessorId:t,asynchronous:e._asynchronous,loadBuffer:o,loadTypedArray:r})}function OVe(e,t,n,i,o,r){return zi.getIndexBufferLoader({gltf:e.gltfJson,accessorId:t,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:r,draco:n,asynchronous:e._asynchronous,loadBuffer:i,loadTypedArray:o})}function MVe(e,t){let n=zi.getBufferViewLoader({gltf:e.gltfJson,bufferViewId:t,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoaders.push(n),n}function Ire(e,t,n){let i=t.byteOffset,o=Ll(e,t),r=t.count,s=xu(t.type),a=t.componentType,c=X.getSizeInBytes(a),u=c*s,f=r*s;if(o===u)return n=new Uint8Array(n),X.createArrayBufferView(a,n.buffer,n.byteOffset+i,f);let d=X.createTypedArray(a,f),p=new DataView(n.buffer),g=new Array(s),m=qp(t.componentType);i=n.byteOffset+i;for(let x=0;x<r;++x){m(p,i,s,c,g);for(let b=0;b<s;++b)d[x*s+b]=g[b];i+=o}return d}function LVe(e,t){let n=e.type;if(n===tn.SCALAR)return t.fill(0);let i=tn.getMathType(n);return t.fill(i.clone(i.ZERO))}function NVe(e,t,n,i){let o=e.type,r=e.count;if(o===tn.SCALAR)for(let s=0;s<r;s++)n[s]=t[s];else if(o===tn.VEC4&&i)for(let s=0;s<r;s++)n[s]=Me.unpack(t,s*4);else{let s=tn.getMathType(o),a=tn.getNumberOfComponents(o);for(let c=0;c<r;c++)n[c]=s.unpack(t,c*a)}return n}async function FVe(e,t,n,i,o){let{gltfJson:r}=e;if(await t.load(),e.isDestroyed())return;let s=Ire(r,n,t.typedArray);i=y(i,!1),NVe(n,s,o,i)}function vU(e,t,n){let i=new Array(t.count),o=t.bufferView;if(l(o)){let r=MVe(e,o),s=FVe(e,r,t,n,i);return e._loaderPromises.push(s),i}return LVe(t,i)}function bu(e,t){if(l(t))return e===Number?t[0]:e.unpack(t)}function BVe(e){return e===Number?0:new e}function kVe(e){switch(e){case X.BYTE:return 127;case X.UNSIGNED_BYTE:return 255;case X.SHORT:return 32767;case X.UNSIGNED_SHORT:return 65535;default:return 1}}var VVe={VEC2:new z(-1,-1),VEC3:new h(-1,-1,-1),VEC4:new oe(-1,-1,-1,-1)};function UVe(e,t){let n=kVe(e.componentDatatype),i=VVe[e.type],o=e.min;l(o)&&(o=t.divideByScalar(o,n,o),o=t.maximumByComponent(o,i,o));let r=e.max;l(r)&&(r=t.divideByScalar(r,n,r),r=t.maximumByComponent(r,i,r)),e.min=o,e.max=r}function zVe(e,t,n){let i=e.decodeMatrix,o=bu(n,e.decodedMin),r=bu(n,e.decodedMax);l(o)&&l(r)&&(t.min=o,t.max=r);let s=new xn.Quantization;s.componentDatatype=t.componentDatatype,s.type=t.type,i.length===4?(s.quantizedVolumeOffset=i[2],s.quantizedVolumeStepSize=i[0]):i.length===9?(s.quantizedVolumeOffset=new z(i[6],i[7]),s.quantizedVolumeStepSize=new z(i[0],i[4])):i.length===16?(s.quantizedVolumeOffset=new h(i[12],i[13],i[14]),s.quantizedVolumeStepSize=new h(i[0],i[5],i[10])):i.length===25&&(s.quantizedVolumeOffset=new oe(i[20],i[21],i[22],i[23]),s.quantizedVolumeStepSize=new oe(i[0],i[6],i[12],i[18])),t.quantization=s}function HVe(e,t,n,i,o){let r=e.accessors[t],s=tn.getMathType(r.type),a=y(r.normalized,!1),c=new rVe;c.name=n,c.semantic=i,c.setIndex=o,c.constant=BVe(s),c.componentDatatype=r.componentType,c.normalized=a,c.count=r.count,c.type=r.type,c.min=bu(s,r.min),c.max=bu(s,r.max),c.byteOffset=r.byteOffset,c.byteStride=Ll(e,r),oi(r,"WEB3D_quantized_attributes")&&zVe(r.extensions.WEB3D_quantized_attributes,c,s);let u=c.semantic===yt.POSITION||c.semantic===yt.NORMAL||c.semantic===yt.TANGENT||c.semantic===yt.TEXCOORD;return e.extensionsRequired?.includes("KHR_mesh_quantization")&&a&&u&&UVe(c,s),c}function Rre(e){let n=/^\w+_(\d+)$/.exec(e);if(n!==null)return parseInt(n[1])}var GVe={gltfSemantic:void 0,renamedSemantic:void 0,modelSemantic:void 0};function $9(e,t,n){let i=n;e._renameBatchIdSemantic&&(n==="_BATCHID"||n==="BATCHID")&&(i="_FEATURE_ID_0");let o=t.fromGltfSemantic(i),r=GVe;return r.gltfSemantic=n,r.renamedSemantic=i,r.modelSemantic=o,r}function WVe(e){let t=e===yt.POSITION,n=e===yt.FEATURE_ID,i=e===yt.TEXCOORD;return t||n||i}function jVe(e,t,n,i){if(e.byteOffset=0,e.byteStride=void 0,e.quantization=t.quantization,n&&(e.buffer=t.buffer),i){let o=l(t.quantization)?t.quantization.componentDatatype:e.componentDatatype;e.typedArray=X.createArrayBufferView(o,t.typedArray.buffer)}}function qVe(e,t,n,i,o,r){if(o&&(n.buffer=i.buffer),r){let s=i.typedArray;n.typedArray=Ire(e,t,s),o||(n.byteOffset=0,n.byteStride=void 0)}}function Ore(e,t,n,i,o,r,s){let a=e.gltfJson,c=a.accessors[t],u=c.bufferView,f=n.gltfSemantic,d=n.renamedSemantic,p=n.modelSemantic,g=l(p)?Rre(d):void 0,x=HVe(a,t,f,p,g);if(!l(i)&&!l(u))return x;let b=RVe(e,t,f,i,o,r,s),T=e._geometryLoaders.length;e._geometryLoaders.push(b);let C=b.load();return e._loaderPromises.push(C),e._geometryCallbacks[T]=()=>{l(i)&&l(i.attributes)&&l(i.attributes[f])?jVe(x,b,o,r):qVe(a,c,x,b,o,r)},x}function Mre(e,t,n,i,o,r,s){let a=n.modelSemantic,c=a===yt.POSITION,u=a===yt.FEATURE_ID,f=c&&!o&&e._loadAttributesFor2D&&!s.scene3DOnly,d=c&&e._enablePick&&!s.context.webgl2,p=e._loadForClassification&&u,g=e._loadAttributesAsTypedArray,m=!g,x=g||f||d||p,C=Ore(e,t,n,i,r?!1:m,r?!0:x,s),A=new ub.AttributeLoadPlan(C);return A.loadBuffer=m,A.loadTypedArray=x,A}function YVe(e,t,n,i,o){let r=e.gltfJson.accessors,s=l(n.ROTATION),a=l(n.TRANSLATION)&&l(r[n.TRANSLATION].min)&&l(r[n.TRANSLATION].max),c=$9(e,Yr,i),u=c.modelSemantic,f=u===Yr.TRANSLATION||u===Yr.ROTATION||u===Yr.SCALE,d=u===Yr.TRANSLATION,p=e._loadAttributesAsTypedArray||s&&f||!o.context.instancedArrays,g=e._enablePick&&!o.context.webgl2,m=!p,x=e._loadAttributesFor2D&&!o.scene3DOnly;return Ore(e,t,c,void 0,m,p||d&&(!a||x||g),o)}function XVe(e,t,n,i,o,r){let s=e.gltfJson.accessors[t],a=s.bufferView;if(!l(n)&&!l(a))return;let c=new sVe;c.count=s.count;let u=e._loadAttributesAsTypedArray,f=(e._loadIndicesForWireframe||e._enablePick)&&!r.context.webgl2,d=e._loadForClassification&&i,g=!u,m=u||f||d,T=OVe(e,t,n,o?!1:g,o?!0:m,r),C=e._geometryLoaders.length;e._geometryLoaders.push(T);let A=T.load();e._loaderPromises.push(A),e._geometryCallbacks[C]=()=>{c.indexDatatype=T.indexDatatype,c.buffer=T.buffer,c.typedArray=T.typedArray};let E=new ub.IndicesLoadPlan(c);return E.loadBuffer=g,E.loadTypedArray=m,E}function Zc(e,t,n,i){let o=e.gltfJson,r=Nl.getImageIdFromTexture({gltf:o,textureId:t.index,supportedImageFormats:e._supportedImageFormats});if(!l(r))return;let s=zi.getTextureLoader({gltf:o,textureInfo:t,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:e._supportedImageFormats,frameState:n,asynchronous:e._asynchronous}),a=Nl.createModelTextureReader({textureInfo:t}),c=e._textureLoaders.length;e._textureLoaders.push(s);let u=s.load().catch(f=>{if(!e.isDestroyed()){if(!e._incrementallyLoadTextures)throw f;e._textureState=Oo.FAILED,e._textureErrors.push(f)}});return e._texturesPromises.push(u),e._textureCallbacks[c]=()=>{a.texture=s.texture,l(i)&&(a.texture.sampler=i)},a}function KVe(e,t,n){let{diffuseTexture:i,specularGlossinessTexture:o,diffuseFactor:r,specularFactor:s,glossinessFactor:a}=t,c=new CVe;return l(i)&&(c.diffuseTexture=Zc(e,i,n)),l(o)&&(c.specularGlossinessTexture=Zc(e,o,n)),c.diffuseFactor=bu(oe,r),c.specularFactor=bu(h,s),c.glossinessFactor=a,c}function ZVe(e,t,n){let{baseColorTexture:i,metallicRoughnessTexture:o,baseColorFactor:r,metallicFactor:s,roughnessFactor:a}=t,c=new AVe;return l(i)&&(c.baseColorTexture=Zc(e,i,n)),l(o)&&(c.metallicRoughnessTexture=Zc(e,o,n)),c.baseColorFactor=bu(oe,r),c.metallicFactor=s,c.roughnessFactor=a,c}function $Ve(e,t,n){let{specularFactor:i,specularTexture:o,specularColorFactor:r,specularColorTexture:s}=t,a=new EVe;return l(o)&&(a.specularTexture=Zc(e,o,n)),l(s)&&(a.specularColorTexture=Zc(e,s,n)),a.specularFactor=i,a.specularColorFactor=bu(h,r),a}function QVe(e,t,n){let{anisotropyStrength:i=K9.DEFAULT_ANISOTROPY_STRENGTH,anisotropyRotation:o=K9.DEFAULT_ANISOTROPY_ROTATION,anisotropyTexture:r}=t,s=new K9;return l(r)&&(s.anisotropyTexture=Zc(e,r,n)),s.anisotropyStrength=i,s.anisotropyRotation=o,s}function JVe(e,t,n){let{clearcoatFactor:i=Z9.DEFAULT_CLEARCOAT_FACTOR,clearcoatTexture:o,clearcoatRoughnessFactor:r=Z9.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR,clearcoatRoughnessTexture:s,clearcoatNormalTexture:a}=t,c=new Z9;return l(o)&&(c.clearcoatTexture=Zc(e,o,n)),l(s)&&(c.clearcoatRoughnessTexture=Zc(e,s,n)),l(a)&&(c.clearcoatNormalTexture=Zc(e,a,n)),c.clearcoatFactor=i,c.clearcoatRoughnessFactor=r,c}function eUe(e,t,n){let i=new SVe,o=y(t.extensions,y.EMPTY_OBJECT),r=o.KHR_materials_pbrSpecularGlossiness,s=o.KHR_materials_specular,a=o.KHR_materials_anisotropy,c=o.KHR_materials_clearcoat,u=t.pbrMetallicRoughness;return i.unlit=l(o.KHR_materials_unlit),l(r)?i.specularGlossiness=KVe(e,r,n):(l(u)&&(i.metallicRoughness=ZVe(e,u,n)),l(s)&&!i.unlit&&(i.specular=$Ve(e,s,n)),l(a)&&!i.unlit&&(i.anisotropy=QVe(e,a,n)),l(c)&&!i.unlit&&(i.clearcoat=JVe(e,c,n))),l(t.emissiveTexture)&&(i.emissiveTexture=Zc(e,t.emissiveTexture,n)),l(t.normalTexture)&&!e._loadForClassification&&(i.normalTexture=Zc(e,t.normalTexture,n)),l(t.occlusionTexture)&&(i.occlusionTexture=Zc(e,t.occlusionTexture,n)),i.emissiveFactor=bu(h,t.emissiveFactor),i.alphaMode=t.alphaMode,i.alphaCutoff=t.alphaCutoff,i.doubleSided=t.doubleSided,i}function Lre(e,t){let n=new wre;return n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.propertyTableId=e.propertyTable,n.setIndex=e.attribute,n.label=e.label,n.positionalLabel=t,n}function Nre(e,t,n,i){let o=new wre,r=e.featureIds;return o.featureCount=n,o.propertyTableId=t,o.setIndex=Rre(r.attribute),o.positionalLabel=i,o}function Fre(e,t){let n=new Pre;return n.propertyTableId=e.propertyTable,n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.label=e.label,n.positionalLabel=t,n.offset=0,n.repeat=1,n}function Bre(e,t,n,i){let o=new Pre,r=e.featureIds;o.propertyTableId=t,o.featureCount=n,o.offset=y(r.constant,0);let s=y(r.divisor,0);return o.repeat=s===0?void 0:s,o.positionalLabel=i,o}function tUe(e,t,n,i){let o=new Dre;o.featureCount=t.featureCount,o.nullFeatureId=t.nullFeatureId,o.propertyTableId=t.propertyTable,o.label=t.label,o.positionalLabel=i;let r=t.texture;o.textureReader=Zc(e,r,n,on.NEAREST);let a=(l(r.channels)?r.channels:[0]).map(function(c){return"rgba".charAt(c)}).join("");return o.textureReader.channels=a,o}function nUe(e,t,n,i,o,r){let s=new Dre,a=t.featureIds,c=a.texture;return s.featureCount=o,s.propertyTableId=n,s.textureReader=Zc(e,c,i,on.NEAREST),s.textureReader.channels=a.channels,s.positionalLabel=r,s}function iUe(e,t,n,i,o){let r=new aVe,s=void 0,a=!1;for(let c in t){if(!t.hasOwnProperty(c))continue;let u=t[c],f=$9(e,yt,c),d=Mre(e,u,f,s,a,n,o);r.attributes.push(d.attribute),i.attributePlans.push(d)}return r}function oUe(e,t,n,i){let o=new cVe,r=new ub(o);e._primitiveLoadPlans.push(r);let s=t.material;l(s)&&(o.material=eUe(e,e.gltfJson.materials[s],i));let a=y(t.extensions,y.EMPTY_OBJECT),c=!1,u=a.CESIUM_primitive_outline;e._loadPrimitiveOutline&&l(u)&&(c=!0,r.needsOutlines=!0,r.outlineIndices=rUe(e,u,r));let f=e._loadForClassification,d=a.KHR_draco_mesh_compression,p=!1,g=t.attributes;if(l(g))for(let v in g){if(!g.hasOwnProperty(v))continue;let D=g[v],O=$9(e,yt,v),I=O.modelSemantic;if(f&&!WVe(I))continue;I===yt.FEATURE_ID&&(p=!0);let L=Mre(e,D,O,d,n,c,i);r.attributePlans.push(L),o.attributes.push(L.attribute)}let m=t.targets;if(l(m)&&!f)for(let v=0;v<m.length;++v)o.morphTargets.push(iUe(e,m[v],c,r,i));let x=t.indices;if(l(x)){let v=XVe(e,x,d,p,c,i);l(v)&&(r.indicesPlan=v,o.indices=v.indices)}let b=a.EXT_structural_metadata,T=a.EXT_mesh_features,C=a.EXT_feature_metadata,A=l(C);l(T)?sUe(e,o,T,i):A&&aUe(e,o,C,i),l(b)?cUe(o,b):A&&lUe(e,o,C);let E=t.mode;if(f&&E!==Le.TRIANGLES)throw new le("Only triangle meshes can be used for classification.");return o.primitiveType=E,o}function rUe(e,t){let n=t.indices,i=e.gltfJson.accessors[n];return vU(e,i,!1)}function sUe(e,t,n,i){let o;l(n)&&l(n.featureIds)?o=n.featureIds:o=[];for(let r=0;r<o.length;r++){let s=o[r],a=`featureId_${r}`,c;l(s.texture)?c=tUe(e,s,i,a):l(s.attribute)?c=Lre(s,a):c=Fre(s,a),t.featureIds.push(c)}}function aUe(e,t,n,i){let{featureTables:o}=e.gltfJson.extensions.EXT_feature_metadata,r=0,s=n.featureIdAttributes;if(l(s))for(let c=0;c<s.length;++c){let u=s[c],f=u.featureTable,d=e._sortedPropertyTableIds.indexOf(f),p=o[f].count,g=`featureId_${r}`;r++;let m;l(u.featureIds.attribute)?m=Nre(u,d,p,g):m=Bre(u,d,p,g),t.featureIds.push(m)}let a=n.featureIdTextures;if(l(a))for(let c=0;c<a.length;++c){let u=a[c],f=u.featureTable,d=e._sortedPropertyTableIds.indexOf(f),p=o[f].count,g=`featureId_${r}`;r++;let m=nUe(e,u,d,i,p,g);t.featureIds.push(m)}}function cUe(e,t){l(t)&&(l(t.propertyTextures)&&(e.propertyTextureIds=t.propertyTextures),l(t.propertyAttributes)&&(e.propertyAttributeIds=t.propertyAttributes))}function lUe(e,t,n){l(n.featureTextures)&&(t.propertyTextureIds=n.featureTextures.map(function(i){return e._sortedFeatureTextureIds.indexOf(i)}))}function uUe(e,t,n){let i=t.EXT_mesh_gpu_instancing,o=new lVe,r=i.attributes;if(l(r))for(let u in r){if(!r.hasOwnProperty(u))continue;let f=r[u];o.attributes.push(YVe(e,f,r,u,n))}let s=y(i.extensions,y.EMPTY_OBJECT),a=t.EXT_instance_features,c=s.EXT_feature_metadata;return l(a)?fUe(o,a):l(c)&&dUe(e.gltfJson,o,c,e._sortedPropertyTableIds),o}function fUe(e,t){let n=t.featureIds;for(let i=0;i<n.length;i++){let o=n[i],r=`instanceFeatureId_${i}`,s;l(o.attribute)?s=Lre(o,r):s=Fre(o,r),e.featureIds.push(s)}}function dUe(e,t,n,i){let o=e.extensions.EXT_feature_metadata.featureTables,r=n.featureIdAttributes;if(l(r))for(let s=0;s<r.length;++s){let a=r[s],c=a.featureTable,u=i.indexOf(c),f=o[c].count,d=`instanceFeatureId_${s}`,p;l(a.featureIds.attribute)?p=Nre(a,u,f,d):p=Bre(a,u,f,d),t.featureIds.push(p)}}function hUe(e,t,n){let i=new fVe;i.name=t.name,i.matrix=bu(F,t.matrix),i.translation=bu(h,t.translation),i.rotation=bu(Me,t.rotation),i.scale=bu(h,t.scale);let o=y(t.extensions,y.EMPTY_OBJECT),r=o.EXT_mesh_gpu_instancing,s=o.AGI_articulations;if(l(r)){if(e._loadForClassification)throw new le("Models with the EXT_mesh_gpu_instancing extension cannot be used for classification.");i.instances=uUe(e,o,n)}l(s)&&(i.articulationName=s.articulationName);let a=t.mesh;if(l(a)){let c=e.gltfJson.meshes[a],u=c.primitives;for(let p=0;p<u.length;++p)i.primitives.push(oUe(e,u[p],l(i.instances),n));let f=y(t.weights,c.weights),d=i.primitives[0].morphTargets;i.morphWeights=l(f)?f.slice():new Array(d.length).fill(0)}return i}function mUe(e,t){let n=e.gltfJson.nodes;if(!l(n))return[];let i=n.map(function(o,r){let s=hUe(e,o,t);return s.index=r,s});for(let o=0;o<i.length;++o){let r=n[o].children;if(l(r))for(let s=0;s<r.length;++s)i[o].children.push(i[r[s]])}return i}function pUe(e,t,n){let i=new uVe,o=t.joints;i.joints=o.map(s=>n[s]);let r=t.inverseBindMatrices;if(l(r)){let s=e.gltfJson.accessors[r];i.inverseBindMatrices=vU(e,s)}else i.inverseBindMatrices=new Array(o.length).fill(F.IDENTITY);return i}function _Ue(e,t){let n=e.gltfJson.skins;if(e._loadForClassification||!l(n))return[];let i=n.map(function(r,s){let a=pUe(e,r,t);return a.index=s,a}),o=e.gltfJson.nodes;for(let r=0;r<t.length;++r){let s=o[r].skin;l(s)&&(t[r].skin=i[s])}return i}async function gUe(e,t,n,i){let o=new tR({gltf:e.gltfJson,extension:t,extensionLegacy:n,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:e._supportedImageFormats,frameState:i,asynchronous:e._asynchronous});return e._structuralMetadataLoader=o,o.load()}function yUe(e,t){let n=new hVe,i=e.gltfJson.accessors,o=i[t.input];n.input=vU(e,o);let r=t.interpolation;n.interpolation=y(Wd[r],Wd.LINEAR);let s=i[t.output];return n.output=vU(e,s,!0),n}function xUe(e,t){let n=new mVe,i=e.node;if(!l(i))return;n.node=t[i];let o=e.path.toUpperCase();return n.path=dVe[o],n}function bUe(e,t,n){let i=new pVe,o=e.sampler;return i.sampler=t[o],i.target=xUe(e.target,n),i}function TUe(e,t,n){let i=new _Ve;i.name=t.name;let o=t.samplers.map(function(s,a){let c=yUe(e,s);return c.index=a,c}),r=t.channels.map(function(s){return bUe(s,o,n)});return i.samplers=o,i.channels=r,i}function AUe(e,t){let n=e.gltfJson.animations;return e._loadForClassification||!l(n)?[]:n.map(function(o,r){let s=TUe(e,o,t);return s.index=r,s})}function CUe(e){let t=new gVe;t.name=e.name;let n=e.type.toUpperCase();return t.type=lc[n],t.minimumValue=e.minimumValue,t.maximumValue=e.maximumValue,t.initialValue=e.initialValue,t}function EUe(e){let t=new yVe;return t.name=e.name,t.stages=e.stages.map(CUe),t}function SUe(e){let n=y(e.extensions,y.EMPTY_OBJECT).AGI_articulations?.articulations;return l(n)?n.map(EUe):[]}function vUe(e){let t;return l(e.scenes)&&l(e.scene)&&(t=e.scenes[e.scene].nodes),t=y(t,e.nodes),t=l(t)?t:[],t}function wUe(e,t){let n=new bVe,i=vUe(e);return n.nodes=i.map(function(o){return t[o]}),n}var DUe=new h;function PUe(e,t){let n=e.gltfJson,i=y(n.extensions,y.EMPTY_OBJECT),o=i.EXT_structural_metadata,r=i.EXT_feature_metadata,s=i.CESIUM_RTC;if(l(r)){let b=r.featureTables,T=r.featureTextures,C=l(b)?b:[],A=l(T)?T:[];e._sortedPropertyTableIds=Object.keys(C).sort(),e._sortedFeatureTextureIds=Object.keys(A).sort()}let a=mUe(e,t),c=_Ue(e,a),u=AUe(e,a),f=SUe(n),d=wUe(n,a),p=new TVe,g=new xVe,m=n.asset.copyright;if(l(m)){let b=m.split(";").map(function(T){return new Tt(T.trim())});g.credits=b}if(p.asset=g,p.scene=d,p.nodes=a,p.skins=c,p.animations=u,p.articulations=f,p.upAxis=e._upAxis,p.forwardAxis=e._forwardAxis,l(s)){let b=h.fromArray(s.center,0,DUe);p.transform=F.fromTranslation(b,p.transform)}if(e._components=p,l(o)||l(r)){let b=gUe(e,o,r,t);e._loaderPromises.push(b)}let x=[];return x.push.apply(x,e._loaderPromises),e._incrementallyLoadTextures||x.push.apply(x,e._texturesPromises),Promise.all(x)}function IUe(e){let t=e._textureLoaders;for(let n=0;n<t.length;++n)t[n]=!t[n].isDestroyed()&&zi.unload(t[n]);e._textureLoaders.length=0}function kre(e){let t=e._bufferViewLoaders;for(let n=0;n<t.length;++n)t[n]=!t[n].isDestroyed()&&zi.unload(t[n]);e._bufferViewLoaders.length=0}function RUe(e){let t=e._geometryLoaders;for(let n=0;n<t.length;++n)t[n]=!t[n].isDestroyed()&&zi.unload(t[n]);e._geometryLoaders.length=0}function OUe(e){let t=e._postProcessBuffers;for(let n=0;n<t.length;n++){let i=t[n];i.isDestroyed()||i.destroy()}t.length=0}function MUe(e){l(e._structuralMetadataLoader)&&!e._structuralMetadataLoader.isDestroyed()&&(e._structuralMetadataLoader.destroy(),e._structuralMetadataLoader=void 0)}jd.prototype.isUnloaded=function(){return this._state===Oo.UNLOADED};jd.prototype.unload=function(){l(this._gltfJsonLoader)&&!this._gltfJsonLoader.isDestroyed()&&zi.unload(this._gltfJsonLoader),this._gltfJsonLoader=void 0,IUe(this),kre(this),RUe(this),OUe(this),MUe(this),this._components=void 0,this._typedArray=void 0,this._state=Oo.UNLOADED};var Zp=jd;function Q9(e,t,n){let i=e._gl;i.framebufferTexture2D(i.FRAMEBUFFER,t,n._target,n._texture,0)}function wU(e,t,n){let i=e._gl;i.framebufferRenderbuffer(i.FRAMEBUFFER,t,i.RENDERBUFFER,n._getRenderbuffer())}function qd(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=Nt.maximumColorAttachments;this._gl=n,this._framebuffer=n.createFramebuffer(),this._colorTextures=[],this._colorRenderbuffers=[],this._activeColorAttachments=[],this._depthTexture=void 0,this._depthRenderbuffer=void 0,this._stencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this.destroyAttachments=y(e.destroyAttachments,!0);let o=l(e.depthTexture)||l(e.depthRenderbuffer),r=l(e.depthStencilTexture)||l(e.depthStencilRenderbuffer);this._bind();let s,a,c,u,f;if(l(e.colorTextures)){let d=e.colorTextures;for(u=this._colorTextures.length=this._activeColorAttachments.length=d.length,c=0;c<u;++c)s=d[c],f=this._gl.COLOR_ATTACHMENT0+c,Q9(this,f,s),this._activeColorAttachments[c]=f,this._colorTextures[c]=s}if(l(e.colorRenderbuffers)){let d=e.colorRenderbuffers;for(u=this._colorRenderbuffers.length=this._activeColorAttachments.length=d.length,c=0;c<u;++c)a=d[c],f=this._gl.COLOR_ATTACHMENT0+c,wU(this,f,a),this._activeColorAttachments[c]=f,this._colorRenderbuffers[c]=a}l(e.depthTexture)&&(s=e.depthTexture,Q9(this,this._gl.DEPTH_ATTACHMENT,s),this._depthTexture=s),l(e.depthRenderbuffer)&&(a=e.depthRenderbuffer,wU(this,this._gl.DEPTH_ATTACHMENT,a),this._depthRenderbuffer=a),l(e.stencilRenderbuffer)&&(a=e.stencilRenderbuffer,wU(this,this._gl.STENCIL_ATTACHMENT,a),this._stencilRenderbuffer=a),l(e.depthStencilTexture)&&(s=e.depthStencilTexture,Q9(this,this._gl.DEPTH_STENCIL_ATTACHMENT,s),this._depthStencilTexture=s),l(e.depthStencilRenderbuffer)&&(a=e.depthStencilRenderbuffer,wU(this,this._gl.DEPTH_STENCIL_ATTACHMENT,a),this._depthStencilRenderbuffer=a),this._unBind()}Object.defineProperties(qd.prototype,{status:{get:function(){this._bind();let e=this._gl.checkFramebufferStatus(this._gl.FRAMEBUFFER);return this._unBind(),e}},numberOfColorAttachments:{get:function(){return this._activeColorAttachments.length}},depthTexture:{get:function(){return this._depthTexture}},depthRenderbuffer:{get:function(){return this._depthRenderbuffer}},stencilRenderbuffer:{get:function(){return this._stencilRenderbuffer}},depthStencilTexture:{get:function(){return this._depthStencilTexture}},depthStencilRenderbuffer:{get:function(){return this._depthStencilRenderbuffer}},hasDepthAttachment:{get:function(){return!!(this.depthTexture||this.depthRenderbuffer||this.depthStencilTexture||this.depthStencilRenderbuffer)}}});qd.prototype._bind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,this._framebuffer)};qd.prototype._unBind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,null)};qd.prototype.bindDraw=function(){let e=this._gl;e.bindFramebuffer(e.DRAW_FRAMEBUFFER,this._framebuffer)};qd.prototype.bindRead=function(){let e=this._gl;e.bindFramebuffer(e.READ_FRAMEBUFFER,this._framebuffer)};qd.prototype._getActiveColorAttachments=function(){return this._activeColorAttachments};qd.prototype.getColorTexture=function(e){return this._colorTextures[e]};qd.prototype.getColorRenderbuffer=function(e){return this._colorRenderbuffers[e]};qd.prototype.isDestroyed=function(){return!1};qd.prototype.destroy=function(){if(this.destroyAttachments){let e=0,t=this._colorTextures,n=t.length;for(;e<n;++e){let o=t[e];l(o)&&o.destroy()}let i=this._colorRenderbuffers;for(n=i.length,e=0;e<n;++e){let o=i[e];l(o)&&o.destroy()}this._depthTexture=this._depthTexture&&this._depthTexture.destroy(),this._depthRenderbuffer=this._depthRenderbuffer&&this._depthRenderbuffer.destroy(),this._stencilRenderbuffer=this._stencilRenderbuffer&&this._stencilRenderbuffer.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()}return this._gl.deleteFramebuffer(this._framebuffer),ue(this)};var ta=qd;function RC(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.width,i=e.height;this._width=n,this._height=i;let o=e.colorRenderbuffers,r=e.colorTextures;if(l(o)!==l(r))throw new de("Both color renderbuffer and texture attachments must be provided.");let s=e.depthStencilRenderbuffer,a=e.depthStencilTexture;if(l(s)!==l(a))throw new de("Both depth-stencil renderbuffer and texture attachments must be provided.");this._renderFramebuffer=new ta({context:t,colorRenderbuffers:o,depthStencilRenderbuffer:s,destroyAttachments:e.destroyAttachments}),this._colorFramebuffer=new ta({context:t,colorTextures:r,depthStencilTexture:a,destroyAttachments:e.destroyAttachments})}RC.prototype.getRenderFramebuffer=function(){return this._renderFramebuffer};RC.prototype.getColorFramebuffer=function(){return this._colorFramebuffer};RC.prototype.blitFramebuffers=function(e,t){this._renderFramebuffer.bindRead(),this._colorFramebuffer.bindDraw();let n=e._gl,i=0;this._colorFramebuffer._colorTextures.length>0&&(i|=n.COLOR_BUFFER_BIT),l(this._colorFramebuffer.depthStencilTexture)&&(i|=n.DEPTH_BUFFER_BIT|(t?n.STENCIL_BUFFER_BIT:0)),n.blitFramebuffer(0,0,this._width,this._height,0,0,this._width,this._height,i,n.NEAREST),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null)};RC.prototype.isDestroyed=function(){return!1};RC.prototype.destroy=function(){return this._renderFramebuffer.destroy(),this._colorFramebuffer.destroy(),ue(this)};var iR=RC;var kl={RGBA4:ee.RGBA4,RGBA8:ee.RGBA8,RGBA16F:ee.RGBA16F,RGBA32F:ee.RGBA32F,RGB5_A1:ee.RGB5_A1,RGB565:ee.RGB565,DEPTH_COMPONENT16:ee.DEPTH_COMPONENT16,STENCIL_INDEX8:ee.STENCIL_INDEX8,DEPTH_STENCIL:ee.DEPTH_STENCIL,DEPTH24_STENCIL8:ee.DEPTH24_STENCIL8,validate:function(e){return e===kl.RGBA4||e===kl.RGBA8||e===kl.RGBA16F||e===kl.RGBA32F||e===kl.RGB5_A1||e===kl.RGB565||e===kl.DEPTH_COMPONENT16||e===kl.STENCIL_INDEX8||e===kl.DEPTH_STENCIL||e===kl.DEPTH24_STENCIL8},getColorFormat:function(e){return e===ee.FLOAT?kl.RGBA32F:e===ee.HALF_FLOAT_OES?kl.RGBA16F:kl.RGBA8}},$c=Object.freeze(kl);function oR(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=Nt.maximumRenderbufferSize,o=y(e.format,$c.RGBA4),r=l(e.width)?e.width:n.drawingBufferWidth,s=l(e.height)?e.height:n.drawingBufferHeight,a=y(e.numSamples,1);this._gl=n,this._format=o,this._width=r,this._height=s,this._renderbuffer=this._gl.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,this._renderbuffer),a>1?n.renderbufferStorageMultisample(n.RENDERBUFFER,a,o,r,s):n.renderbufferStorage(n.RENDERBUFFER,o,r,s),n.bindRenderbuffer(n.RENDERBUFFER,null)}Object.defineProperties(oR.prototype,{format:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});oR.prototype._getRenderbuffer=function(){return this._renderbuffer};oR.prototype.isDestroyed=function(){return!1};oR.prototype.destroy=function(){return this._gl.deleteRenderbuffer(this._renderbuffer),ue(this)};var Tu=oR;function _s(e){e=y(e,y.EMPTY_OBJECT),this._numSamples=y(e.numSamples,1),this._colorAttachmentsLength=y(e.colorAttachmentsLength,1),this._color=y(e.color,!0),this._depth=y(e.depth,!1),this._depthStencil=y(e.depthStencil,!1),this._supportsDepthTexture=y(e.supportsDepthTexture,!1),this._createColorAttachments=y(e.createColorAttachments,!0),this._createDepthAttachments=y(e.createDepthAttachments,!0),this._pixelDatatype=e.pixelDatatype,this._pixelFormat=e.pixelFormat,this._width=void 0,this._height=void 0,this._framebuffer=void 0,this._multisampleFramebuffer=void 0,this._colorTextures=void 0,this._color&&(this._colorTextures=new Array(this._colorAttachmentsLength),this._colorRenderbuffers=new Array(this._colorAttachmentsLength)),this._colorRenderbuffer=void 0,this._depthStencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthRenderbuffer=void 0,this._depthTexture=void 0,this._attachmentsDirty=!1}Object.defineProperties(_s.prototype,{framebuffer:{get:function(){return this._numSamples>1?this._multisampleFramebuffer.getRenderFramebuffer():this._framebuffer}},numSamples:{get:function(){return this._numSamples}},status:{get:function(){return this.framebuffer.status}}});_s.prototype.isDirty=function(e,t,n,i,o){n=y(n,1);let r=this._width!==e||this._height!==t,s=this._numSamples!==n,a=l(i)&&this._pixelDatatype!==i||l(o)&&this._pixelFormat!==o,c=n===1?l(this._framebuffer):l(this._multisampleFramebuffer);return this._attachmentsDirty||r||s||a||!c||this._color&&!l(this._colorTextures[0])};_s.prototype.update=function(e,t,n,i,o,r){if(i=e.msaa?y(i,1):1,o=y(o,this._color?y(this._pixelDatatype,We.UNSIGNED_BYTE):void 0),r=y(r,this._color?y(this._pixelFormat,nt.RGBA):void 0),this.isDirty(t,n,i,o,r)){if(this.destroy(),this._width=t,this._height=n,this._numSamples=i,this._pixelDatatype=o,this._pixelFormat=r,this._attachmentsDirty=!1,this._color&&this._createColorAttachments){for(let s=0;s<this._colorAttachmentsLength;++s)if(this._colorTextures[s]=new Dt({context:e,width:t,height:n,pixelFormat:r,pixelDatatype:o,sampler:on.NEAREST}),this._numSamples>1){let a=$c.getColorFormat(o);this._colorRenderbuffers[s]=new Tu({context:e,width:t,height:n,format:a,numSamples:this._numSamples})}}this._depthStencil&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?(this._depthStencilTexture=new Dt({context:e,width:t,height:n,pixelFormat:nt.DEPTH_STENCIL,pixelDatatype:We.UNSIGNED_INT_24_8,sampler:on.NEAREST}),this._numSamples>1&&(this._depthStencilRenderbuffer=new Tu({context:e,width:t,height:n,format:$c.DEPTH24_STENCIL8,numSamples:this._numSamples}))):this._depthStencilRenderbuffer=new Tu({context:e,width:t,height:n,format:$c.DEPTH_STENCIL})),this._depth&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?this._depthTexture=new Dt({context:e,width:t,height:n,pixelFormat:nt.DEPTH_COMPONENT,pixelDatatype:We.UNSIGNED_INT,sampler:on.NEAREST}):this._depthRenderbuffer=new Tu({context:e,width:t,height:n,format:$c.DEPTH_COMPONENT16})),this._numSamples>1?this._multisampleFramebuffer=new iR({context:e,width:this._width,height:this._height,colorTextures:this._colorTextures,colorRenderbuffers:this._colorRenderbuffers,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1}):this._framebuffer=new ta({context:e,colorTextures:this._colorTextures,depthTexture:this._depthTexture,depthRenderbuffer:this._depthRenderbuffer,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1})}};_s.prototype.getColorTexture=function(e){return e=y(e,0),this._colorTextures[e]};_s.prototype.setColorTexture=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorTextures[t],this._colorTextures[t]=e};_s.prototype.getColorRenderbuffer=function(e){return e=y(e,0),this._colorRenderbuffers[e]};_s.prototype.setColorRenderbuffer=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorRenderbuffers[t],this._colorRenderbuffers[t]=e};_s.prototype.getDepthRenderbuffer=function(){return this._depthRenderbuffer};_s.prototype.setDepthRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthRenderbuffer,this._depthRenderbuffer=e};_s.prototype.getDepthTexture=function(){return this._depthTexture};_s.prototype.setDepthTexture=function(e){this._attachmentsDirty=e!==this._depthTexture,this._depthTexture=e};_s.prototype.getDepthStencilRenderbuffer=function(){return this._depthStencilRenderbuffer};_s.prototype.setDepthStencilRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthStencilRenderbuffer,this._depthStencilRenderbuffer=e};_s.prototype.getDepthStencilTexture=function(){return this._depthStencilTexture};_s.prototype.setDepthStencilTexture=function(e){this._attachmentsDirty=e!==this._depthStencilTexture,this._depthStencilTexture=e};_s.prototype.prepareTextures=function(e,t){this._numSamples>1&&this._multisampleFramebuffer.blitFramebuffers(e,t)};_s.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this.framebuffer,t.execute(e,n),t.framebuffer=i};_s.prototype.destroyFramebuffer=function(){this._framebuffer=this._framebuffer&&this._framebuffer.destroy(),this._multisampleFramebuffer=this._multisampleFramebuffer&&this._multisampleFramebuffer.destroy()};_s.prototype.destroy=function(){if(this._color){let e,t=this._colorTextures.length;for(e=0;e<t;++e){let n=this._colorTextures[e];this._createColorAttachments&&l(n)&&!n.isDestroyed()&&(this._colorTextures[e].destroy(),this._colorTextures[e]=void 0),l(n)&&n.isDestroyed()&&(this._colorTextures[e]=void 0);let i=this._colorRenderbuffers[e];this._createColorAttachments&&l(i)&&!i.isDestroyed()&&(this._colorRenderbuffers[e].destroy(),this._colorRenderbuffers[e]=void 0),l(i)&&i.isDestroyed()&&(this._colorRenderbuffers[e]=void 0)}}this._depthStencil&&(this._createDepthAttachments&&(this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()),l(this._depthStencilTexture)&&this._depthStencilTexture.isDestroyed()&&(this._depthStencilTexture=void 0),l(this._depthStencilRenderbuffer)&&this._depthStencilRenderbuffer.isDestroyed()&&(this._depthStencilRenderbuffer=void 0)),this._depth&&(this._createDepthAttachments&&(this._depthTexture=this._depthTexture&&this._depthTexture.destroy(),this._depthRenderbuffer=this._depthRenderbuffer&&this._depthRenderbuffer.destroy()),l(this._depthTexture)&&this._depthTexture.isDestroyed()&&(this._depthTexture=void 0),l(this._depthRenderbuffer)&&this._depthRenderbuffer.isDestroyed()&&(this._depthRenderbuffer=void 0)),this.destroyFramebuffer()};var ui=_s;var rR=`uniform sampler2D u_pointCloud_colorGBuffer; uniform sampler2D u_pointCloud_depthGBuffer; uniform vec2 u_distanceAndEdlStrength; in vec2 v_textureCoordinates; vec2 neighborContribution(float log2Depth, vec2 offset) { float dist = u_distanceAndEdlStrength.x; vec2 texCoordOrig = v_textureCoordinates + offset * dist; vec2 texCoord0 = v_textureCoordinates + offset * floor(dist); vec2 texCoord1 = v_textureCoordinates + offset * ceil(dist); float depthOrLogDepth0 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord0)); float depthOrLogDepth1 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord1)); // ignore depth values that are the clear depth if (depthOrLogDepth0 == 0.0 || depthOrLogDepth1 == 0.0) { return vec2(0.0); } // interpolate the two adjacent depth values float depthMix = mix(depthOrLogDepth0, depthOrLogDepth1, fract(dist)); vec4 eyeCoordinate = czm_windowToEyeCoordinates(texCoordOrig, depthMix); return vec2(max(0.0, log2Depth - log2(-eyeCoordinate.z / eyeCoordinate.w)), 1.0); } void main() { float depthOrLogDepth = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, v_textureCoordinates)); vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, depthOrLogDepth); eyeCoordinate /= eyeCoordinate.w; float log2Depth = log2(-eyeCoordinate.z); if (depthOrLogDepth == 0.0) // 0.0 is the clear value for the gbuffer { discard; } vec4 color = texture(u_pointCloud_colorGBuffer, v_textureCoordinates); // sample from neighbors left, right, down, up vec2 texelSize = 1.0 / czm_viewport.zw; vec2 responseAndCount = vec2(0.0); responseAndCount += neighborContribution(log2Depth, vec2(-texelSize.x, 0.0)); responseAndCount += neighborContribution(log2Depth, vec2(+texelSize.x, 0.0)); responseAndCount += neighborContribution(log2Depth, vec2(0.0, -texelSize.y)); responseAndCount += neighborContribution(log2Depth, vec2(0.0, +texelSize.y)); float response = responseAndCount.x / responseAndCount.y; float strength = u_distanceAndEdlStrength.y; float shade = exp(-response * 300.0 * strength); color.rgb *= shade; out_FragColor = vec4(color); // Input and output depth are the same. gl_FragDepth = depthOrLogDepth; } `;function OC(){this._framebuffer=new ui({colorAttachmentsLength:2,depth:!0,supportsDepthTexture:!0}),this._drawCommand=void 0,this._clearCommand=void 0,this._strength=1,this._radius=1}Object.defineProperties(OC.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}},colorGBuffer:{get:function(){return this._framebuffer.getColorTexture(0)}},depthGBuffer:{get:function(){return this._framebuffer.getColorTexture(1)}}});function LUe(e){e._framebuffer.destroy(),e._drawCommand=void 0,e._clearCommand=void 0}var J9=new z;function NUe(e,t){let n=new ze({defines:["LOG_DEPTH_WRITE"],sources:[rR]}),i={u_pointCloud_colorGBuffer:function(){return e.colorGBuffer},u_pointCloud_depthGBuffer:function(){return e.depthGBuffer},u_distanceAndEdlStrength:function(){return J9.x=e._radius,J9.y=e._strength,J9}},o=Ve.fromCache({blending:un.ALPHA_BLEND,depthMask:!0,depthTest:{enabled:!0},stencilTest:Ft.setCesium3DTileBit(),stencilMask:Ft.CESIUM_3D_TILE_MASK});e._drawCommand=t.createViewportQuadCommand(n,{uniformMap:i,renderState:o,pass:Ee.CESIUM_3D_TILE,owner:e}),e._clearCommand=new ii({framebuffer:e.framebuffer,color:new H(0,0,0,0),depth:1,renderState:Ve.fromCache(),pass:Ee.CESIUM_3D_TILE,owner:e})}function FUe(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i),NUe(e,t)}function Vre(e){return e.drawBuffers&&e.fragmentDepth}OC.isSupported=Vre;function BUe(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"EC");if(!l(n)){let i=t._attributeLocations,o=t.fragmentShaderSource.clone();o.sources.splice(0,0,`layout (location = 0) out vec4 out_FragData_0; layout (location = 1) out vec4 out_FragData_1;`),o.sources=o.sources.map(function(r){return r=ze.replaceMain(r,"czm_point_cloud_post_process_main"),r=r.replaceAll(/out_FragColor/g,"out_FragData_0"),r}),o.sources.push(`void main() { czm_point_cloud_post_process_main(); #ifdef LOG_DEPTH czm_writeLogDepth(); out_FragData_1 = czm_packDepth(gl_FragDepth); #else out_FragData_1 = czm_packDepth(gl_FragCoord.z); #endif }`),n=e.shaderCache.createDerivedShaderProgram(t,"EC",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:i})}return n}OC.prototype.update=function(e,t,n,i){if(!Vre(e.context))return;this._strength=n.eyeDomeLightingStrength,this._radius=n.eyeDomeLightingRadius*e.pixelRatio,FUe(this,e.context);let o,r=e.commandList,s=r.length;for(o=t;o<s;++o){let u=r[o];if(u.primitiveType!==Le.POINTS||u.pass===Ee.TRANSLUCENT)continue;let f,d,p=u.derivedCommands.pointCloudProcessor;l(p)&&(f=p.command,d=p.originalShaderProgram),(!l(f)||u.dirty||d!==u.shaderProgram||f.framebuffer!==this.framebuffer)&&(f=Ze.shallowClone(u,f),f.framebuffer=this.framebuffer,f.shaderProgram=BUe(e.context,u.shaderProgram),f.castShadows=!1,f.receiveShadows=!1,l(p)||(p={command:f,originalShaderProgram:u.shaderProgram},u.derivedCommands.pointCloudProcessor=p),p.originalShaderProgram=u.shaderProgram),r[o]=f}let a=this._clearCommand,c=this._drawCommand;c.boundingVolume=i,r.push(c),r.push(a)};OC.prototype.isDestroyed=function(){return!1};OC.prototype.destroy=function(){return LUe(this),ue(this)};var $p=OC;function Ure(e){let t=y(e,{});this.attenuation=y(t.attenuation,!1),this.geometricErrorScale=y(t.geometricErrorScale,1),this.maximumAttenuation=t.maximumAttenuation,this.baseResolution=t.baseResolution,this.eyeDomeLighting=y(t.eyeDomeLighting,!0),this.eyeDomeLightingStrength=y(t.eyeDomeLightingStrength,1),this.eyeDomeLightingRadius=y(t.eyeDomeLightingRadius,1),this.backFaceCulling=y(t.backFaceCulling,!1),this.normalShading=y(t.normalShading,!0)}Ure.isSupported=function(e){return $p.isSupported(e.context)};var mm=Ure;var Pa={},kUe=new oe(0,0,0,1),fc=new oe,VUe=new Ge,eW=new z,tW=new z;Pa.wgs84ToWindowCoordinates=function(e,t,n){return Pa.wgs84WithEyeOffsetToWindowCoordinates(e,t,h.ZERO,n)};var zre=new oe,Hre=new h;function sR(e,t,n,i){let o=n.viewMatrix,r=F.multiplyByVector(o,oe.fromElements(e.x,e.y,e.z,1,zre),zre),s=h.multiplyComponents(t,h.normalize(r,Hre),Hre);return r.x+=t.x+s.x,r.y+=t.y+s.y,r.z+=s.z,F.multiplyByVector(n.frustum.projectionMatrix,r,i)}var UUe=new fe(Math.PI,R.PI_OVER_TWO),zUe=new h,HUe=new h;Pa.wgs84WithEyeOffsetToWindowCoordinates=function(e,t,n,i){let o=e.frameState,r=Pa.computeActualWgs84Position(o,t,kUe);if(!l(r))return;let s=e.canvas,a=VUe;a.x=0,a.y=0,a.width=s.clientWidth,a.height=s.clientHeight;let c=e.camera,u=!1;if(o.mode===ne.SCENE2D){let f=e.mapProjection,d=UUe,p=f.project(d,zUe),g=h.clone(c.position,HUe),m=c.frustum.clone(),x=F.computeViewportTransformation(a,0,1,new F),b=c.frustum.projectionMatrix,T=c.positionWC.y,C=h.fromElements(R.sign(T)*p.x-T,0,-c.positionWC.x),A=wt.pointToGLWindowCoordinates(b,x,C);if(T===0||A.x<=0||A.x>=s.clientWidth)u=!0;else{if(A.x>s.clientWidth*.5){a.width=A.x,c.frustum.right=p.x-T,fc=sR(r,n,c,fc),Pa.clipToGLWindowCoordinates(a,fc,eW),a.x+=A.x,c.position.x=-c.position.x;let E=c.frustum.right;c.frustum.right=-c.frustum.left,c.frustum.left=-E,fc=sR(r,n,c,fc),Pa.clipToGLWindowCoordinates(a,fc,tW)}else{a.x+=A.x,a.width-=A.x,c.frustum.left=-p.x-T,fc=sR(r,n,c,fc),Pa.clipToGLWindowCoordinates(a,fc,eW),a.x=a.x-a.width,c.position.x=-c.position.x;let E=c.frustum.left;c.frustum.left=-c.frustum.right,c.frustum.right=-E,fc=sR(r,n,c,fc),Pa.clipToGLWindowCoordinates(a,fc,tW)}h.clone(g,c.position),c.frustum=m.clone(),i=z.clone(eW,i),(i.x<0||i.x>s.clientWidth)&&(i.x=tW.x)}}if(o.mode!==ne.SCENE2D||u){if(fc=sR(r,n,c,fc),fc.z<0&&!(c.frustum instanceof rn)&&!(c.frustum instanceof Er))return;i=Pa.clipToGLWindowCoordinates(a,fc,i)}return i.y=s.clientHeight-i.y,i};Pa.wgs84ToDrawingBufferCoordinates=function(e,t,n){if(n=Pa.wgs84ToWindowCoordinates(e,t,n),!!l(n))return Pa.transformWindowToDrawingBuffer(e,n,n)};var Qp=new h,GUe=new fe;Pa.computeActualWgs84Position=function(e,t,n){let i=e.mode;if(i===ne.SCENE3D)return h.clone(t,n);let o=e.mapProjection,r=o.ellipsoid.cartesianToCartographic(t,GUe);if(!l(r))return;if(o.project(r,Qp),i===ne.COLUMBUS_VIEW)return h.fromElements(Qp.z,Qp.x,Qp.y,n);if(i===ne.SCENE2D)return h.fromElements(0,Qp.x,Qp.y,n);let s=e.morphTime;return h.fromElements(R.lerp(Qp.z,t.x,s),R.lerp(Qp.x,t.y,s),R.lerp(Qp.y,t.z,s),n)};var Gre=new h,Wre=new h,jre=new F;Pa.clipToGLWindowCoordinates=function(e,t,n){return h.divideByScalar(t,t.w,Gre),F.computeViewportTransformation(e,0,1,jre),F.multiplyByPoint(jre,Gre,Wre),z.fromCartesian3(Wre,n)};Pa.transformWindowToDrawingBuffer=function(e,t,n){let i=e.canvas,o=e.drawingBufferWidth/i.clientWidth,r=e.drawingBufferHeight/i.clientHeight;return z.fromElements(t.x*o,t.y*r,n)};var WUe=new oe,qre=new oe;Pa.drawingBufferToWgs84Coordinates=function(e,t,n,i){let r=e.context.uniformState,s=r.currentFrustum,a=s.x,c=s.y;if(e.frameState.useLogDepth){let g=n*r.log2FarDepthFromNearPlusOne,m=Math.pow(2,g)-1;n=c*(1-a/(m+a))/(c-a)}let u=e.view.passState.viewport,f=oe.clone(oe.UNIT_W,WUe);f.x=(t.x-u.x)/u.width*2-1,f.y=(t.y-u.y)/u.height*2-1,f.z=n*2-1,f.w=1;let d,p=e.camera.frustum;if(l(p.fovy)){d=F.multiplyByVector(r.inverseViewProjection,f,qre);let g=1/d.w;h.multiplyByScalar(d,g,d)}else{let g=p.offCenterFrustum;l(g)&&(p=g),d=qre,d.x=(f.x*(p.right-p.left)+p.left+p.right)*.5,d.y=(f.y*(p.top-p.bottom)+p.bottom+p.top)*.5,d.z=(f.z*(a-c)-a-c)*.5,d.w=1,d=F.multiplyByVector(r.inverseView,d,d)}return h.fromCartesian4(d,i)};var Hi=Pa;var jUe={LEFT:-1,NONE:0,RIGHT:1},Qc=Object.freeze(jUe);var MC={};MC._deprecationWarning=Ls;var Jp=Uint32Array.BYTES_PER_ELEMENT;MC.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=Jp;let r=o.getUint32(t,!0);if(r!==1)throw new le(`Only Batched 3D Model version 1 is supported. Version ${r} is not.`);t+=Jp;let s=o.getUint32(t,!0);t+=Jp;let a=o.getUint32(t,!0);t+=Jp;let c=o.getUint32(t,!0);t+=Jp;let u=o.getUint32(t,!0);t+=Jp;let f=o.getUint32(t,!0);t+=Jp;let d;u>=570425344?(t-=Jp*2,d=a,u=c,f=0,a=0,c=0,MC._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchLength] [batchTableByteLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel.")):f>=570425344&&(t-=Jp,d=u,u=a,f=c,a=0,c=0,MC._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel."));let p;a===0?p={BATCH_LENGTH:y(d,0)}:(p=Ro(i,t,a),t+=a);let g=new Uint8Array(e,t,c);t+=c;let m,x;u>0&&(m=Ro(i,t,u),t+=u,f>0&&(x=new Uint8Array(e,t,f),x=new Uint8Array(x),t+=f));let b=n+s-t;if(b===0)throw new le("glTF byte length must be greater than 0.");let T;return t%4===0?T=new Uint8Array(e,t,b):(MC._deprecationWarning("b3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),T=new Uint8Array(i.subarray(t,t+b))),{batchLength:d,featureTableJson:p,featureTableBinary:g,batchTableJson:m,batchTableBinary:x,gltf:T}};var aR=MC;function cR(e,t){this.json=e,this.buffer=t,this._cachedTypedArrays={},this.featuresLength=0}function Yre(e,t,n,i,o,r){let s=e._cachedTypedArrays,a=s[t];return l(a)||(a=X.createArrayBufferView(n,e.buffer.buffer,e.buffer.byteOffset+r,o*i),s[t]=a),a}function qUe(e,t,n,i){let o=e._cachedTypedArrays,r=o[t];return l(r)||(r=X.createTypedArray(n,i),o[t]=r),r}cR.prototype.getGlobalProperty=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(t=y(t,X.UNSIGNED_INT),n=y(n,1),Yre(this,e,t,n,1,i.byteOffset)):i};cR.prototype.hasProperty=function(e){return l(this.json[e])};cR.prototype.getPropertyArray=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(l(i.componentType)&&(t=X.fromName(i.componentType)),Yre(this,e,t,n,this.featuresLength,i.byteOffset)):qUe(this,e,t,i)};cR.prototype.getProperty=function(e,t,n,i,o){let r=this.json[e];if(!l(r))return;let s=this.getPropertyArray(e,t,n);if(n===1)return s[i];for(let a=0;a<n;++a)o[a]=s[n*i+a];return o};var Yd=cR;function lR(e){let t=e.count,n=e.batchTable,i=e.binaryBody,o=y(e.parseAsPropertyAttributes,!1),r=e.customAttributeOutput,s=YUe(n),a;l(s.jsonProperties)&&(a=new Kp({count:t,properties:s.jsonProperties}));let c;l(s.hierarchy)&&(c=new Vx({extension:s.hierarchy,binaryBody:i}));let u=Vd.BATCH_TABLE_CLASS_NAME,f=s.binaryProperties,d,p,g;if(o){let b=KUe(t,u,f,i,r);g=b.transcodedSchema,p=[new cb({propertyAttribute:b.propertyAttributeJson,class:b.transcodedClass})]}else{let b=XUe(t,u,f,i);g=b.transcodedSchema;let T=b.featureTableJson;d=new Ml({count:T.count,properties:T.properties,class:b.transcodedClass,bufferViews:b.bufferViewsTypedArrays}),p=[]}let m=[];if(l(d)||l(a)||l(c)){let b=new Kc({id:0,name:"Batch Table",count:t,metadataTable:d,jsonMetadataTable:a,batchTableHierarchy:c});m.push(b)}let x={schema:g,propertyTables:m,propertyAttributes:p,extensions:s.extensions,extras:s.extras};return new Da(x)}function YUe(e){let t=e.HIERARCHY,n=e.extras,i=e.extensions,o;l(t)?(lR._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),o=t):l(i)&&(o=i["3DTILES_batch_table_hierarchy"]);let r,s={};for(let a in e){if(!e.hasOwnProperty(a)||a==="HIERARCHY"||a==="extensions"||a==="extras")continue;let c=e[a];Array.isArray(c)?(r=l(r)?r:{},r[a]=c):s[a]=c}return{binaryProperties:s,jsonProperties:r,hierarchy:o,extras:n,extensions:i}}function XUe(e,t,n,i){let o={},r={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;if(!l(i))throw new le(`Property ${d} requires a batch table binary.`);let p=n[d],g=gu(p);r[d]={bufferView:a},o[d]=Xre(p),s[a]=g.createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e),a++}let c={classes:{}};c.classes[t]={properties:o};let u=Ud.fromJson(c);return{featureTableJson:{class:t,count:e,properties:r},bufferViewsTypedArrays:s,transcodedSchema:u,transcodedClass:u.classes[t]}}function KUe(e,t,n,i,o){let r={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;let p=n[d];if(!l(i)&&!l(p.typedArray))throw new le(`Property ${d} requires a batch table binary.`);let g=Xt.sanitizeGlslIdentifier(d);(g===""||r.hasOwnProperty(g))&&(g=`property_${a}`,a++);let m=Xre(p);m.name=d,r[g]=m;let x=g.toUpperCase();x.startsWith("_")||(x=`_${x}`);let b=p.typedArray;l(b)||(b=gu(p).createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e));let T=new xn.Attribute;T.name=x,T.count=e,T.type=p.type;let C=X.fromTypedArray(b);(C===X.INT||C===X.UNSIGNED_INT||C===X.DOUBLE)&&(lR._oneTimeWarning("Cast pnts property to floats",`Point cloud property "${x}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),b=new Float32Array(b)),T.componentDatatype=X.fromTypedArray(b),T.typedArray=b,o.push(T),s[g]={attribute:x}}let c={classes:{}};c.classes[t]={properties:r};let u=Ud.fromJson(c);return{class:t,propertyAttributeJson:{properties:s},transcodedSchema:u,transcodedClass:u.classes[t]}}function Xre(e){let t=ZUe(e.componentType);return{type:e.type,componentType:t}}function ZUe(e){switch(e){case"BYTE":return"INT8";case"UNSIGNED_BYTE":return"UINT8";case"SHORT":return"INT16";case"UNSIGNED_SHORT":return"UINT16";case"INT":return"INT32";case"UNSIGNED_INT":return"UINT32";case"FLOAT":return"FLOAT32";case"DOUBLE":return"FLOAT64"}}lR._deprecationWarning=Ls;lR._oneTimeWarning=Lt;var e_=lR;var fb={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,FAILED:4},$Ue=xn.FeatureIdAttribute;function fy(e){e=y(e,y.EMPTY_OBJECT);let t=e.b3dmResource,n=e.baseResource,i=e.arrayBuffer,o=y(e.byteOffset,0),r=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,Io.Y),u=y(e.forwardAxis,Io.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadAttributesFor2D,!1),p=y(e.enablePick,!1),g=y(e.loadIndicesForWireframe,!1),m=y(e.loadPrimitiveOutline,!0),x=y(e.loadForClassification,!1);n=l(n)?n:t.clone(),this._b3dmResource=t,this._baseResource=n,this._arrayBuffer=i,this._byteOffset=o,this._releaseGltfJson=r,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=u,this._loadAttributesAsTypedArray=f,this._loadAttributesFor2D=d,this._enablePick=p,this._loadIndicesForWireframe=g,this._loadPrimitiveOutline=m,this._loadForClassification=x,this._state=fb.UNLOADED,this._promise=void 0,this._gltfLoader=void 0,this._batchLength=0,this._propertyTable=void 0,this._batchTable=void 0,this._components=void 0,this._transform=F.IDENTITY}l(Object.create)&&(fy.prototype=Object.create(no.prototype),fy.prototype.constructor=fy);Object.defineProperties(fy.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});fy.prototype.load=function(){if(l(this._promise))return this._promise;let e=aR.parse(this._arrayBuffer,this._byteOffset),t=e.batchLength,n=e.featureTableJson,i=e.featureTableBinary,o=e.batchTableJson,r=e.batchTableBinary,s=new Yd(n,i);t=s.getGlobalProperty("BATCH_LENGTH"),this._batchLength=t;let a=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(a)&&(this._transform=F.fromTranslation(h.fromArray(a))),this._batchTable={json:o,binary:r};let c=new Zp({typedArray:e.gltf,upAxis:this._upAxis,forwardAxis:this._forwardAxis,gltfResource:this._b3dmResource,baseResource:this._baseResource,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,loadAttributesFor2D:this._loadAttributesFor2D,enablePick:this._enablePick,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline,loadForClassification:this._loadForClassification,renameBatchIdSemantic:!0});this._gltfLoader=c,this._state=fb.LOADING;let u=this;return this._promise=c.load().then(function(){if(!u.isDestroyed())return u._state=fb.PROCESSING,u}).catch(function(f){if(!u.isDestroyed())return QUe(u,f)}),this._promise};function QUe(e,t){return e.unload(),e._state=fb.FAILED,t=e.getError("Failed to load b3dm",t),Promise.reject(t)}fy.prototype.process=function(e){if(this._state===fb.READY)return!0;if(this._state!==fb.PROCESSING||!this._gltfLoader.process(e))return!1;let n=this._gltfLoader.components;return n.transform=F.multiplyTransformation(this._transform,n.transform,n.transform),JUe(this,n),this._components=n,this._arrayBuffer=void 0,this._state=fb.READY,!0};function JUe(e,t){let n=e._batchTable,i=e._batchLength;if(i===0)return;let o;if(l(n.json))o=e_({count:i,batchTable:n.json,binaryBody:n.binary});else{let a=new Kc({name:Vd.BATCH_TABLE_CLASS_NAME,count:i});o=new Da({schema:{},propertyTables:[a]})}let r=t.scene.nodes,s=r.length;for(let a=0;a<s;a++)Kre(r[a]);t.structuralMetadata=o}function Kre(e){let t=e.children.length;for(let i=0;i<t;i++)Kre(e.children[i]);let n=e.primitives.length;for(let i=0;i<n;i++){let o=e.primitives[i],r=Xt.getAttributeBySemantic(o,yt.FEATURE_ID);if(l(r)){r.setIndex=0;let s=new $Ue;s.propertyTableId=0,s.setIndex=0,s.positionalLabel="featureId_0",o.featureIds.push(s)}}}fy.prototype.unload=function(){l(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),this._components=void 0,this._arrayBuffer=void 0};var uR=fy;function dy(e){e=y(e,y.EMPTY_OBJECT),this._geoJson=e.geoJson,this._components=void 0}l(Object.create)&&(dy.prototype=Object.create(no.prototype),dy.prototype.constructor=dy);Object.defineProperties(dy.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}}});dy.prototype.load=function(){return Promise.resolve(this)};dy.prototype.process=function(e){return l(this._components)||(this._components=dze(this._geoJson,e),this._geoJson=void 0),!0};function eze(){this.lines=void 0,this.points=void 0,this.properties=void 0}function tze(){this.features=[]}function nW(e){let t=e[0],n=e[1],i=y(e[2],0);return new h(t,n,i)}function iW(e){let t=e.length,n=new Array(t);for(let o=0;o<t;o++)n[o]=nW(e[o]);return[n]}function nze(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=iW(e[i])[0];return n}function Zre(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=iW(e[i])[0];return n}function ize(e){let t=e.length,n=[];for(let i=0;i<t;i++)Array.prototype.push.apply(n,Zre(e[i]));return n}function oze(e){return[nW(e)]}function rze(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=nW(e[i]);return n}var sze={LineString:iW,MultiLineString:nze,MultiPolygon:ize,Polygon:Zre,MultiPoint:rze,Point:oze},aze={LineString:Le.LINES,MultiLineString:Le.LINES,MultiPolygon:Le.LINES,Polygon:Le.LINES,MultiPoint:Le.POINTS,Point:Le.POINTS};function $re(e,t){if(!l(e.geometry))return;let n=e.geometry.type,i=sze[n],o=aze[n],r=e.geometry.coordinates;if(!l(i)||!l(r))return;let s=new eze;o===Le.LINES?s.lines=i(r):o===Le.POINTS&&(s.points=i(r)),s.properties=e.properties,t.features.push(s)}function cze(e,t){let n=e.features,i=n.length;for(let o=0;o<i;o++)$re(n[o],t)}var lze={FeatureCollection:cze,Feature:$re},DU=new h;function uze(e,t,n){let i=0,o=0,r=e.length;for(let L=0;L<r;L++){let N=e[L];if(l(N.lines)){let _=N.lines.length;for(let S=0;S<_;S++){let w=N.lines[S];i+=w.length,o+=(w.length-1)*2}}}let s=new Float32Array(i*3),a=new Float32Array(i),c=Ne.createTypedArray(i,o),u=Ne.fromTypedArray(c),f=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),d=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),p=0,g=0;for(let L=0;L<r;L++){let N=e[L];if(!l(N.lines))continue;let _=N.lines.length;for(let S=0;S<_;S++){let w=N.lines[S],P=w.length;for(let M=0;M<P;M++){let B=w[M],U=h.fromDegrees(B.x,B.y,B.z,te.WGS84,DU),V=F.multiplyByPoint(t,U,DU);h.minimumByComponent(f,V,f),h.maximumByComponent(d,V,d),h.pack(V,s,p*3),a[p]=L,M<P-1&&(c[g*2]=p,c[g*2+1]=p+1,g++),p++}}}let m=ct.createVertexBuffer({typedArray:s,context:n.context,usage:Fe.STATIC_DRAW});m.vertexArrayDestroyable=!1;let x=ct.createVertexBuffer({typedArray:a,context:n.context,usage:Fe.STATIC_DRAW});x.vertexArrayDestroyable=!1;let b=ct.createIndexBuffer({typedArray:c,context:n.context,usage:Fe.STATIC_DRAW,indexDatatype:u});b.vertexArrayDestroyable=!1;let T=new xn.Attribute;T.semantic=yt.POSITION,T.componentDatatype=X.FLOAT,T.type=tn.VEC3,T.count=i,T.min=f,T.max=d,T.buffer=m;let C=new xn.Attribute;C.semantic=yt.FEATURE_ID,C.setIndex=0,C.componentDatatype=X.FLOAT,C.type=tn.SCALAR,C.count=i,C.buffer=x;let A=[T,C],E=new xn.Material;E.unlit=!0;let v=new xn.Indices;v.indexDatatype=u,v.count=c.length,v.buffer=b;let D=new xn.FeatureIdAttribute;D.featureCount=r,D.propertyTableId=0,D.setIndex=0,D.positionalLabel="featureId_0";let O=[D],I=new xn.Primitive;return I.attributes=A,I.indices=v,I.featureIds=O,I.primitiveType=Le.LINES,I.material=E,I}function fze(e,t,n){let i=0,o=e.length;for(let A=0;A<o;A++){let E=e[A];l(E.points)&&(i+=E.points.length)}let r=new Float32Array(i*3),s=new Float32Array(i),a=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),c=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),u=0;for(let A=0;A<o;A++){let E=e[A];if(!l(E.points))continue;let v=E.points.length;for(let D=0;D<v;D++){let O=E.points[D],I=h.fromDegrees(O.x,O.y,O.z,te.WGS84,DU),L=F.multiplyByPoint(t,I,DU);h.minimumByComponent(a,L,a),h.maximumByComponent(c,L,c),h.pack(L,r,u*3),s[u]=A,u++}}let f=ct.createVertexBuffer({typedArray:r,context:n.context,usage:Fe.STATIC_DRAW});f.vertexArrayDestroyable=!1;let d=ct.createVertexBuffer({typedArray:s,context:n.context,usage:Fe.STATIC_DRAW});d.vertexArrayDestroyable=!1;let p=new xn.Attribute;p.semantic=yt.POSITION,p.componentDatatype=X.FLOAT,p.type=tn.VEC3,p.count=i,p.min=a,p.max=c,p.buffer=f;let g=new xn.Attribute;g.semantic=yt.FEATURE_ID,g.setIndex=0,g.componentDatatype=X.FLOAT,g.type=tn.SCALAR,g.count=i,g.buffer=d;let m=[p,g],x=new xn.Material;x.unlit=!0;let b=new xn.FeatureIdAttribute;b.featureCount=o,b.propertyTableId=0,b.setIndex=0,b.positionalLabel="featureId_0";let T=[b],C=new xn.Primitive;return C.attributes=m,C.featureIds=T,C.primitiveType=Le.POINTS,C.material=x,C}function dze(e,t){let n=new tze,i=lze[e.type];l(i)&&i(e,n);let o=n.features,r=o.length;if(r===0)throw new le("GeoJSON must have at least one feature");let s={};for(let L=0;L<r;L++){let N=o[L],_=y(N.properties,y.EMPTY_OBJECT);for(let S in _)_.hasOwnProperty(S)&&(l(s[S])||(s[S]=new Array(r)))}for(let L=0;L<r;L++){let N=o[L];for(let _ in s)if(s.hasOwnProperty(_)){let S=y(N.properties[_],"");s[_][L]=S}}let a=new Kp({count:r,properties:s}),u=[new Kc({id:0,count:r,jsonMetadataTable:a})],f=Ud.fromJson({}),d=new Da({schema:f,propertyTables:u}),p=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),g=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),m=!1,x=!1;for(let L=0;L<r;L++){let N=o[L];if(l(N.lines)){m=!0;let _=N.lines.length;for(let S=0;S<_;S++){let w=N.lines[S],P=w.length;for(let M=0;M<P;M++)h.minimumByComponent(p,w[M],p),h.maximumByComponent(g,w[M],g)}}if(l(N.points)){x=!0;let _=N.points.length;for(let S=0;S<_;S++){let w=N.points[S];h.minimumByComponent(p,w,p),h.maximumByComponent(g,w,g)}}}let b=h.midpoint(p,g,new h),T=h.fromDegrees(b.x,b.y,b.z,te.WGS84,new h),C=wt.eastNorthUpToFixedFrame(T,te.WGS84,new F),A=F.inverseTransformation(C,new F),E=[];m&&E.push(uze(o,A,t)),x&&E.push(fze(o,A,t));let v=new xn.Node;v.index=0,v.primitives=E;let D=[v],O=new xn.Scene;O.nodes=D;let I=new xn.Components;return I.scene=O,I.nodes=D,I.transform=C,I.structuralMetadata=d,I}dy.prototype.unload=function(){this._components=void 0};var fR=dy;var PU={};PU._deprecationWarning=Ls;var hy=Uint32Array.BYTES_PER_ELEMENT;PU.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=hy;let r=o.getUint32(t,!0);if(r!==1)throw new le(`Only Instanced 3D Model version 1 is supported. Version ${r} is not.`);t+=hy;let s=o.getUint32(t,!0);t+=hy;let a=o.getUint32(t,!0);if(a===0)throw new le("featureTableJsonByteLength is zero, the feature table must be defined.");t+=hy;let c=o.getUint32(t,!0);t+=hy;let u=o.getUint32(t,!0);t+=hy;let f=o.getUint32(t,!0);t+=hy;let d=o.getUint32(t,!0);if(d!==1&&d!==0)throw new le(`Only glTF format 0 (uri) or 1 (embedded) are supported. Format ${d} is not.`);t+=hy;let p=Ro(i,t,a);t+=a;let g=new Uint8Array(e,t,c);t+=c;let m,x;u>0&&(m=Ro(i,t,u),t+=u,f>0&&(x=new Uint8Array(e,t,f),x=new Uint8Array(x),t+=f));let b=n+s-t;if(b===0)throw new le("glTF byte length must be greater than 0.");let T;return t%4===0?T=new Uint8Array(e,t,b):(PU._deprecationWarning("i3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),T=new Uint8Array(i.subarray(t,t+b))),{gltfFormat:d,featureTableJson:p,featureTableBinary:g,batchTableJson:m,batchTableBinary:x,gltf:T}};var dR=PU;var t_={NOT_LOADED:0,LOADING:1,PROCESSING:2,POST_PROCESSING:3,READY:4,FAILED:5,UNLOADED:6},IU=xn.Attribute,hze=xn.FeatureIdAttribute,Jre=xn.Instances;function n_(e){e=y(e,y.EMPTY_OBJECT);let t=e.i3dmResource,n=e.arrayBuffer,i=e.baseResource,o=y(e.byteOffset,0),r=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,Io.Y),u=y(e.forwardAxis,Io.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0),g=y(e.enablePick,!1);i=l(i)?i:t.clone(),this._i3dmResource=t,this._baseResource=i,this._arrayBuffer=n,this._byteOffset=o,this._releaseGltfJson=r,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=u,this._loadAttributesAsTypedArray=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._enablePick=g,this._state=t_.NOT_LOADED,this._promise=void 0,this._gltfLoader=void 0,this._buffers=[],this._components=void 0,this._transform=F.IDENTITY,this._batchTable=void 0,this._featureTable=void 0,this._instancesLength=0}l(Object.create)&&(n_.prototype=Object.create(no.prototype),n_.prototype.constructor=n_);Object.defineProperties(n_.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});n_.prototype.load=function(){if(l(this._promise))return this._promise;let e=dR.parse(this._arrayBuffer,this._byteOffset),t=e.featureTableJson,n=e.featureTableBinary,i=e.batchTableJson,o=e.batchTableBinary,r=e.gltfFormat,s=new Yd(t,n);this._featureTable=s;let a=s.getGlobalProperty("INSTANCES_LENGTH");if(s.featuresLength=a,!l(a))throw new le("Feature table global property: INSTANCES_LENGTH must be defined");this._instancesLength=a;let c=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(c)&&(this._transform=F.fromTranslation(h.fromArray(c))),this._batchTable={json:i,binary:o};let u={upAxis:this._upAxis,forwardAxis:this._forwardAxis,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,enablePick:this._enablePick,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline};if(r===0){let d=Il(e.gltf);d=d.replace(/[\s\0]+$/,"");let p=this._baseResource.getDerivedResource({url:d});u.gltfResource=p,u.baseResource=p}else u.gltfResource=this._i3dmResource,u.typedArray=e.gltf;let f=new Zp(u);return this._gltfLoader=f,this._state=t_.LOADING,this._promise=f.load().then(()=>{if(!this.isDestroyed())return this._state=t_.PROCESSING,this}).catch(d=>{if(!this.isDestroyed())throw mze(this,d)}),this._promise};function mze(e,t){return e.unload(),e._state=t_.FAILED,e.getError("Failed to load i3dm",t)}n_.prototype.process=function(e){if(this._state===t_.READY)return!0;let t=this._gltfLoader,n=!1;if(this._state===t_.PROCESSING&&(n=t.process(e)),!n)return!1;let i=t.components;return i.transform=F.multiplyTransformation(this._transform,i.transform,i.transform),gze(this,i,e),pze(this,i),this._components=i,this._arrayBuffer=void 0,this._state=t_.READY,!0};function pze(e,t){let n=e._batchTable,i=e._instancesLength;if(i===0)return;let o;if(l(n.json))o=e_({count:i,batchTable:n.json,binaryBody:n.binary});else{let r=new Kc({name:Vd.BATCH_TABLE_CLASS_NAME,count:i});o=new Da({schema:{},propertyTables:[r]})}t.structuralMetadata=o}var RU=new h,oW=new Array(4),_ze=new F;function gze(e,t,n){let i,o=e._featureTable,r=e._instancesLength;if(r===0)return;let s=o.getGlobalProperty("RTC_CENTER",X.FLOAT,3),a=o.getGlobalProperty("EAST_NORTH_UP"),c=o.hasProperty("NORMAL_UP")||o.hasProperty("NORMAL_UP_OCT32P")||a,u=o.hasProperty("SCALE")||o.hasProperty("SCALE_NON_UNIFORM"),f=xze(o,r),d;c&&(d=new Float32Array(4*r));let p;u&&(p=new Float32Array(3*r));let g=new Float32Array(r),m=h.unpackArray(f),x=new h,b=new h,T=new h,C=new h,A=new $,E=new Me,v=new Array(4),D=new h,O=new Array(3),I=new F;if(!l(s)||h.equals(h.unpack(s),h.ZERO)){let V=ae.fromPoints(m);for(i=0;i<m.length;i++)h.subtract(m[i],V.center,RU),f[3*i+0]=RU.x,f[3*i+1]=RU.y,f[3*i+2]=RU.z;let G=F.fromTranslation(V.center,_ze);t.transform=F.multiplyTransformation(G,t.transform,t.transform)}for(i=0;i<r;i++){x=h.clone(m[i]),l(s)&&h.add(x,h.unpack(s),x),c&&(bze(o,a,i,E,x,T,b,C,A,I),Me.pack(E,v,0),d[4*i+0]=v[0],d[4*i+1]=v[1],d[4*i+2]=v[2],d[4*i+3]=v[3]),u&&(Tze(o,i,D),h.pack(D,O,0),p[3*i+0]=O[0],p[3*i+1]=O[1],p[3*i+2]=O[2]);let V=o.getProperty("BATCH_ID",X.UNSIGNED_SHORT,1,i);l(V)||(V=i),g[i]=V}let L=new Jre;L.transformInWorldSpace=!0;let N=e._buffers,_=new IU;if(_.name="Instance Translation",_.semantic=Yr.TRANSLATION,_.componentDatatype=X.FLOAT,_.type=tn.VEC3,_.count=r,_.typedArray=f,!c){let V=ct.createVertexBuffer({context:n.context,typedArray:f,usage:Fe.STATIC_DRAW});V.vertexArrayDestroyable=!1,N.push(V),_.buffer=V}if(L.attributes.push(_),c){let V=new IU;V.name="Instance Rotation",V.semantic=Yr.ROTATION,V.componentDatatype=X.FLOAT,V.type=tn.VEC4,V.count=r,V.typedArray=d,L.attributes.push(V)}if(u){let V=new IU;if(V.name="Instance Scale",V.semantic=Yr.SCALE,V.componentDatatype=X.FLOAT,V.type=tn.VEC3,V.count=r,c)V.typedArray=p;else{let G=ct.createVertexBuffer({context:n.context,typedArray:p,usage:Fe.STATIC_DRAW});G.vertexArrayDestroyable=!1,N.push(G),V.buffer=G}L.attributes.push(V)}let S=new IU;S.name="Instance Feature ID",S.setIndex=0,S.semantic=Yr.FEATURE_ID,S.componentDatatype=X.FLOAT,S.type=tn.SCALAR,S.count=r;let w=ct.createVertexBuffer({context:n.context,typedArray:g,usage:Fe.STATIC_DRAW});w.vertexArrayDestroyable=!1,N.push(w),S.buffer=w,L.attributes.push(S);let P=new hze;P.propertyTableId=0,P.setIndex=0,P.positionalLabel="instanceFeatureId_0",L.featureIds.push(P);let M=t.nodes,B=M.length,U=!1;for(i=0;i<B;i++){let V=M[i];V.primitives.length>0&&(V.instances=U?yze(L):L,U=!0)}}function yze(e){let t=new Jre;t.transformInWorldSpace=e.transformInWorldSpace;let n=e.attributes,i=n.length;for(let o=0;o<i;o++){let r=He(n[o],!1);t.attributes.push(r)}return t.featureIds=e.featureIds,t}function xze(e,t){if(e.hasProperty("POSITION"))return e.getPropertyArray("POSITION",X.FLOAT,3);if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3),i=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!l(i))throw new le("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let o=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!l(o))throw new le("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let r=new Float32Array(n.length);for(let s=0;s<n.length/3;s++)for(let a=0;a<3;a++){let c=3*s+a;r[c]=n[c]/65535*o[a]+i[a]}return r}else throw new le("Either POSITION or POSITION_QUANTIZED must be defined for each instance.")}var Qre=new Array(4);function bze(e,t,n,i,o,r,s,a,c,u){let f=e.getProperty("NORMAL_UP",X.FLOAT,3,n,oW),d=e.getProperty("NORMAL_RIGHT",X.FLOAT,3,n,Qre),p=!1;if(l(f)){if(!l(d))throw new le("To define a custom orientation, both NORMAL_UP and NORMAL_RIGHT must be defined.");h.unpack(f,0,r),h.unpack(d,0,s),p=!0}else{let g=e.getProperty("NORMAL_UP_OCT32P",X.UNSIGNED_SHORT,2,n,oW),m=e.getProperty("NORMAL_RIGHT_OCT32P",X.UNSIGNED_SHORT,2,n,Qre);if(l(g)){if(!l(m))throw new le("To define a custom orientation with oct-encoded vectors, both NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P must be defined.");Mn.octDecodeInRange(g[0],g[1],65535,r),Mn.octDecodeInRange(m[0],m[1],65535,s),p=!0}else t?(wt.eastNorthUpToFixedFrame(o,te.WGS84,u),F.getMatrix3(u,c)):$.clone($.IDENTITY,c)}p&&(h.cross(s,r,a),h.normalize(a,a),$.setColumn(c,0,s,c),$.setColumn(c,1,r,c),$.setColumn(c,2,a,c)),Me.fromRotationMatrix(c,i)}function Tze(e,t,n){n=h.fromElements(1,1,1,n);let i=e.getProperty("SCALE",X.FLOAT,1,t);l(i)&&h.multiplyByScalar(n,i,n);let o=e.getProperty("SCALE_NON_UNIFORM",X.FLOAT,3,t,oW);l(o)&&(n.x*=o[0],n.y*=o[1],n.z*=o[2])}function Aze(e){let t=e._buffers,n=t.length;for(let i=0;i<n;i++){let o=t[i];o.isDestroyed()||o.destroy()}t.length=0}n_.prototype.isUnloaded=function(){return this._state===t_.UNLOADED};n_.prototype.unload=function(){l(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),Aze(this),this._components=void 0,this._arrayBuffer=void 0,this._state=t_.UNLOADED};var hR=n_;var Cze={STOPPED:0,ANIMATING:1},Xd=Object.freeze(Cze);function LC(){this.times=void 0,this.points=void 0,de.throwInstantiationError()}LC.getPointType=function(e){if(typeof e=="number")return Number;if(e instanceof h)return h;if(e instanceof Me)return Me};LC.prototype.evaluate=de.throwInstantiationError;LC.prototype.findTimeInterval=function(e,t){let n=this.times,i=n.length;if(t=y(t,0),e>=n[t]){if(t+1<i&&e<n[t+1])return t;if(t+2<i&&e<n[t+2])return t+1}else if(t-1>=0&&e>=n[t-1])return t-1;let o;if(e>n[t])for(o=t;o<i-1&&!(e>=n[o]&&e<n[o+1]);++o);else for(o=t-1;o>=0&&!(e>=n[o]&&e<n[o+1]);--o);return o===i-1&&(o=i-2),o};LC.prototype.wrapTime=function(e){let t=this.times,n=t[t.length-1],i=t[0],o=n-i,r;return e<i&&(r=Math.floor((i-e)/o)+1,e+=r*o),e>n&&(r=Math.floor((e-n)/o)+1,e-=r*o),e};LC.prototype.clampTime=function(e){let t=this.times;return R.clamp(e,t[0],t[t.length-1])};var io=LC;function NC(e){this._value=e,this._valueType=io.getPointType(e)}Object.defineProperties(NC.prototype,{value:{get:function(){return this._value}}});NC.prototype.findTimeInterval=function(e){};NC.prototype.wrapTime=function(e){return 0};NC.prototype.clampTime=function(e){return 0};NC.prototype.evaluate=function(e,t){let n=this._value,i=this._valueType;return i===Number?n:i.clone(n,t)};var mR=NC;function FC(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=io.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(FC.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});FC.prototype.findTimeInterval=io.prototype.findTimeInterval;FC.prototype.wrapTime=io.prototype.wrapTime;FC.prototype.clampTime=io.prototype.clampTime;FC.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);return this._pointType===Number?(1-r)*n[o]+r*n[o+1]:(l(t)||(t=new h),h.lerp(n[o],n[o+1],r,t))};var my=FC;var ese={};ese.solve=function(e,t,n,i){let o=new Array(n.length),r=new Array(i.length),s=new Array(i.length),a;for(a=0;a<r.length;a++)r[a]=new h,s[a]=new h;o[0]=n[0]/t[0],r[0]=h.multiplyByScalar(i[0],1/t[0],r[0]);let c;for(a=1;a<o.length;++a)c=1/(t[a]-o[a-1]*e[a-1]),o[a]=n[a]*c,r[a]=h.subtract(i[a],h.multiplyByScalar(r[a-1],e[a-1],r[a]),r[a]),r[a]=h.multiplyByScalar(r[a],c,r[a]);for(c=1/(t[a]-o[a-1]*e[a-1]),r[a]=h.subtract(i[a],h.multiplyByScalar(r[a-1],e[a-1],r[a]),r[a]),r[a]=h.multiplyByScalar(r[a],c,r[a]),s[s.length-1]=r[r.length-1],a=s.length-2;a>=0;--a)s[a]=h.subtract(r[a],h.multiplyByScalar(s[a+1],o[a],s[a]),s[a]);return s};var BC=ese;var tse=[],nse=[],ise=[],ose=[];function Eze(e,t,n){let i=tse,o=ise,r=nse,s=ose;i.length=o.length=e.length-1,r.length=s.length=e.length;let a;i[0]=r[0]=1,o[0]=0;let c=s[0];for(l(c)||(c=s[0]=new h),h.clone(t,c),a=1;a<i.length-1;++a)i[a]=o[a]=1,r[a]=4,c=s[a],l(c)||(c=s[a]=new h),h.subtract(e[a+1],e[a-1],c),h.multiplyByScalar(c,3,c);return i[a]=0,o[a]=1,r[a]=4,c=s[a],l(c)||(c=s[a]=new h),h.subtract(e[a+1],e[a-1],c),h.multiplyByScalar(c,3,c),r[a+1]=1,c=s[a+1],l(c)||(c=s[a+1]=new h),h.clone(n,c),BC.solve(i,r,o,s)}function Sze(e){let t=tse,n=ise,i=nse,o=ose;t.length=n.length=e.length-1,i.length=o.length=e.length;let r;t[0]=n[0]=1,i[0]=2;let s=o[0];for(l(s)||(s=o[0]=new h),h.subtract(e[1],e[0],s),h.multiplyByScalar(s,3,s),r=1;r<t.length;++r)t[r]=n[r]=1,i[r]=4,s=o[r],l(s)||(s=o[r]=new h),h.subtract(e[r+1],e[r-1],s),h.multiplyByScalar(s,3,s);return i[r]=2,s=o[r],l(s)||(s=o[r]=new h),h.subtract(e[r],e[r-1],s),h.multiplyByScalar(s,3,s),BC.solve(t,i,n,o)}function Vl(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.inTangents,o=e.outTangents;this._times=n,this._points=t,this._pointType=io.getPointType(t[0]),this._inTangents=i,this._outTangents=o,this._lastTimeIndex=0}Object.defineProperties(Vl.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},inTangents:{get:function(){return this._inTangents}},outTangents:{get:function(){return this._outTangents}}});Vl.createC1=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points,i=e.tangents,o=i.slice(0,i.length-1),r=i.slice(1,i.length);return new Vl({times:t,points:n,inTangents:r,outTangents:o})};Vl.createNaturalCubic=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points;if(n.length<3)return new my({points:n,times:t});let i=Sze(n),o=i.slice(0,i.length-1),r=i.slice(1,i.length);return new Vl({times:t,points:n,inTangents:r,outTangents:o})};Vl.createClampedCubic=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points,i=e.firstTangent,o=e.lastTangent,r=io.getPointType(n[0]);if(n.length<3)return new my({points:n,times:t});let s=Eze(n,i,o),a=s.slice(0,s.length-1),c=s.slice(1,s.length);return new Vl({times:t,points:n,inTangents:c,outTangents:a})};Vl.hermiteCoefficientMatrix=new F(2,-3,0,1,-2,3,0,0,1,-2,1,0,1,-1,0,0);Vl.prototype.findTimeInterval=io.prototype.findTimeInterval;var vze=new oe,kC=new h;Vl.prototype.wrapTime=io.prototype.wrapTime;Vl.prototype.clampTime=io.prototype.clampTime;Vl.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this.inTangents,r=this.outTangents;this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex);let s=this._lastTimeIndex,a=i[s+1]-i[s],c=(e-i[s])/a,u=vze;u.z=c,u.y=c*c,u.x=u.y*c,u.w=1;let f=F.multiplyByVector(Vl.hermiteCoefficientMatrix,u,u);f.z*=a,f.w*=a;let d=this._pointType;return d===Number?n[s]*f.x+n[s+1]*f.y+r[s]*f.z+o[s]*f.w:(l(t)||(t=new d),t=d.multiplyByScalar(n[s],f.x,t),d.multiplyByScalar(n[s+1],f.y,kC),d.add(t,kC,t),d.multiplyByScalar(r[s],f.z,kC),d.add(t,kC,t),d.multiplyByScalar(o[s],f.w,kC),d.add(t,kC,t))};var py=Vl;function VC(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=io.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(VC.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});VC.prototype.findTimeInterval=io.prototype.findTimeInterval;VC.prototype.wrapTime=io.prototype.wrapTime;VC.prototype.clampTime=io.prototype.clampTime;VC.prototype.evaluate=function(e,t){let n=this.points;this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex);let i=this._lastTimeIndex,o=this._pointType;return o===Number?n[i]:(l(t)||(t=new o),o.clone(n[i],t))};var pR=VC;function wze(e){let t=e.points,n=e.times;return function(i,o){l(o)||(o=new Me);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=t[r],c=t[r+1];return Me.fastSlerp(a,c,s,o)}}function UC(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._evaluateFunction=wze(this),this._lastTimeIndex=0}Object.defineProperties(UC.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});UC.prototype.findTimeInterval=io.prototype.findTimeInterval;UC.prototype.wrapTime=io.prototype.wrapTime;UC.prototype.clampTime=io.prototype.clampTime;UC.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var _R=UC;var zC=xn.AnimatedPropertyType;function rW(e){e=y(e,y.EMPTY_OBJECT);let t=e.channel,n=e.runtimeAnimation,i=e.runtimeNode;this._channel=t,this._runtimeAnimation=n,this._runtimeNode=i,this._splines=[],this._path=void 0,Oze(this)}Object.defineProperties(rW.prototype,{channel:{get:function(){return this._channel}},runtimeAnimation:{get:function(){return this._runtimeAnimation}},runtimeNode:{get:function(){return this._runtimeNode}},splines:{get:function(){return this._splines}}});function Dze(e,t){let n=[],i=[],o=[],r=t.length;for(let s=0;s<r;s+=3)i.push(t[s]),n.push(t[s+1]),o.push(t[s+2]);return i.splice(0,1),o.length=o.length-1,new py({times:e,points:n,inTangents:i,outTangents:o})}function rse(e,t,n,i){if(e.length===1&&t.length===1)return new mR(t[0]);switch(n){case Wd.STEP:return new pR({times:e,points:t});case Wd.CUBICSPLINE:return Dze(e,t);case Wd.LINEAR:return i===zC.ROTATION?new _R({times:e,points:t}):new my({times:e,points:t})}}function Pze(e,t,n,i,o){let r=[];if(i===zC.WEIGHTS){let a=t.length/o,c,u;for(c=0;c<o;c++){let f=new Array(a),d=c;if(n===Wd.CUBICSPLINE)for(u=0;u<a;u+=3)f[u]=t[d],f[u+1]=t[d+o],f[u+2]=t[d+2*o],d+=o*3;else for(u=0;u<a;u++)f[u]=t[d],d+=o;r.push(rse(e,f,n,i))}}else r.push(rse(e,t,n,i));return r}var Ize=new h,Rze=new Me;function Oze(e){let t=e._channel,n=t.sampler,i=n.input,o=n.output,r=n.interpolation,a=t.target.path,c=e._runtimeNode,u=l(c.morphWeights)?c.morphWeights.length:1,f=Pze(i,o,r,a,u);e._splines=f,e._path=a}rW.prototype.animate=function(e){let t=this._splines,n=this._path,i=this._runtimeAnimation.model,o=this._runtimeNode;if(n===zC.WEIGHTS){let r=o.morphWeights,s=r.length;for(let a=0;a<s;a++){let c=t[a],u=i.clampAnimations?c.clampTime(e):c.wrapTime(e);r[a]=c.evaluate(u)}}else{if(o.userAnimated)return;{let r=t[0],s=i.clampAnimations?r.clampTime(e):r.wrapTime(e);n===zC.TRANSLATION||n===zC.SCALE?o[n]=r.evaluate(s,Ize):n===zC.ROTATION&&(o[n]=r.evaluate(s,Rze))}}};var gR=rW;function sW(e,t,n){this._animation=t,this._name=t.name,this._runtimeChannels=void 0,this._startTime=J.clone(n.startTime),this._delay=y(n.delay,0),this._stopTime=J.clone(n.stopTime),this.removeOnStop=y(n.removeOnStop,!1),this._multiplier=y(n.multiplier,1),this._reverse=y(n.reverse,!1),this._loop=y(n.loop,Bl.NONE),this._animationTime=n.animationTime,this._prevAnimationDelta=void 0,this.start=new pe,this.update=new pe,this.stop=new pe,this._state=Xd.STOPPED,this._computedStartTime=void 0,this._duration=void 0;let i=this;this._raiseStartEvent=function(){i.start.raiseEvent(e,i)},this._updateEventTime=0,this._raiseUpdateEvent=function(){i.update.raiseEvent(e,i,i._updateEventTime)},this._raiseStopEvent=function(){i.stop.raiseEvent(e,i)},this._model=e,this._localStartTime=void 0,this._localStopTime=void 0,Mze(this)}Object.defineProperties(sW.prototype,{animation:{get:function(){return this._animation}},name:{get:function(){return this._name}},runtimeChannels:{get:function(){return this._runtimeChannels}},model:{get:function(){return this._model}},localStartTime:{get:function(){return this._localStartTime}},localStopTime:{get:function(){return this._localStopTime}},startTime:{get:function(){return this._startTime}},delay:{get:function(){return this._delay}},stopTime:{get:function(){return this._stopTime}},multiplier:{get:function(){return this._multiplier}},reverse:{get:function(){return this._reverse}},loop:{get:function(){return this._loop}},animationTime:{get:function(){return this._animationTime}}});function Mze(e){let t=Number.MAX_VALUE,n=-Number.MAX_VALUE,i=e._model.sceneGraph,r=e._animation.channels,s=r.length,a=[];for(let c=0;c<s;c++){let u=r[c],f=u.target;if(!l(f))continue;let d=f.node.index,p=i._runtimeNodes[d],g=new gR({channel:u,runtimeAnimation:e,runtimeNode:p}),m=u.sampler.input;t=Math.min(t,m[0]),n=Math.max(n,m[m.length-1]),a.push(g)}e._runtimeChannels=a,e._localStartTime=t,e._localStopTime=n}sW.prototype.animate=function(e){let t=this._runtimeChannels,n=t.length;for(let i=0;i<n;i++)t[i].animate(e)};var yR=sW;function i_(e){this.animationAdded=new pe,this.animationRemoved=new pe,this.animateWhilePaused=!1,this._model=e,this._runtimeAnimations=[],this._previousTime=void 0}Object.defineProperties(i_.prototype,{length:{get:function(){return this._runtimeAnimations.length}},model:{get:function(){return this._model}}});function aW(e,t,n){let i=e._model,o=new yR(i,t,n);return e._runtimeAnimations.push(o),e.animationAdded.raiseEvent(i,o),o}i_.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=e.index;if(l(i))return aW(this,n[i],e);let o=n.length;for(let r=0;r<o;++r)if(n[r].name===e.name){i=r;break}return aW(this,n[i],e)};i_.prototype.addAll=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=[],o=n.length;for(let r=0;r<o;++r){let s=aW(this,n[r],e);i.push(s)}return i};i_.prototype.remove=function(e){if(!l(e))return!1;let t=this._runtimeAnimations,n=t.indexOf(e);return n!==-1?(t.splice(n,1),this.animationRemoved.raiseEvent(this._model,e),!0):!1};i_.prototype.removeAll=function(){let e=this._model,t=this._runtimeAnimations,n=t.length;this._runtimeAnimations.length=0;for(let i=0;i<n;++i)this.animationRemoved.raiseEvent(e,t[i])};i_.prototype.contains=function(e){return l(e)?this._runtimeAnimations.indexOf(e)!==-1:!1};i_.prototype.get=function(e){return this._runtimeAnimations[e]};var OU=[];function Lze(e,t,n){return function(){e.animationRemoved.raiseEvent(t,n)}}i_.prototype.update=function(e){let t=this._runtimeAnimations,n=t.length;if(n===0)return this._previousTime=void 0,!1;if(!this.animateWhilePaused&&J.equals(e.time,this._previousTime))return!1;this._previousTime=J.clone(e.time,this._previousTime);let i=!1,o=e.time,r=this._model;for(let s=0;s<n;++s){let a=t[s];l(a._computedStartTime)||(a._computedStartTime=J.addSeconds(y(a.startTime,o),a.delay,new J)),l(a._duration)||(a._duration=a.localStopTime*(1/a.multiplier));let c=a._computedStartTime,u=a._duration,f=a.stopTime,d=J.lessThanOrEquals(c,o),p=l(f)&&J.greaterThan(o,f),g=0;if(u!==0){let b=J.secondsDifference(p?f:o,c);g=l(a._animationTime)?a._animationTime(u,b):b/u}let m=a.loop===Bl.REPEAT||a.loop===Bl.MIRRORED_REPEAT,x=(d||m&&!l(a.startTime))&&(g<=1||m)&&!p;if(g===a._prevAnimationDelta){let b=a._state===Xd.STOPPED;if(x!==b)continue}if(a._prevAnimationDelta=g,x||a._state===Xd.ANIMATING){if(x&&a._state===Xd.STOPPED&&(a._state=Xd.ANIMATING,a.start.numberOfListeners>0&&e.afterRender.push(a._raiseStartEvent)),a.loop===Bl.REPEAT)g=g-Math.floor(g);else if(a.loop===Bl.MIRRORED_REPEAT){let T=Math.floor(g),C=g-T;g=T%2===1?1-C:C}a.reverse&&(g=1-g);let b=g*u*a.multiplier;b=R.clamp(b,a.localStartTime,a.localStopTime),a.animate(b),a.update.numberOfListeners>0&&(a._updateEventTime=b,e.afterRender.push(a._raiseUpdateEvent)),i=!0,x||(a._state=Xd.STOPPED,a.stop.numberOfListeners>0&&e.afterRender.push(a._raiseStopEvent),a.removeOnStop&&OU.push(a))}}n=OU.length;for(let s=0;s<n;++s){let a=OU[s];t.splice(t.indexOf(a),1),e.afterRender.push(Lze(this,r,a))}return OU.length=0,i};var xR=i_;function db(e){this._model=e.model,this._featureTable=e.featureTable,this._featureId=e.featureId,this._color=void 0}Object.defineProperties(db.prototype,{show:{get:function(){return this._featureTable.getShow(this._featureId)},set:function(e){this._featureTable.setShow(this._featureId,e)}},color:{get:function(){return l(this._color)||(this._color=new H),this._featureTable.getColor(this._featureId,this._color)},set:function(e){this._featureTable.setColor(this._featureId,e)}},primitive:{get:function(){return this._model}},featureTable:{get:function(){return this._featureTable}},featureId:{get:function(){return this._featureId}}});db.prototype.hasProperty=function(e){return this._featureTable.hasProperty(this._featureId,e)};db.prototype.getProperty=function(e){return this._featureTable.getProperty(this._featureId,e)};db.prototype.getPropertyInherited=function(e){return this._featureTable.hasPropertyBySemantic(this._featureId,e)?this._featureTable.getPropertyBySemantic(this._featureId,e):this._featureTable.getProperty(this._featureId,e)};db.prototype.getPropertyIds=function(e){return this._featureTable.getPropertyIds(e)};db.prototype.setProperty=function(e,t){return this._featureTable.setProperty(this._featureId,e,t)};var bR=db;var TR={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};TR.getStyleCommandsNeeded=function(e,t){return t===0?TR.ALL_OPAQUE:t===e?TR.ALL_TRANSLUCENT:TR.OPAQUE_AND_TRANSLUCENT};var Kd=Object.freeze(TR);var _y={GLTF:"GLTF",TILE_GLTF:"TILE_GLTF",TILE_B3DM:"B3DM",TILE_I3DM:"I3DM",TILE_PNTS:"PNTS",TILE_GEOJSON:"TILE_GEOJSON"};_y.is3DTiles=function(e){switch(e){case _y.TILE_GLTF:case _y.TILE_B3DM:case _y.TILE_I3DM:case _y.TILE_PNTS:case _y.TILE_GEOJSON:return!0;case _y.GLTF:return!1}};var sr=Object.freeze(_y);function Dr(e){let t=e.model,n=e.propertyTable;this._propertyTable=n,this._model=t,this._features=void 0,this._featuresLength=0,this._batchTexture=void 0,this._styleCommandsNeededDirty=!1,this._styleCommandsNeeded=Kd.ALL_OPAQUE,Nze(this)}Object.defineProperties(Dr.prototype,{batchTexture:{get:function(){return this._batchTexture}},featuresLength:{get:function(){return this._featuresLength}},batchTextureByteLength:{get:function(){return l(this._batchTexture)?this._batchTexture.byteLength:0}},styleCommandsNeededDirty:{get:function(){return this._styleCommandsNeededDirty}}});function Nze(e){let t=e._model,n=sr.is3DTiles(t.type),i=e._propertyTable.count;if(i===0)return;let o,r=new Array(i);if(n){let s=t.content;for(o=0;o<i;o++)r[o]=new Ns(s,o)}else for(o=0;o<i;o++)r[o]=new bR({model:t,featureId:o,featureTable:e});e._features=r,e._featuresLength=i,e._batchTexture=new Yc({featuresLength:i,owner:e,statistics:n?t.content.tileset.statistics:void 0})}Dr.prototype.update=function(e){this._styleCommandsNeededDirty=!1,this._batchTexture.update(void 0,e);let t=Kd.getStyleCommandsNeeded(this._featuresLength,this._batchTexture.translucentFeaturesLength);this._styleCommandsNeeded!==t&&(this._styleCommandsNeededDirty=!0,this._styleCommandsNeeded=t)};Dr.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};Dr.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};Dr.prototype.getShow=function(e){return this._batchTexture.getShow(e)};Dr.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};Dr.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};Dr.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};Dr.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};Dr.prototype.getFeature=function(e){return this._features[e]};Dr.prototype.hasProperty=function(e,t){return this._propertyTable.hasProperty(e,t)};Dr.prototype.hasPropertyBySemantic=function(e,t){return this._propertyTable.hasPropertyBySemantic(e,t)};Dr.prototype.getProperty=function(e,t){return this._propertyTable.getProperty(e,t)};Dr.prototype.getPropertyBySemantic=function(e,t){return this._propertyTable.getPropertyBySemantic(e,t)};Dr.prototype.getPropertyIds=function(e){return this._propertyTable.getPropertyIds(e)};Dr.prototype.setProperty=function(e,t,n){return this._propertyTable.setProperty(e,t,n)};Dr.prototype.isClass=function(e,t){return this._propertyTable.isClass(e,t)};Dr.prototype.isExactClass=function(e,t){return this._propertyTable.isExactClass(e,t)};Dr.prototype.getExactClassName=function(e){return this._propertyTable.getExactClassName(e)};var Fze=new H;Dr.prototype.applyStyle=function(e){if(!l(e)){this.setAllColor(Yc.DEFAULT_COLOR_VALUE),this.setAllShow(Yc.DEFAULT_SHOW_VALUE);return}for(let t=0;t<this._featuresLength;t++){let n=this.getFeature(t),i=l(e.color)?y(e.color.evaluateColor(n,Fze),Yc.DEFAULT_COLOR_VALUE):Yc.DEFAULT_COLOR_VALUE,o=l(e.show)?y(e.show.evaluate(n),Yc.DEFAULT_SHOW_VALUE):Yc.DEFAULT_SHOW_VALUE;this.setColor(t,i),this.setShow(t,o)}};Dr.prototype.isDestroyed=function(){return!1};Dr.prototype.destroy=function(e){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var AR=Dr;var CR=` precision highp float; czm_modelMaterial defaultModelMaterial() { czm_modelMaterial material; material.diffuse = vec3(0.0); material.specular = vec3(1.0); material.roughness = 1.0; material.occlusion = 1.0; material.normalEC = vec3(0.0, 0.0, 1.0); material.emissive = vec3(0.0); material.alpha = 1.0; return material; } vec4 handleAlpha(vec3 color, float alpha) { #ifdef ALPHA_MODE_MASK if (alpha < u_alphaCutoff) { discard; } #endif return vec4(color, alpha); } SelectedFeature selectedFeature; void main() { #ifdef HAS_MODEL_SPLITTER modelSplitterStage(); #endif czm_modelMaterial material = defaultModelMaterial(); ProcessedAttributes attributes; geometryStage(attributes); FeatureIds featureIds; featureIdStage(featureIds, attributes); Metadata metadata; MetadataClass metadataClass; MetadataStatistics metadataStatistics; metadataStage(metadata, metadataClass, metadataStatistics, attributes); #ifdef HAS_SELECTED_FEATURE_ID selectedFeatureIdStage(selectedFeature, featureIds); #endif #ifndef CUSTOM_SHADER_REPLACE_MATERIAL materialStage(material, attributes, selectedFeature); #endif #ifdef HAS_CUSTOM_FRAGMENT_SHADER customShaderStage(material, attributes, featureIds, metadata, metadataClass, metadataStatistics); #endif lightingStage(material, attributes); #ifdef HAS_SELECTED_FEATURE_ID cpuStylingStage(material, selectedFeature); #endif #ifdef HAS_MODEL_COLOR modelColorStage(material); #endif #ifdef HAS_PRIMITIVE_OUTLINE primitiveOutlineStage(material); #endif vec4 color = handleAlpha(material.diffuse, material.alpha); #ifdef HAS_CLIPPING_PLANES modelClippingPlanesStage(color); #endif #ifdef ENABLE_CLIPPING_POLYGONS modelClippingPolygonsStage(); #endif #if defined(HAS_SILHOUETTE) && defined(HAS_NORMALS) silhouetteStage(color); #endif #ifdef HAS_ATMOSPHERE atmosphereStage(color, attributes); #endif out_FragColor = color; } `;var ER=`precision highp float; czm_modelVertexOutput defaultVertexOutput(vec3 positionMC) { czm_modelVertexOutput vsOutput; vsOutput.positionMC = positionMC; vsOutput.pointSize = 1.0; return vsOutput; } void main() { // Initialize the attributes struct with all // attributes except quantized ones. ProcessedAttributes attributes; initializeAttributes(attributes); // Dequantize the quantized ones and add them to the // attributes struct. #ifdef USE_DEQUANTIZATION dequantizationStage(attributes); #endif #ifdef HAS_MORPH_TARGETS morphTargetsStage(attributes); #endif #ifdef HAS_SKINNING skinningStage(attributes); #endif #ifdef HAS_PRIMITIVE_OUTLINE primitiveOutlineStage(); #endif // Compute the bitangent according to the formula in the glTF spec. // Normal and tangents can be affected by morphing and skinning, so // the bitangent should not be computed until their values are finalized. #ifdef HAS_BITANGENTS attributes.bitangentMC = normalize(cross(attributes.normalMC, attributes.tangentMC) * attributes.tangentSignMC); #endif FeatureIds featureIds; featureIdStage(featureIds, attributes); #ifdef HAS_SELECTED_FEATURE_ID SelectedFeature feature; selectedFeatureIdStage(feature, featureIds); // Handle any show properties that come from the style. cpuStylingStage(attributes.positionMC, feature); #endif #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING) // The scene mode 2D pipeline stage and instancing stage add a different // model view matrix to accurately project the model to 2D. However, the // output positions and normals should be transformed by the 3D matrices // to keep the data the same for the fragment shader. mat4 modelView = czm_modelView3D; mat3 normal = czm_normal3D; #else // These are used for individual model projection because they will // automatically change based on the scene mode. mat4 modelView = czm_modelView; mat3 normal = czm_normal; #endif // Update the position for this instance in place #ifdef HAS_INSTANCING // The legacy instance stage is used when rendering i3dm models that // encode instances transforms in world space, as opposed to glTF models // that use EXT_mesh_gpu_instancing, where instance transforms are encoded // in object space. #ifdef USE_LEGACY_INSTANCING mat4 instanceModelView; mat3 instanceModelViewInverseTranspose; legacyInstancingStage(attributes, instanceModelView, instanceModelViewInverseTranspose); modelView = instanceModelView; normal = instanceModelViewInverseTranspose; #else instancingStage(attributes); #endif #ifdef USE_PICKING v_pickColor = a_pickColor; #endif #endif Metadata metadata; MetadataClass metadataClass; MetadataStatistics metadataStatistics; metadataStage(metadata, metadataClass, metadataStatistics, attributes); #ifdef HAS_VERTICAL_EXAGGERATION verticalExaggerationStage(attributes); #endif #ifdef HAS_CUSTOM_VERTEX_SHADER czm_modelVertexOutput vsOutput = defaultVertexOutput(attributes.positionMC); customShaderStage(vsOutput, attributes, featureIds, metadata, metadataClass, metadataStatistics); #endif // Compute the final position in each coordinate system needed. // This returns the value that will be assigned to gl_Position. vec4 positionClip = geometryStage(attributes, modelView, normal); // This must go after the geometry stage as it needs v_positionWC #ifdef HAS_ATMOSPHERE atmosphereStage(attributes); #endif #ifdef ENABLE_CLIPPING_POLYGONS modelClippingPolygonsStage(attributes); #endif #ifdef HAS_SILHOUETTE silhouetteStage(attributes, positionClip); #endif #ifdef HAS_POINT_CLOUD_SHOW_STYLE float show = pointCloudShowStylingStage(attributes, metadata); #else float show = 1.0; #endif #ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING show *= pointCloudBackFaceCullingStage(); #endif #ifdef HAS_POINT_CLOUD_COLOR_STYLE v_pointCloudColor = pointCloudColorStylingStage(attributes, metadata); #endif #ifdef PRIMITIVE_TYPE_POINTS #ifdef HAS_CUSTOM_VERTEX_SHADER gl_PointSize = vsOutput.pointSize; #elif defined(HAS_POINT_CLOUD_POINT_SIZE_STYLE) || defined(HAS_POINT_CLOUD_ATTENUATION) gl_PointSize = pointCloudPointSizeStylingStage(attributes, metadata); #else gl_PointSize = 1.0; #endif gl_PointSize *= show; #endif gl_Position = show * positionClip; } `;function lW(e){e=y(e,y.EMPTY_OBJECT);let t=e.command,n=e.primitiveRenderResources,i=n.model;this._command=t,this._model=i,this._runtimePrimitive=n.runtimePrimitive,this._modelMatrix=t.modelMatrix,this._boundingVolume=t.boundingVolume,this._cullFace=t.renderState.cull.face;let o=i.classificationType;this._classificationType=o,this._classifiesTerrain=o!==Vn.CESIUM_3D_TILE,this._classifies3DTiles=o!==Vn.TERRAIN,this._useDebugWireframe=i._enableDebugWireframe&&i.debugWireframe,this._pickId=n.pickId,this._commandListTerrain=[],this._commandList3DTiles=[],this._commandListIgnoreShow=[],this._commandListDebugWireframe=[],this._commandListTerrainPicking=[],this._commandList3DTilesPicking=[],Uze(this)}function Bze(e){return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:e,frontOperation:{fail:lt.KEEP,zFail:lt.DECREMENT_WRAP,zPass:lt.KEEP},backFunction:e,backOperation:{fail:lt.KEEP,zFail:lt.INCREMENT_WRAP,zPass:lt.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:tc.LESS_OR_EQUAL},depthMask:!1}}var kze={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND},Vze={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:lt.ZERO,zFail:lt.ZERO,zPass:lt.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1},cse=[];function Uze(e){let t=e._command,n=cse;if(e._useDebugWireframe){t.pass=Ee.OPAQUE,n.length=0,n.push(t),e._commandListDebugWireframe=SR(e,n,e._commandListDebugWireframe);let r=e._commandListDebugWireframe,s=r.length;for(let a=0;a<s;a++){let c=r[a];c.count*=2,c.offset*=2}return}let o=e.model.allowPicking;if(e._classifiesTerrain){let r=Ee.TERRAIN_CLASSIFICATION,s=cW(t,r),a=sse(t,r);n.length=0,n.push(s,a),e._commandListTerrain=SR(e,n,e._commandListTerrain),o&&(e._commandListTerrainPicking=ase(e,n,e._commandListTerrainPicking))}if(e._classifies3DTiles){let r=Ee.CESIUM_3D_TILE_CLASSIFICATION,s=cW(t,r),a=sse(t,r);n.length=0,n.push(s,a),e._commandList3DTiles=SR(e,n,e._commandList3DTiles),o&&(e._commandList3DTilesPicking=ase(e,n,e._commandList3DTilesPicking))}}function SR(e,t,n){let i=e._runtimePrimitive,o=i.batchLengths,r=i.batchOffsets,s=o.length,a=t.length;for(let c=0;c<s;c++){let u=o[c],f=r[c];for(let d=0;d<a;d++){let p=t[d],g=Ze.shallowClone(p);g.count=u,g.offset=f,n.push(g)}}return n}function cW(e,t){let n=Ze.shallowClone(e);n.cull=!1,n.pass=t;let i=t===Ee.TERRAIN_CLASSIFICATION?Un.ALWAYS:Un.EQUAL,o=Bze(i);return n.renderState=Ve.fromCache(o),n}function sse(e,t){let n=Ze.shallowClone(e);return n.cull=!1,n.pass=t,n.renderState=Ve.fromCache(kze),n}var zze=[];function ase(e,t,n){let i=Ve.fromCache(Vze),o=t[0],r=t[1],s=Ze.shallowClone(o);s.cull=!0,s.pickOnly=!0;let a=Ze.shallowClone(r);a.cull=!0,a.pickOnly=!0,a.renderState=i,a.pickId=e._pickId;let c=zze;return c.length=0,c.push(s,a),SR(e,c,n)}Object.defineProperties(lW.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},batchLengths:{get:function(){return this._runtimePrimitive.batchLengths}},batchOffsets:{get:function(){return this._runtimePrimitive.batchOffsets}},model:{get:function(){return this._model}},classificationType:{get:function(){return this._classificationType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix);let t=this._runtimePrimitive.boundingSphere;this._boundingVolume=ae.transform(t,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace=e}}});lW.prototype.pushCommands=function(e,t){let n=e.passes;if(n.render){if(this._useDebugWireframe){t.push.apply(t,this._commandListDebugWireframe);return}if(this._classifiesTerrain&&t.push.apply(t,this._commandListTerrain),this._classifies3DTiles&&t.push.apply(t,this._commandList3DTiles),e.invertClassification&&this._classifies3DTiles){if(this._commandListIgnoreShow.length===0){let o=Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,r=cW(this._command,o),s=cse;s.length=0,s.push(r),this._commandListIgnoreShow=SR(this,s,this._commandListIgnoreShow)}t.push.apply(t,this._commandListIgnoreShow)}}return n.pick&&(this._classifiesTerrain&&t.push.apply(t,this._commandListTerrainPicking),this._classifies3DTiles&&t.push.apply(t,this._commandList3DTilesPicking)),t};var vR=lW;function MU(e){e=y(e,y.EMPTY_OBJECT);let t=e.command,n=e.primitiveRenderResources,i=n.model;this._model=i;let o=n.runtimePrimitive;this._runtimePrimitive=o;let r=t.pass===Ee.TRANSLUCENT,a=!o.primitive.material.doubleSided&&!r,c=n.hasSilhouette,u=!r&&!c,f=n.hasSkipLevelOfDetail&&!r,d=c;this._command=t,this._modelMatrix=F.clone(t.modelMatrix),this._boundingVolume=ae.clone(t.boundingVolume),this._modelMatrix2D=new F,this._boundingVolume2D=new ae,this._modelMatrix2DDirty=!1,this._backFaceCulling=t.renderState.cull.enabled,this._cullFace=t.renderState.cull.face,this._shadows=i.shadows,this._debugShowBoundingVolume=t.debugShowBoundingVolume,this._usesBackFaceCulling=a,this._needsTranslucentCommand=u,this._needsSkipLevelOfDetailCommands=f,this._needsSilhouetteCommands=d,this._originalCommand=void 0,this._translucentCommand=void 0,this._skipLodBackfaceCommand=void 0,this._skipLodStencilCommand=void 0,this._silhouetteModelCommand=void 0,this._silhouetteColorCommand=void 0,this._derivedCommands=[],this._has2DCommands=!1,Hze(this)}function o_(e){this.command=e.command,this.updateShadows=e.updateShadows,this.updateBackFaceCulling=e.updateBackFaceCulling,this.updateCullFace=e.updateCullFace,this.updateDebugShowBoundingVolume=e.updateDebugShowBoundingVolume,this.is2D=y(e.is2D,!1),this.derivedCommand2D=void 0}o_.clone=function(e){return new o_({command:e.command,updateShadows:e.updateShadows,updateBackFaceCulling:e.updateBackFaceCulling,updateCullFace:e.updateCullFace,updateDebugShowBoundingVolume:e.updateDebugShowBoundingVolume,is2D:e.is2D,derivedCommand2D:e.derivedCommand2D})};function Hze(e){let t=e._command;t.modelMatrix=e._modelMatrix,t.boundingVolume=e._boundingVolume;let n=e._model,i=e._usesBackFaceCulling,o=e._derivedCommands;e._originalCommand=new o_({command:t,updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0,is2D:!1}),o.push(e._originalCommand),e._needsTranslucentCommand&&(e._translucentCommand=new o_({command:Kze(t),updateShadows:!0,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!0}),o.push(e._translucentCommand)),e._needsSkipLevelOfDetailCommands&&(e._skipLodBackfaceCommand=new o_({command:t4e(t),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:i,updateDebugShowBoundingVolume:!1}),e._skipLodStencilCommand=new o_({command:n4e(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),o.push(e._skipLodBackfaceCommand),o.push(e._skipLodStencilCommand)),e._needsSilhouetteCommands&&(e._silhouetteModelCommand=new o_({command:Zze(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),e._silhouetteColorCommand=new o_({command:$ze(t,n),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!1}),o.push(e._silhouetteModelCommand),o.push(e._silhouetteColorCommand))}Object.defineProperties(MU.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},model:{get:function(){return this._model}},primitiveType:{get:function(){return this._command.primitiveType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix),this._modelMatrix2DDirty=!0,this._boundingVolume=ae.transform(this.runtimePrimitive.boundingSphere,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},shadows:{get:function(){return this._shadows},set:function(e){this._shadows=e,Wze(this)}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){this._backFaceCulling!==e&&(this._backFaceCulling=e,jze(this))}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace!==e&&(this._cullFace=e,qze(this))}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolume=e,Yze(this))}}});function Gze(e,t){let n=e._modelMatrix;e._modelMatrix2D=F.clone(n,e._modelMatrix2D),e._modelMatrix2D[13]-=R.sign(n[13])*2*R.PI*t.mapProjection.ellipsoid.maximumRadius,e._boundingVolume2D=ae.transform(e.runtimePrimitive.boundingSphere,e._modelMatrix2D,e._boundingVolume2D)}function Wze(e){let t=e.shadows,n=yn.castShadows(t),i=yn.receiveShadows(t),o=e._derivedCommands;for(let r=0;r<o.length;++r){let s=o[r];if(s.updateShadows){let a=s.command;a.castShadows=n,a.receiveShadows=i}}}function jze(e){let t=e.backFaceCulling,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateBackFaceCulling){let r=o.command,s=He(r.renderState,!0);s.cull.enabled=t,r.renderState=Ve.fromCache(s)}}}function qze(e){let t=e.cullFace,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateCullFace){let r=o.command,s=He(r.renderState,!0);s.cull.face=t,r.renderState=Ve.fromCache(s)}}}function Yze(e){let t=e.debugShowBoundingVolume,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateDebugShowBoundingVolume){let r=o.command;r.debugShowBoundingVolume=t}}}MU.prototype.pushCommands=function(e,t){let n=lse(this,e);n&&!this._has2DCommands&&(Xze(this),this._has2DCommands=!0,this._modelMatrix2DDirty=!0),this._modelMatrix2DDirty&&(Gze(this,e),this._modelMatrix2DDirty=!1);let i=this.model.styleCommandsNeeded;if(!(this._needsTranslucentCommand&&l(i)&&(i!==Kd.ALL_OPAQUE&&GC(t,this._translucentCommand,n),i===Kd.ALL_TRANSLUCENT))){if(this._needsSkipLevelOfDetailCommands){let{tileset:o,tile:r}=this._model.content;if(o.hasMixedContent){r._finalResolution||GC(o._backfaceCommands,this._skipLodBackfaceCommand,n),Qze(this,r,n),GC(t,this._skipLodStencilCommand,n);return}}if(this._needsSilhouetteCommands){GC(t,this._silhouetteModelCommand,n);return}return GC(t,this._originalCommand,n),t}};MU.prototype.pushSilhouetteCommands=function(e,t){let n=lse(this,e);return GC(t,this._silhouetteColorCommand,n),t};function GC(e,t,n){e.push(t.command),n&&e.push(t.derivedCommand2D.command)}function lse(e,t){if(t.mode!==ne.SCENE2D||e.model._projectTo2D)return!1;let i=e.model.sceneGraph._boundingSphere2D,o=i.center.y-i.radius,r=i.center.y+i.radius,s=t.mapProjection.ellipsoid.maximumRadius*R.PI;return o<s&&r>s||o<-s&&r>-s}function HC(e,t){if(!l(t))return;let n=o_.clone(t),i=Ze.shallowClone(t.command);return i.modelMatrix=e._modelMatrix2D,i.boundingVolume=e._boundingVolume2D,n.command=i,n.updateShadows=!1,n.is2D=!0,t.derivedCommand2D=n,e._derivedCommands.push(n),n}function Xze(e){HC(e,e._originalCommand),HC(e,e._translucentCommand),HC(e,e._skipLodBackfaceCommand),HC(e,e._skipLodStencilCommand),HC(e,e._silhouetteModelCommand),HC(e,e._silhouetteColorCommand)}function Kze(e){let t=Ze.shallowClone(e);t.pass=Ee.TRANSLUCENT;let n=He(e.renderState,!0);return n.cull.enabled=!1,n.depthMask=!1,n.blending=un.ALPHA_BLEND,t.renderState=Ve.fromCache(n),t}function Zze(e,t){let n=t._silhouetteId%255,i=Ze.shallowClone(e),o=He(e.renderState,!0);return o.stencilTest={enabled:!0,frontFunction:ee.ALWAYS,backFunction:ee.ALWAYS,reference:n,mask:-1,frontOperation:{fail:ee.KEEP,zFail:ee.KEEP,zPass:ee.REPLACE},backOperation:{fail:ee.KEEP,zFail:ee.KEEP,zPass:ee.REPLACE}},t.isInvisible()&&(o.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),i.renderState=Ve.fromCache(o),i}function $ze(e,t){let n=t._silhouetteId%255,i=Ze.shallowClone(e),o=He(e.renderState,!0);o.cull.enabled=!1,(e.pass===Ee.TRANSLUCENT||t.silhouetteColor.alpha<1)&&(i.pass=Ee.TRANSLUCENT,o.depthMask=!1,o.blending=un.ALPHA_BLEND),o.stencilTest={enabled:!0,frontFunction:ee.NOTEQUAL,backFunction:ee.NOTEQUAL,reference:n,mask:-1,frontOperation:{fail:ee.KEEP,zFail:ee.KEEP,zPass:ee.KEEP},backOperation:{fail:ee.KEEP,zFail:ee.KEEP,zPass:ee.KEEP}};let s=He(e.uniformMap);return s.model_silhouettePass=function(){return!0},i.renderState=Ve.fromCache(o),i.uniformMap=s,i.castShadows=!1,i.receiveShadows=!1,i}function Qze(e,t,n){let i=e._skipLodStencilCommand,o=i.command,r=t._selectionDepth,s=Jze(o);if(r!==s){let a=e4e(r),c=He(o.renderState,!0);c.stencilTest.reference=a,o.renderState=Ve.fromCache(c),n&&(i.derivedCommand2D.renderState=c)}}function Jze(e){return(e.renderState.stencilTest.reference&Ft.SKIP_LOD_MASK)>>>Ft.SKIP_LOD_BIT_SHIFT}function e4e(e){return Ft.CESIUM_3D_TILE_MASK|e<<Ft.SKIP_LOD_BIT_SHIFT}function t4e(e){let t=Ze.shallowClone(e),n=He(e.renderState,!0);n.cull.enabled=!0,n.cull.face=hi.FRONT,n.colorMask={red:!1,green:!1,blue:!1,alpha:!1},n.polygonOffset={enabled:!0,factor:5,units:5};let i=He(t.uniformMap),o=new z(5,5);return i.u_polygonOffset=function(){return o},t.renderState=Ve.fromCache(n),t.uniformMap=i,t.castShadows=!1,t.receiveShadows=!1,t}function n4e(e){let t=Ze.shallowClone(e),n=He(e.renderState,!0),{stencilTest:i}=n;return i.enabled=!0,i.mask=Ft.SKIP_LOD_MASK,i.reference=Ft.CESIUM_3D_TILE_MASK,i.frontFunction=Un.GREATER_OR_EQUAL,i.frontOperation.zPass=lt.REPLACE,i.backFunction=Un.GREATER_OR_EQUAL,i.backOperation.zPass=lt.REPLACE,n.stencilMask=Ft.CESIUM_3D_TILE_MASK|Ft.SKIP_LOD_MASK,t.renderState=Ve.fromCache(n),t}var wR=MU;function i4e(e,t){let n=e.shaderBuilder;n.addVertexLines(ER),n.addFragmentLines(CR);let i=o4e(e),o=new ei({context:t.context,indexBuffer:i,attributes:e.attributes}),r=e.model;r._pipelineResources.push(o);let s=n.buildShaderProgram(t.context);r._pipelineResources.push(s);let a=e.alphaOptions.pass,c=r.sceneGraph,u=t.mode===ne.SCENE3D,f,d;if(!u&&!t.scene3DOnly&&r._projectTo2D)f=F.multiplyTransformation(c._computedModelMatrix,e.runtimeNode.computedTransform,new F),d=e.runtimePrimitive.boundingSphere2D;else{let C=u?c._computedModelMatrix:c._computedModelMatrix2D;f=F.multiplyTransformation(C,e.runtimeNode.computedTransform,new F),d=ae.transform(e.boundingSphere,f,e.boundingSphere)}let p=He(Ve.fromCache(e.renderStateOptions),!0);p.cull.face=Xt.getCullFace(f,e.primitiveType),p=Ve.fromCache(p);let g=l(r.classificationType),m=g?!1:yn.castShadows(r.shadows),x=g?!1:yn.receiveShadows(r.shadows),b=g?void 0:e.pickId,T=new Ze({boundingVolume:d,modelMatrix:f,uniformMap:e.uniformMap,renderState:p,vertexArray:o,shaderProgram:s,cull:r.cull,pass:a,count:e.count,owner:r,pickId:b,instanceCount:e.instanceCount,primitiveType:e.primitiveType,debugShowBoundingVolume:r.debugShowBoundingVolume,castShadows:m,receiveShadows:x});return g?new vR({primitiveRenderResources:e,command:T}):new wR({primitiveRenderResources:e,command:T})}function o4e(e){let t=e.wireframeIndexBuffer;if(l(t))return t;let n=e.indices;if(l(n))return n.buffer}var DR=i4e;var hb={VERTEX:0,FRAGMENT:1,BOTH:2};hb.includesVertexShader=function(e){return e===hb.VERTEX||e===hb.BOTH};hb.includesFragmentShader=function(e){return e===hb.FRAGMENT||e===hb.BOTH};var ge=Object.freeze(hb);var use={name:"TilesetPipelineStage"};use.process=function(e,t,n){if(t.hasSkipLevelOfDetail(n)){e.shaderBuilder.addDefine("POLYGON_OFFSET",void 0,ge.FRAGMENT);let r={u_polygonOffset:function(){return z.ZERO}};e.uniformMap=_t(r,e.uniformMap),e.hasSkipLevelOfDetail=!0}let i=e.renderStateOptions;i.stencilTest=Ft.setCesium3DTileBit(),i.stencilMask=Ft.CESIUM_3D_TILE_MASK};var PR=use;var IR=`// robust iterative solution without trig functions // https://github.com/0xfaded/ellipse_demo/issues/1 // https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse // // This version uses only a single iteration for best performance. For fog // rendering, the difference is negligible. vec2 nearestPointOnEllipseFast(vec2 pos, vec2 radii) { vec2 p = abs(pos); vec2 inverseRadii = 1.0 / radii; vec2 evoluteScale = (radii.x * radii.x - radii.y * radii.y) * vec2(1.0, -1.0) * inverseRadii; // We describe the ellipse parametrically: v = radii * vec2(cos(t), sin(t)) // but store the cos and sin of t in a vec2 for efficiency. // Initial guess: t = cos(pi/4) vec2 tTrigs = vec2(0.70710678118); vec2 v = radii * tTrigs; // Find the evolute of the ellipse (center of curvature) at v. vec2 evolute = evoluteScale * tTrigs * tTrigs * tTrigs; // Find the (approximate) intersection of p - evolute with the ellipsoid. vec2 q = normalize(p - evolute) * length(v - evolute); // Update the estimate of t. tTrigs = (q + evolute) * inverseRadii; tTrigs = normalize(clamp(tTrigs, 0.0, 1.0)); v = radii * tTrigs; return v * sign(pos); } vec3 computeEllipsoidPositionWC(vec3 positionMC) { // Get the world-space position and project onto a meridian plane of // the ellipsoid vec3 positionWC = (czm_model * vec4(positionMC, 1.0)).xyz; vec2 positionEllipse = vec2(length(positionWC.xy), positionWC.z); vec2 nearestPoint = nearestPointOnEllipseFast(positionEllipse, czm_ellipsoidRadii.xz); // Reconstruct a 3D point in world space return vec3(nearestPoint.x * normalize(positionWC.xy), nearestPoint.y); } void applyFog(inout vec4 color, vec4 groundAtmosphereColor, vec3 lightDirection, float distanceToCamera) { vec3 fogColor = groundAtmosphereColor.rgb; // If there is dynamic lighting, apply that to the fog. const float NONE = 0.0; if (czm_atmosphereDynamicLighting != NONE) { float darken = clamp(dot(normalize(czm_viewerPositionWC), lightDirection), czm_fogMinimumBrightness, 1.0); fogColor *= darken; } // Tonemap if HDR rendering is disabled #ifndef HDR fogColor.rgb = czm_acesTonemapping(fogColor.rgb); fogColor.rgb = czm_inverseGamma(fogColor.rgb); #endif // Matches the constant in GlobeFS.glsl. This makes the fog falloff // more gradual. const float fogModifier = 0.15; vec3 withFog = czm_fog(distanceToCamera, color.rgb, fogColor, fogModifier); color = vec4(withFog, color.a); } void atmosphereStage(inout vec4 color, in ProcessedAttributes attributes) { vec3 rayleighColor; vec3 mieColor; float opacity; vec3 positionWC; vec3 lightDirection; // When the camera is in space, compute the position per-fragment for // more accurate ground atmosphere. All other cases will use // // The if condition will be added in https://github.com/CesiumGS/cesium/issues/11717 if (false) { positionWC = computeEllipsoidPositionWC(attributes.positionMC); lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC, czm_atmosphereDynamicLighting); // The fog color is derived from the ground atmosphere color czm_computeGroundAtmosphereScattering( positionWC, lightDirection, rayleighColor, mieColor, opacity ); } else { positionWC = attributes.positionWC; lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC, czm_atmosphereDynamicLighting); rayleighColor = v_atmosphereRayleighColor; mieColor = v_atmosphereMieColor; opacity = v_atmosphereOpacity; } //color correct rayleigh and mie colors const bool ignoreBlackPixels = true; rayleighColor = czm_applyHSBShift(rayleighColor, czm_atmosphereHsbShift, ignoreBlackPixels); mieColor = czm_applyHSBShift(mieColor, czm_atmosphereHsbShift, ignoreBlackPixels); vec4 groundAtmosphereColor = czm_computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity); if (u_isInFog) { float distanceToCamera = length(attributes.positionEC); applyFog(color, groundAtmosphereColor, lightDirection, distanceToCamera); } else { // Ground atmosphere } } `;var RR=`void atmosphereStage(ProcessedAttributes attributes) { vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(v_positionWC, czm_atmosphereDynamicLighting); czm_computeGroundAtmosphereScattering( // This assumes the geometry stage came before this. v_positionWC, lightDirection, v_atmosphereRayleighColor, v_atmosphereMieColor, v_atmosphereOpacity ); } `;var fse={name:"AtmospherePipelineStage"};fse.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_ATMOSPHERE",void 0,ge.BOTH),i.addDefine("COMPUTE_POSITION_WC_ATMOSPHERE",void 0,ge.BOTH),i.addVarying("vec3","v_atmosphereRayleighColor"),i.addVarying("vec3","v_atmosphereMieColor"),i.addVarying("float","v_atmosphereOpacity"),i.addVertexLines([RR]),i.addFragmentLines([IR]),i.addUniform("bool","u_isInFog",ge.FRAGMENT),e.uniformMap.u_isInFog=function(){let o=h.distance(n.camera.positionWC,t.boundingSphere.center);return R.fog(o,n.fog.density)>R.EPSILON3}};var OR=fse;var MR=`/** * Compute some metrics for a procedural sky lighting model * * @param {vec3} positionWC The position of the fragment in world coordinates. * @param {vec3} reflectionWC A unit vector in the direction of the reflection, in world coordinates. * @return {vec3} The dot products of the horizon and reflection directions with the nadir, and an atmosphere boundary distance. */ vec3 getProceduralSkyMetrics(vec3 positionWC, vec3 reflectionWC) { // Figure out if the reflection vector hits the ellipsoid float horizonDotNadir = 1.0 - min(1.0, czm_ellipsoidRadii.x / length(positionWC)); float reflectionDotNadir = dot(reflectionWC, normalize(positionWC)); float atmosphereHeight = 0.05; float smoothstepHeight = smoothstep(0.0, atmosphereHeight, horizonDotNadir); return vec3(horizonDotNadir, reflectionDotNadir, smoothstepHeight); } /** * Compute the diffuse irradiance for a procedural sky lighting model * * @param {vec3} skyMetrics The dot products of the horizon and reflection directions with the nadir, and an atmosphere boundary distance. * @return {vec3} The computed diffuse irradiance */ vec3 getProceduralDiffuseIrradiance(vec3 skyMetrics) { vec3 blueSkyDiffuseColor = vec3(0.7, 0.85, 0.9); float diffuseIrradianceFromEarth = (1.0 - skyMetrics.x) * (skyMetrics.y * 0.25 + 0.75) * skyMetrics.z; float diffuseIrradianceFromSky = (1.0 - skyMetrics.z) * (1.0 - (skyMetrics.y * 0.25 + 0.25)); return blueSkyDiffuseColor * clamp(diffuseIrradianceFromEarth + diffuseIrradianceFromSky, 0.0, 1.0); } /** * Compute the specular irradiance for a procedural sky lighting model * * @param {vec3} skyMetrics The dot products of the horizon and reflection directions with the nadir, and an atmosphere boundary distance. * @return {vec3} The computed specular irradiance */ vec3 getProceduralSpecularIrradiance(vec3 reflectionWC, vec3 skyMetrics, float roughness) { // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z. reflectionWC.x = -reflectionWC.x; reflectionWC = -normalize(czm_temeToPseudoFixed * reflectionWC); reflectionWC.x = -reflectionWC.x; float inverseRoughness = 1.04 - roughness; inverseRoughness *= inverseRoughness; vec3 sceneSkyBox = czm_textureCube(czm_environmentMap, reflectionWC).rgb * inverseRoughness; // Compute colors at different angles relative to the horizon vec3 belowHorizonColor = mix(vec3(0.1, 0.15, 0.25), vec3(0.4, 0.7, 0.9), skyMetrics.z); vec3 nadirColor = belowHorizonColor * 0.5; vec3 aboveHorizonColor = mix(vec3(0.9, 1.0, 1.2), belowHorizonColor, roughness * 0.5); vec3 blueSkyColor = mix(vec3(0.18, 0.26, 0.48), aboveHorizonColor, skyMetrics.y * inverseRoughness * 0.5 + 0.75); vec3 zenithColor = mix(blueSkyColor, sceneSkyBox, skyMetrics.z); // Compute blend zones float blendRegionSize = 0.1 * ((1.0 - inverseRoughness) * 8.0 + 1.1 - skyMetrics.x); float blendRegionOffset = roughness * -1.0; float farAboveHorizon = clamp(skyMetrics.x - blendRegionSize * 0.5 + blendRegionOffset, 1.0e-10 - blendRegionSize, 0.99999); float aroundHorizon = clamp(skyMetrics.x + blendRegionSize * 0.5, 1.0e-10 - blendRegionSize, 0.99999); float farBelowHorizon = clamp(skyMetrics.x + blendRegionSize * 1.5, 1.0e-10 - blendRegionSize, 0.99999); // Blend colors float notDistantRough = (1.0 - skyMetrics.x * roughness * 0.8); vec3 specularIrradiance = mix(zenithColor, aboveHorizonColor, smoothstep(farAboveHorizon, aroundHorizon, skyMetrics.y) * notDistantRough); specularIrradiance = mix(specularIrradiance, belowHorizonColor, smoothstep(aroundHorizon, farBelowHorizon, skyMetrics.y) * inverseRoughness); specularIrradiance = mix(specularIrradiance, nadirColor, smoothstep(farBelowHorizon, 1.0, skyMetrics.y) * inverseRoughness); return specularIrradiance; } #ifdef USE_SUN_LUMINANCE float clampedDot(vec3 x, vec3 y) { return clamp(dot(x, y), 0.001, 1.0); } /** * Sun luminance following the "CIE Clear Sky Model" * See page 40 of https://3dvar.com/Green2003Spherical.pdf * * @param {vec3} positionWC The position of the fragment in world coordinates. * @param {vec3} normalEC The surface normal in eye coordinates. * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. * @return {float} The computed sun luminance. */ float getSunLuminance(vec3 positionWC, vec3 normalEC, vec3 lightDirectionEC) { vec3 normalWC = normalize(czm_inverseViewRotation * normalEC); vec3 lightDirectionWC = normalize(czm_inverseViewRotation * lightDirectionEC); vec3 vWC = -normalize(positionWC); // Angle between sun and zenith. float LdotZenith = clampedDot(lightDirectionWC, vWC); float S = acos(LdotZenith); // Angle between zenith and current pixel float NdotZenith = clampedDot(normalWC, vWC); // Angle between sun and current pixel float NdotL = clampedDot(normalEC, lightDirectionEC); float gamma = acos(NdotL); float numerator = ((0.91 + 10.0 * exp(-3.0 * gamma) + 0.45 * NdotL * NdotL) * (1.0 - exp(-0.32 / NdotZenith))); float denominator = (0.91 + 10.0 * exp(-3.0 * S) + 0.45 * LdotZenith * LdotZenith) * (1.0 - exp(-0.32)); return model_luminanceAtZenith * (numerator / denominator); } #endif /** * Compute the light contribution from a procedural sky model * * @param {vec3} positionEC The position of the fragment in eye coordinates. * @param {vec3} normalEC The surface normal in eye coordinates. * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. * @param {czm_modelMaterial} The material properties. * @return {vec3} The computed HDR color */ vec3 proceduralIBL( vec3 positionEC, vec3 normalEC, vec3 lightDirectionEC, czm_modelMaterial material ) { vec3 viewDirectionEC = -normalize(positionEC); vec3 positionWC = vec3(czm_inverseView * vec4(positionEC, 1.0)); vec3 reflectionWC = normalize(czm_inverseViewRotation * normalize(reflect(viewDirectionEC, normalEC))); vec3 skyMetrics = getProceduralSkyMetrics(positionWC, reflectionWC); float roughness = material.roughness; vec3 f0 = material.specular; vec3 specularIrradiance = getProceduralSpecularIrradiance(reflectionWC, skyMetrics, roughness); float NdotV = abs(dot(normalEC, viewDirectionEC)) + 0.001; vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; vec3 specularColor = czm_srgbToLinear(f0 * brdfLut.x + brdfLut.y); vec3 specularContribution = specularIrradiance * specularColor * model_iblFactor.y; #ifdef USE_SPECULAR specularContribution *= material.specularWeight; #endif vec3 diffuseIrradiance = getProceduralDiffuseIrradiance(skyMetrics); vec3 diffuseColor = material.diffuse; vec3 diffuseContribution = diffuseIrradiance * diffuseColor * model_iblFactor.x; vec3 iblColor = specularContribution + diffuseContribution; #ifdef USE_SUN_LUMINANCE iblColor *= getSunLuminance(positionWC, normalEC, lightDirectionEC); #endif return iblColor; } #ifdef DIFFUSE_IBL vec3 computeDiffuseIBL(vec3 cubeDir) { #ifdef CUSTOM_SPHERICAL_HARMONICS return czm_sphericalHarmonics(cubeDir, model_sphericalHarmonicCoefficients); #else return czm_sphericalHarmonics(cubeDir, czm_sphericalHarmonicCoefficients); #endif } #endif #ifdef SPECULAR_IBL vec3 sampleSpecularEnvironment(vec3 cubeDir, float roughness) { #ifdef CUSTOM_SPECULAR_IBL float maxLod = model_specularEnvironmentMapsMaximumLOD; float lod = roughness * maxLod; return czm_sampleOctahedralProjection(model_specularEnvironmentMaps, model_specularEnvironmentMapsSize, cubeDir, lod, maxLod); #else float maxLod = czm_specularEnvironmentMapsMaximumLOD; float lod = roughness * maxLod; return czm_sampleOctahedralProjection(czm_specularEnvironmentMaps, czm_specularEnvironmentMapSize, cubeDir, lod, maxLod); #endif } vec3 computeSpecularIBL(vec3 cubeDir, float NdotV, float VdotH, vec3 f0, float roughness) { float reflectance = czm_maximumComponent(f0); vec3 f90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0)); vec3 F = fresnelSchlick2(f0, f90, VdotH); vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; vec3 specularSample = sampleSpecularEnvironment(cubeDir, roughness); return specularSample * (F * brdfLut.x + brdfLut.y); } #endif #if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) /** * Compute the light contributions from environment maps and spherical harmonic coefficients * * @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position * @param {vec3} normalEC The surface normal in eye coordinates * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. * @param {czm_modelMaterial} The material properties. * @return {vec3} The computed HDR color */ vec3 textureIBL( vec3 viewDirectionEC, vec3 normalEC, vec3 lightDirectionEC, czm_modelMaterial material ) { // Find the direction in which to sample the environment map vec3 cubeDir = normalize(model_iblReferenceFrameMatrix * normalize(reflect(-viewDirectionEC, normalEC))); #ifdef DIFFUSE_IBL vec3 diffuseContribution = computeDiffuseIBL(cubeDir) * material.diffuse; #else vec3 diffuseContribution = vec3(0.0); #endif float roughness = material.roughness; #ifdef USE_ANISOTROPY // Update environment map sampling direction to account for anisotropic distortion of specular reflection vec3 anisotropyDirection = material.anisotropicB; vec3 anisotropicTangent = cross(anisotropyDirection, viewDirectionEC); vec3 anisotropicNormal = cross(anisotropicTangent, anisotropyDirection); float bendFactor = 1.0 - material.anisotropyStrength * (1.0 - roughness); float bendFactorPow4 = bendFactor * bendFactor * bendFactor * bendFactor; vec3 bentNormal = normalize(mix(anisotropicNormal, normalEC, bendFactorPow4)); cubeDir = normalize(model_iblReferenceFrameMatrix * normalize(reflect(-viewDirectionEC, bentNormal))); #endif #ifdef SPECULAR_IBL float NdotV = abs(dot(normalEC, viewDirectionEC)) + 0.001; vec3 halfwayDirectionEC = normalize(viewDirectionEC + lightDirectionEC); float VdotH = clamp(dot(viewDirectionEC, halfwayDirectionEC), 0.0, 1.0); vec3 f0 = material.specular; vec3 specularContribution = computeSpecularIBL(cubeDir, NdotV, VdotH, f0, roughness); #else vec3 specularContribution = vec3(0.0); #endif #ifdef USE_SPECULAR specularContribution *= material.specularWeight; #endif return diffuseContribution + specularContribution; } #endif `;var dse={name:"ImageBasedLightingPipelineStage"};dse.process=function(e,t,n){let i=t.imageBasedLighting,o=e.shaderBuilder;o.addDefine("USE_IBL_LIGHTING",void 0,ge.FRAGMENT),o.addUniform("vec2","model_iblFactor",ge.FRAGMENT),Ld.isSupported(n.context)&&((i.useSphericalHarmonics||i.useSpecularEnvironmentMaps||i.enabled)&&o.addUniform("mat3","model_iblReferenceFrameMatrix",ge.FRAGMENT),l(i.sphericalHarmonicCoefficients)?(o.addDefine("DIFFUSE_IBL",void 0,ge.FRAGMENT),o.addDefine("CUSTOM_SPHERICAL_HARMONICS",void 0,ge.FRAGMENT),o.addUniform("vec3","model_sphericalHarmonicCoefficients[9]",ge.FRAGMENT)):i.useDefaultSphericalHarmonics&&o.addDefine("DIFFUSE_IBL",void 0,ge.FRAGMENT),l(i.specularEnvironmentMapAtlas)&&i.specularEnvironmentMapAtlas.ready?(o.addDefine("SPECULAR_IBL",void 0,ge.FRAGMENT),o.addDefine("CUSTOM_SPECULAR_IBL",void 0,ge.FRAGMENT),o.addUniform("sampler2D","model_specularEnvironmentMaps",ge.FRAGMENT),o.addUniform("vec2","model_specularEnvironmentMapsSize",ge.FRAGMENT),o.addUniform("float","model_specularEnvironmentMapsMaximumLOD",ge.FRAGMENT)):t.useDefaultSpecularMaps&&o.addDefine("SPECULAR_IBL",void 0,ge.FRAGMENT)),l(i.luminanceAtZenith)&&(o.addDefine("USE_SUN_LUMINANCE",void 0,ge.FRAGMENT),o.addUniform("float","model_luminanceAtZenith",ge.FRAGMENT)),o.addFragmentLines(MR);let r={model_iblFactor:function(){return i.imageBasedLightingFactor},model_iblReferenceFrameMatrix:function(){return t._iblReferenceFrameMatrix},model_luminanceAtZenith:function(){return i.luminanceAtZenith},model_sphericalHarmonicCoefficients:function(){return i.sphericalHarmonicCoefficients},model_specularEnvironmentMaps:function(){return i.specularEnvironmentMapAtlas.texture},model_specularEnvironmentMapsSize:function(){return i.specularEnvironmentMapAtlas.texture.dimensions},model_specularEnvironmentMapsMaximumLOD:function(){return i.specularEnvironmentMapAtlas.maximumMipmapLevel}};e.uniformMap=_t(r,e.uniformMap)};var LR=dse;var r4e=R.EPSILON16;function fW(e){e=y(e,y.EMPTY_OBJECT);let t=e.stage,n=e.runtimeArticulation;this._stage=t,this._runtimeArticulation=n,this._name=t.name,this._type=t.type,this._minimumValue=t.minimumValue,this._maximumValue=t.maximumValue,this._currentValue=t.initialValue}Object.defineProperties(fW.prototype,{stage:{get:function(){return this._stage}},runtimeArticulation:{get:function(){return this._runtimeArticulation}},name:{get:function(){return this._name}},type:{get:function(){return this._type}},minimumValue:{get:function(){return this._minimumValue}},maximumValue:{get:function(){return this._maximumValue}},currentValue:{get:function(){return this._currentValue},set:function(e){e=R.clamp(e,this.minimumValue,this.maximumValue),R.equalsEpsilon(this._currentValue,e,r4e)||(this._currentValue=e,this.runtimeArticulation._dirty=!0)}}});var s4e=new h,uW=new $;fW.prototype.applyStageToMatrix=function(e){let t=this.type,n=this.currentValue,i=s4e,o;switch(t){case lc.XROTATE:o=$.fromRotationX(R.toRadians(n),uW),e=F.multiplyByMatrix3(e,o,e);break;case lc.YROTATE:o=$.fromRotationY(R.toRadians(n),uW),e=F.multiplyByMatrix3(e,o,e);break;case lc.ZROTATE:o=$.fromRotationZ(R.toRadians(n),uW),e=F.multiplyByMatrix3(e,o,e);break;case lc.XTRANSLATE:i.x=n,i.y=0,i.z=0,e=F.multiplyByTranslation(e,i,e);break;case lc.YTRANSLATE:i.x=0,i.y=n,i.z=0,e=F.multiplyByTranslation(e,i,e);break;case lc.ZTRANSLATE:i.x=0,i.y=0,i.z=n,e=F.multiplyByTranslation(e,i,e);break;case lc.XSCALE:i.x=n,i.y=1,i.z=1,e=F.multiplyByScale(e,i,e);break;case lc.YSCALE:i.x=1,i.y=n,i.z=1,e=F.multiplyByScale(e,i,e);break;case lc.ZSCALE:i.x=1,i.y=1,i.z=n,e=F.multiplyByScale(e,i,e);break;case lc.UNIFORMSCALE:e=F.multiplyByUniformScale(e,n,e);break;default:break}return e};var NR=fW;function LU(e){e=y(e,y.EMPTY_OBJECT);let t=e.articulation,n=e.sceneGraph;this._articulation=t,this._sceneGraph=n,this._name=t.name,this._runtimeStages=[],this._runtimeStagesByName={},this._runtimeNodes=[],this._dirty=!0,a4e(this)}Object.defineProperties(LU.prototype,{articulation:{get:function(){return this._articulation}},sceneGraph:{get:function(){return this._sceneGraph}},name:{get:function(){return this._name}},runtimeStages:{get:function(){return this._runtimeStages}},runtimeNodes:{get:function(){return this._runtimeNodes}}});function a4e(e){let n=e.articulation.stages,i=n.length,o=e._runtimeStages,r=e._runtimeStagesByName;for(let s=0;s<i;s++){let a=n[s],c=new NR({stage:a,runtimeArticulation:e});o.push(c);let u=a.name;r[u]=c}}LU.prototype.setArticulationStage=function(e,t){let n=this._runtimeStagesByName[e];l(n)&&(n.currentValue=t)};var c4e=new F,l4e=new F;LU.prototype.apply=function(){if(!this._dirty)return;this._dirty=!1;let e=F.clone(F.IDENTITY,c4e),t,n=this._runtimeStages,i=n.length;for(t=0;t<i;t++)e=n[t].applyStageToMatrix(e);let o=this._runtimeNodes,r=o.length;for(t=0;t<r;t++){let s=o[t],a=F.multiplyTransformation(s.originalTransform,e,l4e);s.transform=a}};var FR=LU;var BR=`void modelColorStage(inout czm_modelMaterial material) { material.diffuse = mix(material.diffuse, model_color.rgb, model_colorBlend); float highlight = ceil(model_colorBlend); material.diffuse *= mix(model_color.rgb, vec3(1.0), highlight); material.alpha *= model_color.a; } `;var WC={name:"ModelColorPipelineStage",COLOR_UNIFORM_NAME:"model_color",COLOR_BLEND_UNIFORM_NAME:"model_colorBlend"};WC.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_COLOR",void 0,ge.FRAGMENT),i.addFragmentLines(BR);let o={},r=t.color;r.alpha===0&&!t.hasSilhouette(n)&&(e.renderStateOptions.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),r.alpha<1&&(e.alphaOptions.pass=Ee.TRANSLUCENT),i.addUniform("vec4",WC.COLOR_UNIFORM_NAME,ge.FRAGMENT),o[WC.COLOR_UNIFORM_NAME]=function(){return t.color},i.addUniform("float",WC.COLOR_BLEND_UNIFORM_NAME,ge.FRAGMENT),o[WC.COLOR_BLEND_UNIFORM_NAME]=function(){return cc.getColorBlend(t.colorBlendMode,t.colorBlendAmount)},e.uniformMap=_t(o,e.uniformMap)};var gy=WC;var kR=`#ifdef USE_CLIPPING_PLANES_FLOAT_TEXTURE vec4 getClippingPlane( highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform ) { int pixY = clippingPlaneNumber / CLIPPING_PLANES_TEXTURE_WIDTH; int pixX = clippingPlaneNumber - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH); float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH); float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT); float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel float v = (float(pixY) + 0.5) * pixelHeight; vec4 plane = texture(packedClippingPlanes, vec2(u, v)); return czm_transformPlane(plane, transform); } #else // Handle uint8 clipping texture instead vec4 getClippingPlane( highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform ) { int clippingPlaneStartIndex = clippingPlaneNumber * 2; // clipping planes are two pixels each int pixY = clippingPlaneStartIndex / CLIPPING_PLANES_TEXTURE_WIDTH; int pixX = clippingPlaneStartIndex - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH); float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH); float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT); float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel float v = (float(pixY) + 0.5) * pixelHeight; vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0; vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w); vec4 plane; plane.xyz = czm_octDecode(oct, 65535.0); plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + pixelWidth, v))); return czm_transformPlane(plane, transform); } #endif float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) { vec4 position = czm_windowToEyeCoordinates(fragCoord); vec3 clipNormal = vec3(0.0); vec3 clipPosition = vec3(0.0); float pixelWidth = czm_metersPerPixel(position); #ifdef UNION_CLIPPING_REGIONS float clipAmount; // For union planes, we want to get the min distance. So we set the initial value to the first plane distance in the loop below. #else float clipAmount = 0.0; bool clipped = true; #endif for (int i = 0; i < CLIPPING_PLANES_LENGTH; ++i) { vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); clipNormal = clippingPlane.xyz; clipPosition = -clippingPlane.w * clipNormal; float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; #ifdef UNION_CLIPPING_REGIONS clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount)); if (amount <= 0.0) { discard; } #else clipAmount = max(amount, clipAmount); clipped = clipped && (amount <= 0.0); #endif } #ifndef UNION_CLIPPING_REGIONS if (clipped) { discard; } #endif return clipAmount; } void modelClippingPlanesStage(inout vec4 color) { float clipDistance = clip(gl_FragCoord, model_clippingPlanes, model_clippingPlanesMatrix); vec4 clippingPlanesEdgeColor = vec4(1.0); clippingPlanesEdgeColor.rgb = model_clippingPlanesEdgeStyle.rgb; float clippingPlanesEdgeWidth = model_clippingPlanesEdgeStyle.a; if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) { color = clippingPlanesEdgeColor; } } `;var hse={name:"ModelClippingPlanesPipelineStage"},u4e=new z;hse.process=function(e,t,n){let i=t.clippingPlanes,o=n.context,r=e.shaderBuilder;r.addDefine("HAS_CLIPPING_PLANES",void 0,ge.FRAGMENT),r.addDefine("CLIPPING_PLANES_LENGTH",i.length,ge.FRAGMENT),i.unionClippingRegions&&r.addDefine("UNION_CLIPPING_REGIONS",void 0,ge.FRAGMENT),cs.useFloatTexture(o)&&r.addDefine("USE_CLIPPING_PLANES_FLOAT_TEXTURE",void 0,ge.FRAGMENT);let s=cs.getTextureResolution(i,o,u4e);r.addDefine("CLIPPING_PLANES_TEXTURE_WIDTH",s.x,ge.FRAGMENT),r.addDefine("CLIPPING_PLANES_TEXTURE_HEIGHT",s.y,ge.FRAGMENT),r.addUniform("sampler2D","model_clippingPlanes",ge.FRAGMENT),r.addUniform("vec4","model_clippingPlanesEdgeStyle",ge.FRAGMENT),r.addUniform("mat4","model_clippingPlanesMatrix",ge.FRAGMENT),r.addFragmentLines(kR);let a={model_clippingPlanes:function(){return i.texture},model_clippingPlanesEdgeStyle:function(){let c=H.clone(i.edgeColor);return c.alpha=i.edgeWidth,c},model_clippingPlanesMatrix:function(){return t._clippingPlanesMatrix}};e.uniformMap=_t(a,e.uniformMap)};var VR=hse;var UR=`void modelClippingPolygonsStage(ProcessedAttributes attributes) { vec2 sphericalLatLong = czm_approximateSphericalCoordinates(v_positionWC); sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); vec2 minDistance = vec2(czm_infinity); v_regionIndex = -1; v_clippingPosition = vec2(czm_infinity); for (int regionIndex = 0; regionIndex < CLIPPING_POLYGON_REGIONS_LENGTH; regionIndex++) { vec4 extents = czm_unpackClippingExtents(model_clippingExtents, regionIndex); vec2 rectUv = (sphericalLatLong.yx - extents.yx) * extents.wz; vec2 clamped = clamp(rectUv, vec2(0.0), vec2(1.0)); vec2 distance = abs(rectUv - clamped) * extents.wz; if (minDistance.x > distance.x || minDistance.y > distance.y) { minDistance = distance; v_clippingPosition = rectUv; } float threshold = 0.01; if (rectUv.x > threshold && rectUv.y > threshold && rectUv.x < 1.0 - threshold && rectUv.y < 1.0 - threshold) { v_regionIndex = regionIndex; } } } `;var zR=`void modelClippingPolygonsStage() { vec2 clippingPosition = v_clippingPosition; int regionIndex = v_regionIndex; czm_clipPolygons(model_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex); } `;var mse={name:"ModelClippingPolygonsPipelineStage"};mse.process=function(e,t,n){let i=t.clippingPolygons,o=e.shaderBuilder;o.addDefine("ENABLE_CLIPPING_POLYGONS",void 0,ge.BOTH),i.inverse&&o.addDefine("CLIPPING_INVERSE",void 0,ge.FRAGMENT),o.addDefine("CLIPPING_POLYGON_REGIONS_LENGTH",i.extentsCount,ge.BOTH),o.addUniform("sampler2D","model_clippingDistance",ge.FRAGMENT),o.addUniform("sampler2D","model_clippingExtents",ge.VERTEX),o.addVarying("vec2","v_clippingPosition"),o.addVarying("int","v_regionIndex","flat"),o.addVertexLines(UR),o.addFragmentLines(zR);let r={model_clippingDistance:function(){return i.clippingTexture},model_clippingExtents:function(){return i.extentsTexture}};e.uniformMap=_t(r,e.uniformMap)};var HR=mse;function pse(e,t){this._model=e,this._runtimeNode=t}Object.defineProperties(pse.prototype,{name:{get:function(){return this._runtimeNode._name}},id:{get:function(){return this._runtimeNode._id}},show:{get:function(){return this._runtimeNode.show},set:function(e){this._runtimeNode.show=e}},matrix:{get:function(){return this._runtimeNode.transform},set:function(e){l(e)?(this._runtimeNode.transform=e,this._runtimeNode.userAnimated=!0,this._model._userAnimationDirty=!0):(this._runtimeNode.transform=this.originalMatrix,this._runtimeNode.userAnimated=!1)}},originalMatrix:{get:function(){return this._runtimeNode.originalTransform}}});var GR=pse;var WR=`mat4 getInstancingTransform() { mat4 instancingTransform; #ifdef HAS_INSTANCE_MATRICES instancingTransform = mat4( a_instancingTransformRow0.x, a_instancingTransformRow1.x, a_instancingTransformRow2.x, 0.0, // Column 1 a_instancingTransformRow0.y, a_instancingTransformRow1.y, a_instancingTransformRow2.y, 0.0, // Column 2 a_instancingTransformRow0.z, a_instancingTransformRow1.z, a_instancingTransformRow2.z, 0.0, // Column 3 a_instancingTransformRow0.w, a_instancingTransformRow1.w, a_instancingTransformRow2.w, 1.0 // Column 4 ); #else vec3 translation = vec3(0.0, 0.0, 0.0); vec3 scale = vec3(1.0, 1.0, 1.0); #ifdef HAS_INSTANCE_TRANSLATION translation = a_instanceTranslation; #endif #ifdef HAS_INSTANCE_SCALE scale = a_instanceScale; #endif instancingTransform = mat4( scale.x, 0.0, 0.0, 0.0, 0.0, scale.y, 0.0, 0.0, 0.0, 0.0, scale.z, 0.0, translation.x, translation.y, translation.z, 1.0 ); #endif return instancingTransform; } #ifdef USE_2D_INSTANCING mat4 getInstancingTransform2D() { mat4 instancingTransform2D; #ifdef HAS_INSTANCE_MATRICES instancingTransform2D = mat4( a_instancingTransform2DRow0.x, a_instancingTransform2DRow1.x, a_instancingTransform2DRow2.x, 0.0, // Column 1 a_instancingTransform2DRow0.y, a_instancingTransform2DRow1.y, a_instancingTransform2DRow2.y, 0.0, // Column 2 a_instancingTransform2DRow0.z, a_instancingTransform2DRow1.z, a_instancingTransform2DRow2.z, 0.0, // Column 3 a_instancingTransform2DRow0.w, a_instancingTransform2DRow1.w, a_instancingTransform2DRow2.w, 1.0 // Column 4 ); #else vec3 translation2D = vec3(0.0, 0.0, 0.0); vec3 scale = vec3(1.0, 1.0, 1.0); #ifdef HAS_INSTANCE_TRANSLATION translation2D = a_instanceTranslation2D; #endif #ifdef HAS_INSTANCE_SCALE scale = a_instanceScale; #endif instancingTransform2D = mat4( scale.x, 0.0, 0.0, 0.0, 0.0, scale.y, 0.0, 0.0, 0.0, 0.0, scale.z, 0.0, translation2D.x, translation2D.y, translation2D.z, 1.0 ); #endif return instancingTransform2D; } #endif `;var jR=`void instancingStage(inout ProcessedAttributes attributes) { vec3 positionMC = attributes.positionMC; mat4 instancingTransform = getInstancingTransform(); attributes.positionMC = (instancingTransform * vec4(positionMC, 1.0)).xyz; #ifdef HAS_NORMALS vec3 normalMC = attributes.normalMC; attributes.normalMC = (instancingTransform * vec4(normalMC, 0.0)).xyz; #endif #ifdef USE_2D_INSTANCING mat4 instancingTransform2D = getInstancingTransform2D(); attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; #endif } `;var qR=`void legacyInstancingStage( inout ProcessedAttributes attributes, out mat4 instanceModelView, out mat3 instanceModelViewInverseTranspose) { vec3 positionMC = attributes.positionMC; mat4 instancingTransform = getInstancingTransform(); mat4 instanceModel = instancingTransform * u_instance_nodeTransform; instanceModelView = u_instance_modifiedModelView; instanceModelViewInverseTranspose = mat3(u_instance_modifiedModelView * instanceModel); attributes.positionMC = (instanceModel * vec4(positionMC, 1.0)).xyz; #ifdef USE_2D_INSTANCING mat4 instancingTransform2D = getInstancingTransform2D(); attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; #endif } `;var NU=new F,f4e=new F,d4e=new F,gse={name:"InstancingPipelineStage",_getInstanceTransformsAsMatrices:Ase,_transformsToTypedArray:hW};gse.process=function(e,t,n){let i=t.instances,o=i.attributes[0].count,r=e.shaderBuilder;r.addDefine("HAS_INSTANCING"),r.addVertexLines(WR);let s=e.model,a=s.sceneGraph,c=e.runtimeNode,u=n.mode!==ne.SCENE3D&&!n.scene3DOnly&&s._projectTo2D,f=s._enablePick&&!n.context.webgl2,d=[];w4e(e,n,i,d,u,f),I4e(e,n,i,d);let p={};if(i.transformInWorldSpace?(r.addDefine("USE_LEGACY_INSTANCING",void 0,ge.VERTEX),r.addUniform("mat4","u_instance_modifiedModelView",ge.VERTEX),r.addUniform("mat4","u_instance_nodeTransform",ge.VERTEX),p.u_instance_modifiedModelView=function(){let g=F.multiplyTransformation(s.modelMatrix,a.components.transform,NU);return u?F.multiplyTransformation(n.context.uniformState.view3D,g,NU):(n.mode!==ne.SCENE3D&&(g=wt.basisTo2D(n.mapProjection,g,NU)),F.multiplyTransformation(n.context.uniformState.view,g,NU))},p.u_instance_nodeTransform=function(){return F.multiplyTransformation(a.axisCorrectionMatrix,c.computedTransform,f4e)},r.addVertexLines(qR)):r.addVertexLines(jR),u){r.addDefine("USE_2D_INSTANCING",void 0,ge.VERTEX),r.addUniform("mat4","u_modelView2D",ge.VERTEX);let g=n.context,m=F.fromTranslation(c.instancingReferencePoint2D,new F);p.u_modelView2D=function(){return F.multiplyTransformation(g.uniformState.view,m,d4e)}}e.uniformMap=_t(p,e.uniformMap),e.instanceCount=o,e.attributes.push.apply(e.attributes,d)};var YR=new F,h4e=new h;function m4e(e,t,n,i,o){let r=F.multiplyTransformation(t,e,YR);return r=F.multiplyTransformation(r,n,YR),o=wt.basisTo2D(i.mapProjection,r,o),o}function p4e(e,t,n,i,o){let r=F.fromTranslation(e,YR),s=F.multiplyTransformation(t,r,YR);s=F.multiplyTransformation(s,n,YR);let a=F.getTranslation(s,h4e);return o=Hi.computeActualWgs84Position(i,a,o),o}function yse(e,t,n){let i=e.model,o=i.sceneGraph;e.runtimeNode.node.instances.transformInWorldSpace?(t=F.multiplyTransformation(i.modelMatrix,o.components.transform,t),n=F.multiplyTransformation(o.axisCorrectionMatrix,e.runtimeNode.computedTransform,n)):(t=F.clone(o.computedModelMatrix,t),t=F.multiplyTransformation(t,e.runtimeNode.computedTransform,t),n=F.clone(F.IDENTITY,n))}var xse=new F,bse=new F,_4e=new F,g4e=new h;function y4e(e,t,n,i){let o=xse,r=bse;yse(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let u=0;u<c;u++){let f=e[u],d=m4e(f,o,r,n,_4e),p=F.getTranslation(d,g4e),g=h.subtract(p,a,p);i[u]=F.setTranslation(d,g,i[u])}return i}function x4e(e,t,n,i){let o=xse,r=bse;yse(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let u=0;u<c;u++){let f=e[u],d=p4e(f,o,r,n,f);i[u]=h.subtract(d,a,i[u])}return i}var b4e=new h,T4e=new h;function Tse(e,t){let n=e.runtimeNode,i=e.model.sceneGraph.computedModelMatrix,o=F.multiplyByPoint(i,n.instancingTranslationMin,b4e),r=Hi.computeActualWgs84Position(t,o,o),s=F.multiplyByPoint(i,n.instancingTranslationMax,T4e),a=Hi.computeActualWgs84Position(t,s,s);n.instancingReferencePoint2D=h.lerp(r,a,.5,new h)}function hW(e){let n=e.length,i=new Float32Array(n*12);for(let o=0;o<n;o++){let r=e[o],s=12*o;i[s+0]=r[0],i[s+1]=r[4],i[s+2]=r[8],i[s+3]=r[12],i[s+4]=r[1],i[s+5]=r[5],i[s+6]=r[9],i[s+7]=r[13],i[s+8]=r[2],i[s+9]=r[6],i[s+10]=r[10],i[s+11]=r[14]}return i}function A4e(e){let n=e.length,i=new Float32Array(n*3);for(let o=0;o<n;o++){let r=e[o],s=3*o;i[s+0]=r[0],i[s+1]=r[4],i[s+2]=r[8]}return i}var C4e=new h,E4e=new Me,S4e=new h;function Ase(e,t,n){let i=new Array(t),o=Xt.getAttributeBySemantic(e,Yr.TRANSLATION),r=Xt.getAttributeBySemantic(e,Yr.ROTATION),s=Xt.getAttributeBySemantic(e,Yr.SCALE),a=new h(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),c=new h(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),u=l(o),f=l(r),d=l(s),p=u?o.typedArray:new Float32Array(t*3),g=f?r.typedArray:new Float32Array(t*4);f&&r.normalized&&(g=Mn.dequantize(g,r.componentDatatype,r.type,t));let m;d?m=s.typedArray:(m=new Float32Array(t*3),m.fill(1));for(let b=0;b<t;b++){let T=new h(p[b*3],p[b*3+1],p[b*3+2],C4e);h.maximumByComponent(a,T,a),h.minimumByComponent(c,T,c);let C=new Me(g[b*4],g[b*4+1],g[b*4+2],f?g[b*4+3]:1,E4e),A=new h(m[b*3],m[b*3+1],m[b*3+2],S4e),E=F.fromTranslationQuaternionRotationScale(T,C,A,new F);i[b]=E}let x=n.runtimeNode;return x.instancingTranslationMin=c,x.instancingTranslationMax=a,u&&(o.typedArray=void 0),f&&(r.typedArray=void 0),d&&(s.typedArray=void 0),i}function v4e(e,t,n){let i=new Array(t),o=e.typedArray,r=new h(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),s=new h(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);for(let c=0;c<t;c++){let u=new h(o[c*3],o[c*3+1],o[c*3+2]);i[c]=u,h.minimumByComponent(r,u,r),h.maximumByComponent(s,u,s)}let a=n.runtimeNode;return a.instancingTranslationMin=r,a.instancingTranslationMax=s,e.typedArray=void 0,i}function mW(e,t){let n=ct.createVertexBuffer({context:t.context,typedArray:e,usage:Fe.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}function w4e(e,t,n,i,o,r){let s=Xt.getAttributeBySemantic(n,Yr.ROTATION);l(s)?D4e(e,n,i,t,o,r):P4e(e,n,i,t,o)}function D4e(e,t,n,i,o,r){let s=e.shaderBuilder,a=t.attributes[0].count,c=e.model,u=e.runtimeNode;s.addDefine("HAS_INSTANCE_MATRICES");let f="Transform",d,p=u.instancingTransformsBuffer;if(!l(p)){d=Ase(t,a,e);let b=hW(d);p=mW(b,i),c._modelResources.push(p),r&&(u.transformsTypedArray=b),u.instancingTransformsBuffer=p}if(_se(e,p,n,f),!o)return;let g=He(i);g.mode=ne.COLUMBUS_VIEW,Tse(e,g);let m=u.instancingTransformsBuffer2D;if(!l(m)){let b=y4e(d,e,g,d),T=hW(b);m=mW(T,i),c._modelResources.push(m),u.instancingTransformsBuffer2D=m}_se(e,m,n,"Transform2D")}function P4e(e,t,n,i,o,r){let s=e.shaderBuilder,a=e.runtimeNode,c=Xt.getAttributeBySemantic(t,Yr.TRANSLATION),u=Xt.getAttributeBySemantic(t,Yr.SCALE);if(l(u)&&(s.addDefine("HAS_INSTANCE_SCALE"),dW(e,u.buffer,u.byteOffset,u.byteStride,n,"Scale")),!l(c))return;let f,d=c.typedArray;if(l(d)?f=v4e(c,c.count,e):l(a.instancingTranslationMin)||(a.instancingTranslationMin=c.min,a.instancingTranslationMax=c.max),s.addDefine("HAS_INSTANCE_TRANSLATION"),dW(e,c.buffer,c.byteOffset,c.byteStride,n,"Translation"),!o&&!r)return;let g=He(i);g.mode=ne.COLUMBUS_VIEW,Tse(e,g);let m=a.instancingTranslationBuffer2D;if(!l(m)){let C=x4e(f,e,g,f),A=A4e(C);r&&(a.transformsTypedArray=A),m=mW(A,i),e.model._modelResources.push(m),a.instancingTranslationBuffer2D=m}if(!o)return;dW(e,m,0,void 0,n,"Translation2D")}function _se(e,t,n,i){let r=X.getSizeInBytes(X.FLOAT),s=r*12,a=[{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:0,strideInBytes:s,instanceDivisor:1},{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:r*4,strideInBytes:s,instanceDivisor:1},{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:r*8,strideInBytes:s,instanceDivisor:1}],c=e.shaderBuilder;c.addAttribute("vec4",`a_instancing${i}Row0`),c.addAttribute("vec4",`a_instancing${i}Row1`),c.addAttribute("vec4",`a_instancing${i}Row2`),n.push.apply(n,a)}function dW(e,t,n,i,o,r){o.push({index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:3,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:n,strideInBytes:i,instanceDivisor:1}),e.shaderBuilder.addAttribute("vec3",`a_instance${r}`)}function I4e(e,t,n,i){let o=n.attributes,r=e.shaderBuilder;for(let s=0;s<o.length;s++){let a=o[s];a.semantic===Yr.FEATURE_ID&&(a.setIndex>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=a.setIndex+1),i.push({index:e.attributeIndex++,vertexBuffer:a.buffer,componentsPerAttribute:tn.getNumberOfComponents(a.type),componentDatatype:a.componentDatatype,normalize:!1,offsetInBytes:a.byteOffset,strideInBytes:a.byteStride,instanceDivisor:1}),r.addAttribute("float",`a_instanceFeatureId_${a.setIndex}`))}}var XR=gse;var pW={};pW.name="ModelMatrixUpdateStage";pW.update=function(e,t,n){let i=n.mode!==ne.SCENE3D;if(!(i&&t._model._projectTo2D)&&e._transformDirty){let o=i?t._computedModelMatrix2D:t._computedModelMatrix;Cse(e,t,o,e.transformToRoot),e._transformDirty=!1}};function Cse(e,t,n,i){let o;i=F.multiplyTransformation(i,e.transform,new F),e.updateComputedTransform();let r=e.runtimePrimitives.length;for(o=0;o<r;o++){let c=e.runtimePrimitives[o].drawCommand;c.modelMatrix=F.multiplyTransformation(n,i,c.modelMatrix),c.cullFace=Xt.getCullFace(c.modelMatrix,c.primitiveType)}let s=e.children.length;for(o=0;o<s;o++){let a=t._runtimeNodes[e.children[o]];a._transformToRoot=F.clone(i,a._transformToRoot),Cse(a,t,n,i),a._transformDirty=!1}}var KR=pW;var Ese={name:"NodeStatisticsPipelineStage",_countInstancingAttributes:Sse,_countGeneratedBuffers:vse};Ese.process=function(e,t,n){let i=e.model.statistics,o=t.instances,r=e.runtimeNode;Sse(i,o),vse(i,r)};function Sse(e,t){if(!l(t))return;let n=t.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];l(r.buffer)&&e.addBuffer(r.buffer,!1)}}function vse(e,t){l(t.instancingTransformsBuffer)&&e.addBuffer(t.instancingTransformsBuffer,!1),l(t.instancingTransformsBuffer2D)&&e.addBuffer(t.instancingTransformsBuffer2D,!1),l(t.instancingTranslationBuffer2D)&&e.addBuffer(t.instancingTranslationBuffer2D,!1)}var ZR=Ese;function jC(e){e=y(e,y.EMPTY_OBJECT);let t=e.node,n=e.transform,i=e.transformToRoot,o=e.sceneGraph,r=e.children;this._node=t,this._name=t.name,this._id=t.index,this._sceneGraph=o,this._children=r,this._originalTransform=F.clone(n,this._originalTransform),this._transform=F.clone(n,this._transform),this._transformToRoot=F.clone(i,this._transformToRoot),this._computedTransform=new F,this._transformDirty=!1,this._transformParameters=void 0,this._morphWeights=[],this._runtimeSkin=void 0,this._computedJointMatrices=[],this.show=!0,this.userAnimated=!1,this.pipelineStages=[],this.runtimePrimitives=[],this.updateStages=[],this.instancingTranslationMin=void 0,this.instancingTranslationMax=void 0,this.instancingTransformsBuffer=void 0,this.instancingTransformsBuffer2D=void 0,this.instancingTranslationBuffer2D=void 0,this.instancingReferencePoint2D=void 0,R4e(this)}Object.defineProperties(jC.prototype,{node:{get:function(){return this._node}},sceneGraph:{get:function(){return this._sceneGraph}},children:{get:function(){return this._children}},transform:{get:function(){return this._transform},set:function(e){this._transformDirty=!0,this._transform=F.clone(e,this._transform)}},transformToRoot:{get:function(){return this._transformToRoot}},computedTransform:{get:function(){return this._computedTransform}},originalTransform:{get:function(){return this._originalTransform}},translation:{get:function(){return l(this._transformParameters)?this._transformParameters.translation:void 0},set:function(e){let t=this._transformParameters,n=t.translation;h.equals(n,e)||(t.translation=h.clone(e,t.translation),_W(this,t))}},rotation:{get:function(){return l(this._transformParameters)?this._transformParameters.rotation:void 0},set:function(e){let t=this._transformParameters,n=t.rotation;Me.equals(n,e)||(t.rotation=Me.clone(e,t.rotation),_W(this,t))}},scale:{get:function(){return l(this._transformParameters)?this._transformParameters.scale:void 0},set:function(e){let t=this._transformParameters,n=t.scale;h.equals(n,e)||(t.scale=h.clone(e,t.scale),_W(this,t))}},morphWeights:{get:function(){return this._morphWeights},set:function(e){let t=e.length;for(let n=0;n<t;n++)this._morphWeights[n]=e[n]}},runtimeSkin:{get:function(){return this._runtimeSkin}},computedJointMatrices:{get:function(){return this._computedJointMatrices}}});function R4e(e){let t=e.transform,n=e.transformToRoot,i=e._computedTransform;e._computedTransform=F.multiply(n,t,i);let o=e.node;l(o.matrix)||(e._transformParameters=new Ug(o.translation,o.rotation,o.scale)),l(o.morphWeights)&&(e._morphWeights=o.morphWeights.slice());let r=o.articulationName;if(l(r)){let c=e.sceneGraph._runtimeArticulations[r];l(c)&&c.runtimeNodes.push(e)}}function _W(e,t){e._transformDirty=!0,e._transform=F.fromTranslationRotationScale(t,e._transform)}jC.prototype.getChild=function(e){return this.sceneGraph._runtimeNodes[this.children[e]]};jC.prototype.configurePipeline=function(){let e=this.node,t=this.pipelineStages;t.length=0;let n=this.updateStages;n.length=0,l(e.instances)&&t.push(XR),t.push(ZR),n.push(KR)};jC.prototype.updateComputedTransform=function(){this._computedTransform=F.multiply(this._transformToRoot,this._transform,this._computedTransform)};jC.prototype.updateJointMatrices=function(){let e=this._runtimeSkin;if(!l(e))return;e.updateJointMatrices();let t=this._computedJointMatrices,n=e.jointMatrices,i=n.length;for(let o=0;o<i;o++){l(t[o])||(t[o]=new F);let r=F.multiplyTransformation(this.transformToRoot,this.transform,t[o]),s=F.inverseTransformation(r,t[o]);t[o]=F.multiplyTransformation(s,n[o],t[o])}};var $R=jC;var wse={name:"AlphaPipelineStage"};wse.process=function(e,t,n){let i=e.alphaOptions,o=e.model;i.pass=y(i.pass,o.opaquePass);let r=e.renderStateOptions;i.pass===Ee.TRANSLUCENT&&(r.cull.enabled=!1,r.depthMask=!1,r.blending=un.ALPHA_BLEND);let s=e.shaderBuilder,a=e.uniformMap;l(i.alphaCutoff)&&(s.addDefine("ALPHA_MODE_MASK",void 0,ge.FRAGMENT),s.addUniform("float","u_alphaCutoff",ge.FRAGMENT),a.u_alphaCutoff=function(){return i.alphaCutoff})};var QR=wse;var Dse={name:"BatchTexturePipelineStage"};Dse.process=function(e,t,n){let i=e.shaderBuilder,o={},r=e.model,s=r.featureTables[r.featureTableId],a=s.featuresLength;i.addUniform("int","model_featuresLength"),o.model_featuresLength=function(){return a};let c=s.batchTexture;i.addUniform("sampler2D","model_batchTexture"),o.model_batchTexture=function(){return y(c.batchTexture,c.defaultTexture)},i.addUniform("vec4","model_textureStep"),o.model_textureStep=function(){return c.textureStep},c.textureDimensions.y>1&&(i.addDefine("MULTILINE_BATCH_TEXTURE"),i.addUniform("vec2","model_textureDimensions"),o.model_textureDimensions=function(){return c.textureDimensions}),e.uniformMap=_t(o,e.uniformMap)};var JR=Dse;var Pse={name:"ClassificationPipelineStage"};Pse.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_CLASSIFICATION",void 0,ge.BOTH);let o=e.runtimePrimitive;l(o.batchLengths)||O4e(t,o)};function O4e(e,t){let n=Xt.getAttributeBySemantic(e,yt.POSITION);if(!l(n))throw new le("Primitives must have a position attribute to be used for classification.");let i,o=e.indices,r=l(o);r&&(i=o.typedArray,o.typedArray=void 0);let s=r?o.count:n.count,a=Xt.getAttributeBySemantic(e,yt.FEATURE_ID,0);if(!l(a)){t.batchLengths=[s],t.batchOffsets=[0];return}let c=a.typedArray;a.typedArray=void 0;let u=[],f=[0],d=r?i[0]:0,p=c[d],g=0;for(let x=1;x<s;x++){let b=r?i[x]:x,T=c[b];if(T!==p){let C=x-g,A=x;u.push(C),f.push(A),g=A,p=T}}let m=s-g;u.push(m),t.batchLengths=u,t.batchOffsets=f}var eO=Pse;var tO=`void filterByPassType(inout vec3 positionMC, vec4 featureColor) { bool styleTranslucent = (featureColor.a != 1.0); // Only render translucent features in the translucent pass (if the style or the original command has translucency). if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent) { // If the model has a translucent silhouette, it needs to render during the silhouette color command, // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent. #ifdef HAS_SILHOUETTE positionMC *= float(model_silhouettePass); #else positionMC *= 0.0; #endif } // If the current pass is not the translucent pass and the style is not translucent, don't render the feature. else if (czm_pass != czm_passTranslucent && styleTranslucent) { positionMC *= 0.0; } } void cpuStylingStage(inout vec3 positionMC, inout SelectedFeature feature) { float show = ceil(feature.color.a); positionMC *= show; #if defined(HAS_SELECTED_FEATURE_ID_ATTRIBUTE) && !defined(HAS_CLASSIFICATION) filterByPassType(positionMC, feature.color); #endif } `;var nO=`void filterByPassType(vec4 featureColor) { bool styleTranslucent = (featureColor.a != 1.0); // Only render translucent features in the translucent pass (if the style or the original command has translucency). if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent) { // If the model has a translucent silhouette, it needs to render during the silhouette color command, // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent. #ifdef HAS_SILHOUETTE if(!model_silhouettePass) { discard; } #else discard; #endif } // If the current pass is not the translucent pass and the style is not translucent, don't render the feature. else if (czm_pass != czm_passTranslucent && styleTranslucent) { discard; } } void cpuStylingStage(inout czm_modelMaterial material, SelectedFeature feature) { vec4 featureColor = feature.color; if (featureColor.a == 0.0) { discard; } // If a feature ID vertex attribute is used, the pass type filter is applied in the vertex shader. // So, we only apply in in the fragment shader if the feature ID texture is used. #if defined(HAS_SELECTED_FEATURE_ID_TEXTURE) && !defined(HAS_CLASSIFICATION) filterByPassType(featureColor); #endif featureColor = czm_gammaCorrect(featureColor); // Classification models compute the diffuse differently. #ifdef HAS_CLASSIFICATION material.diffuse = featureColor.rgb * featureColor.a; #else float highlight = ceil(model_colorBlend); material.diffuse *= mix(featureColor.rgb, vec3(1.0), highlight); #endif material.alpha *= featureColor.a; } `;var Ise={name:"CPUStylingPipelineStage"};Ise.process=function(e,t,n){let i=e.model,o=e.shaderBuilder;o.addVertexLines(tO),o.addFragmentLines(nO),o.addDefine("USE_CPU_STYLING",void 0,ge.BOTH),l(i.color)||(o.addUniform("float",gy.COLOR_BLEND_UNIFORM_NAME,ge.FRAGMENT),e.uniformMap[gy.COLOR_BLEND_UNIFORM_NAME]=function(){return cc.getColorBlend(i.colorBlendMode,i.colorBlendAmount)}),o.addUniform("bool","model_commandTranslucent",ge.BOTH),e.uniformMap.model_commandTranslucent=function(){return e.alphaOptions.pass===Ee.TRANSLUCENT}};var iO=Ise;var Rse={MODIFY_MATERIAL:"MODIFY_MATERIAL",REPLACE_MATERIAL:"REPLACE_MATERIAL"};Rse.getDefineName=function(e){return`CUSTOM_SHADER_${e}`};var r_=Object.freeze(Rse);var oO=`void customShaderStage( inout czm_modelVertexOutput vsOutput, inout ProcessedAttributes attributes, FeatureIds featureIds, Metadata metadata, MetadataClass metadataClass, MetadataStatistics metadataStatistics ) { // VertexInput and initializeInputStruct() are dynamically generated in JS, // see CustomShaderPipelineStage.js VertexInput vsInput; initializeInputStruct(vsInput, attributes); vsInput.featureIds = featureIds; vsInput.metadata = metadata; vsInput.metadataClass = metadataClass; vsInput.metadataStatistics = metadataStatistics; vertexMain(vsInput, vsOutput); attributes.positionMC = vsOutput.positionMC; } `;var rO=`void customShaderStage( inout czm_modelMaterial material, ProcessedAttributes attributes, FeatureIds featureIds, Metadata metadata, MetadataClass metadataClass, MetadataStatistics metadataStatistics ) { // FragmentInput and initializeInputStruct() are dynamically generated in JS, // see CustomShaderPipelineStage.js FragmentInput fsInput; initializeInputStruct(fsInput, attributes); fsInput.featureIds = featureIds; fsInput.metadata = metadata; fsInput.metadataClass = metadataClass; fsInput.metadataStatistics = metadataStatistics; fragmentMain(fsInput, material); } `;var sO=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) { initializeFeatureIds(featureIds, attributes); initializeFeatureIdAliases(featureIds); } `;var aO=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) { initializeFeatureIds(featureIds, attributes); initializeFeatureIdAliases(featureIds); setFeatureIdVaryings(); } `;var Ni={name:"FeatureIdPipelineStage",STRUCT_ID_FEATURE_IDS_VS:"FeatureIdsVS",STRUCT_ID_FEATURE_IDS_FS:"FeatureIdsFS",STRUCT_NAME_FEATURE_IDS:"FeatureIds",FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS:"initializeFeatureIdsVS",FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS:"initializeFeatureIdsFS",FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS:"initializeFeatureIdAliasesVS",FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS:"initializeFeatureIdAliasesFS",FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS:"void initializeFeatureIds(out FeatureIds featureIds, ProcessedAttributes attributes)",FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES:"void initializeFeatureIdAliases(inout FeatureIds featureIds)",FUNCTION_ID_SET_FEATURE_ID_VARYINGS:"setFeatureIdVaryings",FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS:"void setFeatureIdVaryings()"};Ni.process=function(e,t,n){let i=e.shaderBuilder;M4e(i);let o=e.runtimeNode.node.instances;l(o)&&L4e(e,o,n),N4e(e,t,n),i.addVertexLines(aO),i.addFragmentLines(sO)};function M4e(e){e.addStruct(Ni.STRUCT_ID_FEATURE_IDS_VS,Ni.STRUCT_NAME_FEATURE_IDS,ge.VERTEX),e.addStruct(Ni.STRUCT_ID_FEATURE_IDS_FS,Ni.STRUCT_NAME_FEATURE_IDS,ge.FRAGMENT),e.addFunction(Ni.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,Ni.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,ge.VERTEX),e.addFunction(Ni.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,Ni.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,ge.FRAGMENT),e.addFunction(Ni.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,Ni.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,ge.VERTEX),e.addFunction(Ni.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,Ni.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,ge.FRAGMENT),e.addFunction(Ni.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,Ni.FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS,ge.VERTEX)}function L4e(e,t,n){let i=t.featureIds,o=t.attributes[0].count;for(let r=0;r<i.length;r++){let s=i[r],a=s.positionalLabel;s instanceof xn.FeatureIdAttribute?F4e(e,s,a):Ose(e,s,a,o,1,n);let c=s.label;l(c)&&Mse(e,a,c,ge.BOTH)}}function N4e(e,t,n){let i=t.featureIds,r=Xt.getAttributeBySemantic(t,yt.POSITION).count;for(let s=0;s<i.length;s++){let a=i[s],c=a.positionalLabel,u=ge.BOTH;a instanceof xn.FeatureIdAttribute?B4e(e,a,c):a instanceof xn.FeatureIdImplicitRange?Ose(e,a,c,r,void 0,n):(k4e(e,a,c,s,n),u=ge.FRAGMENT);let f=a.label;l(f)&&Mse(e,c,f,u)}}function F4e(e,t,n){let i=e.shaderBuilder;i.addStructField(Ni.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(Ni.STRUCT_ID_FEATURE_IDS_FS,"int",n);let o=t.setIndex,r=n.replace(/_\d+$/,"_"),s=`a_${r}${o}`,a=`v_${r}${o}`,c=`featureIds.${n} = int(czm_round(${s}));`,u=`featureIds.${n} = int(czm_round(${a}));`;i.addFunctionLines(Ni.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[c]),i.addFunctionLines(Ni.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[u]),i.addVarying("float",a),i.addFunctionLines(Ni.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${a} = ${s};`])}function B4e(e,t,n){let i=e.shaderBuilder;i.addStructField(Ni.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(Ni.STRUCT_ID_FEATURE_IDS_FS,"int",n);let o=t.setIndex,r=n.replace(/_\d+$/,"_"),s=[`featureIds.${n} = int(czm_round(attributes.${r}${o}));`];i.addFunctionLines(Ni.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,s),i.addFunctionLines(Ni.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,s)}function Ose(e,t,n,i,o,r){V4e(e,t,i,o,r);let s=e.shaderBuilder,a=`a_implicit_${n}`;s.addAttribute("float",a);let c=`v_implicit_${n}`;s.addVarying("float",c),s.addStructField(Ni.STRUCT_ID_FEATURE_IDS_VS,"int",n),s.addStructField(Ni.STRUCT_ID_FEATURE_IDS_FS,"int",n),s.addFunctionLines(Ni.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${c} = ${a};`]),s.addFunctionLines(Ni.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[`featureIds.${n} = int(czm_round(${a}));`]),s.addFunctionLines(Ni.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[`featureIds.${n} = int(czm_round(${c}));`])}function k4e(e,t,n,i,o){let r=`u_featureIdTexture_${i}`,s=e.uniformMap,a=t.textureReader;s[r]=function(){return y(a.texture,o.context.defaultTexture)};let c=a.channels,u=e.shaderBuilder;u.addStructField(Ni.STRUCT_ID_FEATURE_IDS_FS,"int",n),u.addUniform("sampler2D",r,ge.FRAGMENT);let d=`v_texCoord_${a.texCoord}`,p=d,g=a.transform;if(l(g)&&!$.equals(g,$.IDENTITY)){let b=`${r}Transform`;u.addUniform("mat3",b,ge.FRAGMENT),s[b]=function(){return g},p=`vec2(${b} * vec3(${d}, 1.0))`}let m=`texture(${r}, ${p}).${c}`,x=`featureIds.${n} = czm_unpackUint(${m});`;u.addFunctionLines(Ni.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[x])}function Mse(e,t,n,i){let o=e.shaderBuilder,r=ge.includesVertexShader(i);r&&o.addStructField(Ni.STRUCT_ID_FEATURE_IDS_VS,"int",n),o.addStructField(Ni.STRUCT_ID_FEATURE_IDS_FS,"int",n);let s=[`featureIds.${n} = featureIds.${t};`];r&&o.addFunctionLines(Ni.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,s),o.addFunctionLines(Ni.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,s)}function V4e(e,t,n,i,o){let r=e.model,s,a;if(l(t.repeat)){let u=U4e(t,n);s=ct.createVertexBuffer({context:o.context,typedArray:u,usage:Fe.STATIC_DRAW}),s.vertexArrayDestroyable=!1,r._pipelineResources.push(s),r.statistics.addBuffer(s,!1)}else a=[t.offset];let c={index:e.attributeIndex++,instanceDivisor:i,value:a,vertexBuffer:s,normalize:!1,componentsPerAttribute:1,componentDatatype:X.FLOAT,strideInBytes:X.getSizeInBytes(X.FLOAT),offsetInBytes:0};e.attributes.push(c)}function U4e(e,t){let n=e.offset,i=e.repeat,o=new Float32Array(t);for(let r=0;r<t;r++)o[r]=n+Math.floor(r/i);return o}var yy=Ni;var cO=`void metadataStage( out Metadata metadata, out MetadataClass metadataClass, out MetadataStatistics metadataStatistics, ProcessedAttributes attributes ) { initializeMetadata(metadata, metadataClass, metadataStatistics, attributes); } `;var lO=`void metadataStage( out Metadata metadata, out MetadataClass metadataClass, out MetadataStatistics metadataStatistics, ProcessedAttributes attributes ) { initializeMetadata(metadata, metadataClass, metadataStatistics, attributes); setMetadataVaryings(); } `;var yi={name:"MetadataPipelineStage",STRUCT_ID_METADATA_VS:"MetadataVS",STRUCT_ID_METADATA_FS:"MetadataFS",STRUCT_NAME_METADATA:"Metadata",STRUCT_ID_METADATA_CLASS_VS:"MetadataClassVS",STRUCT_ID_METADATA_CLASS_FS:"MetadataClassFS",STRUCT_NAME_METADATA_CLASS:"MetadataClass",STRUCT_ID_METADATA_STATISTICS_VS:"MetadataStatisticsVS",STRUCT_ID_METADATA_STATISTICS_FS:"MetadataStatisticsFS",STRUCT_NAME_METADATA_STATISTICS:"MetadataStatistics",FUNCTION_ID_INITIALIZE_METADATA_VS:"initializeMetadataVS",FUNCTION_ID_INITIALIZE_METADATA_FS:"initializeMetadataFS",FUNCTION_SIGNATURE_INITIALIZE_METADATA:"void initializeMetadata(out Metadata metadata, out MetadataClass metadataClass, out MetadataStatistics metadataStatistics, ProcessedAttributes attributes)",FUNCTION_ID_SET_METADATA_VARYINGS:"setMetadataVaryings",FUNCTION_SIGNATURE_SET_METADATA_VARYINGS:"void setMetadataVaryings()",METADATA_CLASS_FIELDS:[{specName:"noData",shaderName:"noData"},{specName:"default",shaderName:"defaultValue"},{specName:"min",shaderName:"minValue"},{specName:"max",shaderName:"maxValue"}],METADATA_STATISTICS_FIELDS:[{specName:"min",shaderName:"minValue"},{specName:"max",shaderName:"maxValue"},{specName:"mean",shaderName:"mean",type:"float"},{specName:"median",shaderName:"median"},{specName:"standardDeviation",shaderName:"standardDeviation",type:"float"},{specName:"variance",shaderName:"variance",type:"float"},{specName:"sum",shaderName:"sum"}]};yi.process=function(e,t,n){let{shaderBuilder:i,model:o}=e,{structuralMetadata:r={},content:s}=o,a=s?.tileset.metadataExtension?.statistics,c=z4e(r.propertyAttributes,t,a),u=G4e(r.propertyTextures,a),f=c.concat(u);j4e(i,f),X4e(i),i.addVertexLines(lO),i.addFragmentLines(cO);for(let d=0;d<c.length;d++){let p=c[d];K4e(e,p)}for(let d=0;d<u.length;d++){let p=u[d];$4e(e,p)}};function z4e(e,t,n){return l(e)?e.flatMap(i=>H4e(i,t,n)):[]}function H4e(e,t,n){let{getAttributeByName:i,getAttributeInfo:o,sanitizeGlslIdentifier:r}=Xt,s=e.class.id,a=n?.classes[s],c=Object.entries(e.properties),u=new Array(c.length);for(let f=0;f<c.length;f++){let[d,p]=c[f],g=i(t,p.attribute),{glslType:m,variableName:x}=o(g);u[f]={metadataVariable:r(d),property:p,type:p.classProperty.type,glslType:m,variableName:x,propertyStatistics:a?.properties[d],shaderDestination:ge.BOTH}}return u}function G4e(e,t){return l(e)?e.flatMap(n=>W4e(n,t)):[]}function W4e(e,t){let{sanitizeGlslIdentifier:n}=Xt,i=e.class.id,o=t?.classes[i],r=Object.entries(e.properties).filter(([a,c])=>c.isGpuCompatible()),s=new Array(r.length);for(let a=0;a<r.length;a++){let[c,u]=r[a];s[a]={metadataVariable:n(c),property:u,type:u.classProperty.type,glslType:u.getGlslType(),propertyStatistics:o?.properties[c],shaderDestination:ge.FRAGMENT}}return s}function j4e(e,t){let n=new Set,i=new Set;for(let a=0;a<t.length;a++){let{type:c,glslType:u,propertyStatistics:f}=t[a];n.add(u),l(f)&&c!==Ht.ENUM&&i.add(u)}let o=yi.METADATA_CLASS_FIELDS;for(let a of n){let c=`${a}MetadataClass`;s(c,a,o)}let r=yi.METADATA_STATISTICS_FIELDS;for(let a of i){let c=`${a}MetadataStatistics`;s(c,a,r)}function s(a,c,u){e.addStruct(a,a,ge.BOTH);for(let f=0;f<u.length;f++){let{shaderName:d}=u[f],p=u[f].type==="float"?Y4e(c):c;e.addStructField(a,p,d)}}}var q4e={int:"float",ivec2:"vec2",ivec3:"vec3",ivec4:"vec4"};function Y4e(e){let t=q4e[e];return l(t)?t:e}function X4e(e){e.addStruct(yi.STRUCT_ID_METADATA_VS,yi.STRUCT_NAME_METADATA,ge.VERTEX),e.addStruct(yi.STRUCT_ID_METADATA_FS,yi.STRUCT_NAME_METADATA,ge.FRAGMENT),e.addStruct(yi.STRUCT_ID_METADATA_CLASS_VS,yi.STRUCT_NAME_METADATA_CLASS,ge.VERTEX),e.addStruct(yi.STRUCT_ID_METADATA_CLASS_FS,yi.STRUCT_NAME_METADATA_CLASS,ge.FRAGMENT),e.addStruct(yi.STRUCT_ID_METADATA_STATISTICS_VS,yi.STRUCT_NAME_METADATA_STATISTICS,ge.VERTEX),e.addStruct(yi.STRUCT_ID_METADATA_STATISTICS_FS,yi.STRUCT_NAME_METADATA_STATISTICS,ge.FRAGMENT),e.addFunction(yi.FUNCTION_ID_INITIALIZE_METADATA_VS,yi.FUNCTION_SIGNATURE_INITIALIZE_METADATA,ge.VERTEX),e.addFunction(yi.FUNCTION_ID_INITIALIZE_METADATA_FS,yi.FUNCTION_SIGNATURE_INITIALIZE_METADATA,ge.FRAGMENT),e.addFunction(yi.FUNCTION_ID_SET_METADATA_VARYINGS,yi.FUNCTION_SIGNATURE_SET_METADATA_VARYINGS,ge.VERTEX)}function K4e(e,t){Z4e(e,t),Lse(e.shaderBuilder,t),Nse(e.shaderBuilder,t)}function Z4e(e,t){let{shaderBuilder:n}=e,{metadataVariable:i,property:o,glslType:r}=t,s=Bse({valueExpression:`attributes.${t.variableName}`,renderResources:e,glslType:r,metadataVariable:i,shaderDestination:ge.BOTH,property:o});n.addStructField(yi.STRUCT_ID_METADATA_VS,r,i),n.addStructField(yi.STRUCT_ID_METADATA_FS,r,i);let a=`metadata.${i} = ${s};`;n.addFunctionLines(yi.FUNCTION_ID_INITIALIZE_METADATA_VS,[a]),n.addFunctionLines(yi.FUNCTION_ID_INITIALIZE_METADATA_FS,[a])}function $4e(e,t){Q4e(e,t),Lse(e.shaderBuilder,t),Nse(e.shaderBuilder,t)}function Q4e(e,t){let{shaderBuilder:n,uniformMap:i}=e,{metadataVariable:o,glslType:r,property:s}=t,{texCoord:a,channels:c,index:u,texture:f,transform:d}=s.textureReader,p=`u_propertyTexture_${u}`;i.hasOwnProperty(p)||(n.addUniform("sampler2D",p,ge.FRAGMENT),i[p]=()=>f),n.addStructField(yi.STRUCT_ID_METADATA_FS,r,o);let g=`attributes.texCoord_${a}`,m=g;if(l(d)&&!$.equals(d,$.IDENTITY)){let A=`${p}Transform`;n.addUniform("mat3",A,ge.FRAGMENT),i[A]=function(){return d},m=`vec2(${A} * vec3(${g}, 1.0))`}let x=`texture(${p}, ${m}).${c}`,b=s.unpackInShader(x),T=Bse({valueExpression:b,renderResources:e,glslType:r,metadataVariable:o,shaderDestination:ge.FRAGMENT,property:s}),C=`metadata.${o} = ${T};`;n.addFunctionLines(yi.FUNCTION_ID_INITIALIZE_METADATA_FS,[C])}function Lse(e,t){let{classProperty:n}=t.property,{metadataVariable:i,glslType:o,shaderDestination:r}=t,s=Fse(yi.METADATA_CLASS_FIELDS,n,`metadataClass.${i}`,o),a=`${o}MetadataClass`;e.addStructField(yi.STRUCT_ID_METADATA_CLASS_FS,a,i),e.addFunctionLines(yi.FUNCTION_ID_INITIALIZE_METADATA_FS,s),ge.includesVertexShader(r)&&(e.addStructField(yi.STRUCT_ID_METADATA_CLASS_VS,a,i),e.addFunctionLines(yi.FUNCTION_ID_INITIALIZE_METADATA_VS,s))}function Nse(e,t){let{propertyStatistics:n}=t;if(!l(n))return;let{metadataVariable:i,type:o,glslType:r}=t;if(o===Ht.ENUM)return;let s=yi.METADATA_STATISTICS_FIELDS,a=`metadataStatistics.${i}`,c=Fse(s,n,a,r),u=`${r}MetadataStatistics`;e.addStructField(yi.STRUCT_ID_METADATA_STATISTICS_FS,u,i),e.addFunctionLines(yi.FUNCTION_ID_INITIALIZE_METADATA_FS,c),ge.includesVertexShader(t.shaderDestination)&&(e.addStructField(yi.STRUCT_ID_METADATA_STATISTICS_VS,u,i),e.addFunctionLines(yi.FUNCTION_ID_INITIALIZE_METADATA_VS,c))}function Fse(e,t,n,i){function o(r){let s=t[r.specName];if(l(s))return`${n}.${r.shaderName} = ${i}(${s});`}return l(t)?e.map(o).filter(l):[]}function Bse(e){let{valueExpression:t,property:n}=e;if(!n.hasValueTransform)return t;let i=e.metadataVariable,o=`u_${i}_offset`,r=`u_${i}_scale`,{shaderBuilder:s,uniformMap:a}=e.renderResources,{glslType:c,shaderDestination:u}=e;s.addUniform(c,o,u),s.addUniform(c,r,u);let{offset:f,scale:d}=n;return a[o]=()=>f,a[r]=()=>d,`czm_valueTransform(${o}, ${r}, ${t})`}var vf=yi;var J4e={INHERIT:0,OPAQUE:1,TRANSLUCENT:2},xy=Object.freeze(J4e);var na={name:"CustomShaderPipelineStage",STRUCT_ID_ATTRIBUTES_VS:"AttributesVS",STRUCT_ID_ATTRIBUTES_FS:"AttributesFS",STRUCT_NAME_ATTRIBUTES:"Attributes",STRUCT_ID_VERTEX_INPUT:"VertexInput",STRUCT_NAME_VERTEX_INPUT:"VertexInput",STRUCT_ID_FRAGMENT_INPUT:"FragmentInput",STRUCT_NAME_FRAGMENT_INPUT:"FragmentInput",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS:"initializeInputStructVS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS:"void initializeInputStruct(out VertexInput vsInput, ProcessedAttributes attributes)",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS:"initializeInputStructFS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS:"void initializeInputStruct(out FragmentInput fsInput, ProcessedAttributes attributes)",_oneTimeWarning:Lt};na.process=function(e,t,n){let{shaderBuilder:i,model:o,alphaOptions:r}=e,{customShader:s}=o,{lightingModel:a,translucencyMode:c}=s;l(a)&&(e.lightingOptions.lightingModel=a),c===xy.TRANSLUCENT?r.pass=Ee.TRANSLUCENT:c===xy.OPAQUE&&(r.pass=void 0);let u=a8e(s,t);if(!u.customShaderEnabled)return;if(f8e(i,s,u),u.shouldComputePositionWC&&i.addDefine("COMPUTE_POSITION_WC_CUSTOM_SHADER",void 0,ge.BOTH),l(s.vertexShaderText)&&i.addDefine("HAS_CUSTOM_VERTEX_SHADER",void 0,ge.VERTEX),l(s.fragmentShaderText)){i.addDefine("HAS_CUSTOM_FRAGMENT_SHADER",void 0,ge.FRAGMENT);let p=r_.getDefineName(s.mode);i.addDefine(p,void 0,ge.FRAGMENT)}let f=s.uniforms;for(let p in f)if(f.hasOwnProperty(p)){let g=f[p];i.addUniform(g.type,p)}let d=s.varyings;for(let p in d)if(d.hasOwnProperty(p)){let g=d[p];i.addVarying(g,p)}e.uniformMap=_t(e.uniformMap,s.uniformMap)};function e8e(e){let t={};for(let n=0;n<e.length;n++){let i=Xt.getAttributeInfo(e[n]);t[i.variableName]=i}return t}var t8e={position:"vec3",normal:"vec3",tangent:"vec3",bitangent:"vec3",texCoord:"vec2",color:"vec4",joints:"ivec4",weights:"vec4"},n8e={position:"vec3(0.0)",normal:"vec3(0.0, 0.0, 1.0)",tangent:"vec3(1.0, 0.0, 0.0)",bitangent:"vec3(0.0, 1.0, 0.0)",texCoord:"vec2(0.0)",color:"vec4(1.0)",joints:"ivec4(0)",weights:"vec4(0.0)"};function kse(e){let t=e.replace(/_[0-9]+$/,"");t=t.replace(/(MC|EC)$/,"");let n=t8e[t],i=n8e[t];if(l(n))return{attributeField:[n,e],value:i}}function i8e(e,t){if(!l(e.vertexShaderText))return{enabled:!1};let n=e.usedVariablesVertex.attributeSet,i=Vse(t,n,!1),o=Use(t,n,!1),r,s=[],a=[];for(let c in i){if(!i.hasOwnProperty(c))continue;let f=[i[c].glslType,c];s.push(f),r=`vsInput.attributes.${c} = attributes.${c};`,a.push(r)}for(let c=0;c<o.length;c++){let u=o[c],f=kse(u);if(!l(f))return na._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveVS",`Primitive is missing attribute ${u}, disabling custom vertex shader`),{enabled:!1};s.push(f.attributeField),r=`vsInput.attributes.${u} = ${f.value};`,a.push(r)}return{enabled:!0,attributeFields:s,initializationLines:a}}function o8e(e){let t=[],n=[],i=e.usedVariablesFragment.attributeSet;return i.hasOwnProperty("positionWC")&&(t.push(["vec3","positionWC"]),n.push("fsInput.attributes.positionWC = attributes.positionWC;")),i.hasOwnProperty("positionEC")&&(t.push(["vec3","positionEC"]),n.push("fsInput.attributes.positionEC = attributes.positionEC;")),{attributeFields:t,initializationLines:n}}function r8e(e,t){if(!l(e.fragmentShaderText))return{enabled:!1};let n=e.usedVariablesFragment.attributeSet,i=Vse(t,n,!0),o=Use(t,n,!0),r,s=[],a=[];for(let u in i){if(!i.hasOwnProperty(u))continue;let d=[i[u].glslType,u];s.push(d),r=`fsInput.attributes.${u} = attributes.${u};`,a.push(r)}for(let u=0;u<o.length;u++){let f=o[u],d=kse(f);if(!l(d))return na._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveFS",`Primitive is missing attribute ${f}, disabling custom fragment shader.`),{enabled:!1};s.push(d.attributeField),r=`fsInput.attributes.${f} = ${d.value};`,a.push(r)}let c=o8e(e);return{enabled:!0,attributeFields:s.concat(c.attributeFields),initializationLines:c.initializationLines.concat(a)}}var s8e={positionWC:!0,positionEC:!0};function Vse(e,t,n){let i={};for(let o in e){if(!e.hasOwnProperty(o))continue;let r=e[o],s=o;n&&o==="normalMC"?s="normalEC":n&&o==="tangentMC"&&(s="tangentEC",r.glslType="vec3"),t.hasOwnProperty(s)&&(i[s]=r)}return i}function Use(e,t,n){let i=[];for(let o in t){if(!t.hasOwnProperty(o)||s8e.hasOwnProperty(o))continue;let r=o;n&&o==="normalEC"?r="normalMC":n&&o==="tangentEC"&&(r="tangentMC"),e.hasOwnProperty(r)||i.push(o)}return i}function a8e(e,t){let n=e8e(t.attributes),i=i8e(e,n),o=r8e(e,n),s=e.usedVariablesFragment.attributeSet.hasOwnProperty("positionWC")&&o.enabled;return{vertexLines:i,fragmentLines:o,customShaderEnabled:i.enabled||o.enabled,shouldComputePositionWC:s}}function c8e(e,t){let n=na.STRUCT_ID_ATTRIBUTES_VS;e.addStruct(n,na.STRUCT_NAME_ATTRIBUTES,ge.VERTEX);let{attributeFields:i,initializationLines:o}=t;for(let s=0;s<i.length;s++){let[a,c]=i[s];e.addStructField(n,a,c)}n=na.STRUCT_ID_VERTEX_INPUT,e.addStruct(n,na.STRUCT_NAME_VERTEX_INPUT,ge.VERTEX),e.addStructField(n,na.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(n,yy.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(n,vf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(n,vf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(n,vf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let r=na.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS;e.addFunction(r,na.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS,ge.VERTEX),e.addFunctionLines(r,o)}function l8e(e,t){let n=na.STRUCT_ID_ATTRIBUTES_FS;e.addStruct(n,na.STRUCT_NAME_ATTRIBUTES,ge.FRAGMENT);let{attributeFields:i,initializationLines:o}=t;for(let s=0;s<i.length;s++){let[a,c]=i[s];e.addStructField(n,a,c)}n=na.STRUCT_ID_FRAGMENT_INPUT,e.addStruct(n,na.STRUCT_NAME_FRAGMENT_INPUT,ge.FRAGMENT),e.addStructField(n,na.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(n,yy.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(n,vf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(n,vf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(n,vf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let r=na.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS;e.addFunction(r,na.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS,ge.FRAGMENT),e.addFunctionLines(r,o)}var u8e=[];function f8e(e,t,n){let{vertexLines:i,fragmentLines:o}=n,r=u8e;i.enabled&&(c8e(e,i),r.length=0,r.push("#line 0",t.vertexShaderText,oO),e.addVertexLines(r)),o.enabled&&(l8e(e,o),r.length=0,r.push("#line 0",t.fragmentShaderText,rO),e.addFragmentLines(r))}var uO=na;var fO={name:"DequantizationPipelineStage",FUNCTION_ID_DEQUANTIZATION_STAGE_VS:"dequantizationStage",FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS:"void dequantizationStage(inout ProcessedAttributes attributes)"};fO.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=l(o.classificationType);i.addDefine("USE_DEQUANTIZATION",void 0,ge.VERTEX),i.addFunction(fO.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,fO.FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS,ge.VERTEX);let s=t.attributes;for(let a=0;a<s.length;a++){let c=s[a],u=c.quantization;if(!l(u))continue;let f=c.semantic===yt.POSITION,d=c.semantic===yt.TEXCOORD;if(r&&!f&&!d)continue;let p=Xt.getAttributeInfo(c);h8e(i,p),d8e(e,p)}};function d8e(e,t){let n=e.shaderBuilder,i=e.uniformMap,o=t.variableName,r=t.attribute.quantization;if(r.octEncoded){let s=`model_normalizationRange_${o}`;n.addUniform("float",s,ge.VERTEX),i[s]=function(){return r.normalizationRange}}else{let s=`model_quantizedVolumeOffset_${o}`,a=`model_quantizedVolumeStepSize_${o}`,c=t.glslType;n.addUniform(c,s,ge.VERTEX),n.addUniform(c,a,ge.VERTEX);let u=r.quantizedVolumeOffset,f=r.quantizedVolumeStepSize;/^color_\d+$/.test(o)&&(u=zse(u,0),f=zse(f,1)),i[s]=function(){return u},i[a]=function(){return f}}}function zse(e,t){return e instanceof oe?e:new oe(e.x,e.y,e.z,t)}function h8e(e,t){let n=t.variableName,i=t.attribute.quantization,o;i.octEncoded?o=m8e(n,i):o=p8e(n),e.addFunctionLines(fO.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,[o])}function m8e(e,t){let n=`attributes.${e}`,i=`a_quantized_${e}`,o=`model_normalizationRange_${e}`,r=t.octEncodedZXY?".zxy":".xyz";return`${n} = czm_octDecode(${i}, ${o})${r};`}function p8e(e){let t=`attributes.${e}`,n=`a_quantized_${e}`,i=`model_quantizedVolumeOffset_${e}`,o=`model_quantizedVolumeStepSize_${e}`;return`${t} = ${i} + ${n} * ${o};`}var dO=fO;var hO=`void geometryStage(out ProcessedAttributes attributes) { attributes.positionMC = v_positionMC; attributes.positionEC = v_positionEC; #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE) || defined(COMPUTE_POSITION_WC_ATMOSPHERE) attributes.positionWC = v_positionWC; #endif #ifdef HAS_NORMALS // renormalize after interpolation attributes.normalEC = normalize(v_normalEC); #endif #ifdef HAS_TANGENTS attributes.tangentEC = normalize(v_tangentEC); #endif #ifdef HAS_BITANGENTS attributes.bitangentEC = normalize(v_bitangentEC); #endif // Everything else is dynamically generated in GeometryPipelineStage setDynamicVaryings(attributes); } `;var mO=`vec4 geometryStage(inout ProcessedAttributes attributes, mat4 modelView, mat3 normal) { vec4 computedPosition; // Compute positions in different coordinate systems vec3 positionMC = attributes.positionMC; v_positionMC = positionMC; v_positionEC = (modelView * vec4(positionMC, 1.0)).xyz; #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING) vec3 position2D = attributes.position2D; vec3 positionEC = (u_modelView2D * vec4(position2D, 1.0)).xyz; computedPosition = czm_projection * vec4(positionEC, 1.0); #else computedPosition = czm_projection * vec4(v_positionEC, 1.0); #endif // Sometimes the custom shader and/or style needs this #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE) || defined(COMPUTE_POSITION_WC_ATMOSPHERE) || defined(ENABLE_CLIPPING_POLYGONS) // Note that this is a 32-bit position which may result in jitter on small // scales. v_positionWC = (czm_model * vec4(positionMC, 1.0)).xyz; #endif #ifdef HAS_NORMALS v_normalEC = normalize(normal * attributes.normalMC); #endif #ifdef HAS_TANGENTS v_tangentEC = normalize(normal * attributes.tangentMC); #endif #ifdef HAS_BITANGENTS v_bitangentEC = normalize(normal * attributes.bitangentMC); #endif // All other varyings need to be dynamically generated in // GeometryPipelineStage setDynamicVaryings(attributes); return computedPosition; } `;var qC=`vec2 computeSt(float featureId) { float stepX = model_textureStep.x; float centerX = model_textureStep.y; #ifdef MULTILINE_BATCH_TEXTURE float stepY = model_textureStep.z; float centerY = model_textureStep.w; float xId = mod(featureId, model_textureDimensions.x); float yId = floor(featureId / model_textureDimensions.x); return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); #else return vec2(centerX + (featureId * stepX), 0.5); #endif } void selectedFeatureIdStage(out SelectedFeature feature, FeatureIds featureIds) { int featureId = featureIds.SELECTED_FEATURE_ID; if (featureId < model_featuresLength) { vec2 featureSt = computeSt(float(featureId)); feature.id = featureId; feature.st = featureSt; feature.color = texture(model_batchTexture, featureSt); } // Floating point comparisons can be unreliable in GLSL, so we // increment the feature ID to make sure it's always greater // then the model_featuresLength - a condition we check for in the // pick ID, to avoid sampling the pick texture if the feature ID is // greater than the number of features. else { feature.id = model_featuresLength + 1; feature.st = vec2(0.0); feature.color = vec4(1.0); } #ifdef HAS_NULL_FEATURE_ID if (featureId == model_nullFeatureId) { feature.id = featureId; feature.st = vec2(0.0); feature.color = vec4(1.0); } #endif } `;var pO={name:"SelectedFeatureIdPipelineStage",STRUCT_ID_SELECTED_FEATURE:"SelectedFeature",STRUCT_NAME_SELECTED_FEATURE:"SelectedFeature",FUNCTION_ID_FEATURE_VARYINGS_VS:"updateFeatureStructVS",FUNCTION_ID_FEATURE_VARYINGS_FS:"updateFeatureStructFS",FUNCTION_SIGNATURE_UPDATE_FEATURE:"void updateFeatureStruct(inout SelectedFeature feature)"};pO.process=function(e,t,n){let i=e.shaderBuilder;e.hasPropertyTable=!0;let o=e.model,r=e.runtimeNode.node,s=_8e(o,r,t),a=s.shaderDestination;i.addDefine("HAS_SELECTED_FEATURE_ID",void 0,a),i.addDefine("SELECTED_FEATURE_ID",s.variableName,a),i.addDefine(s.featureIdDefine,void 0,a),g8e(i);let c=s.featureIds.nullFeatureId,u=e.uniformMap;l(c)&&(i.addDefine("HAS_NULL_FEATURE_ID",void 0,a),i.addUniform("int","model_nullFeatureId",a),u.model_nullFeatureId=function(){return c}),s.shaderDestination===ge.BOTH&&i.addVertexLines(qC),i.addFragmentLines(qC)};function Hse(e){return e instanceof xn.FeatureIdTexture?"HAS_SELECTED_FEATURE_ID_TEXTURE":"HAS_SELECTED_FEATURE_ID_ATTRIBUTE"}function Gse(e){return e instanceof xn.FeatureIdTexture?ge.FRAGMENT:ge.BOTH}function _8e(e,t,n){let i,o;return l(t.instances)&&(o=Xt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(o))?(i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:Gse(o),featureIdDefine:Hse(o)}):(o=Xt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:Gse(o),featureIdDefine:Hse(o)})}function g8e(e){e.addStructField(pO.STRUCT_ID_SELECTED_FEATURE,"int","id"),e.addStructField(pO.STRUCT_ID_SELECTED_FEATURE,"vec2","st"),e.addStructField(pO.STRUCT_ID_SELECTED_FEATURE,"vec4","color")}var by=pO;var Bs={name:"GeometryPipelineStage",STRUCT_ID_PROCESSED_ATTRIBUTES_VS:"ProcessedAttributesVS",STRUCT_ID_PROCESSED_ATTRIBUTES_FS:"ProcessedAttributesFS",STRUCT_NAME_PROCESSED_ATTRIBUTES:"ProcessedAttributes",FUNCTION_ID_INITIALIZE_ATTRIBUTES:"initializeAttributes",FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES:"void initializeAttributes(out ProcessedAttributes attributes)",FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS:"setDynamicVaryingsVS",FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS:"setDynamicVaryingsFS",FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS:"void setDynamicVaryings(inout ProcessedAttributes attributes)"};Bs.process=function(e,t,n){let{shaderBuilder:i,model:o}=e;i.addStruct(Bs.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"ProcessedAttributes",ge.VERTEX),i.addStruct(Bs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"ProcessedAttributes",ge.FRAGMENT),i.addStruct(by.STRUCT_ID_SELECTED_FEATURE,by.STRUCT_NAME_SELECTED_FEATURE,ge.BOTH),i.addFunction(Bs.FUNCTION_ID_INITIALIZE_ATTRIBUTES,Bs.FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES,ge.VERTEX),i.addVarying("vec3","v_positionWC"),i.addVarying("vec3","v_positionEC"),i.addStructField(Bs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionWC"),i.addStructField(Bs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionEC"),i.addFunction(Bs.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,Bs.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,ge.VERTEX),i.addFunction(Bs.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,Bs.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,ge.FRAGMENT),o.type===sr.TILE_PNTS&&i.addDefine("HAS_SRGB_COLOR",void 0,ge.FRAGMENT);let r=n.mode!==ne.SCENE3D&&!n.scene3DOnly&&o._projectTo2D,s=l(e.runtimeNode.node.instances),a=r&&!s,c=t.attributes.length;for(let u=0;u<c;u++){let f=t.attributes[u],d=tn.getAttributeLocationCount(f.type),p=f.semantic===yt.POSITION,g;d>1?(g=e.attributeIndex,e.attributeIndex+=d):p&&!a?g=0:g=e.attributeIndex++,y8e(e,f,g,d,r,s)}w8e(i,t.attributes),t.primitiveType===Le.POINTS&&i.addDefine("PRIMITIVE_TYPE_POINTS"),i.addVertexLines(mO),i.addFragmentLines(hO)};function y8e(e,t,n,i,o,r){let s=e.shaderBuilder,a=Xt.getAttributeInfo(t),c=o&&!r;i>1?T8e(e,t,n,i):b8e(e,t,n,c),C8e(s,a,c),A8e(s,a),l(t.semantic)&&x8e(s,t),E8e(s,a,o),S8e(s,a,c),v8e(s,a)}function x8e(e,t){let{semantic:n,setIndex:i}=t;switch(n){case yt.NORMAL:e.addDefine("HAS_NORMALS");break;case yt.TANGENT:e.addDefine("HAS_TANGENTS");break;case yt.FEATURE_ID:e.addDefine(`HAS${n}_${i}`);break;case yt.TEXCOORD:case yt.COLOR:e.addDefine(`HAS_${n}_${i}`)}}function b8e(e,t,n,i){let{quantization:o,semantic:r,setIndex:s}=t,{type:a,componentDatatype:c}=l(o)?o:t;r===yt.FEATURE_ID&&s>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=s+1);let u=r===yt.POSITION,f=u?0:n,d=tn.getNumberOfComponents(a),p={index:f,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,count:t.count,componentsPerAttribute:d,componentDatatype:c,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};if(e.attributes.push(p),!u||!i)return;let g=e.runtimePrimitive.positionBuffer2D,m={index:n,vertexBuffer:g,count:t.count,componentsPerAttribute:d,componentDatatype:X.FLOAT,offsetInBytes:0,strideInBytes:void 0,normalize:t.normalized};e.attributes.push(m)}function T8e(e,t,n,i){let{quantization:o,normalized:r}=t,{type:s,componentDatatype:a}=l(o)?o:t,u=tn.getNumberOfComponents(s)/i,f=X.getSizeInBytes(a),d=u*f,p=t.byteStride;for(let g=0;g<i;g++){let m=t.byteOffset+g*d,x={index:n+g,vertexBuffer:t.buffer,componentsPerAttribute:u,componentDatatype:a,offsetInBytes:m,strideInBytes:p,normalize:r};e.attributes.push(x)}}function A8e(e,t){let n=t.variableName,i=`v_${n}`,o;n==="normalMC"?(i="v_normalEC",o=t.glslType):n==="tangentMC"?(o="vec3",i="v_tangentEC"):o=t.glslType,e.addVarying(o,i)}function C8e(e,t,n){let i=t.attribute.semantic,o=t.variableName,r,s;t.isQuantized?(r=`a_quantized_${o}`,s=t.quantizedGlslType):(r=`a_${o}`,s=t.glslType);let a=i===yt.POSITION;a?e.setPositionAttribute(s,r):e.addAttribute(s,r),a&&n&&e.addAttribute("vec3","a_position2D")}function E8e(e,t,n){let i=Bs.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,o=Bs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,{variableName:r,glslType:s}=t;r==="tangentMC"?(e.addStructField(i,"vec3","tangentMC"),e.addStructField(i,"float","tangentSignMC"),e.addStructField(o,"vec3","tangentEC")):r==="normalMC"?(e.addStructField(i,"vec3","normalMC"),e.addStructField(o,"vec3","normalEC")):(e.addStructField(i,s,r),e.addStructField(o,s,r)),r==="positionMC"&&n&&e.addStructField(i,"vec3","position2D")}function S8e(e,t,n){let i=Bs.FUNCTION_ID_INITIALIZE_ATTRIBUTES,o=t.variableName;if(o==="positionMC"&&n&&e.addFunctionLines(i,["attributes.position2D = a_position2D;"]),t.isQuantized)return;let s=[];o==="tangentMC"?(s.push("attributes.tangentMC = a_tangentMC.xyz;"),s.push("attributes.tangentSignMC = a_tangentMC.w;")):s.push(`attributes.${o} = a_${o};`),e.addFunctionLines(i,s)}function v8e(e,t){let{semantic:n,setIndex:i}=t.attribute;if(l(n)&&!l(i))return;let o=Bs.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,r=t.variableName,s=`v_${r} = attributes.${r};`;e.addFunctionLines(o,[s]),o=Bs.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,s=`attributes.${r} = v_${r};`,e.addFunctionLines(o,[s])}function w8e(e,t){let n=!1,i=!1;for(let o=0;o<t.length;o++){let r=t[o];r.semantic===yt.NORMAL?n=!0:r.semantic===yt.TANGENT&&(i=!0)}!n||!i||(e.addDefine("HAS_BITANGENTS"),e.addVarying("vec3","v_bitangentEC"),e.addStructField(Bs.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"vec3","bitangentMC"),e.addStructField(Bs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","bitangentEC"))}var _O=Bs;var gO=`#ifdef USE_IBL_LIGHTING vec3 computeIBL(vec3 position, vec3 normal, vec3 lightDirection, vec3 lightColorHdr, czm_modelMaterial material) { #if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) // Environment maps were provided, use them for IBL vec3 viewDirection = -normalize(position); vec3 iblColor = textureIBL(viewDirection, normal, lightDirection, material); #else // Use procedural IBL if there are no environment maps vec3 imageBasedLighting = proceduralIBL(position, normal, lightDirection, material); float maximumComponent = czm_maximumComponent(lightColorHdr); vec3 clampedLightColor = lightColorHdr / max(maximumComponent, 1.0); vec3 iblColor = clampedLightColor * imageBasedLighting; #endif return iblColor * material.occlusion; } #endif #ifdef USE_CLEARCOAT vec3 addClearcoatReflection(vec3 baseLayerColor, vec3 position, vec3 lightDirection, vec3 lightColorHdr, czm_modelMaterial material) { vec3 viewDirection = -normalize(position); vec3 halfwayDirection = normalize(viewDirection + lightDirection); vec3 normal = material.clearcoatNormal; float NdotL = clamp(dot(normal, lightDirection), 0.001, 1.0); // clearcoatF0 = vec3(pow((ior - 1.0) / (ior + 1.0), 2.0)), but without KHR_materials_ior, ior is a constant 1.5. vec3 f0 = vec3(0.04); vec3 f90 = vec3(1.0); // Note: clearcoat Fresnel computed with dot(n, v) instead of dot(v, h). // This is to make it energy conserving with a simple layering function. float NdotV = clamp(dot(normal, viewDirection), 0.0, 1.0); vec3 F = fresnelSchlick2(f0, f90, NdotV); // compute specular reflection from direct lighting float roughness = material.clearcoatRoughness; float directStrength = computeDirectSpecularStrength(normal, lightDirection, viewDirection, halfwayDirection, roughness); vec3 directReflection = F * directStrength * NdotL; vec3 color = lightColorHdr * directReflection; #ifdef SPECULAR_IBL // Find the direction in which to sample the environment map vec3 cubeDir = normalize(model_iblReferenceFrameMatrix * normalize(reflect(-viewDirection, normal))); vec3 iblColor = computeSpecularIBL(cubeDir, NdotV, NdotV, f0, roughness); color += iblColor * material.occlusion; #elif defined(USE_IBL_LIGHTING) vec3 positionWC = vec3(czm_inverseView * vec4(position, 1.0)); vec3 reflectionWC = normalize(czm_inverseViewRotation * normalize(reflect(viewDirection, normal))); vec3 skyMetrics = getProceduralSkyMetrics(positionWC, reflectionWC); vec3 specularIrradiance = getProceduralSpecularIrradiance(reflectionWC, skyMetrics, roughness); vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; vec3 specularColor = czm_srgbToLinear(f0 * brdfLut.x + brdfLut.y); vec3 iblColor = specularIrradiance * specularColor * model_iblFactor.y; #ifdef USE_SUN_LUMINANCE iblColor *= getSunLuminance(positionWC, normal, lightDirection); #endif float maximumComponent = czm_maximumComponent(lightColorHdr); vec3 clampedLightColor = lightColorHdr / max(maximumComponent, 1.0); color += clampedLightColor* iblColor * material.occlusion; #endif float clearcoatFactor = material.clearcoatFactor; vec3 clearcoatColor = color * clearcoatFactor; // Dim base layer based on transmission loss through clearcoat return baseLayerColor * (1.0 - clearcoatFactor * F) + clearcoatColor; } #endif #if defined(LIGHTING_PBR) && defined(HAS_NORMALS) vec3 computePbrLighting(in czm_modelMaterial material, in vec3 position) { #ifdef USE_CUSTOM_LIGHT_COLOR vec3 lightColorHdr = model_lightColorHdr; #else vec3 lightColorHdr = czm_lightColorHdr; #endif vec3 viewDirection = -normalize(position); vec3 normal = material.normalEC; vec3 lightDirection = normalize(czm_lightDirectionEC); vec3 directLighting = czm_pbrLighting(viewDirection, normal, lightDirection, material); vec3 directColor = lightColorHdr * directLighting; // Accumulate colors from base layer vec3 color = directColor + material.emissive; #ifdef USE_IBL_LIGHTING color += computeIBL(position, normal, lightDirection, lightColorHdr, material); #endif #ifdef USE_CLEARCOAT color = addClearcoatReflection(color, position, lightDirection, lightColorHdr, material); #endif return color; } #endif /** * Compute the material color under the current lighting conditions. * All other material properties are passed through so further stages * have access to them. * * @param {czm_modelMaterial} material The material properties from {@MaterialStageFS} * @param {ProcessedAttributes} attributes */ void lightingStage(inout czm_modelMaterial material, ProcessedAttributes attributes) { #ifdef LIGHTING_PBR #ifdef HAS_NORMALS vec3 color = computePbrLighting(material, attributes.positionEC); #else vec3 color = material.diffuse * material.occlusion + material.emissive; #endif // In HDR mode, the frame buffer is in linear color space. The // post-processing stages (see PostProcessStageCollection) will handle // tonemapping. However, if HDR is not enabled, we must tonemap else large // values may be clamped to 1.0 #ifndef HDR color = czm_acesTonemapping(color); #endif #else // unlit vec3 color = material.diffuse; #endif #ifdef HAS_POINT_CLOUD_COLOR_STYLE // The colors resulting from point cloud styles are adjusted differently. color = czm_gammaCorrect(color); #elif !defined(HDR) // If HDR is not enabled, the frame buffer stores sRGB colors rather than // linear colors so the linear value must be converted. color = czm_linearToSrgb(color); #endif material.diffuse = color; } `;var D8e={UNLIT:0,PBR:1},pm=Object.freeze(D8e);var Wse={name:"LightingPipelineStage"};Wse.process=function(e,t){let{model:n,lightingOptions:i,shaderBuilder:o}=e;if(l(n.lightColor)){o.addDefine("USE_CUSTOM_LIGHT_COLOR",void 0,ge.FRAGMENT),o.addUniform("vec3","model_lightColorHdr",ge.FRAGMENT);let s=e.uniformMap;s.model_lightColorHdr=function(){return n.lightColor}}let{lightingModel:r}=i;r===pm.PBR?o.addDefine("LIGHTING_PBR",void 0,ge.FRAGMENT):o.addDefine("LIGHTING_UNLIT",void 0,ge.FRAGMENT),o.addFragmentLines(gO)};var yO=Wse;var xO=`// If the style color is white, it implies the feature has not been styled. bool isDefaultStyleColor(vec3 color) { return all(greaterThan(color, vec3(1.0 - czm_epsilon3))); } vec3 blend(vec3 sourceColor, vec3 styleColor, float styleColorBlend) { vec3 blendColor = mix(sourceColor, styleColor, styleColorBlend); vec3 color = isDefaultStyleColor(styleColor.rgb) ? sourceColor : blendColor; return color; } vec2 computeTextureTransform(vec2 texCoord, mat3 textureTransform) { return vec2(textureTransform * vec3(texCoord, 1.0)); } #ifdef HAS_NORMAL_TEXTURE vec2 getNormalTexCoords() { vec2 texCoord = TEXCOORD_NORMAL; #ifdef HAS_NORMAL_TEXTURE_TRANSFORM texCoord = vec2(u_normalTextureTransform * vec3(texCoord, 1.0)); #endif return texCoord; } #endif #if defined(HAS_NORMAL_TEXTURE) || defined(HAS_CLEARCOAT_NORMAL_TEXTURE) vec3 computeTangent(in vec3 position, in vec2 normalTexCoords) { vec2 tex_dx = dFdx(normalTexCoords); vec2 tex_dy = dFdy(normalTexCoords); float determinant = tex_dx.x * tex_dy.y - tex_dy.x * tex_dx.y; vec3 tangent = tex_dy.t * dFdx(position) - tex_dx.t * dFdy(position); return tangent / determinant; } #endif #ifdef USE_ANISOTROPY struct NormalInfo { vec3 tangent; vec3 bitangent; vec3 normal; vec3 geometryNormal; }; NormalInfo getNormalInfo(ProcessedAttributes attributes) { vec3 geometryNormal = attributes.normalEC; #ifdef HAS_NORMAL_TEXTURE vec2 normalTexCoords = getNormalTexCoords(); #endif #ifdef HAS_BITANGENTS vec3 tangent = attributes.tangentEC; vec3 bitangent = attributes.bitangentEC; #else // Assume HAS_NORMAL_TEXTURE vec3 tangent = computeTangent(attributes.positionEC, normalTexCoords); tangent = normalize(tangent - geometryNormal * dot(geometryNormal, tangent)); vec3 bitangent = normalize(cross(geometryNormal, tangent)); #endif #ifdef HAS_NORMAL_TEXTURE mat3 tbn = mat3(tangent, bitangent, geometryNormal); vec3 normalSample = texture(u_normalTexture, normalTexCoords).rgb; vec3 normal = normalize(tbn * (2.0 * normalSample - 1.0)); #else vec3 normal = geometryNormal; #endif #ifdef HAS_DOUBLE_SIDED_MATERIAL if (czm_backFacing()) { tangent *= -1.0; bitangent *= -1.0; normal *= -1.0; geometryNormal *= -1.0; } #endif NormalInfo normalInfo; normalInfo.tangent = tangent; normalInfo.bitangent = bitangent; normalInfo.normal = normal; normalInfo.geometryNormal = geometryNormal; return normalInfo; } #endif #if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME) vec3 getNormalFromTexture(ProcessedAttributes attributes, vec3 geometryNormal) { vec2 normalTexCoords = getNormalTexCoords(); // If HAS_BITANGENTS is set, then HAS_TANGENTS is also set #ifdef HAS_BITANGENTS vec3 t = attributes.tangentEC; vec3 b = attributes.bitangentEC; #else vec3 t = computeTangent(attributes.positionEC, normalTexCoords); t = normalize(t - geometryNormal * dot(geometryNormal, t)); vec3 b = normalize(cross(geometryNormal, t)); #endif mat3 tbn = mat3(t, b, geometryNormal); vec3 n = texture(u_normalTexture, normalTexCoords).rgb; vec3 textureNormal = normalize(tbn * (2.0 * n - 1.0)); return textureNormal; } #endif #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE vec3 getClearcoatNormalFromTexture(ProcessedAttributes attributes, vec3 geometryNormal) { vec2 normalTexCoords = TEXCOORD_CLEARCOAT_NORMAL; #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE_TRANSFORM normalTexCoords = vec2(u_clearcoatNormalTextureTransform * vec3(normalTexCoords, 1.0)); #endif // If HAS_BITANGENTS is set, then HAS_TANGENTS is also set #ifdef HAS_BITANGENTS vec3 t = attributes.tangentEC; vec3 b = attributes.bitangentEC; #else vec3 t = computeTangent(attributes.positionEC, normalTexCoords); t = normalize(t - geometryNormal * dot(geometryNormal, t)); vec3 b = normalize(cross(geometryNormal, t)); #endif mat3 tbn = mat3(t, b, geometryNormal); vec3 n = texture(u_clearcoatNormalTexture, normalTexCoords).rgb; vec3 textureNormal = normalize(tbn * (2.0 * n - 1.0)); return textureNormal; } #endif #ifdef HAS_NORMALS vec3 computeNormal(ProcessedAttributes attributes) { // Geometry normal. This is already normalized vec3 normal = attributes.normalEC; #if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME) normal = getNormalFromTexture(attributes, normal); #endif #ifdef HAS_DOUBLE_SIDED_MATERIAL if (czm_backFacing()) { normal = -normal; } #endif return normal; } #endif #ifdef HAS_BASE_COLOR_TEXTURE vec4 getBaseColorFromTexture() { vec2 baseColorTexCoords = TEXCOORD_BASE_COLOR; #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM baseColorTexCoords = computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform); #endif vec4 baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords)); #ifdef HAS_BASE_COLOR_FACTOR baseColorWithAlpha *= u_baseColorFactor; #endif return baseColorWithAlpha; } #endif #ifdef HAS_EMISSIVE_TEXTURE vec3 getEmissiveFromTexture() { vec2 emissiveTexCoords = TEXCOORD_EMISSIVE; #ifdef HAS_EMISSIVE_TEXTURE_TRANSFORM emissiveTexCoords = computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform); #endif vec3 emissive = czm_srgbToLinear(texture(u_emissiveTexture, emissiveTexCoords).rgb); #ifdef HAS_EMISSIVE_FACTOR emissive *= u_emissiveFactor; #endif return emissive; } #endif #if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS) void setSpecularGlossiness(inout czm_modelMaterial material) { #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE vec2 specularGlossinessTexCoords = TEXCOORD_SPECULAR_GLOSSINESS; #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE_TRANSFORM specularGlossinessTexCoords = computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform); #endif vec4 specularGlossiness = czm_srgbToLinear(texture(u_specularGlossinessTexture, specularGlossinessTexCoords)); vec3 specular = specularGlossiness.rgb; float glossiness = specularGlossiness.a; #ifdef HAS_LEGACY_SPECULAR_FACTOR specular *= u_legacySpecularFactor; #endif #ifdef HAS_GLOSSINESS_FACTOR glossiness *= u_glossinessFactor; #endif #else #ifdef HAS_LEGACY_SPECULAR_FACTOR vec3 specular = clamp(u_legacySpecularFactor, vec3(0.0), vec3(1.0)); #else vec3 specular = vec3(1.0); #endif #ifdef HAS_GLOSSINESS_FACTOR float glossiness = clamp(u_glossinessFactor, 0.0, 1.0); #else float glossiness = 1.0; #endif #endif #ifdef HAS_DIFFUSE_TEXTURE vec2 diffuseTexCoords = TEXCOORD_DIFFUSE; #ifdef HAS_DIFFUSE_TEXTURE_TRANSFORM diffuseTexCoords = computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform); #endif vec4 diffuse = czm_srgbToLinear(texture(u_diffuseTexture, diffuseTexCoords)); #ifdef HAS_DIFFUSE_FACTOR diffuse *= u_diffuseFactor; #endif #elif defined(HAS_DIFFUSE_FACTOR) vec4 diffuse = clamp(u_diffuseFactor, vec4(0.0), vec4(1.0)); #else vec4 diffuse = vec4(1.0); #endif material.diffuse = diffuse.rgb * (1.0 - czm_maximumComponent(specular)); // the specular glossiness extension's alpha overrides anything set // by the base material. material.alpha = diffuse.a; material.specular = specular; // glossiness is the opposite of roughness, but easier for artists to use. float roughness = 1.0 - glossiness; material.roughness = roughness * roughness; } #elif defined(LIGHTING_PBR) float setMetallicRoughness(inout czm_modelMaterial material) { #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE vec2 metallicRoughnessTexCoords = TEXCOORD_METALLIC_ROUGHNESS; #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE_TRANSFORM metallicRoughnessTexCoords = computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform); #endif vec3 metallicRoughness = texture(u_metallicRoughnessTexture, metallicRoughnessTexCoords).rgb; float metalness = clamp(metallicRoughness.b, 0.0, 1.0); float roughness = clamp(metallicRoughness.g, 0.04, 1.0); #ifdef HAS_METALLIC_FACTOR metalness = clamp(metalness * u_metallicFactor, 0.0, 1.0); #endif #ifdef HAS_ROUGHNESS_FACTOR roughness = clamp(roughness * u_roughnessFactor, 0.0, 1.0); #endif #else #ifdef HAS_METALLIC_FACTOR float metalness = clamp(u_metallicFactor, 0.0, 1.0); #else float metalness = 1.0; #endif #ifdef HAS_ROUGHNESS_FACTOR float roughness = clamp(u_roughnessFactor, 0.04, 1.0); #else float roughness = 1.0; #endif #endif // dielectrics use f0 = 0.04, metals use albedo as f0 const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04); vec3 f0 = mix(REFLECTANCE_DIELECTRIC, material.diffuse, metalness); material.specular = f0; // diffuse only applies to dielectrics. material.diffuse = material.diffuse * (1.0 - f0) * (1.0 - metalness); // roughness is authored as perceptual roughness // square it to get material roughness material.roughness = roughness * roughness; return metalness; } #ifdef USE_SPECULAR void setSpecular(inout czm_modelMaterial material, in float metalness) { #ifdef HAS_SPECULAR_TEXTURE vec2 specularTexCoords = TEXCOORD_SPECULAR; #ifdef HAS_SPECULAR_TEXTURE_TRANSFORM specularTexCoords = computeTextureTransform(specularTexCoords, u_specularTextureTransform); #endif float specularWeight = texture(u_specularTexture, specularTexCoords).a; #ifdef HAS_SPECULAR_FACTOR specularWeight *= u_specularFactor; #endif #else #ifdef HAS_SPECULAR_FACTOR float specularWeight = u_specularFactor; #else float specularWeight = 1.0; #endif #endif #ifdef HAS_SPECULAR_COLOR_TEXTURE vec2 specularColorTexCoords = TEXCOORD_SPECULAR_COLOR; #ifdef HAS_SPECULAR_COLOR_TEXTURE_TRANSFORM specularColorTexCoords = computeTextureTransform(specularColorTexCoords, u_specularColorTextureTransform); #endif vec3 specularColorSample = texture(u_specularColorTexture, specularColorTexCoords).rgb; vec3 specularColorFactor = czm_srgbToLinear(specularColorSample); #ifdef HAS_SPECULAR_COLOR_FACTOR specularColorFactor *= u_specularColorFactor; #endif #else #ifdef HAS_SPECULAR_COLOR_FACTOR vec3 specularColorFactor = u_specularColorFactor; #else vec3 specularColorFactor = vec3(1.0); #endif #endif material.specularWeight = specularWeight; vec3 f0 = material.specular; vec3 dielectricSpecularF0 = min(f0 * specularColorFactor, vec3(1.0)); material.specular = mix(dielectricSpecularF0, material.diffuse, metalness); } #endif #ifdef USE_ANISOTROPY void setAnisotropy(inout czm_modelMaterial material, in NormalInfo normalInfo) { mat2 rotation = mat2(u_anisotropy.xy, -u_anisotropy.y, u_anisotropy.x); float anisotropyStrength = u_anisotropy.z; vec2 direction = vec2(1.0, 0.0); #ifdef HAS_ANISOTROPY_TEXTURE vec2 anisotropyTexCoords = TEXCOORD_ANISOTROPY; #ifdef HAS_ANISOTROPY_TEXTURE_TRANSFORM anisotropyTexCoords = computeTextureTransform(anisotropyTexCoords, u_anisotropyTextureTransform); #endif vec3 anisotropySample = texture(u_anisotropyTexture, anisotropyTexCoords).rgb; direction = anisotropySample.rg * 2.0 - vec2(1.0); anisotropyStrength *= anisotropySample.b; #endif direction = rotation * direction; mat3 tbn = mat3(normalInfo.tangent, normalInfo.bitangent, normalInfo.normal); vec3 anisotropicT = tbn * normalize(vec3(direction, 0.0)); vec3 anisotropicB = cross(normalInfo.geometryNormal, anisotropicT); material.anisotropicT = anisotropicT; material.anisotropicB = anisotropicB; material.anisotropyStrength = anisotropyStrength; } #endif #ifdef USE_CLEARCOAT void setClearcoat(inout czm_modelMaterial material, in ProcessedAttributes attributes) { #ifdef HAS_CLEARCOAT_TEXTURE vec2 clearcoatTexCoords = TEXCOORD_CLEARCOAT; #ifdef HAS_CLEARCOAT_TEXTURE_TRANSFORM clearcoatTexCoords = computeTextureTransform(clearcoatTexCoords, u_clearcoatTextureTransform); #endif float clearcoatFactor = texture(u_clearcoatTexture, clearcoatTexCoords).r; #ifdef HAS_CLEARCOAT_FACTOR clearcoatFactor *= u_clearcoatFactor; #endif #else #ifdef HAS_CLEARCOAT_FACTOR float clearcoatFactor = u_clearcoatFactor; #else // PERFORMANCE_IDEA: this case should turn the whole extension off float clearcoatFactor = 0.0; #endif #endif #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE vec2 clearcoatRoughnessTexCoords = TEXCOORD_CLEARCOAT_ROUGHNESS; #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE_TRANSFORM clearcoatRoughnessTexCoords = computeTextureTransform(clearcoatRoughnessTexCoords, u_clearcoatRoughnessTextureTransform); #endif float clearcoatRoughness = texture(u_clearcoatRoughnessTexture, clearcoatRoughnessTexCoords).g; #ifdef HAS_CLEARCOAT_ROUGHNESS_FACTOR clearcoatRoughness *= u_clearcoatRoughnessFactor; #endif #else #ifdef HAS_CLEARCOAT_ROUGHNESS_FACTOR float clearcoatRoughness = u_clearcoatRoughnessFactor; #else float clearcoatRoughness = 0.0; #endif #endif material.clearcoatFactor = clearcoatFactor; // roughness is authored as perceptual roughness // square it to get material roughness material.clearcoatRoughness = clearcoatRoughness * clearcoatRoughness; #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE material.clearcoatNormal = getClearcoatNormalFromTexture(attributes, attributes.normalEC); #else material.clearcoatNormal = attributes.normalEC; #endif } #endif #endif void materialStage(inout czm_modelMaterial material, ProcessedAttributes attributes, SelectedFeature feature) { #ifdef USE_ANISOTROPY NormalInfo normalInfo = getNormalInfo(attributes); material.normalEC = normalInfo.normal; #elif defined(HAS_NORMALS) material.normalEC = computeNormal(attributes); #endif vec4 baseColorWithAlpha = vec4(1.0); // Regardless of whether we use PBR, set a base color #ifdef HAS_BASE_COLOR_TEXTURE baseColorWithAlpha = getBaseColorFromTexture(); #elif defined(HAS_BASE_COLOR_FACTOR) baseColorWithAlpha = u_baseColorFactor; #endif #ifdef HAS_POINT_CLOUD_COLOR_STYLE baseColorWithAlpha = v_pointCloudColor; #elif defined(HAS_COLOR_0) vec4 color = attributes.color_0; // .pnts files store colors in the sRGB color space #ifdef HAS_SRGB_COLOR color = czm_srgbToLinear(color); #endif baseColorWithAlpha *= color; #endif material.diffuse = baseColorWithAlpha.rgb; material.alpha = baseColorWithAlpha.a; #ifdef USE_CPU_STYLING material.diffuse = blend(material.diffuse, feature.color.rgb, model_colorBlend); #endif #ifdef HAS_OCCLUSION_TEXTURE vec2 occlusionTexCoords = TEXCOORD_OCCLUSION; #ifdef HAS_OCCLUSION_TEXTURE_TRANSFORM occlusionTexCoords = computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform); #endif material.occlusion = texture(u_occlusionTexture, occlusionTexCoords).r; #endif #ifdef HAS_EMISSIVE_TEXTURE material.emissive = getEmissiveFromTexture(); #elif defined(HAS_EMISSIVE_FACTOR) material.emissive = u_emissiveFactor; #endif #if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS) setSpecularGlossiness(material); #elif defined(LIGHTING_PBR) float metalness = setMetallicRoughness(material); #ifdef USE_SPECULAR setSpecular(material, metalness); #endif #ifdef USE_ANISOTROPY setAnisotropy(material, normalInfo); #endif #ifdef USE_CLEARCOAT setClearcoat(material, attributes); #endif #endif } `;var{Material:P8e,MetallicRoughness:gW,SpecularGlossiness:yW,Specular:jse,Clearcoat:qse}=xn,Yse={name:"MaterialPipelineStage",_processTexture:Ul,_processTextureTransform:Xse};Yse.process=function(e,t,n){let i=t.material,{model:o,uniformMap:r,shaderBuilder:s}=e,a=l(o.classificationType),c=a,{defaultTexture:u,defaultNormalTexture:f,defaultEmissiveTexture:d}=n.context;I8e(i,r,s,u,f,d,c),l(i.specularGlossiness)?R8e(i.specularGlossiness,r,s,u,c):(l(i.specular)&&Xt.supportedExtensions.KHR_materials_specular&&O8e(i.specular,r,s,u,c),l(i.anisotropy)&&Xt.supportedExtensions.KHR_materials_anisotropy&&L8e(i.anisotropy,r,s,u,c),l(i.clearcoat)&&Xt.supportedExtensions.KHR_materials_clearcoat&&N8e(i.clearcoat,r,s,u,c),F8e(i.metallicRoughness,r,s,u,c));let p=Xt.getAttributeBySemantic(t,yt.NORMAL),g=e.lightingOptions;i.unlit||!p||a?g.lightingModel=pm.UNLIT:g.lightingModel=pm.PBR;let m=o.backFaceCulling&&!i.doubleSided;e.renderStateOptions.cull.enabled=m;let x=e.alphaOptions;i.alphaMode===dm.BLEND?x.pass=Ee.TRANSLUCENT:i.alphaMode===dm.MASK&&(x.alphaCutoff=i.alphaCutoff),s.addFragmentLines(xO),i.doubleSided&&s.addDefine("HAS_DOUBLE_SIDED_MATERIAL",void 0,ge.BOTH)};function Xse(e,t,n,i,o){let r=`HAS_${o}_TEXTURE_TRANSFORM`;e.addDefine(r,void 0,ge.FRAGMENT);let s=`${i}Transform`;e.addUniform("mat3",s,ge.FRAGMENT),t[s]=function(){return n.transform}}function Ul(e,t,n,i,o,r){e.addUniform("sampler2D",i,ge.FRAGMENT),t[i]=function(){return y(n.texture,r)};let s=`HAS_${o}_TEXTURE`;e.addDefine(s,void 0,ge.FRAGMENT);let c=`v_texCoord_${n.texCoord}`,u=`TEXCOORD_${o}`;e.addDefine(u,c,ge.FRAGMENT);let f=n.transform;l(f)&&!$.equals(f,$.IDENTITY)&&Xse(e,t,n,i,o)}function I8e(e,t,n,i,o,r,s){let{emissiveFactor:a,emissiveTexture:c,normalTexture:u,occlusionTexture:f}=e;l(a)&&!h.equals(a,P8e.DEFAULT_EMISSIVE_FACTOR)&&(n.addUniform("vec3","u_emissiveFactor",ge.FRAGMENT),t.u_emissiveFactor=function(){return e.emissiveFactor},n.addDefine("HAS_EMISSIVE_FACTOR",void 0,ge.FRAGMENT),l(c)&&!s&&Ul(n,t,c,"u_emissiveTexture","EMISSIVE",r)),l(u)&&!s&&Ul(n,t,u,"u_normalTexture","NORMAL",o),l(f)&&!s&&Ul(n,t,f,"u_occlusionTexture","OCCLUSION",i)}function R8e(e,t,n,i,o){let{diffuseTexture:r,diffuseFactor:s,specularGlossinessTexture:a,specularFactor:c,glossinessFactor:u}=e;n.addDefine("USE_SPECULAR_GLOSSINESS",void 0,ge.FRAGMENT),l(r)&&!o&&Ul(n,t,r,"u_diffuseTexture","DIFFUSE",i),l(s)&&!oe.equals(s,yW.DEFAULT_DIFFUSE_FACTOR)&&(n.addUniform("vec4","u_diffuseFactor",ge.FRAGMENT),t.u_diffuseFactor=function(){return e.diffuseFactor},n.addDefine("HAS_DIFFUSE_FACTOR",void 0,ge.FRAGMENT)),l(a)&&!o&&Ul(n,t,a,"u_specularGlossinessTexture","SPECULAR_GLOSSINESS",i),l(c)&&!h.equals(c,yW.DEFAULT_SPECULAR_FACTOR)&&(n.addUniform("vec3","u_legacySpecularFactor",ge.FRAGMENT),t.u_legacySpecularFactor=function(){return e.specularFactor},n.addDefine("HAS_LEGACY_SPECULAR_FACTOR",void 0,ge.FRAGMENT)),l(u)&&u!==yW.DEFAULT_GLOSSINESS_FACTOR&&(n.addUniform("float","u_glossinessFactor",ge.FRAGMENT),t.u_glossinessFactor=function(){return e.glossinessFactor},n.addDefine("HAS_GLOSSINESS_FACTOR",void 0,ge.FRAGMENT))}function O8e(e,t,n,i,o){let{specularTexture:r,specularFactor:s,specularColorTexture:a,specularColorFactor:c}=e;n.addDefine("USE_SPECULAR",void 0,ge.FRAGMENT),l(r)&&!o&&Ul(n,t,r,"u_specularTexture","SPECULAR",i),l(s)&&s!==jse.DEFAULT_SPECULAR_FACTOR&&(n.addUniform("float","u_specularFactor",ge.FRAGMENT),t.u_specularFactor=function(){return e.specularFactor},n.addDefine("HAS_SPECULAR_FACTOR",void 0,ge.FRAGMENT)),l(a)&&!o&&Ul(n,t,a,"u_specularColorTexture","SPECULAR_COLOR",i),l(c)&&!h.equals(c,jse.DEFAULT_SPECULAR_COLOR_FACTOR)&&(n.addUniform("vec3","u_specularColorFactor",ge.FRAGMENT),t.u_specularColorFactor=function(){return e.specularColorFactor},n.addDefine("HAS_SPECULAR_COLOR_FACTOR",void 0,ge.FRAGMENT))}var M8e=new h;function L8e(e,t,n,i,o){let{anisotropyStrength:r,anisotropyRotation:s,anisotropyTexture:a}=e;n.addDefine("USE_ANISOTROPY",void 0,ge.FRAGMENT),l(a)&&!o&&Ul(n,t,a,"u_anisotropyTexture","ANISOTROPY",i);let c=Math.cos(s),u=Math.sin(s);n.addUniform("vec3","u_anisotropy",ge.FRAGMENT),t.u_anisotropy=function(){return h.fromElements(c,u,r,M8e)}}function N8e(e,t,n,i,o){let{clearcoatFactor:r,clearcoatTexture:s,clearcoatRoughnessFactor:a,clearcoatRoughnessTexture:c,clearcoatNormalTexture:u}=e;n.addDefine("USE_CLEARCOAT",void 0,ge.FRAGMENT),l(r)&&r!==qse.DEFAULT_CLEARCOAT_FACTOR&&(n.addUniform("float","u_clearcoatFactor",ge.FRAGMENT),t.u_clearcoatFactor=function(){return e.clearcoatFactor},n.addDefine("HAS_CLEARCOAT_FACTOR",void 0,ge.FRAGMENT)),l(s)&&!o&&Ul(n,t,s,"u_clearcoatTexture","CLEARCOAT",i),l(a)&&r!==qse.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_clearcoatRoughnessFactor",ge.FRAGMENT),t.u_clearcoatRoughnessFactor=function(){return e.clearcoatRoughnessFactor},n.addDefine("HAS_CLEARCOAT_ROUGHNESS_FACTOR",void 0,ge.FRAGMENT)),l(c)&&!o&&Ul(n,t,c,"u_clearcoatRoughnessTexture","CLEARCOAT_ROUGHNESS",i),l(u)&&!o&&Ul(n,t,u,"u_clearcoatNormalTexture","CLEARCOAT_NORMAL",i)}function F8e(e,t,n,i,o){n.addDefine("USE_METALLIC_ROUGHNESS",void 0,ge.FRAGMENT);let r=e.baseColorTexture;l(r)&&!o&&Ul(n,t,r,"u_baseColorTexture","BASE_COLOR",i);let s=e.baseColorFactor;l(s)&&!oe.equals(s,gW.DEFAULT_BASE_COLOR_FACTOR)&&(n.addUniform("vec4","u_baseColorFactor",ge.FRAGMENT),t.u_baseColorFactor=function(){return e.baseColorFactor},n.addDefine("HAS_BASE_COLOR_FACTOR",void 0,ge.FRAGMENT));let a=e.metallicRoughnessTexture;l(a)&&!o&&Ul(n,t,a,"u_metallicRoughnessTexture","METALLIC_ROUGHNESS",i);let c=e.metallicFactor;l(c)&&c!==gW.DEFAULT_METALLIC_FACTOR&&(n.addUniform("float","u_metallicFactor",ge.FRAGMENT),t.u_metallicFactor=function(){return e.metallicFactor},n.addDefine("HAS_METALLIC_FACTOR",void 0,ge.FRAGMENT));let u=e.roughnessFactor;l(u)&&u!==gW.DEFAULT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_roughnessFactor",ge.FRAGMENT),t.u_roughnessFactor=function(){return e.roughnessFactor},n.addDefine("HAS_ROUGHNESS_FACTOR",void 0,ge.FRAGMENT))}var bO=Yse;var TO=`void morphTargetsStage(inout ProcessedAttributes attributes) { vec3 positionMC = attributes.positionMC; attributes.positionMC = getMorphedPosition(positionMC); #ifdef HAS_NORMALS vec3 normalMC = attributes.normalMC; attributes.normalMC = getMorphedNormal(normalMC); #endif #ifdef HAS_TANGENTS vec3 tangentMC = attributes.tangentMC; attributes.tangentMC = getMorphedTangent(tangentMC); #endif }`;var Ia={name:"MorphTargetsPipelineStage",FUNCTION_ID_GET_MORPHED_POSITION:"getMorphedPosition",FUNCTION_SIGNATURE_GET_MORPHED_POSITION:"vec3 getMorphedPosition(in vec3 position)",FUNCTION_ID_GET_MORPHED_NORMAL:"getMorphedNormal",FUNCTION_SIGNATURE_GET_MORPHED_NORMAL:"vec3 getMorphedNormal(in vec3 normal)",FUNCTION_ID_GET_MORPHED_TANGENT:"getMorphedTangent",FUNCTION_SIGNATURE_GET_MORPHED_TANGENT:"vec3 getMorphedTangent(in vec3 tangent)"};Ia.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_MORPH_TARGETS",void 0,ge.VERTEX),H8e(n);let i=t.morphTargets.length;for(let a=0;a<i;a++){let c=t.morphTargets[a].attributes,u=c.length;for(let f=0;f<u;f++){let d=c[f],p=d.semantic;p!==yt.POSITION&&p!==yt.NORMAL&&p!==yt.TANGENT||(k8e(e,d,e.attributeIndex,a),e.attributeIndex++)}}G8e(n);let r=e.runtimeNode.morphWeights.length;n.addUniform("float",`u_morphWeights[${r}]`,ge.VERTEX),n.addVertexLines(TO);let s={u_morphWeights:function(){return e.runtimeNode.morphWeights}};e.uniformMap=_t(s,e.uniformMap)};var B8e={attributeString:void 0,functionId:void 0};function k8e(e,t,n,i){let o=e.shaderBuilder;V8e(e,t,n);let r=U8e(t,B8e);z8e(o,r,i)}function V8e(e,t,n){let i={index:n,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,componentsPerAttribute:tn.getNumberOfComponents(t.type),componentDatatype:t.componentDatatype,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};e.attributes.push(i)}function U8e(e,t){switch(e.semantic){case yt.POSITION:t.attributeString="Position",t.functionId=Ia.FUNCTION_ID_GET_MORPHED_POSITION;break;case yt.NORMAL:t.attributeString="Normal",t.functionId=Ia.FUNCTION_ID_GET_MORPHED_NORMAL;break;case yt.TANGENT:t.attributeString="Tangent",t.functionId=Ia.FUNCTION_ID_GET_MORPHED_TANGENT;break;default:break}return t}function z8e(e,t,n){let i=t.attributeString,o=`a_target${i}_${n}`,r=`morphed${i} += u_morphWeights[${n}] * a_target${i}_${n};`;e.addAttribute("vec3",o),e.addFunctionLines(t.functionId,[r])}function H8e(e){e.addFunction(Ia.FUNCTION_ID_GET_MORPHED_POSITION,Ia.FUNCTION_SIGNATURE_GET_MORPHED_POSITION,ge.VERTEX),e.addFunctionLines(Ia.FUNCTION_ID_GET_MORPHED_POSITION,["vec3 morphedPosition = position;"]),e.addFunction(Ia.FUNCTION_ID_GET_MORPHED_NORMAL,Ia.FUNCTION_SIGNATURE_GET_MORPHED_NORMAL,ge.VERTEX),e.addFunctionLines(Ia.FUNCTION_ID_GET_MORPHED_NORMAL,["vec3 morphedNormal = normal;"]),e.addFunction(Ia.FUNCTION_ID_GET_MORPHED_TANGENT,Ia.FUNCTION_SIGNATURE_GET_MORPHED_TANGENT,ge.VERTEX),e.addFunctionLines(Ia.FUNCTION_ID_GET_MORPHED_TANGENT,["vec3 morphedTangent = tangent;"])}function G8e(e){e.addFunctionLines(Ia.FUNCTION_ID_GET_MORPHED_POSITION,["return morphedPosition;"]),e.addFunctionLines(Ia.FUNCTION_ID_GET_MORPHED_NORMAL,["return morphedNormal;"]),e.addFunctionLines(Ia.FUNCTION_ID_GET_MORPHED_TANGENT,["return morphedTangent;"])}var AO=Ia;var Kse={name:"PickingPipelineStage"};Kse.process=function(e,t,n){let i=n.context,o=e.runtimeNode,r=e.shaderBuilder,s=e.model,a=o.node.instances;if(e.hasPropertyTable)W8e(e,t,a,i);else if(l(a))j8e(e,i);else{let c=Zse(e),u=i.createPickId(c);s._pipelineResources.push(u),s._pickIds.push(u),r.addUniform("vec4","czm_pickColor",ge.FRAGMENT);let f=e.uniformMap;f.czm_pickColor=function(){return u.color},e.pickId="czm_pickColor"}};function Zse(e,t){let n=e.model;if(l(n.pickObject))return n.pickObject;let i={model:n,node:e.runtimeNode,primitive:e.runtimePrimitive},o;if(sr.is3DTiles(n.type)){let r=n.content;o={content:r,primitive:r.tileset,detail:i}}else o={primitive:n,detail:i};return o.id=n.id,l(t)&&(o.instanceId=t),o}function W8e(e,t,n){let i=e.model,o,r,s=i.featureIdLabel,a=i.instanceFeatureIdLabel;l(i.featureTableId)?o=i.featureTableId:l(n)?(r=Xt.getFeatureIdsByLabel(n.featureIds,a),o=r.propertyTableId):(r=Xt.getFeatureIdsByLabel(t.featureIds,s),o=r.propertyTableId);let c=i.featureTables[o];e.shaderBuilder.addUniform("sampler2D","model_pickTexture",ge.FRAGMENT);let f=c.batchTexture;e.uniformMap.model_pickTexture=function(){return y(f.pickTexture,f.defaultTexture)},e.pickId="((selectedFeature.id < int(model_featuresLength)) ? texture(model_pickTexture, selectedFeature.st) : vec4(0.0))"}function j8e(e,t){let n=e.instanceCount,i=new Array(n),o=new Uint8Array(n*4),r=e.model,s=r._pipelineResources;for(let d=0;d<n;d++){let p=Zse(e,d),g=t.createPickId(p);s.push(g),i[d]=g;let m=g.color;o[d*4+0]=H.floatToByte(m.red),o[d*4+1]=H.floatToByte(m.green),o[d*4+2]=H.floatToByte(m.blue),o[d*4+3]=H.floatToByte(m.alpha)}r._pickIds=i;let a=ct.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,r.statistics.addBuffer(a,!1),s.push(a);let u={index:e.attributeIndex++,vertexBuffer:a,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0,instanceDivisor:1};e.attributes.push(u);let f=e.shaderBuilder;f.addDefine("USE_PICKING",void 0,ge.BOTH),f.addAttribute("vec4","a_pickColor"),f.addVarying("vec4","v_pickColor"),e.pickId="v_pickColor"}var CO=Kse;var q8e={ADD:0,REPLACE:1},Bo=Object.freeze(q8e);var EO=`float getPointSizeFromAttenuation(vec3 positionEC) { // Variables are packed into a single vector to minimize gl.uniformXXX() calls float pointSize = model_pointCloudParameters.x; float geometricError = model_pointCloudParameters.y; float depthMultiplier = model_pointCloudParameters.z; float depth = -positionEC.z; return min((geometricError / depth) * depthMultiplier, pointSize); } #ifdef HAS_POINT_CLOUD_SHOW_STYLE float pointCloudShowStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { float tiles3d_tileset_time = model_pointCloudParameters.w; return float(getShowFromStyle(attributes, metadata, tiles3d_tileset_time)); } #endif #ifdef HAS_POINT_CLOUD_COLOR_STYLE vec4 pointCloudColorStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { float tiles3d_tileset_time = model_pointCloudParameters.w; return getColorFromStyle(attributes, metadata, tiles3d_tileset_time); } #endif #ifdef HAS_POINT_CLOUD_POINT_SIZE_STYLE float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { float tiles3d_tileset_time = model_pointCloudParameters.w; return float(getPointSizeFromStyle(attributes, metadata, tiles3d_tileset_time)); } #elif defined(HAS_POINT_CLOUD_ATTENUATION) float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { return getPointSizeFromAttenuation(v_positionEC); } #endif #ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING float pointCloudBackFaceCullingStage() { #if defined(HAS_NORMALS) && !defined(HAS_DOUBLE_SIDED_MATERIAL) // This needs to be computed in eye coordinates so we can't use attributes.normalMC return step(-v_normalEC.z, 0.0); #else return 1.0; #endif } #endif`;var Y8e=new oe,Qse={name:"PointCloudStylingPipelineStage"};Qse.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=o.style,s=o.structuralMetadata,a=l(s)?s.propertyAttributes:void 0,c=l(o.featureTableId)&&o.featureTables[o.featureTableId].featuresLength>0,u=!l(a)&&c;if(l(r)&&!u){let x=$8e(a),b=Q8e(r,x);J8e(i,b);let C=eHe(b).indexOf("normalMC")>=0,A=Xt.getAttributeBySemantic(t,yt.NORMAL);if(C&&!A)throw new le("Style references the NORMAL semantic but the point cloud does not have normals");i.addDefine("COMPUTE_POSITION_WC_STYLE",void 0,ge.VERTEX),b.styleTranslucent&&(e.alphaOptions.pass=Ee.TRANSLUCENT)}let f=o.pointCloudShading;f.attenuation&&i.addDefine("HAS_POINT_CLOUD_ATTENUATION",void 0,ge.VERTEX),f.backFaceCulling&&i.addDefine("HAS_POINT_CLOUD_BACK_FACE_CULLING",void 0,ge.VERTEX);let d,p,g;sr.is3DTiles(o.type)&&(p=!0,d=o.content,g=d.tile.refine===Bo.ADD),i.addUniform("vec4","model_pointCloudParameters",ge.VERTEX),i.addVertexLines(EO);let m=e.uniformMap;m.model_pointCloudParameters=function(){let x=Y8e,b=1;p&&(b=g?5:d.tileset.memoryAdjustedScreenSpaceError),x.x=y(f.maximumAttenuation,b),x.x*=n.pixelRatio;let T=X8e(e,t,f,d);x.y=T*f.geometricErrorScale;let C=n.context,A=n.camera.frustum,E;return n.mode===ne.SCENE2D||A instanceof rn?E=Number.POSITIVE_INFINITY:E=C.drawingBufferHeight/n.camera.frustum.sseDenominator,x.z=E,p&&(x.w=d.tileset.timeSinceLoad),x}};var $se=new h;function X8e(e,t,n,i){if(l(i)){let f=i.tile.geometricError;if(f>0)return f}if(l(n.baseResolution))return n.baseResolution;let o=Xt.getAttributeBySemantic(t,yt.POSITION),r=o.count,s=e.runtimeNode.transform,a=h.subtract(o.max,o.min,$se);a=F.multiplyByPointAsVector(s,a,$se);let c=a.x*a.y*a.z;return R.cbrt(c/r)}var K8e={colorStyleFunction:void 0,showStyleFunction:void 0,pointSizeStyleFunction:void 0,styleTranslucent:!1},Z8e={POSITION:"attributes.positionMC",POSITION_ABSOLUTE:"v_positionWC",COLOR:"attributes.color_0",NORMAL:"attributes.normalMC"};function $8e(e){let t=He(Z8e);if(!l(e))return t;for(let n=0;n<e.length;n++){let o=e[n].properties;for(let r in o)o.hasOwnProperty(r)&&(t[r]=`metadata.${r}`)}return t}var xW="ProcessedAttributes attributes, Metadata metadata, float tiles3d_tileset_time";function Q8e(e,t){let n=K8e,i={translucent:!1};return n.colorStyleFunction=e.getColorShaderFunction(`getColorFromStyle(${xW})`,t,i),n.showStyleFunction=e.getShowShaderFunction(`getShowFromStyle(${xW})`,t,i),n.pointSizeStyleFunction=e.getPointSizeShaderFunction(`getPointSizeFromStyle(${xW})`,t,i),n.styleTranslucent=l(n.colorStyleFunction)&&i.translucent,n}function J8e(e,t){let n=t.colorStyleFunction;l(n)&&(e.addDefine("HAS_POINT_CLOUD_COLOR_STYLE",void 0,ge.BOTH),e.addVertexLines(n),e.addVarying("vec4","v_pointCloudColor"));let i=t.showStyleFunction;l(i)&&(e.addDefine("HAS_POINT_CLOUD_SHOW_STYLE",void 0,ge.VERTEX),e.addVertexLines(i));let o=t.pointSizeStyleFunction;l(o)&&(e.addDefine("HAS_POINT_CLOUD_POINT_SIZE_STYLE",void 0,ge.VERTEX),e.addVertexLines(o))}function bW(e,t){let n=/attributes\.(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function eHe(e){let t=e.colorStyleFunction,n=e.showStyleFunction,i=e.pointSizeStyleFunction,o=[];return l(t)&&bW(t,o),l(n)&&bW(n,o),l(i)&&bW(i,o),o}var SO=Qse;var vO=`void primitiveOutlineStage() { v_outlineCoordinates = a_outlineCoordinates; } `;var wO=`void primitiveOutlineStage(inout czm_modelMaterial material) { if (!model_showOutline) { return; } float outlineX = texture(model_outlineTexture, vec2(v_outlineCoordinates.x, 0.5)).r; float outlineY = texture(model_outlineTexture, vec2(v_outlineCoordinates.y, 0.5)).r; float outlineZ = texture(model_outlineTexture, vec2(v_outlineCoordinates.z, 0.5)).r; float outlineness = max(outlineX, max(outlineY, outlineZ)); material.diffuse = mix(material.diffuse, model_outlineColor.rgb, model_outlineColor.a * outlineness); } `;var Jse={name:"PrimitiveOutlinePipelineStage"};Jse.process=function(e,t,n){let i=e.shaderBuilder,o=e.uniformMap;i.addDefine("HAS_PRIMITIVE_OUTLINE",void 0,ge.BOTH),i.addAttribute("vec3","a_outlineCoordinates"),i.addVarying("vec3","v_outlineCoordinates");let r=t.outlineCoordinates,s={index:e.attributeIndex++,vertexBuffer:r.buffer,componentsPerAttribute:tn.getNumberOfComponents(r.type),componentDatatype:r.componentDatatype,offsetInBytes:r.byteOffset,strideInBytes:r.byteStride,normalize:r.normalized};e.attributes.push(s),i.addUniform("sampler2D","model_outlineTexture",ge.FRAGMENT);let a=lb.createTexture(n.context);o.model_outlineTexture=function(){return a};let c=e.model;i.addUniform("vec4","model_outlineColor",ge.FRAGMENT),o.model_outlineColor=function(){return c.outlineColor},i.addUniform("bool","model_showOutline",ge.FRAGMENT),o.model_showOutline=function(){return c.showOutline},i.addVertexLines(vO),i.addFragmentLines(wO)};var DO=Jse;var eae={name:"PrimitiveStatisticsPipelineStage",_countGeometry:tae,_count2DPositions:nae,_countMorphTargetAttributes:iae,_countMaterialTextures:oae,_countFeatureIdTextures:rae,_countBinaryMetadata:sae};eae.process=function(e,t,n){let i=e.model,o=i.statistics;tae(o,t),nae(o,e.runtimePrimitive),iae(o,t),oae(o,t.material),rae(o,t.featureIds),sae(o,i)};function tae(e,t){let n=l(t.indices)?t.indices.count:Xt.getAttributeBySemantic(t,"POSITION").count,i=t.primitiveType;i===Le.POINTS?e.pointsLength+=n:Le.isTriangles(i)&&(e.trianglesLength+=tHe(i,n));let o=t.attributes,r=o.length;for(let c=0;c<r;c++){let u=o[c];if(l(u.buffer)){let f=l(u.typedArray);e.addBuffer(u.buffer,f)}}let s=t.outlineCoordinates;l(s)&&l(s.buffer)&&e.addBuffer(s.buffer,!1);let a=t.indices;if(l(a)&&l(a.buffer)){let c=l(a.typedArray);e.addBuffer(a.buffer,c)}}function tHe(e,t){switch(e){case Le.TRIANGLES:return t/3;case Le.TRIANGLE_STRIP:case Le.TRIANGLE_FAN:return Math.max(t-2,0);default:return 0}}function nae(e,t){let n=t.positionBuffer2D;l(n)&&e.addBuffer(n,!0)}function iae(e,t){let n=t.morphTargets;if(!l(n))return;let i=!1,o=n.length;for(let r=0;r<o;r++){let s=n[r].attributes,a=s.length;for(let c=0;c<a;c++){let u=s[c];l(u.buffer)&&e.addBuffer(u.buffer,i)}}}function oae(e,t){let n=nHe(t),i=n.length;for(let o=0;o<i;o++){let r=n[o];l(r)&&l(r.texture)&&e.addTexture(r.texture)}}function nHe(e){let t=e.metallicRoughness,n=[e.emissiveTexture,e.normalTexture,e.occlusionTexture,t.baseColorTexture,t.metallicRoughnessTexture],i=e.specularGlossiness;return l(i)&&(n.push(i.diffuseTexture),n.push(i.specularGlossinessTexture)),n}function rae(e,t){let n=t.length;for(let i=0;i<n;i++){let o=t[i];if(o instanceof xn.FeatureIdTexture){let r=o.textureReader;l(r.texture)&&e.addTexture(r.texture)}}}function sae(e,t){let n=t.structuralMetadata;l(n)&&(iHe(e,n),e.propertyTablesByteLength+=n.propertyTablesByteLength);let i=t.featureTables;if(!l(i))return;let o=i.length;for(let r=0;r<o;r++){let s=i[r];e.addBatchTexture(s.batchTexture)}}function iHe(e,t){let n=t.propertyTextures;if(!l(n))return;let i=n.length;for(let o=0;o<i;o++){let s=n[o].properties;for(let a in s)if(s.hasOwnProperty(a)){let u=s[a].textureReader;l(u.texture)&&e.addTexture(u.texture)}}}var PO=eae;var oHe=new F,rHe=new F,aae={name:"SceneMode2DPipelineStage"};aae.process=function(e,t,n){let i=Xt.getAttributeBySemantic(t,yt.POSITION),o=e.shaderBuilder,r=e.model,s=r.sceneGraph.computedModelMatrix,a=e.runtimeNode.computedTransform,c=F.multiplyTransformation(s,a,oHe),u=cHe(e,c,n),f=e.runtimePrimitive;f.boundingSphere2D=u;let d=e.runtimeNode.node.instances;if(l(d))return;if(l(i.typedArray)){let x=fHe(i,c,u,n);f.positionBuffer2D=x,r._modelResources.push(x),i.typedArray=void 0}o.addDefine("USE_2D_POSITIONS",void 0,ge.VERTEX),o.addUniform("mat4","u_modelView2D",ge.VERTEX);let p=F.fromTranslation(u.center,new F),g=n.context,m={u_modelView2D:function(){return F.multiplyTransformation(g.uniformState.view,p,rHe)}};e.uniformMap=_t(m,e.uniformMap)};var sHe=new h,aHe=new h;function cHe(e,t,n){let i=F.multiplyByPoint(t,e.positionMin,sHe),o=Hi.computeActualWgs84Position(n,i,i),r=F.multiplyByPoint(t,e.positionMax,aHe),s=Hi.computeActualWgs84Position(n,r,r);return ae.fromCornerPoints(o,s,new ae)}var cae=new h;function lHe(e,t){let n=e.length,i=new Float32Array(n),o=t.quantizedVolumeOffset,r=t.quantizedVolumeStepSize;for(let s=0;s<n;s+=3){let a=h.fromArray(e,s,cae),c=h.multiplyComponents(a,r,a),u=h.add(c,o,c);i[s]=u.x,i[s+1]=u.y,i[s+2]=u.z}return i}function uHe(e,t,n,i){let o;l(e.quantization)?o=lHe(e.typedArray,e.quantization):o=e.typedArray.slice();let r=e.byteOffset/Float32Array.BYTES_PER_ELEMENT,s=o.length,a=l(e.byteStride)?e.byteStride/Float32Array.BYTES_PER_ELEMENT:3;for(let c=r;c<s;c+=a){let u=h.fromArray(o,c,cae);if(isNaN(u.x)||isNaN(u.y)||isNaN(u.z))continue;let f=F.multiplyByPoint(t,u,u),d=Hi.computeActualWgs84Position(i,f,f),p=h.subtract(d,n,d);o[c]=p.x,o[c+1]=p.y,o[c+2]=p.z}return o}function fHe(e,t,n,i){let o=He(i);o.mode=ne.COLUMBUS_VIEW;let r=n.center,s=uHe(e,t,r,o),a=ct.createVertexBuffer({context:i.context,typedArray:s,usage:Fe.STATIC_DRAW});return a.vertexArrayDestroyable=!1,a}var IO=aae;var RO=`void skinningStage(inout ProcessedAttributes attributes) { mat4 skinningMatrix = getSkinningMatrix(); mat3 skinningMatrixMat3 = mat3(skinningMatrix); vec4 positionMC = vec4(attributes.positionMC, 1.0); attributes.positionMC = vec3(skinningMatrix * positionMC); #ifdef HAS_NORMALS vec3 normalMC = attributes.normalMC; attributes.normalMC = skinningMatrixMat3 * normalMC; #endif #ifdef HAS_TANGENTS vec3 tangentMC = attributes.tangentMC; attributes.tangentMC = skinningMatrixMat3 * tangentMC; #endif }`;var mb={name:"SkinningPipelineStage",FUNCTION_ID_GET_SKINNING_MATRIX:"getSkinningMatrix",FUNCTION_SIGNATURE_GET_SKINNING_MATRIX:"mat4 getSkinningMatrix()"};mb.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_SKINNING",void 0,ge.VERTEX),hHe(n,t);let i=e.runtimeNode,o=i.computedJointMatrices;n.addUniform("mat4",`u_jointMatrices[${o.length}]`,ge.VERTEX),n.addVertexLines(RO);let r={u_jointMatrices:function(){return i.computedJointMatrices}};e.uniformMap=_t(r,e.uniformMap)};function dHe(e){let t=-1,n=e.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];(r.semantic===yt.JOINTS||r.semantic===yt.WEIGHTS)&&(t=Math.max(t,r.setIndex))}return t}function hHe(e,t){e.addFunction(mb.FUNCTION_ID_GET_SKINNING_MATRIX,mb.FUNCTION_SIGNATURE_GET_SKINNING_MATRIX,ge.VERTEX),e.addFunctionLines(mb.FUNCTION_ID_GET_SKINNING_MATRIX,["mat4 skinnedMatrix = mat4(0);"]);let i,o,r=["x","y","z","w"],s=dHe(t);for(i=0;i<=s;i++)for(o=0;o<=3;o++){let c=r[o],u=`skinnedMatrix += a_weights_${i}.${c} * u_jointMatrices[int(a_joints_${i}.${c})];`;e.addFunctionLines(mb.FUNCTION_ID_GET_SKINNING_MATRIX,[u])}e.addFunctionLines(mb.FUNCTION_ID_GET_SKINNING_MATRIX,["return skinnedMatrix;"])}var OO=mb;var MO=`void verticalExaggerationStage( inout ProcessedAttributes attributes ) { // Compute the distance from the camera to the local center of curvature. vec4 vertexPositionENU = czm_modelToEnu * vec4(attributes.positionMC, 1.0); vec2 vertexAzimuth = normalize(vertexPositionENU.xy); // Curvature = 1 / radius of curvature. float azimuthalCurvature = dot(vertexAzimuth * vertexAzimuth, czm_eyeEllipsoidCurvature); float eyeToCenter = 1.0 / azimuthalCurvature + czm_eyeHeight; // Compute the approximate ellipsoid normal at the vertex position. // Uses a circular approximation for the Earth curvature along the geodesic. vec3 vertexPositionEC = (czm_modelView * vec4(attributes.positionMC, 1.0)).xyz; vec3 centerToVertex = eyeToCenter * czm_eyeEllipsoidNormalEC + vertexPositionEC; vec3 vertexNormal = normalize(centerToVertex); // Estimate the (sine of the) angle between the camera direction and the vertex normal float verticalDistance = dot(vertexPositionEC, czm_eyeEllipsoidNormalEC); float horizontalDistance = length(vertexPositionEC - verticalDistance * czm_eyeEllipsoidNormalEC); float sinTheta = horizontalDistance / (eyeToCenter + verticalDistance); bool isSmallAngle = clamp(sinTheta, 0.0, 0.05) == sinTheta; // Approximate the change in height above the ellipsoid, from camera to vertex position. float exactVersine = 1.0 - dot(czm_eyeEllipsoidNormalEC, vertexNormal); float smallAngleVersine = 0.5 * sinTheta * sinTheta; float versine = isSmallAngle ? smallAngleVersine : exactVersine; float dHeight = dot(vertexPositionEC, vertexNormal) - eyeToCenter * versine; float vertexHeight = czm_eyeHeight + dHeight; // Transform the approximate vertex normal to model coordinates. vec3 vertexNormalMC = (czm_inverseModelView * vec4(vertexNormal, 0.0)).xyz; vertexNormalMC = normalize(vertexNormalMC); // Compute the exaggeration and apply it along the approximate vertex normal. float stretch = u_verticalExaggerationAndRelativeHeight.x; float shift = u_verticalExaggerationAndRelativeHeight.y; float exaggeration = (vertexHeight - shift) * (stretch - 1.0); attributes.positionMC += exaggeration * vertexNormalMC; } `;var lae={name:"VerticalExaggerationPipelineStage"},mHe=new z;lae.process=function(e,t,n){let{shaderBuilder:i,uniformMap:o}=e;i.addVertexLines(MO),i.addDefine("HAS_VERTICAL_EXAGGERATION",void 0,ge.VERTEX),i.addUniform("vec2","u_verticalExaggerationAndRelativeHeight",ge.VERTEX),o.u_verticalExaggerationAndRelativeHeight=function(){return z.fromElements(n.verticalExaggeration,n.verticalExaggerationRelativeHeight,mHe)}};var LO=lae;var TW={};function pHe(e){let t=Ne.createTypedArray(e,e*2),n=e,i=0;for(let o=0;o<n;o+=3)t[i++]=o,t[i++]=o+1,t[i++]=o+1,t[i++]=o+2,t[i++]=o+2,t[i++]=o;return t}function _He(e,t){let n=t.length,i=Ne.createTypedArray(e,n*2),o=0;for(let r=0;r<n;r+=3){let s=t[r],a=t[r+1],c=t[r+2];i[o++]=s,i[o++]=a,i[o++]=a,i[o++]=c,i[o++]=c,i[o++]=s}return i}function gHe(e){let t=e-2,n=2+t*4,i=Ne.createTypedArray(e,n),o=0;i[o++]=0,i[o++]=1;for(let r=0;r<t;r++)i[o++]=r+1,i[o++]=r+2,i[o++]=r+2,i[o++]=r;return i}function yHe(e,t){let i=t.length-2,o=2+i*4,r=Ne.createTypedArray(e,o),s=0;r[s++]=t[0],r[s++]=t[1];for(let a=0;a<i;a++){let c=t[a],u=t[a+1],f=t[a+2];r[s++]=u,r[s++]=f,r[s++]=f,r[s++]=c}return r}function xHe(e){let t=e-2,n=2+t*4,i=Ne.createTypedArray(e,n),o=0;i[o++]=0,i[o++]=1;for(let r=0;r<t;r++)i[o++]=r+1,i[o++]=r+2,i[o++]=r+2,i[o++]=0;return i}function bHe(e,t){let i=t.length-2,o=2+i*4,r=Ne.createTypedArray(e,o),s=0,a=t[0];r[s++]=a,r[s++]=t[1];for(let c=0;c<i;c++){let u=t[c+1],f=t[c+2];r[s++]=u,r[s++]=f,r[s++]=f,r[s++]=a}return r}TW.createWireframeIndices=function(e,t,n){let i=l(n);if(e===Le.TRIANGLES)return i?_He(t,n):pHe(t);if(e===Le.TRIANGLE_STRIP)return i?yHe(t,n):gHe(t);if(e===Le.TRIANGLE_FAN)return i?bHe(t,n):xHe(t)};TW.getWireframeIndicesCount=function(e,t){return e===Le.TRIANGLES?t*2:e===Le.TRIANGLE_STRIP||e===Le.TRIANGLE_FAN?2+(t-2)*4:t};var YC=TW;var uae={name:"WireframePipelineStage"};uae.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_WIREFRAME",void 0,ge.FRAGMENT);let o=e.model,r=THe(t,e.indices,n);o._pipelineResources.push(r),e.wireframeIndexBuffer=r,o.statistics.addBuffer(r,!1);let a=e.primitiveType,c=e.count;e.primitiveType=Le.LINES,e.count=YC.getWireframeIndicesCount(a,c)};function THe(e,t,n){let o=Xt.getAttributeBySemantic(e,yt.POSITION).count,r=n.context.webgl2,s;if(l(t)){let f=t.buffer,d=t.count;l(f)&&r?(s=f.sizeInBytes===d?new Uint8Array(d):Ne.createTypedArray(o,d),f.getBufferData(s)):s=t.typedArray}let a=e.primitiveType,c=YC.createWireframeIndices(a,o,s),u=Ne.fromSizeInBytes(c.BYTES_PER_ELEMENT);return ct.createIndexBuffer({context:n.context,typedArray:c,usage:Fe.STATIC_DRAW,indexDatatype:u})}var NO=uae;function fae(e){e=y(e,y.EMPTY_OBJECT);let t=e.primitive,n=e.node,i=e.model;this.primitive=t,this.node=n,this.model=i,this.pipelineStages=[],this.drawCommand=void 0,this.boundingSphere=void 0,this.boundingSphere2D=void 0,this.positionBuffer2D=void 0,this.batchLengths=void 0,this.batchOffsets=void 0,this.updateStages=[]}fae.prototype.configurePipeline=function(e){let t=this.pipelineStages;t.length=0;let n=this.primitive,i=this.node,o=this.model,r=o.customShader,s=o.style,a=e.context.webgl2,u=e.mode!==ne.SCENE3D&&!e.scene3DOnly&&o._projectTo2D,f=e.verticalExaggeration!==1,d=l(n.morphTargets)&&n.morphTargets.length>0,p=l(i.skin),g=l(r),x=!(g&&l(r.fragmentShaderText))||r.mode!==r_.REPLACE_MATERIAL,b=Xt.hasQuantizedAttributes(n.attributes),T=o.debugWireframe&&Le.isTriangles(n.primitiveType)&&(o._enableDebugWireframe||a),C=o.pointCloudShading,A=l(C)&&C.attenuation,E=l(C)&&C.backFaceCulling,v=n.primitiveType===Le.POINTS&&(l(s)||A||E),D=o._enableShowOutline&&l(n.outlineCoordinates),O=AHe(o,i,n),I=l(o.classificationType);u&&t.push(IO),t.push(_O),T&&t.push(NO),I&&t.push(eO),d&&t.push(AO),p&&t.push(OO),v&&t.push(SO),b&&t.push(dO),x&&t.push(bO),t.push(yy),t.push(vf),O.hasPropertyTable&&(t.push(by),t.push(JR),t.push(iO)),f&&t.push(LO),g&&t.push(uO),t.push(yO),o.allowPicking&&t.push(CO),D&&t.push(DO),t.push(QR),t.push(PO)};function AHe(e,t,n){let i;return l(t.instances)&&(i=Xt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(i))?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:(i=Xt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),l(i)?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:{hasFeatureIds:!1,hasPropertyTable:!1})}var FO=fae;function AW(e){e=y(e,y.EMPTY_OBJECT),this._sceneGraph=e.sceneGraph;let t=e.skin;this._skin=t,this._inverseBindMatrices=void 0,this._joints=[],this._jointMatrices=[],CHe(this)}Object.defineProperties(AW.prototype,{skin:{get:function(){return this._skin}},sceneGraph:{get:function(){return this._sceneGraph}},inverseBindMatrices:{get:function(){return this._inverseBindMatrices}},joints:{get:function(){return this._joints}},jointMatrices:{get:function(){return this._jointMatrices}}});function CHe(e){let t=e.skin,n=t.inverseBindMatrices;e._inverseBindMatrices=n;let i=t.joints,o=i.length,r=e.sceneGraph._runtimeNodes,s=e.joints,a=e._jointMatrices;for(let c=0;c<o;c++){let u=i[c].index,f=r[u];s.push(f);let d=n[c],p=dae(f,d,new F);a.push(p)}}function dae(e,t,n){let i=F.multiplyTransformation(e.transformToRoot,e.transform,n);return n=F.multiplyTransformation(i,t,n),n}AW.prototype.updateJointMatrices=function(){let e=this._jointMatrices,t=e.length;for(let n=0;n<t;n++){let i=this.joints[n],o=this.inverseBindMatrices[n];e[n]=dae(i,o,e[n])}};var BO=AW;function EHe(){this.pass=void 0,this.alphaCutoff=void 0}var kO=EHe;function CW(e){this.name=e,this.fields=[]}CW.prototype.addField=function(e,t){let n=` ${e} ${t};`;this.fields.push(n)};CW.prototype.generateGlslLines=function(){let e=this.fields;return e.length===0&&(e=[" float _empty;"]),[].concat(`struct ${this.name}`,"{",e,"};")};var VO=CW;function EW(e){this.signature=e,this.body=[]}EW.prototype.addLines=function(e){let t=this.body;if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;i++)t.push(` ${e[i]}`)}else t.push(` ${e}`)};EW.prototype.generateGlslLines=function(){return[].concat(this.signature,"{",this.body,"}")};var UO=EW;function Jc(){this._positionAttributeLine=void 0,this._nextAttributeLocation=1,this._attributeLocations={},this._attributeLines=[],this._structs={},this._functions={},this._vertexShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]},this._fragmentShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]}}Object.defineProperties(Jc.prototype,{attributeLocations:{get:function(){return this._attributeLocations}}});Jc.prototype.addDefine=function(e,t,n){n=y(n,ge.BOTH);let i=e;l(t)&&(i+=` ${t.toString()}`),ge.includesVertexShader(n)&&this._vertexShaderParts.defineLines.push(i),ge.includesFragmentShader(n)&&this._fragmentShaderParts.defineLines.push(i)};Jc.prototype.addStruct=function(e,t,n){this._structs[e]=new VO(t),ge.includesVertexShader(n)&&this._vertexShaderParts.structIds.push(e),ge.includesFragmentShader(n)&&this._fragmentShaderParts.structIds.push(e)};Jc.prototype.addStructField=function(e,t,n){this._structs[e].addField(t,n)};Jc.prototype.addFunction=function(e,t,n){this._functions[e]=new UO(t),ge.includesVertexShader(n)&&this._vertexShaderParts.functionIds.push(e),ge.includesFragmentShader(n)&&this._fragmentShaderParts.functionIds.push(e)};Jc.prototype.addFunctionLines=function(e,t){this._functions[e].addLines(t)};Jc.prototype.addUniform=function(e,t,n){n=y(n,ge.BOTH);let i=`uniform ${e} ${t};`;ge.includesVertexShader(n)&&this._vertexShaderParts.uniformLines.push(i),ge.includesFragmentShader(n)&&this._fragmentShaderParts.uniformLines.push(i)};Jc.prototype.setPositionAttribute=function(e,t){return this._positionAttributeLine=`in ${e} ${t};`,this._attributeLocations[t]=0,0};Jc.prototype.addAttribute=function(e,t){let n=`in ${e} ${t};`;this._attributeLines.push(n);let i=this._nextAttributeLocation;return this._attributeLocations[t]=i,this._nextAttributeLocation+=vHe(e),i};Jc.prototype.addVarying=function(e,t,n){n=l(n)?`${n} `:"";let i=`${e} ${t};`;this._vertexShaderParts.varyingLines.push(`${n}out ${i}`),this._fragmentShaderParts.varyingLines.push(`${n}in ${i}`)};Jc.prototype.addVertexLines=function(e){let t=this._vertexShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};Jc.prototype.addFragmentLines=function(e){let t=this._fragmentShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};Jc.prototype.buildShaderProgram=function(e){let t=l(this._positionAttributeLine)?[this._positionAttributeLine]:[],n=SHe(this),i=wHe(this),o=t.concat(this._attributeLines,this._vertexShaderParts.uniformLines,this._vertexShaderParts.varyingLines,n.vertexLines,i.vertexLines,this._vertexShaderParts.shaderLines).join(` `),r=new ze({defines:this._vertexShaderParts.defineLines,sources:[o]}),s=this._fragmentShaderParts.uniformLines.concat(this._fragmentShaderParts.varyingLines,n.fragmentLines,i.fragmentLines,this._fragmentShaderParts.shaderLines).join(` `),a=new ze({defines:this._fragmentShaderParts.defineLines,sources:[s]});return $t.fromCache({context:e,vertexShaderSource:r,fragmentShaderSource:a,attributeLocations:this._attributeLocations})};Jc.prototype.clone=function(){return He(this,!0)};function SHe(e){let t=[],n=[],i,o=e._vertexShaderParts.structIds,r,s,a;for(i=0;i<o.length;i++)r=o[i],s=e._structs[r],a=s.generateGlslLines(),t.push.apply(t,a);for(o=e._fragmentShaderParts.structIds,i=0;i<o.length;i++)r=o[i],s=e._structs[r],a=s.generateGlslLines(),n.push.apply(n,a);return{vertexLines:t,fragmentLines:n}}function vHe(e){switch(e){case"mat2":return 2;case"mat3":return 3;case"mat4":return 4;default:return 1}}function wHe(e){let t=[],n=[],i,o=e._vertexShaderParts.functionIds,r,s,a;for(i=0;i<o.length;i++)r=o[i],s=e._functions[r],a=s.generateGlslLines(),t.push.apply(t,a);for(o=e._fragmentShaderParts.functionIds,i=0;i<o.length;i++)r=o[i],s=e._functions[r],a=s.generateGlslLines(),n.push.apply(n,a);return{vertexLines:t,fragmentLines:n}}var pb=Jc;function DHe(e){this.shaderBuilder=new pb,this.model=e,this.uniformMap={},this.alphaOptions=new kO,this.renderStateOptions=Ve.getState(Ve.fromCache({depthTest:{enabled:!0,func:tc.LESS_OR_EQUAL}})),this.hasSilhouette=!1,this.hasSkipLevelOfDetail=!1}var zO=DHe;var HO=`void silhouetteStage(inout vec4 color) { if(model_silhouettePass) { color = czm_gammaCorrect(model_silhouetteColor); } }`;var GO=`void silhouetteStage(in ProcessedAttributes attributes, inout vec4 positionClip) { #ifdef HAS_NORMALS if(model_silhouettePass) { vec3 normal = normalize(czm_normal3D * attributes.normalMC); normal.x *= czm_projection[0][0]; normal.y *= czm_projection[1][1]; positionClip.xy += normal.xy * positionClip.w * model_silhouetteSize * czm_pixelRatio / czm_viewport.z; } #endif } `;var FU={name:"ModelSilhouettePipelineStage"};FU.silhouettesLength=0;FU.process=function(e,t,n){l(t._silhouetteId)||(t._silhouetteId=++FU.silhouettesLength);let i=e.shaderBuilder;i.addDefine("HAS_SILHOUETTE",void 0,ge.BOTH),i.addVertexLines(GO),i.addFragmentLines(HO),i.addUniform("vec4","model_silhouetteColor",ge.FRAGMENT),i.addUniform("float","model_silhouetteSize",ge.VERTEX),i.addUniform("bool","model_silhouettePass",ge.BOTH);let o={model_silhouetteColor:function(){return t.silhouetteColor},model_silhouetteSize:function(){return t.silhouetteSize},model_silhouettePass:function(){return!1}};e.uniformMap=_t(o,e.uniformMap),e.hasSilhouette=!0};var WO=FU;var jO=`void modelSplitterStage() { // Don't split when rendering the shadow map, because it is rendered from // the perspective of a totally different camera. #ifndef SHADOW_MAP if (model_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; if (model_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; #endif } `;var BU={name:"ModelSplitterPipelineStage",SPLIT_DIRECTION_UNIFORM_NAME:"model_splitDirection"};BU.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_SPLITTER",void 0,ge.FRAGMENT),i.addFragmentLines(jO);let o={};i.addUniform("float",BU.SPLIT_DIRECTION_UNIFORM_NAME,ge.FRAGMENT),o[BU.SPLIT_DIRECTION_UNIFORM_NAME]=function(){return t.splitDirection},e.uniformMap=_t(o,e.uniformMap)};var qO=BU;function PHe(e,t){this.model=e.model,this.shaderBuilder=e.shaderBuilder.clone(),this.uniformMap=He(e.uniformMap),this.alphaOptions=He(e.alphaOptions),this.renderStateOptions=He(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.runtimeNode=t,this.attributes=[],this.attributeIndex=1,this.featureIdVertexAttributeSetIndex=0,this.instanceCount=0}var YO=PHe;function IHe(e){e=y(e,y.EMPTY_OBJECT),this.lightingModel=y(e.lightingModel,pm.UNLIT)}var XO=IHe;function RHe(e,t){this.model=e.model,this.runtimeNode=e.runtimeNode,this.attributes=e.attributes.slice(),this.attributeIndex=e.attributeIndex,this.featureIdVertexAttributeSetIndex=e.featureIdVertexAttributeSetIndex,this.uniformMap=He(e.uniformMap),this.alphaOptions=He(e.alphaOptions),this.renderStateOptions=He(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.shaderBuilder=e.shaderBuilder.clone(),this.instanceCount=e.instanceCount,this.runtimePrimitive=t;let n=t.primitive;this.count=l(n.indices)?n.indices.count:Xt.getAttributeBySemantic(n,"POSITION").count,this.hasPropertyTable=!1,this.indices=n.indices,this.wireframeIndexBuffer=void 0,this.primitiveType=n.primitiveType;let i=Xt.getPositionMinMax(n,this.runtimeNode.instancingTranslationMin,this.runtimeNode.instancingTranslationMax);this.positionMin=h.clone(i.min,new h),this.positionMax=h.clone(i.max,new h),this.boundingSphere=ae.fromCornerPoints(this.positionMin,this.positionMax,new ae),this.lightingOptions=new XO,this.pickId=void 0}var KO=RHe;function Au(e){e=y(e,y.EMPTY_OBJECT);let t=e.modelComponents;this._model=e.model,this._components=t,this._pipelineStages=[],this._updateStages=[],this._runtimeNodes=[],this._rootNodes=[],this._skinnedNodes=[],this._runtimeSkins=[],this.modelPipelineStages=[],this._boundingSphere=void 0,this._boundingSphere2D=void 0,this._computedModelMatrix=F.clone(F.IDENTITY),this._computedModelMatrix2D=F.clone(F.IDENTITY),this._axisCorrectionMatrix=Xt.getAxisCorrectionMatrix(t.upAxis,t.forwardAxis,new F),this._runtimeArticulations={},OHe(this)}Object.defineProperties(Au.prototype,{components:{get:function(){return this._components}},computedModelMatrix:{get:function(){return this._computedModelMatrix}},axisCorrectionMatrix:{get:function(){return this._axisCorrectionMatrix}},boundingSphere:{get:function(){return this._boundingSphere}}});function OHe(e){let t=e._components,n=t.scene,o=e._model.modelMatrix;hae(e,o);let r=t.articulations,s=r.length,a=e._runtimeArticulations;for(let C=0;C<s;C++){let A=r[C],E=new FR({articulation:A,sceneGraph:e}),v=E.name;a[v]=E}let c=t.nodes,u=c.length;e._runtimeNodes=new Array(u);let d=n.nodes.length,p=F.IDENTITY;for(let C=0;C<d;C++){let A=n.nodes[C],E=mae(e,A,p);e._rootNodes.push(E)}let g=t.skins,m=e._runtimeSkins,x=g.length;for(let C=0;C<x;C++){let A=g[C];m.push(new BO({skin:A,sceneGraph:e}))}let b=e._skinnedNodes,T=b.length;for(let C=0;C<T;C++){let A=b[C],E=e._runtimeNodes[A],D=c[A].skin.index;E._runtimeSkin=m[D],E.updateJointMatrices()}e.applyArticulations()}function hae(e,t){let n=e._components,i=e._model;e._computedModelMatrix=F.multiplyTransformation(t,n.transform,e._computedModelMatrix),e._computedModelMatrix=F.multiplyTransformation(e._computedModelMatrix,e._axisCorrectionMatrix,e._computedModelMatrix),e._computedModelMatrix=F.multiplyByUniformScale(e._computedModelMatrix,i.computedScale,e._computedModelMatrix)}var MHe=new h;function LHe(e,t){let n=e._computedModelMatrix,i=F.getTranslation(n,MHe);if(!h.equals(i,h.ZERO))e._computedModelMatrix2D=wt.basisTo2D(t.mapProjection,n,e._computedModelMatrix2D);else{let o=e.boundingSphere.center,r=wt.wgs84To2DModelMatrix(t.mapProjection,o,e._computedModelMatrix2D);e._computedModelMatrix2D=F.multiply(r,n,e._computedModelMatrix2D)}e._boundingSphere2D=ae.transform(e._boundingSphere,e._computedModelMatrix2D,e._boundingSphere2D)}function mae(e,t,n){let i=[],o=Xt.getNodeTransform(t),r=t.children.length;for(let f=0;f<r;f++){let d=t.children[f],p=F.multiplyTransformation(n,o,new F),g=mae(e,d,p);i.push(g)}let s=new $R({node:t,transform:o,transformToRoot:n,children:i,sceneGraph:e}),a=t.primitives.length;for(let f=0;f<a;f++)s.runtimePrimitives.push(new FO({primitive:t.primitives[f],node:t,model:e._model}));let c=t.index;e._runtimeNodes[c]=s,l(t.skin)&&e._skinnedNodes.push(c);let u=t.name;if(l(u)){let f=e._model,d=new GR(f,s);f._nodesByName[u]=d}return c}var NHe=new h,FHe=new h,BHe=new h,kHe=new h;Au.prototype.buildDrawCommands=function(e){let t=this._model,n=new zO(t);t.statistics.clear(),this.configurePipeline(e);let i=this.modelPipelineStages,o,r,s;for(o=0;o<i.length;o++)i[o].process(n,t,e);let a=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,NHe),c=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,FHe);for(o=0;o<this._runtimeNodes.length;o++){let u=this._runtimeNodes[o];if(!l(u))continue;u.configurePipeline();let f=u.pipelineStages,d=new YO(n,u);for(r=0;r<f.length;r++)f[r].process(d,u.node,e);let p=u.computedTransform;for(r=0;r<u.runtimePrimitives.length;r++){let g=u.runtimePrimitives[r];g.configurePipeline(e);let m=g.pipelineStages,x=new KO(d,g);for(s=0;s<m.length;s++)m[s].process(x,g.primitive,e);g.boundingSphere=ae.clone(x.boundingSphere,new ae);let b=F.multiplyByPoint(p,x.positionMin,BHe),T=F.multiplyByPoint(p,x.positionMax,kHe);h.minimumByComponent(a,b,a),h.maximumByComponent(c,T,c);let C=DR(x,e);g.drawCommand=C}}this._boundingSphere=ae.fromCornerPoints(a,c,new ae),this._boundingSphere=ae.transformWithoutScale(this._boundingSphere,this._axisCorrectionMatrix,this._boundingSphere),this._boundingSphere=ae.transform(this._boundingSphere,this._components.transform,this._boundingSphere),t._boundingSphere=ae.transform(this._boundingSphere,t.modelMatrix,t._boundingSphere),t._initialRadius=t._boundingSphere.radius,t._boundingSphere.radius*=t._clampedScale};Au.prototype.configurePipeline=function(e){let t=this.modelPipelineStages;t.length=0;let n=this._model,i=e.fog.enabled&&e.fog.renderable;l(n.color)&&t.push(gy),!l(n.classificationType)&&(n.imageBasedLighting.enabled&&t.push(LR),n.isClippingEnabled()&&t.push(VR),n.isClippingPolygonsEnabled()&&t.push(HR),n.hasSilhouette(e)&&t.push(WO),l(n.splitDirection)&&n.splitDirection!==Qc.NONE&&t.push(qO),sr.is3DTiles(n.type)&&t.push(PR),i&&t.push(OR))};Au.prototype.update=function(e,t){let n,i,o;for(n=0;n<this._runtimeNodes.length;n++){let r=this._runtimeNodes[n];if(!l(r))continue;for(i=0;i<r.updateStages.length;i++)r.updateStages[i].update(r,this,e);let s=e.mode!==ne.SCENE3D&&this._model._projectTo2D;for(t&&!s&&this.updateJointMatrices(),i=0;i<r.runtimePrimitives.length;i++){let a=r.runtimePrimitives[i];for(o=0;o<a.updateStages.length;o++)a.updateStages[o].update(a,this)}}};Au.prototype.updateModelMatrix=function(e,t){hae(this,e),t.mode!==ne.SCENE3D&&LHe(this,t);let n=this._rootNodes;for(let i=0;i<n.length;i++){let o=this._runtimeNodes[n[i]];o._transformDirty=!0}};Au.prototype.updateJointMatrices=function(){let e=this._skinnedNodes,t=e.length;for(let n=0;n<t;n++){let i=e[n];this._runtimeNodes[i].updateJointMatrices()}};function pae(e,t,n,i,o){if(n&&!t.show)return;let r=t.children.length;for(let c=0;c<r;c++){let u=t.getChild(c);pae(e,u,n,i,o)}let s=t.runtimePrimitives,a=s.length;for(let c=0;c<a;c++){let u=s[c];i(u,o)}}function kU(e,t,n,i){let o=e._rootNodes,r=o.length;for(let s=0;s<r;s++){let a=o[s],c=e._runtimeNodes[a];pae(e,c,t,n,i)}}var VHe={backFaceCulling:void 0};Au.prototype.updateBackFaceCulling=function(e){let t=VHe;t.backFaceCulling=e,kU(this,!1,UHe,t)};function UHe(e,t){let n=e.drawCommand;n.backFaceCulling=t.backFaceCulling}var zHe={shadowMode:void 0};Au.prototype.updateShadows=function(e){let t=zHe;t.shadowMode=e,kU(this,!1,HHe,t)};function HHe(e,t){let n=e.drawCommand;n.shadows=t.shadowMode}var GHe={debugShowBoundingVolume:void 0};Au.prototype.updateShowBoundingVolume=function(e){let t=GHe;t.debugShowBoundingVolume=e,kU(this,!1,WHe,t)};function WHe(e,t){let n=e.drawCommand;n.debugShowBoundingVolume=t.debugShowBoundingVolume}var _ae=[],jHe={frameState:void 0,hasSilhouette:void 0};Au.prototype.pushDrawCommands=function(e){let t=_ae;t.length=0;let n=jHe;n.hasSilhouette=this._model.hasSilhouette(e),n.frameState=e,kU(this,!0,qHe,n),e.commandList.push.apply(e.commandList,t)};function qHe(e,t){let n=t.frameState,i=t.hasSilhouette,o=n.passes,r=_ae,s=e.drawCommand;s.pushCommands(n,n.commandList),i&&!o.pick&&s.pushSilhouetteCommands(n,r)}Au.prototype.setArticulationStage=function(e,t){let n=e.split(" ");if(n.length!==2)return;let i=n[0],o=n[1],r=this._runtimeArticulations[i];l(r)&&r.setArticulationStage(o,t)};Au.prototype.applyArticulations=function(){let e=this._runtimeArticulations;for(let t in e)e.hasOwnProperty(t)&&e[t].apply()};var ZO=Au;function XC(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap=new bt}Object.defineProperties(XC.prototype,{batchTexturesByteLength:{get:function(){let e=this._batchTextureIdMap.length,t=this._batchTextureIdMap.values,n=0;for(let i=0;i<e;i++)n+=t[i].byteLength;return n}}});XC.prototype.clear=function(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap.removeAll()};XC.prototype.addBuffer=function(e,t){if(!this._bufferIdSet.hasOwnProperty(e._id)){let n=t?2:1;this.geometryByteLength+=e.sizeInBytes*n}this._bufferIdSet[e._id]=!0};XC.prototype.addTexture=function(e){this._textureIdSet.hasOwnProperty(e._id)||(this.texturesByteLength+=e.sizeInBytes),this._textureIdSet[e._id]=!0};XC.prototype.addBatchTexture=function(e){this._batchTextureIdMap.contains(e._id)||this._batchTextureIdMap.set(e._id,e)};var $O=XC;var bae=wo(Pk(),1);var gae={},_b=Uint32Array.BYTES_PER_ELEMENT;gae.parse=function(e,t){t=y(t,0);let n=new Uint8Array(e),i=new DataView(e);t+=_b;let o=i.getUint32(t,!0);if(o!==1)throw new le(`Only Point Cloud tile version 1 is supported. Version ${o} is not.`);t+=_b,t+=_b;let r=i.getUint32(t,!0);if(r===0)throw new le("Feature table must have a byte length greater than zero");t+=_b;let s=i.getUint32(t,!0);t+=_b;let a=i.getUint32(t,!0);t+=_b;let c=i.getUint32(t,!0);t+=_b;let u=Ro(n,t,r);t+=r;let f=new Uint8Array(e,t,s);t+=s;let d,p;a>0&&(d=Ro(n,t,a),t+=a,c>0&&(p=new Uint8Array(e,t,c),t+=c));let g=new Yd(u,f),m=g.getGlobalProperty("POINTS_LENGTH");if(g.featuresLength=m,!l(m))throw new le("Feature table global property: POINTS_LENGTH must be defined");let x=g.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(x)&&(x=h.unpack(x));let b=YHe(g,d);if(b.rtcCenter=x,b.pointsLength=m,!b.hasPositions){let T=XHe(g);b.positions=T,b.hasPositions=b.hasPositions||l(T)}if(!b.hasPositions)throw new le("Either POSITION or POSITION_QUANTIZED must be defined.");if(!b.hasNormals){let T=ZHe(g);b.normals=T,b.hasNormals=b.hasNormals||l(T)}if(!b.hasColors){let T=KHe(g);b.colors=T,b.hasColors=b.hasColors||l(T),b.hasConstantColor=l(b.constantColor),b.isTranslucent=l(T)&&T.isTranslucent}if(!b.hasBatchIds){let T=$He(g);b.batchIds=T,b.hasBatchIds=b.hasBatchIds||l(T)}if(b.hasBatchIds){let T=g.getGlobalProperty("BATCH_LENGTH");if(!l(T))throw new le("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");b.batchLength=T}return l(p)&&(p=new Uint8Array(p),b.batchTableJson=d,b.batchTableBinary=p),b};function YHe(e,t){let n=e.json,i,o,r,s=l(n.extensions)?n.extensions["3DTILES_draco_point_compression"]:void 0,a=l(t)&&l(t.extensions)?t.extensions["3DTILES_draco_point_compression"]:void 0;l(a)&&(r=a.properties);let c,u,f,d,p;if(l(s)){o=s.properties;let m=s.byteOffset,x=s.byteLength;if(!l(o)||!l(m)||!l(x))throw new le("Draco properties, byteOffset, and byteLength must be defined");i=e.buffer.slice(m,m+x),c=l(o.POSITION),u=l(o.RGB)||l(o.RGBA),f=l(o.NORMAL),d=l(o.BATCH_ID),p=l(o.RGBA)}let g;return l(i)&&(g={buffer:i,featureTableProperties:o,batchTableProperties:r,properties:_t(o,r),dequantizeInShader:!0}),{draco:g,hasPositions:c,hasColors:u,isTranslucent:p,hasNormals:f,hasBatchIds:d}}function XHe(e){let t=e.json,n;if(l(t.POSITION))return n=e.getPropertyArray("POSITION",X.FLOAT,3),{name:yt.POSITION,semantic:yt.POSITION,typedArray:n,isQuantized:!1,componentDatatype:X.FLOAT,type:tn.VEC3};if(l(t.POSITION_QUANTIZED)){n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3);let i=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!l(i))throw new le("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let o=65535,r=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!l(r))throw new le("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");return{name:yt.POSITION,semantic:yt.POSITION,typedArray:n,isQuantized:!0,componentDatatype:X.FLOAT,type:tn.VEC3,quantizedRange:o,quantizedVolumeOffset:h.unpack(r),quantizedVolumeScale:h.unpack(i),quantizedComponentDatatype:X.UNSIGNED_SHORT,quantizedType:tn.VEC3}}}function KHe(e){let t=e.json,n;if(l(t.RGBA))return n=e.getPropertyArray("RGBA",X.UNSIGNED_BYTE,4),{name:yt.COLOR,semantic:yt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:tn.VEC4,normalized:!0,isRGB565:!1,isTranslucent:!0};if(l(t.RGB))return n=e.getPropertyArray("RGB",X.UNSIGNED_BYTE,3),{name:"COLOR",semantic:yt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:tn.VEC3,normalized:!0,isRGB565:!1,isTranslucent:!1};if(l(t.RGB565))return n=e.getPropertyArray("RGB565",X.UNSIGNED_SHORT,1),{name:"COLOR",semantic:yt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.FLOAT,type:tn.VEC3,normalized:!1,isRGB565:!0,isTranslucent:!1};if(l(t.CONSTANT_RGBA)){let i=e.getGlobalProperty("CONSTANT_RGBA",X.UNSIGNED_BYTE,4),o=i[3],r=H.fromBytes(i[0],i[1],i[2],o),s=o<255;return{name:yt.COLOR,semantic:yt.COLOR,setIndex:0,constantColor:r,componentDatatype:X.FLOAT,type:tn.VEC4,isQuantized:!1,isTranslucent:s}}}function ZHe(e){let t=e.json,n;if(l(t.NORMAL))return n=e.getPropertyArray("NORMAL",X.FLOAT,3),{name:yt.NORMAL,semantic:yt.NORMAL,typedArray:n,octEncoded:!1,octEncodedZXY:!1,componentDatatype:X.FLOAT,type:tn.VEC3};if(l(t.NORMAL_OCT16P))return n=e.getPropertyArray("NORMAL_OCT16P",X.UNSIGNED_BYTE,2),{name:yt.NORMAL,semantic:yt.NORMAL,typedArray:n,octEncoded:!0,octEncodedZXY:!1,quantizedRange:(1<<8)-1,quantizedType:tn.VEC2,quantizedComponentDatatype:X.UNSIGNED_BYTE,componentDatatype:X.FLOAT,type:tn.VEC3}}function $He(e){let t=e.json;if(l(t.BATCH_ID)){let n=e.getPropertyArray("BATCH_ID",X.UNSIGNED_SHORT,1);return{name:yt.FEATURE_ID,semantic:yt.FEATURE_ID,setIndex:0,typedArray:n,componentDatatype:X.fromTypedArray(n),type:tn.SCALAR}}}var gb=gae;var QHe=xn.Components,JHe=xn.Scene,e5e=xn.Node,t5e=xn.Primitive,n5e=xn.Attribute,yae=xn.Quantization,i5e=xn.FeatureIdAttribute,o5e=xn.Material,r5e=xn.MetallicRoughness;function Ty(e){e=y(e,y.EMPTY_OBJECT);let t=e.arrayBuffer,n=y(e.byteOffset,0);this._arrayBuffer=t,this._byteOffset=n,this._loadAttributesFor2D=y(e.loadAttributesFor2D,!1),this._parsedContent=void 0,this._decodePromise=void 0,this._decodedAttributes=void 0,this._promise=void 0,this._error=void 0,this._state=Pt.UNLOADED,this._buffers=[],this._components=void 0,this._transform=F.IDENTITY}l(Object.create)&&(Ty.prototype=Object.create(no.prototype),Ty.prototype.constructor=Ty);Object.defineProperties(Ty.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},transform:{get:function(){return this._transform}}});Ty.prototype.load=function(){if(l(this._promise))return this._promise;this._parsedContent=gb.parse(this._arrayBuffer,this._byteOffset),this._state=Pt.PROCESSING,this._promise=Promise.resolve(this)};Ty.prototype.process=function(e){if(l(this._error)){let t=this._error;throw this._error=void 0,t}if(this._state===Pt.READY)return!0;if(this._state===Pt.PROCESSING){if(l(this._decodePromise))return!1;this._decodePromise=s5e(this,e.context)}return!1};function s5e(e,t){let i=e._parsedContent.draco,o;if(l(i)?o=Wp.decodePointCloud(i,t):o=Promise.resolve(),!!l(o))return e._decodePromise=o,o.then(function(r){if(!e.isDestroyed())return l(r)&&a5e(e,i,r),y5e(e,t),e._state=Pt.READY,e}).catch(function(r){e.unload(),e._state=Pt.FAILED;let s="Failed to load Draco pnts";e._error=e.getError(s,r)})}function a5e(e,t,n){e._state=Pt.READY;let i=e._parsedContent,o;if(l(n.POSITION)){if(o={name:"POSITION",semantic:yt.POSITION,typedArray:n.POSITION.array,componentDatatype:X.FLOAT,type:tn.VEC3,isQuantized:!1},l(n.POSITION.data.quantization)){let a=n.POSITION.data.quantization,c=a.range,u=h.fromElements(c,c,c),f=h.unpack(a.minValues),d=(1<<a.quantizationBits)-1;o.isQuantized=!0,o.quantizedRange=d,o.quantizedVolumeOffset=f,o.quantizedVolumeScale=u,o.quantizedComponentDatatype=d<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT,o.quantizedType=tn.VEC3}i.positions=o}if(l(n.NORMAL)){if(o={name:"NORMAL",semantic:yt.NORMAL,typedArray:n.NORMAL.array,componentDatatype:X.FLOAT,type:tn.VEC3,isQuantized:!1,octEncoded:!1,octEncodedZXY:!1},l(n.NORMAL.data.quantization)){let a=(1<<n.NORMAL.data.quantization.quantizationBits)-1;o.quantizedRange=a,o.octEncoded=!0,o.octEncodedZXY=!0,o.quantizedComponentDatatype=X.UNSIGNED_BYTE,o.quantizedType=tn.VEC2}i.normals=o}if(l(n.RGBA)?i.colors={name:"COLOR",semantic:yt.COLOR,setIndex:0,typedArray:n.RGBA.array,componentDatatype:X.UNSIGNED_BYTE,type:tn.VEC4,normalized:!0,isTranslucent:!0}:l(n.RGB)&&(i.colors={name:"COLOR",semantic:yt.COLOR,setIndex:0,typedArray:n.RGB.array,componentDatatype:X.UNSIGNED_BYTE,type:tn.VEC3,normalized:!0,isTranslucent:!1}),l(n.BATCH_ID)){let a=n.BATCH_ID.array;i.batchIds={name:"_FEATURE_ID",semantic:yt.FEATURE_ID,setIndex:0,typedArray:a,componentDatatype:X.fromTypedArray(a),type:tn.SCALAR}}let r=i.batchTableJson,s=t.batchTableProperties;for(let a in s)if(s.hasOwnProperty(a)){let c=n[a];l(r)||(r={}),i.hasDracoBatchTable=!0;let u=c.data;r[a]={byteOffset:u.byteOffset,type:c5e(u.componentsPerAttribute),componentType:l5e(u.componentDatatype),typedArray:c.array}}i.batchTableJson=r}function c5e(e){switch(e){case 1:return"SCALAR";case 2:return"VEC2";case 3:return"VEC3";case 4:return"VEC4"}}function l5e(e){switch(e){case ee.BYTE:return"BYTE";case ee.UNSIGNED_BYTE:return"UNSIGNED_BYTE";case ee.SHORT:return"SHORT";case ee.UNSIGNED_SHORT:return"UNSIGNED_SHORT";case ee.INT:return"INT";case ee.UNSIGNED_INT:return"UNSIGNED_INT";case ee.DOUBLE:return"DOUBLE";case ee.FLOAT:return"FLOAT"}}function QO(e,t,n){let i=t.typedArray,o;if(t.octEncoded&&(o=new yae,o.octEncoded=t.octEncoded,o.octEncodedZXY=t.octEncodedZXY,o.normalizationRange=t.quantizedRange,o.type=t.quantizedType,o.componentDatatype=t.quantizedComponentDatatype),t.isQuantized){o=new yae;let a=t.quantizedRange;o.normalizationRange=a,o.quantizedVolumeOffset=h.ZERO;let c=t.quantizedVolumeScale;o.quantizedVolumeDimensions=c,o.quantizedVolumeStepSize=h.divideByScalar(c,a,new h),o.componentDatatype=t.quantizedComponentDatatype,o.type=t.quantizedType}let r=new n5e;if(r.name=t.name,r.semantic=t.semantic,r.setIndex=t.setIndex,r.componentDatatype=t.componentDatatype,r.type=t.type,r.normalized=y(t.normalized,!1),r.min=t.min,r.max=t.max,r.quantization=o,t.isRGB565&&(i=Mn.decodeRGB565(i)),l(t.constantColor)){let a=new Array(4);r.constant=H.pack(t.constantColor,a)}else{let a=ct.createVertexBuffer({typedArray:i,context:n,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,e._buffers.push(a),r.buffer=a}let s=e._loadAttributesFor2D;return r.semantic===yt.POSITION&&s&&(r.typedArray=i),r}var xae,VU;function u5e(e){if(!l(VU)){xae=new bae.default(0),VU=new Array(e);for(let t=0;t<e;++t)VU[t]=xae.random()}return VU}var f5e=new h,d5e=new h,h5e=new h;function m5e(e){let t=e.typedArray,n=20,i=t.length/3,o=Math.min(i,n),r=u5e(n),s=Number.MAX_VALUE,a=-Number.MAX_VALUE,c=h.fromElements(s,s,s,f5e),u=h.fromElements(a,a,a,d5e),f,d,p;if(e.isQuantized)c=h.ZERO,u=e.quantizedVolumeScale;else for(f=0;f<o;++f)d=Math.floor(r[f]*i),p=h.unpack(t,d*3,h5e),h.minimumByComponent(c,p,c),h.maximumByComponent(u,p,u);e.min=h.clone(c),e.max=h.clone(u)}var p5e={name:yt.COLOR,semantic:yt.COLOR,setIndex:0,constantColor:H.DARKGRAY,componentDatatype:X.FLOAT,type:tn.VEC4,isQuantized:!1,isTranslucent:!1};function _5e(e,t,n){let i=[],o,r=t.positions;return l(r)&&(m5e(r),o=QO(e,r,n),o.count=t.pointsLength,i.push(o)),l(t.normals)&&(o=QO(e,t.normals,n),i.push(o)),l(t.colors)?(o=QO(e,t.colors,n),i.push(o)):(o=QO(e,p5e,n),i.push(o)),l(t.batchIds)&&(o=QO(e,t.batchIds,n),i.push(o)),i}function g5e(e,t){let n=e.batchLength,i=e.pointsLength,o=e.batchTableBinary,r=!l(e.batchIds);if(l(o)||e.hasDracoBatchTable){let s=y(n,i);return e_({count:s,batchTable:e.batchTableJson,binaryBody:o,parseAsPropertyAttributes:r,customAttributeOutput:t})}return new Da({schema:{},propertyTables:[]})}function y5e(e,t){let n=e._parsedContent,i=new r5e;i.metallicFactor=0,i.roughnessFactor=.9;let o=new o5e;o.metallicRoughness=i;let r=n.colors;l(r)&&r.isTranslucent&&(o.alphaMode=dm.BLEND);let s=!l(n.normals);o.unlit=s;let a=new t5e;if(a.attributes=_5e(e,n,t),a.primitiveType=Le.POINTS,a.material=o,l(n.batchIds)){let g=new i5e;g.propertyTableId=0,g.setIndex=0,g.positionalLabel="featureId_0",a.featureIds.push(g)}let c=new e5e;c.index=0,c.primitives=[a];let u=new JHe;u.nodes=[c],u.upAxis=Io.Z,u.forwardAxis=Io.X;let f=new QHe;f.scene=u,f.nodes=[c];let d=[];f.structuralMetadata=g5e(n,d),d.length>0&&x5e(e,a,d,t),l(n.rtcCenter)&&(f.transform=F.multiplyByTranslation(f.transform,n.rtcCenter,f.transform));let p=n.positions;l(p)&&p.isQuantized&&(f.transform=F.multiplyByTranslation(f.transform,p.quantizedVolumeOffset,f.transform)),e._components=f,e._parsedContent=void 0,e._arrayBuffer=void 0}function x5e(e,t,n,i){let o=t.attributes,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=ct.createVertexBuffer({typedArray:a.typedArray,context:i,usage:Fe.STATIC_DRAW});c.vertexArrayDestroyable=!1,e._buffers.push(c),a.buffer=c,a.typedArray=void 0,o.push(a)}t.propertyAttributeIds=[0]}Ty.prototype.unload=function(){let e=this._buffers;for(let t=0;t<e.length;t++)e[t].destroy();e.length=0,this._components=void 0,this._parsedContent=void 0,this._arrayBuffer=void 0};var JO=Ty;var b5e=new h,T5e=new h,A5e=new h,C5e=new F,E5e=new F,S5e=new F,v5e=new fe,w5e=new ae;function KC(e,t,n,i,o,r,s){if(!e._ready||n.mode===ne.MORPHING)return;let a=Number.MAX_VALUE,c=e.sceneGraph,u=c._runtimeNodes;for(let f=0;f<u.length;f++){let d=u[f],p=d.node,g=F.clone(d.computedTransform,C5e),m=F.clone(c.computedModelMatrix,E5e),x=p.instances;l(x)&&x.transformInWorldSpace&&(m=F.multiplyTransformation(e.modelMatrix,c.components.transform,m),g=F.multiplyTransformation(c.axisCorrectionMatrix,d.computedTransform,g));let b=F.multiplyTransformation(m,g,S5e);n.mode!==ne.SCENE3D&&(b=wt.basisTo2D(n.mapProjection,b,b));let T=[];if(l(x)){let A=x.attributes[0].count,E=x.attributes[0].componentDatatype,v=12,D=d.transformsTypedArray;if(!l(D)){let O=d.instancingTransformsBuffer;l(O)&&n.context.webgl2&&(D=X.createTypedArray(E,A*v),O.getBufferData(D))}if(l(D))for(let O=0;O<A;O++){let I=O*v,L=new F(D[I],D[I+1],D[I+2],D[I+3],D[I+4],D[I+5],D[I+6],D[I+7],D[I+8],D[I+9],D[I+10],D[I+11],0,0,0,1);x.transformInWorldSpace?(F.multiplyTransformation(L,g,L),F.multiplyTransformation(m,L,L)):F.multiplyTransformation(L,b,L),T.push(L)}}T.length===0&&T.push(b);let C=d.runtimePrimitives.length;for(let A=0;A<C;A++){let E=d.runtimePrimitives[A],v=E.primitive;if(l(E.boundingSphere)&&!l(x)){let W=ae.transform(E.boundingSphere,b,w5e),Q=Qn.raySphere(t,W);if(!l(Q))continue}let D=Xt.getAttributeBySemantic(v,yt.POSITION),O=D.byteOffset,I=D.byteStride,L=D.count;if(!l(v.indices))continue;let N=v.indices.typedArray;if(!l(N)){let W=v.indices.buffer,Q=v.indices.count,j=v.indices.indexDatatype;l(W)&&n.context.webgl2&&(j===Ne.UNSIGNED_BYTE?N=new Uint8Array(Q):j===Ne.UNSIGNED_SHORT?N=new Uint16Array(Q):j===Ne.UNSIGNED_INT&&(N=new Uint32Array(Q)),W.getBufferData(N))}let _=D.typedArray,S=D.componentDatatype,w=D.type,P=D.quantization;l(P)&&(S=D.quantization.componentDatatype,w=D.quantization.type);let M=tn.getNumberOfComponents(w),B=X.getSizeInBytes(S),U=!l(_)&&l(I)&&I!==M*B,V=M,G=0;U&&(V=I/B,G=O/B);let k=L*V;if(!l(_)){let W=D.buffer;l(W)&&n.context.webgl2&&(_=X.createTypedArray(S,k),W.getBufferData(_,U?0:O,0,k)),P&&D.normalized&&(_=Mn.dequantize(_,S,w,L))}if(!l(N)||!l(_))return;r=y(r,te.WGS84),i=y(i,1),o=y(o,0);let Y=N.length;for(let W=0;W<Y;W+=3){let Q=N[W],j=N[W+1],K=N[W+2];for(let Z of T){let he=SW(_,Q,G,V,P,Z,i,o,r,b5e),be=SW(_,j,G,V,P,Z,i,o,r,T5e),re=SW(_,K,G,V,P,Z,i,o,r,A5e),_e=Qn.rayTriangleParametric(t,he,be,re,y(e.backFaceCulling,!0));l(_e)&&_e<a&&_e>=0&&(a=_e)}}}}if(a!==Number.MAX_VALUE){if(s=pn.getPoint(t,a,s),n.mode!==ne.SCENE3D){h.fromElements(s.y,s.z,s.x,s);let f=n.mapProjection,d=f.ellipsoid,p=f.unproject(s,v5e);d.cartographicToCartesian(p,s)}return s}}function SW(e,t,n,i,o,r,s,a,c,u){let f=n+t*i;if(u.x=e[f],u.y=e[f+1],u.z=e[f+2],l(o))if(o.octEncoded){if(u=Mn.octDecodeInRange(u,o.normalizationRange,u),o.octEncodedZXY){let d=u.x;u.x=u.z,u.z=u.y,u.y=d}}else u=h.multiplyComponents(u,o.quantizedVolumeStepSize,u),u=h.add(u,o.quantizedVolumeOffset,u);return u=F.multiplyByPoint(r,u,u),s!==1&&pr.getPosition(u,c,s,a,u),u}function lo(e){e=y(e,y.EMPTY_OBJECT),this._loader=e.loader,this._resource=e.resource,this.type=y(e.type,sr.GLTF),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(this.modelMatrix),this._scale=y(e.scale,1),this._minimumPixelSize=y(e.minimumPixelSize,0),this._maximumScale=e.maximumScale,this._clampedScale=l(this._maximumScale)?Math.min(this._scale,this._maximumScale):this._scale,this._computedScale=this._clampedScale,this._updateModelMatrix=!1,this.referenceMatrix=void 0,this._iblReferenceFrameMatrix=$.clone($.IDENTITY),this._resourcesLoaded=!1,this._drawCommandsBuilt=!1,this._ready=!1,this._customShader=e.customShader,this._content=e.content,this._texturesLoaded=!1,this._defaultTexture=void 0,this._activeAnimations=new xR(this),this._clampAnimations=y(e.clampAnimations,!0),this._userAnimationDirty=!1,this._id=e.id,this._idDirty=!1,this._color=H.clone(e.color),this._colorBlendMode=y(e.colorBlendMode,cc.HIGHLIGHT),this._colorBlendAmount=y(e.colorBlendAmount,.5);let t=y(e.silhouetteColor,H.RED);this._silhouetteColor=H.clone(t),this._silhouetteSize=y(e.silhouetteSize,0),this._silhouetteDirty=!1,this._silhouetteId=void 0,this._cull=y(e.cull,!0),this._opaquePass=y(e.opaquePass,Ee.OPAQUE),this._allowPicking=y(e.allowPicking,!0),this._show=y(e.show,!0),this._style=void 0,this._styleDirty=!1,this._styleCommandsNeeded=void 0;let n=y(e.featureIdLabel,"featureId_0");typeof n=="number"&&(n=`featureId_${n}`),this._featureIdLabel=n;let i=y(e.instanceFeatureIdLabel,"instanceFeatureId_0");typeof i=="number"&&(i=`instanceFeatureId_${i}`),this._instanceFeatureIdLabel=i,this._featureTables=[],this._featureTableId=void 0,this._featureTableIdDirty=!0,this._pipelineResources=[],this._modelResources=[],this._pickIds=[],this._boundingSphere=new ae,this._initialRadius=void 0,this._heightReference=y(e.heightReference,qe.NONE),this._heightDirty=this._heightReference!==qe.NONE,this._removeUpdateHeightCallback=void 0,this._verticalExaggerationOn=!1,this._clampedModelMatrix=void 0;let o=e.scene;l(o)&&l(o.terrainProviderChanged)&&(this._terrainProviderChangedCallback=o.terrainProviderChanged.addEventListener(()=>{this._heightDirty=!0})),this._scene=o,this._distanceDisplayCondition=e.distanceDisplayCondition;let r=new mm(e.pointCloudShading);this._pointCloudShading=r,this._attenuation=r.attenuation,this._pointCloudBackFaceCulling=r.backFaceCulling;let s=e.clippingPlanes;l(s)&&s.owner===void 0?cs.setOwner(s,this,"_clippingPlanes"):this._clippingPlanes=s,this._clippingPlanesState=0,this._clippingPlanesMatrix=F.clone(F.IDENTITY);let a=e.clippingPolygons;l(a)&&a.owner===void 0?Gd.setOwner(a,this,"_clippingPolygons"):this._clippingPolygons=a,this._clippingPolygonsState=0,this._lightColor=h.clone(e.lightColor),this._imageBasedLighting=l(e.imageBasedLighting)?e.imageBasedLighting:new Bx,this._shouldDestroyImageBasedLighting=!l(e.imageBasedLighting),this._backFaceCulling=y(e.backFaceCulling,!0),this._backFaceCullingDirty=!1,this._shadows=y(e.shadows,yn.ENABLED),this._shadowsDirty=!1,this._debugShowBoundingVolumeDirty=!1,this._debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._enableDebugWireframe=y(e.enableDebugWireframe,!1),this._enableShowOutline=y(e.enableShowOutline,!0),this._debugWireframe=y(e.debugWireframe,!1),this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===sr.GLTF&&Lt("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltf, otherwise debugWireframe will be ignored.");let c=e.credit;typeof c=="string"&&(c=new Tt(c)),this._credits=[],this._credit=c,this._resourceCredits=[],this._gltfCredits=[],this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._showCreditsOnScreenDirty=!0,this._splitDirection=y(e.splitDirection,Qc.NONE),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,H.BLACK),this._classificationType=e.classificationType,this._statistics=new $O,this._sceneMode=void 0,this._projectTo2D=y(e.projectTo2D,!1),this._enablePick=y(e.enablePick,!1),this._fogRenderable=void 0,this._skipLevelOfDetail=!1,this._ignoreCommands=y(e.ignoreCommands,!1),this._errorEvent=new pe,this._readyEvent=new pe,this._texturesReadyEvent=new pe,this._sceneGraph=void 0,this._nodesByName={},this.pickObject=e.pickObject}function vW(e,t){if(e._errorEvent.numberOfListeners>0){e._errorEvent.raiseEvent(t);return}console.log(t)}function D5e(e,t){let n=e._featureTables,i=t.propertyTables,o=i.length;for(let r=0;r<o;r++){let s=i[r],a=new AR({model:e,propertyTable:s});n.push(a)}return n}function P5e(e,t){let n=t._featureIdLabel,i=t._instanceFeatureIdLabel,o,r,s,a;for(o=0;o<e.nodes.length;o++)if(a=e.nodes[o],l(a.instances)&&(s=Xt.getFeatureIdsByLabel(a.instances.featureIds,i),l(s)&&l(s.propertyTableId)))return s.propertyTableId;for(o=0;o<e.nodes.length;o++)for(a=e.nodes[o],r=0;r<a.primitives.length;r++){let c=a.primitives[r],u=Xt.getFeatureIdsByLabel(c.featureIds,n);if(l(u))return u.propertyTableId}if(t._featureTables.length===1)return 0}function PW(e,t){if(!l(e)&&!l(t))return!1;if(l(e)!==l(t))return!0;let n=e.alpha,i=t.alpha;return Math.floor(n)!==Math.floor(i)||Math.ceil(n)!==Math.ceil(i)}Object.defineProperties(lo.prototype,{ready:{get:function(){return this._ready}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},incrementallyLoadTextures:{get:function(){return y(this._loader.incrementallyLoadTextures,!1)}},texturesReadyEvent:{get:function(){return this._texturesReadyEvent}},loader:{get:function(){return this._loader}},statistics:{get:function(){return this._statistics}},activeAnimations:{get:function(){return this._activeAnimations}},clampAnimations:{get:function(){return this._clampAnimations},set:function(e){this._clampAnimations=e}},cull:{get:function(){return this._cull}},opaquePass:{get:function(){return this._opaquePass}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){e!==this._pointCloudShading&&this.resetDrawCommands(),this._pointCloudShading=e}},customShader:{get:function(){return this._customShader},set:function(e){e!==this._customShader&&this.resetDrawCommands(),this._customShader=e}},sceneGraph:{get:function(){return this._sceneGraph}},content:{get:function(){return this._content}},heightReference:{get:function(){return this._heightReference},set:function(e){e!==this._heightReference&&(this._heightDirty=!0),this._heightReference=e}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=It.clone(e,this._distanceDisplayCondition)}},structuralMetadata:{get:function(){return this._sceneGraph.components.structuralMetadata}},featureTableId:{get:function(){return this._featureTableId},set:function(e){this._featureTableId=e}},featureTables:{get:function(){return this._featureTables},set:function(e){this._featureTables=e}},id:{get:function(){return this._id},set:function(e){e!==this._id&&(this._idDirty=!0),this._id=e}},allowPicking:{get:function(){return this._allowPicking}},style:{get:function(){return this._style},set:function(e){this._style=e,this._styleDirty=!0}},color:{get:function(){return this._color},set:function(e){PW(e,this._color)&&this.resetDrawCommands(),this._color=H.clone(e,this._color)}},colorBlendMode:{get:function(){return this._colorBlendMode},set:function(e){this._colorBlendMode=e}},colorBlendAmount:{get:function(){return this._colorBlendAmount},set:function(e){this._colorBlendAmount=e}},silhouetteColor:{get:function(){return this._silhouetteColor},set:function(e){if(!H.equals(e,this._silhouetteColor)){let t=PW(e,this._silhouetteColor);this._silhouetteDirty=this._silhouetteDirty||t}this._silhouetteColor=H.clone(e,this._silhouetteColor)}},silhouetteSize:{get:function(){return this._silhouetteSize},set:function(e){if(e!==this._silhouetteSize){let t=this._silhouetteSize,n=e>0&&t===0||e===0&&t>0;this._silhouetteDirty=this._silhouetteDirty||n,this._backFaceCullingDirty=this._backFaceCullingDirty||n}this._silhouetteSize=e}},boundingSphere:{get:function(){let e=l(this._clampedModelMatrix)?this._clampedModelMatrix:this.modelMatrix;return Cae(this,e),this._boundingSphere}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolumeDirty=!0),this._debugShowBoundingVolume=e}},debugWireframe:{get:function(){return this._debugWireframe},set:function(e){this._debugWireframe!==e&&this.resetDrawCommands(),this._debugWireframe=e,this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===sr.GLTF&&Lt("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltfAsync, otherwise debugWireframe will be ignored.")}},show:{get:function(){return this._show},set:function(e){this._show=e}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),e!==this._featureIdLabel&&(this._featureTableIdDirty=!0),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),e!==this._instanceFeatureIdLabel&&(this._featureTableIdDirty=!0),this._instanceFeatureIdLabel=e}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){e!==this._clippingPlanes&&(cs.setOwner(e,this,"_clippingPlanes"),this.resetDrawCommands())}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){e!==this._clippingPolygons&&(Gd.setOwner(e,this,"_clippingPolygons"),this.resetDrawCommands())}},lightColor:{get:function(){return this._lightColor},set:function(e){l(e)!==l(this._lightColor)&&this.resetDrawCommands(),this._lightColor=h.clone(e,this._lightColor)}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1,this.resetDrawCommands())}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){e!==this._backFaceCulling&&(this._backFaceCullingDirty=!0),this._backFaceCulling=e}},scale:{get:function(){return this._scale},set:function(e){e!==this._scale&&(this._updateModelMatrix=!0),this._scale=e}},computedScale:{get:function(){return this._computedScale}},minimumPixelSize:{get:function(){return this._minimumPixelSize},set:function(e){e!==this._minimumPixelSize&&(this._updateModelMatrix=!0),this._minimumPixelSize=e}},maximumScale:{get:function(){return this._maximumScale},set:function(e){e!==this._maximumScale&&(this._updateModelMatrix=!0),this._maximumScale=e}},shadows:{get:function(){return this._shadows},set:function(e){e!==this._shadows&&(this._shadowsDirty=!0),this._shadows=e}},credit:{get:function(){return this._credit}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen!==e&&(this._showCreditsOnScreenDirty=!0),this._showCreditsOnScreen=e}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&this.resetDrawCommands(),this._splitDirection=e}},classificationType:{get:function(){return this._classificationType}},pickIds:{get:function(){return this._pickIds}},styleCommandsNeeded:{get:function(){return this._styleCommandsNeeded}}});lo.prototype.getNode=function(e){return this._nodesByName[e]};lo.prototype.setArticulationStage=function(e,t){this._sceneGraph.setArticulationStage(e,t)};lo.prototype.applyArticulations=function(){this._sceneGraph.applyArticulations()};lo.prototype.makeStyleDirty=function(){this._styleDirty=!0};lo.prototype.resetDrawCommands=function(){this._drawCommandsBuilt=!1};var I5e=new F,R5e=new $,O5e=new F;lo.prototype.update=function(e){let t=!1;try{t=M5e(this,e)}catch(n){if(!this._loader.incrementallyLoadTextures&&n.name==="TextureError")vW(this,n);else{let i=Xt.getError("model",this._resource,n);vW(this,i)}}if(L5e(this,e),N5e(this,e),!this._resourcesLoaded&&t){this._resourcesLoaded=!0;let n=this._loader.components;if(!l(n)){if(this._loader.isUnloaded())return;let r=Xt.getError("model",this._resource,new le("Failed to load model."));vW(r),this._rejectLoad=this._rejectLoad&&this._rejectLoad(r)}let i=n.structuralMetadata;l(i)&&i.propertyTableCount>0&&D5e(this,i);let o=new ZO({model:this,modelComponents:n});this._sceneGraph=o,this._gltfCredits=o.components.asset.credits}if(!(!this._resourcesLoaded||e.mode===ne.MORPHING)){if(F5e(this),B5e(this),k5e(this,e),V5e(this),U5e(this,e),z5e(this,e),H5e(this,e),G5e(this,e),W5e(this,e),j5e(this,e),q5e(this,e),this._defaultTexture=e.context.defaultTexture,Y5e(this,e),X5e(this,e),K5e(this),Z5e(this,e),eGe(this,e),!this._ready){e.afterRender.push(()=>{this._ready=!0,this._readyEvent.raiseEvent(this)});return}this._loader.incrementallyLoadTextures&&!this._texturesLoaded&&this._loader.texturesLoaded&&(this.resetDrawCommands(),this._texturesLoaded=!0,this._texturesReadyEvent.raiseEvent(this)),Q5e(this),tGe(this,e),nGe(this),iGe(this,e)}};function M5e(e,t){return!e._resourcesLoaded||e._loader.incrementallyLoadTextures&&!e._texturesLoaded?(t.afterRender.push(()=>!0),e._loader.process(t)):!0}function L5e(e,t){l(e._customShader)&&e._customShader.update(t)}function N5e(e,t){e._imageBasedLighting.update(t),e._imageBasedLighting.shouldRegenerateShaders&&e.resetDrawCommands()}function F5e(e){if(!e._featureTableIdDirty)return;e._featureTableIdDirty=!1;let t=e._sceneGraph.components,n=t.structuralMetadata;l(n)&&n.propertyTableCount>0&&(e.featureTableId=P5e(t,e),e._styleDirty=!0,e.resetDrawCommands())}function B5e(e){e._styleDirty&&(e.applyStyle(e._style),e._styleDirty=!1)}function k5e(e,t){let n=e._featureTables,i=n.length,o=!1;for(let r=0;r<i;r++)n[r].update(t),n[r].styleCommandsNeededDirty&&(o=!0);o&&Aae(e)}function Aae(e){let t=e.featureTables[e.featureTableId];e._styleCommandsNeeded=Kd.getStyleCommandsNeeded(t.featuresLength,t.batchTexture.translucentFeaturesLength)}function V5e(e){let t=e.pointCloudShading;t.attenuation!==e._attenuation&&(e.resetDrawCommands(),e._attenuation=t.attenuation),t.backFaceCulling!==e._pointCloudBackFaceCulling&&(e.resetDrawCommands(),e._pointCloudBackFaceCulling=t.backFaceCulling)}function U5e(e,t){e._silhouetteDirty&&(Eae(t)&&e.resetDrawCommands(),e._silhouetteDirty=!1)}function z5e(e,t){let n=e.hasSkipLevelOfDetail(t);n!==e._skipLevelOfDetail&&(e.resetDrawCommands(),e._skipLevelOfDetail=n)}function H5e(e,t){let n=0;e.isClippingEnabled()&&(e._clippingPlanes.owner===e&&e._clippingPlanes.update(t),n=e._clippingPlanes.clippingPlanesState),n!==e._clippingPlanesState&&(e.resetDrawCommands(),e._clippingPlanesState=n)}function G5e(e,t){let n=0;e.isClippingPolygonsEnabled()&&(e._clippingPolygons.owner===e&&(e._clippingPolygons.update(t),e._clippingPolygons.queueCommands(t)),n=e._clippingPolygons.clippingPolygonsState),n!==e._clippingPolygonsState&&(e.resetDrawCommands(),e._clippingPolygonsState=n)}function W5e(e,t){t.mode!==e._sceneMode&&(e._projectTo2D?e.resetDrawCommands():e._updateModelMatrix=!0,e._sceneMode=t.mode)}function j5e(e,t){let n=t.fog.enabled&&t.fog.renderable;n!==e._fogRenderable&&(e.resetDrawCommands(),e._fogRenderable=n)}function q5e(e,t){let n=t.verticalExaggeration!==1;e._verticalExaggerationOn!==n&&(e.resetDrawCommands(),e._verticalExaggerationOn=n)}function Y5e(e,t){e._drawCommandsBuilt||(e.destroyPipelineResources(),e._sceneGraph.buildDrawCommands(t),e._drawCommandsBuilt=!0)}function X5e(e,t){F.equals(e.modelMatrix,e._modelMatrix)||(e._updateModelMatrix=!0,e._modelMatrix=F.clone(e.modelMatrix,e._modelMatrix))}var Ay=new h,wW=new fe;function K5e(e){if(!e._updateModelMatrix&&!e._heightDirty&&e._minimumPixelSize===0)return;l(e._removeUpdateHeightCallback)&&(e._removeUpdateHeightCallback(),e._removeUpdateHeightCallback=void 0);let t=e._scene;if(!l(t)||e.heightReference===qe.NONE){e._clampedModelMatrix=void 0;return}let n=t.globe,i=y(n?.ellipsoid,te.WGS84),o=e.modelMatrix;Ay.x=o[12],Ay.y=o[13],Ay.z=o[14];let r=i.cartesianToCartographic(Ay);l(e._clampedModelMatrix)||(e._clampedModelMatrix=F.clone(o,new F)),e._removeUpdateHeightCallback=t.updateHeight(r,Tae(e,i,r),e.heightReference);let s=t.getHeight(r,e.heightReference);if(l(s)){let a=Tae(e,i,r);fe.clone(r,wW),wW.height=s,a(wW)}e._heightDirty=!1,e._updateModelMatrix=!0}function Z5e(e,t){if(!e._updateModelMatrix&&e._minimumPixelSize===0)return;let n=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;Cae(e,n),$5e(e,n,t)}function Cae(e,t){e._clampedScale=l(e._maximumScale)?Math.min(e._scale,e._maximumScale):e._scale,e._boundingSphere.center=h.multiplyByScalar(e._sceneGraph.boundingSphere.center,e._clampedScale,e._boundingSphere.center),e._boundingSphere.radius=e._initialRadius*e._clampedScale,e._boundingSphere=ae.transform(e._boundingSphere,t,e._boundingSphere)}function $5e(e,t,n){let i=e.scale;if(e.minimumPixelSize!==0&&!e._projectTo2D){let o=n.context,r=Math.max(o.drawingBufferWidth,o.drawingBufferHeight);F.getTranslation(t,Ay),e._sceneMode!==ne.SCENE3D&&Hi.computeActualWgs84Position(n,Ay,Ay);let s=e._boundingSphere.radius,a=oGe(Ay,s,n),c=1/a;Math.min(c*(2*s),r)<e.minimumPixelSize&&(i=e.minimumPixelSize*a/(2*e._initialRadius))}e._computedScale=l(e.maximumScale)?Math.min(e.maximumScale,i):i}function Q5e(e){if(!e._idDirty)return;e._idDirty=!1;let t=e._id,n=e._pickIds,i=n.length;for(let o=0;o<i;++o)n[o].object.id=t}var J5e=new $(-1,0,0,0,0,1,0,-1,0);function eGe(e,t){let n=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix,i=y(e.referenceMatrix,n),o=t.context,r=e._imageBasedLighting;if(r.useSphericalHarmonicCoefficients||r.useSpecularEnvironmentMaps){let s=R5e,a=I5e;a=F.multiply(o.uniformState.view3D,i,a),s=F.getRotation(a,s),s=$.transpose(s,s),e._iblReferenceFrameMatrix=$.multiply(J5e,s,e._iblReferenceFrameMatrix)}if(e.isClippingEnabled()){let s=O5e;s=F.multiply(o.uniformState.view3D,i,s),s=F.multiply(s,e._clippingPlanes.modelMatrix,s),e._clippingPlanesMatrix=F.inverseTranspose(s,e._clippingPlanesMatrix)}}function tGe(e,t){let n=e._sceneGraph;if(e._updateModelMatrix||e._minimumPixelSize!==0){let o=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;n.updateModelMatrix(o,t),e._updateModelMatrix=!1}e._backFaceCullingDirty&&(n.updateBackFaceCulling(e._backFaceCulling),e._backFaceCullingDirty=!1),e._shadowsDirty&&(n.updateShadows(e._shadows),e._shadowsDirty=!1),e._debugShowBoundingVolumeDirty&&(n.updateShowBoundingVolume(e._debugShowBoundingVolume),e._debugShowBoundingVolumeDirty=!1);let i=!1;l(e.classificationType)||(i=e._userAnimationDirty||e._activeAnimations.update(t)),n.update(t,i),e._userAnimationDirty=!1}function nGe(e){if(!e._showCreditsOnScreenDirty)return;e._showCreditsOnScreenDirty=!1,e._credits.length=0;let t=e._showCreditsOnScreen;if(l(e._credit)){let s=Tt.clone(e._credit);s.showOnScreen=s.showOnScreen||t,e._credits.push(s)}let n=e._resourceCredits,i=n.length;for(let s=0;s<i;s++){let a=Tt.clone(n[s]);a.showOnScreen=a.showOnScreen||t,e._credits.push(a)}let o=e._gltfCredits,r=o.length;for(let s=0;s<r;s++){let a=Tt.clone(o[s]);a.showOnScreen=a.showOnScreen||t,e._credits.push(a)}}function iGe(e,t){let n=sGe(e,t),i=e.isInvisible(),o=e.hasSilhouette(t),r=e._show&&e._computedScale!==0&&n&&(!i||o),s=t.passes,a=s.render||s.pick&&e.allowPicking;r&&!e._ignoreCommands&&a&&(aGe(e,t),e._sceneGraph.pushDrawCommands(t))}var DW=new ae;function oGe(e,t,n){return DW.center=e,DW.radius=t,n.camera.getPixelSize(DW,n.context.drawingBufferWidth,n.context.drawingBufferHeight)}var UU=new h;function Tae(e,t,n){return function(i){HA(e.heightReference)&&(i.height+=n.height),t.cartographicToCartesian(i,UU);let o=e._clampedModelMatrix;F.clone(e.modelMatrix,o),o[12]=UU.x,o[13]=UU.y,o[14]=UU.z,e._heightDirty=!0}}var rGe=new h;function sGe(e,t){let n=e.distanceDisplayCondition;if(!l(n))return!0;let i=n.near*n.near,o=n.far*n.far,r;if(t.mode===ne.SCENE2D){let a=(t.camera.frustum.right-t.camera.frustum.left)*.5;r=a*a}else{let s=F.getTranslation(e.modelMatrix,rGe);Hi.computeActualWgs84Position(t,s,s),r=h.distanceSquared(s,t.camera.positionWC)}return r>=i&&r<=o}function aGe(e,t){let n=t.creditDisplay,i=e._credits,o=i.length;for(let r=0;r<o;r++)n.addCreditToNextFrame(i[r])}lo.prototype.isTranslucent=function(){let e=this.color;return l(e)&&e.alpha>0&&e.alpha<1};lo.prototype.isInvisible=function(){let e=this.color;return l(e)&&e.alpha===0};function Eae(e){return e.context.stencilBuffer}lo.prototype.hasSilhouette=function(e){return Eae(e)&&this._silhouetteSize>0&&this._silhouetteColor.alpha>0&&!l(this._classificationType)};lo.prototype.hasSkipLevelOfDetail=function(e){if(!sr.is3DTiles(this.type))return!1;let t=e.context.stencilBuffer,n=this._content.tileset;return t&&n.isSkippingLevelOfDetail};lo.prototype.isClippingEnabled=function(){let e=this._clippingPlanes;return l(e)&&e.enabled&&e.length!==0};lo.prototype.pick=function(e,t,n,i,o){return KC(this,e,t,n,i,o)};lo.prototype.isClippingPolygonsEnabled=function(){let e=this._clippingPolygons;return l(e)&&e.enabled&&e.length!==0};lo.prototype.isDestroyed=function(){return!1};lo.prototype.destroy=function(){let e=this._loader;l(e)&&e.destroy();let t=this._featureTables;if(l(t)){let o=t.length;for(let r=0;r<o;r++)t[r].destroy()}this.destroyPipelineResources(),this.destroyModelResources(),l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),l(this._terrainProviderChangedCallback)&&(this._terrainProviderChangedCallback(),this._terrainProviderChangedCallback=void 0);let n=this._clippingPlanes;l(n)&&!n.isDestroyed()&&n.owner===this&&n.destroy(),this._clippingPlanes=void 0;let i=this._clippingPolygons;l(i)&&!i.isDestroyed()&&i.owner===this&&i.destroy(),this._clippingPolygons=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0,ue(this)};lo.prototype.destroyPipelineResources=function(){let e=this._pipelineResources;for(let t=0;t<e.length;t++)e[t].destroy();this._pipelineResources.length=0,this._pickIds.length=0};lo.prototype.destroyModelResources=function(){let e=this._modelResources;for(let t=0;t<e.length;t++)e[t].destroy();this._modelResources.length=0};lo.fromGltfAsync=async function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.url,e.gltf),n={releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:l(e.classificationType)},i=y(e.basePath,""),o=De.createIfNeeded(i);l(t.asset)?(n.gltfJson=t,n.baseResource=o,n.gltfResource=o):t instanceof Uint8Array?(n.typedArray=t,n.baseResource=o,n.gltfResource=o):n.gltfResource=De.createIfNeeded(t);let r=new Zp(n),a=l(e.content)?sr.TILE_GLTF:sr.GLTF,c=n.gltfResource,u=eM(r,a,e);u.resource=c;try{await r.load()}catch(g){throw r.destroy(),Xt.getError("model",c,g)}let f=e.gltfCallback;l(f)&&f(r.gltfJson);let d=new lo(u),p=d._resource.credits;if(l(p)){let g=p.length;for(let m=0;m<g;m++)d._resourceCredits.push(Tt.clone(p[m]))}return d};lo.fromB3dm=async function(e){let t={b3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:l(e.classificationType)},n=new uR(t);try{await n.load();let i=eM(n,sr.TILE_B3DM,e);return new lo(i)}catch(i){throw n.destroy(),i}};lo.fromPnts=async function(e){let t={arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,loadAttributesFor2D:e.projectTo2D},n=new JO(t);try{await n.load();let i=eM(n,sr.TILE_PNTS,e);return new lo(i)}catch(i){throw n.destroy(),i}};lo.fromI3dm=async function(e){let t={i3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline},n=new hR(t);try{await n.load();let i=eM(n,sr.TILE_I3DM,e);return new lo(i)}catch(i){throw n.destroy(),i}};lo.fromGeoJson=async function(e){let t={geoJson:e.geoJson},n=new fR(t),i=eM(n,sr.TILE_GEOJSON,e);return new lo(i)};var cGe=new H;lo.prototype.applyColorAndShow=function(e){let t=H.clone(this._color,cGe),n=l(e)&&l(e.color),i=l(e)&&l(e.show);this._color=n?e.color.evaluateColor(void 0,this._color):H.clone(H.WHITE,this._color),this._show=i?e.show.evaluate(void 0):!0,PW(t,this._color)&&this.resetDrawCommands()};lo.prototype.applyStyle=function(e){let t=this.type===sr.TILE_PNTS,n=l(this.featureTableId)&&this.featureTables[this.featureTableId].featuresLength>0,i=l(this.structuralMetadata)?this.structuralMetadata.propertyAttributes:void 0,o=l(i)&&l(i[0]);if(t&&(!n||o)){this.resetDrawCommands();return}n?(this.featureTables[this.featureTableId].applyStyle(e),Aae(this,e)):(this.applyColorAndShow(e),this._styleCommandsNeeded=void 0)};function eM(e,t,n){return{loader:e,type:t,resource:n.resource,show:n.show,modelMatrix:n.modelMatrix,scale:n.scale,minimumPixelSize:n.minimumPixelSize,maximumScale:n.maximumScale,id:n.id,allowPicking:n.allowPicking,clampAnimations:n.clampAnimations,shadows:n.shadows,debugShowBoundingVolume:n.debugShowBoundingVolume,enableDebugWireframe:n.enableDebugWireframe,debugWireframe:n.debugWireframe,cull:n.cull,opaquePass:n.opaquePass,customShader:n.customShader,content:n.content,heightReference:n.heightReference,scene:n.scene,distanceDisplayCondition:n.distanceDisplayCondition,color:n.color,colorBlendAmount:n.colorBlendAmount,colorBlendMode:n.colorBlendMode,silhouetteColor:n.silhouetteColor,silhouetteSize:n.silhouetteSize,enableShowOutline:n.enableShowOutline,showOutline:n.showOutline,outlineColor:n.outlineColor,clippingPlanes:n.clippingPlanes,clippingPolygons:n.clippingPolygons,lightColor:n.lightColor,imageBasedLighting:n.imageBasedLighting,backFaceCulling:n.backFaceCulling,credit:n.credit,showCreditsOnScreen:n.showCreditsOnScreen,splitDirection:n.splitDirection,projectTo2D:n.projectTo2D,enablePick:n.enablePick,featureIdLabel:n.featureIdLabel,instanceFeatureIdLabel:n.instanceFeatureIdLabel,pointCloudShading:n.pointCloudShading,classificationType:n.classificationType,pickObject:n.pickObject}}var Zd=lo;function gs(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this._model=void 0,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(gs.prototype,{featuresLength:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;return l(t)&&l(t[n])?t[n].featuresLength:0}},pointsLength:{get:function(){return this._model.statistics.pointsLength}},trianglesLength:{get:function(){return this._model.statistics.trianglesLength}},geometryByteLength:{get:function(){return this._model.statistics.geometryByteLength}},texturesByteLength:{get:function(){return this._model.statistics.texturesByteLength}},batchTableByteLength:{get:function(){let e=this._model.statistics;return e.propertyTablesByteLength+e.batchTexturesByteLength}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;if(l(t)&&l(t[n]))return t[n]}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});gs.prototype.getFeature=function(e){let t=this._model,n=t.featureTableId;return t.featureTables[n].getFeature(e)};gs.prototype.hasProperty=function(e,t){let n=this._model,i=n.featureTableId;return l(i)?n.featureTables[i].hasProperty(e,t):!1};gs.prototype.applyDebugSettings=function(e,t){t=e?t:H.WHITE,this.featuresLength===0?this._model.color=t:l(this.batchTable)&&this.batchTable.setAllColor(t)};gs.prototype.applyStyle=function(e){this._model.style=e};gs.prototype.update=function(e,t){let n=this._model,i=this._tile;n.colorBlendAmount=e.colorBlendAmount,n.colorBlendMode=e.colorBlendMode,n.modelMatrix=i.computedTransform,n.customShader=e.customShader,n.featureIdLabel=e.featureIdLabel,n.instanceFeatureIdLabel=e.instanceFeatureIdLabel,n.lightColor=e.lightColor,n.imageBasedLighting=e.imageBasedLighting,n.backFaceCulling=e.backFaceCulling,n.shadows=e.shadows,n.showCreditsOnScreen=e.showCreditsOnScreen,n.splitDirection=e.splitDirection,n.debugWireframe=e.debugWireframe,n.showOutline=e.showOutline,n.outlineColor=e.outlineColor,n.pointCloudShading=e.pointCloudShading;let o=e.clippingPlanes;n.referenceMatrix=e.clippingPlanesOriginMatrix,l(o)&&i.clippingPlanesDirty&&(n._clippingPlanes=o.enabled&&i._isClipped?o:void 0),l(o)&&l(n._clippingPlanes)&&n._clippingPlanes!==o&&(n._clippingPlanes=o,n._clippingPlanesState=0);let r=e.clippingPolygons;l(r)&&i.clippingPolygonsDirty&&(n._clippingPolygons=r.enabled&&i._isClippedByPolygon?r:void 0),l(r)&&l(n._clippingPolygons)&&n._clippingPolygons!==r&&(n._clippingPolygons=r,n._clippingPolygonsState=0),n.update(t),!this._ready&&n.ready&&(n.activeAnimations.addAll({loop:Bl.REPEAT}),this._ready=!0)};gs.prototype.isDestroyed=function(){return!1};gs.prototype.destroy=function(){return this._model=this._model&&this._model.destroy(),ue(this)};gs.fromGltf=async function(e,t,n,i){let o=new gs(e,t,n),s=tM(e,t,o,{gltf:i,basePath:n}),a=e.vectorClassificationOnly?void 0:e.classificationType;s.classificationType=a;let c=await Zd.fromGltfAsync(s);return o._model=c,o};gs.fromB3dm=async function(e,t,n,i,o){let r=new gs(e,t,n),a=tM(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=e.vectorClassificationOnly?void 0:e.classificationType;a.classificationType=c;let u=await Zd.fromB3dm(a);return r._model=u,r};gs.fromI3dm=async function(e,t,n,i,o){let r=new gs(e,t,n),a=tM(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await Zd.fromI3dm(a);return r._model=c,r};gs.fromPnts=async function(e,t,n,i,o){let r=new gs(e,t,n),a=tM(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await Zd.fromPnts(a);return r._model=c,r};gs.fromGeoJson=async function(e,t,n,i){let o=new gs(e,t,n),s=tM(e,t,o,{geoJson:i,resource:n}),a=await Zd.fromGeoJson(s);return o._model=a,o};gs.prototype.pick=function(e,t,n){if(!l(this._model)||!this._ready)return;let i=t.verticalExaggeration,o=t.verticalExaggerationRelativeHeight;return this._model.pick(e,t,i,o,te.WGS84,n)};function tM(e,t,n,i){let o={cull:!1,releaseGltfJson:!0,opaquePass:Ee.CESIUM_3D_TILE,modelMatrix:t.computedTransform,upAxis:e._modelUpAxis,forwardAxis:e._modelForwardAxis,incrementallyLoadTextures:!1,customShader:e.customShader,content:n,colorBlendMode:e.colorBlendMode,colorBlendAmount:e.colorBlendAmount,lightColor:e.lightColor,imageBasedLighting:e.imageBasedLighting,featureIdLabel:e.featureIdLabel,instanceFeatureIdLabel:e.instanceFeatureIdLabel,pointCloudShading:e.pointCloudShading,clippingPlanes:e.clippingPlanes,backFaceCulling:e.backFaceCulling,shadows:e.shadows,showCreditsOnScreen:e.showCreditsOnScreen,splitDirection:e.splitDirection,enableDebugWireframe:e._enableDebugWireframe,debugWireframe:e.debugWireframe,projectTo2D:e._projectTo2D,enablePick:e._enablePick,enableShowOutline:e._enableShowOutline,showOutline:e.showOutline,outlineColor:e.outlineColor};return _t(i,o)}var _m=gs;function wf(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this.featurePropertiesDirty=!1,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(wf.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});wf.fromJson=function(e,t,n,i){let o=new wf(e,t,n);return o._tileset.loadTileset(o._resource,i,o._tile),o._ready=!0,o};wf.prototype.hasProperty=function(e,t){return!1};wf.prototype.getFeature=function(e){};wf.prototype.applyDebugSettings=function(e,t){};wf.prototype.applyStyle=function(e){};wf.prototype.update=function(e,t){};wf.prototype.pick=function(e,t,n){};wf.prototype.isDestroyed=function(){return!1};wf.prototype.destroy=function(){return ue(this)};var nM=wf;function ks(e,t,n,i){let o=ks._verifyAttributes(t);n=y(n,0);let r=[],s={},a,c,u=o.length;for(let d=0;d<u;++d){let p=o[d];if(p.vertexBuffer){r.push(p);continue}c=p.usage,a=s[c],l(a)||(a=s[c]=[]),a.push(p)}function f(d,p){return X.getSizeInBytes(p.componentDatatype)-X.getSizeInBytes(d.componentDatatype)}this._allBuffers=[];for(c in s)if(s.hasOwnProperty(c)){a=s[c],a.sort(f);let d=ks._vertexSizeInBytes(a),p=a[0].usage,g={vertexSizeInBytes:d,vertexBuffer:void 0,usage:p,needsCommit:!1,arrayBuffer:void 0,arrayViews:ks._createArrayViews(a,d)};this._allBuffers.push(g)}this._size=0,this._instanced=y(i,!1),this._precreated=r,this._context=e,this.writers=void 0,this.va=void 0,this.resize(n)}ks._verifyAttributes=function(e){let t=[];for(let i=0;i<e.length;++i){let o=e[i],r={index:y(o.index,i),enabled:y(o.enabled,!0),componentsPerAttribute:o.componentsPerAttribute,componentDatatype:y(o.componentDatatype,X.FLOAT),normalize:y(o.normalize,!1),vertexBuffer:o.vertexBuffer,usage:y(o.usage,Fe.STATIC_DRAW)};t.push(r)}let n=new Array(t.length);for(let i=0;i<t.length;++i){let r=t[i].index;n[r]=!0}return t};ks._vertexSizeInBytes=function(e){let t=0,n=e.length;for(let s=0;s<n;++s){let a=e[s];t+=a.componentsPerAttribute*X.getSizeInBytes(a.componentDatatype)}let i=n>0?X.getSizeInBytes(e[0].componentDatatype):0,o=i>0?t%i:0,r=o===0?0:i-o;return t+=r,t};ks._createArrayViews=function(e,t){let n=[],i=0,o=e.length;for(let r=0;r<o;++r){let s=e[r],a=s.componentDatatype;n.push({index:s.index,enabled:s.enabled,componentsPerAttribute:s.componentsPerAttribute,componentDatatype:a,normalize:s.normalize,offsetInBytes:i,vertexSizeInComponentType:t/X.getSizeInBytes(a),view:void 0}),i+=s.componentsPerAttribute*X.getSizeInBytes(a)}return n};ks.prototype.resize=function(e){this._size=e;let t=this._allBuffers;this.writers=[];for(let n=0,i=t.length;n<i;++n){let o=t[n];ks._resize(o,this._size),ks._appendWriters(this.writers,o)}IW(this)};ks._resize=function(e,t){if(e.vertexSizeInBytes>0){let n=new ArrayBuffer(t*e.vertexSizeInBytes);if(l(e.arrayBuffer)){let r=new Uint8Array(n),s=new Uint8Array(e.arrayBuffer),a=s.length;for(let c=0;c<a;++c)r[c]=s[c]}let i=e.arrayViews,o=i.length;for(let r=0;r<o;++r){let s=i[r];s.view=X.createArrayBufferView(s.componentDatatype,n,s.offsetInBytes)}e.arrayBuffer=n}};var lGe=[function(e,t,n){return function(i,o){t[i*n]=o,e.needsCommit=!0}},function(e,t,n){return function(i,o,r){let s=i*n;t[s]=o,t[s+1]=r,e.needsCommit=!0}},function(e,t,n){return function(i,o,r,s){let a=i*n;t[a]=o,t[a+1]=r,t[a+2]=s,e.needsCommit=!0}},function(e,t,n){return function(i,o,r,s,a){let c=i*n;t[c]=o,t[c+1]=r,t[c+2]=s,t[c+3]=a,e.needsCommit=!0}}];ks._appendWriters=function(e,t){let n=t.arrayViews,i=n.length;for(let o=0;o<i;++o){let r=n[o];e[r.index]=lGe[r.componentsPerAttribute-1](t,r.view,r.vertexSizeInComponentType)}};ks.prototype.commit=function(e){let t=!1,n=this._allBuffers,i,o,r;for(o=0,r=n.length;o<r;++o)i=n[o],t=uGe(this,i)||t;if(t||!l(this.va)){IW(this);let s=this.va=[],a=R.SIXTY_FOUR_KILOBYTES-4,c=l(e)&&!this._instanced?Math.ceil(this._size/a):1;for(let u=0;u<c;++u){let f=[];for(o=0,r=n.length;o<r;++o){i=n[o];let d=u*(i.vertexSizeInBytes*a);ks._appendAttributes(f,i,d,this._instanced)}f=f.concat(this._precreated),s.push({va:new ei({context:this._context,attributes:f,indexBuffer:e}),indicesCount:1.5*(u!==c-1?a:this._size%a)})}}};function uGe(e,t){if(t.needsCommit&&t.vertexSizeInBytes>0){t.needsCommit=!1;let n=t.vertexBuffer,i=e._size*t.vertexSizeInBytes,o=l(n);if(!o||n.sizeInBytes<i)return o&&n.destroy(),t.vertexBuffer=ct.createVertexBuffer({context:e._context,typedArray:t.arrayBuffer,usage:t.usage}),t.vertexBuffer.vertexArrayDestroyable=!1,!0;t.vertexBuffer.copyFromArrayView(t.arrayBuffer)}return!1}ks._appendAttributes=function(e,t,n,i){let o=t.arrayViews,r=o.length;for(let s=0;s<r;++s){let a=o[s];e.push({index:a.index,enabled:a.enabled,componentsPerAttribute:a.componentsPerAttribute,componentDatatype:a.componentDatatype,normalize:a.normalize,vertexBuffer:t.vertexBuffer,offsetInBytes:n+a.offsetInBytes,strideInBytes:t.vertexSizeInBytes,instanceDivisor:i?1:0})}};ks.prototype.subCommit=function(e,t){let n=this._allBuffers;for(let i=0,o=n.length;i<o;++i)fGe(n[i],e,t)};function fGe(e,t,n){if(e.needsCommit&&e.vertexSizeInBytes>0){let i=e.vertexSizeInBytes*t,o=e.vertexSizeInBytes*n;e.vertexBuffer.copyFromArrayView(new Uint8Array(e.arrayBuffer,i,o),i)}}ks.prototype.endSubCommits=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t)e[t].needsCommit=!1};function IW(e){let t=e.va;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].va.destroy();e.va=void 0}ks.prototype.isDestroyed=function(){return!1};ks.prototype.destroy=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t){let i=e[t];i.vertexBuffer=i.vertexBuffer&&i.vertexBuffer.destroy()}return IW(this),ue(this)};var s_=ks;var iM=`uniform sampler2D u_atlas; #ifdef VECTOR_TILE uniform vec4 u_highlightColor; #endif in vec2 v_textureCoordinates; in vec4 v_pickColor; in vec4 v_color; #ifdef SDF in vec4 v_outlineColor; in float v_outlineWidth; #endif #ifdef FRAGMENT_DEPTH_CHECK in vec4 v_textureCoordinateBounds; // the min and max x and y values for the texture coordinates in vec4 v_originTextureCoordinateAndTranslate; // texture coordinate at the origin, billboard translate (used for label glyphs) in vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize in mat2 v_rotationMatrix; const float SHIFT_LEFT12 = 4096.0; const float SHIFT_LEFT1 = 2.0; const float SHIFT_RIGHT12 = 1.0 / 4096.0; const float SHIFT_RIGHT1 = 1.0 / 2.0; float getGlobeDepth(vec2 adjustedST, vec2 depthLookupST, bool applyTranslate, vec2 dimensions, vec2 imageSize) { vec2 lookupVector = imageSize * (depthLookupST - adjustedST); lookupVector = v_rotationMatrix * lookupVector; vec2 labelOffset = (dimensions - imageSize) * (depthLookupST - vec2(0.0, v_originTextureCoordinateAndTranslate.y)); // aligns label glyph with bounding rectangle. Will be zero for billboards because dimensions and imageSize will be equal vec2 translation = v_originTextureCoordinateAndTranslate.zw; if (applyTranslate) { // this is only needed for labels where the horizontal origin is not LEFT // it moves the label back to where the "origin" should be since all label glyphs are set to HorizontalOrigin.LEFT translation += (dimensions * v_originTextureCoordinateAndTranslate.xy * vec2(1.0, 0.0)); } vec2 st = ((lookupVector - translation + labelOffset) + gl_FragCoord.xy) / czm_viewport.zw; float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); if (logDepthOrDepth == 0.0) { return 0.0; // not on the globe } vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); return eyeCoordinate.z / eyeCoordinate.w; } #endif #ifdef SDF // Get the distance from the edge of a glyph at a given position sampling an SDF texture. float getDistance(vec2 position) { return texture(u_atlas, position).r; } // Samples the sdf texture at the given position and produces a color based on the fill color and the outline. vec4 getSDFColor(vec2 position, float outlineWidth, vec4 outlineColor, float smoothing) { float distance = getDistance(position); if (outlineWidth > 0.0) { // Don't get the outline edge exceed the SDF_EDGE float outlineEdge = clamp(SDF_EDGE - outlineWidth, 0.0, SDF_EDGE); float outlineFactor = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); vec4 sdfColor = mix(outlineColor, v_color, outlineFactor); float alpha = smoothstep(outlineEdge - smoothing, outlineEdge + smoothing, distance); return vec4(sdfColor.rgb, sdfColor.a * alpha); } else { float alpha = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); return vec4(v_color.rgb, v_color.a * alpha); } } #endif void main() { vec4 color = texture(u_atlas, v_textureCoordinates); #ifdef SDF float outlineWidth = v_outlineWidth; vec4 outlineColor = v_outlineColor; // Get the current distance float distance = getDistance(v_textureCoordinates); #if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) float smoothing = fwidth(distance); // Get an offset that is approximately half the distance to the neighbor pixels // 0.354 is approximately half of 1/sqrt(2) vec2 sampleOffset = 0.354 * vec2(dFdx(v_textureCoordinates) + dFdy(v_textureCoordinates)); // Sample the center point vec4 center = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); // Sample the 4 neighbors vec4 color1 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); vec4 color2 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); vec4 color3 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); vec4 color4 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); // Equally weight the center sample and the 4 neighboring samples color = (center + color1 + color2 + color3 + color4)/5.0; #else // If no derivatives available (IE 10?), just do a single sample float smoothing = 1.0/32.0; color = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); #endif color = czm_gammaCorrect(color); #else color = czm_gammaCorrect(color); color *= czm_gammaCorrect(v_color); #endif // Fully transparent parts of the billboard are not pickable. #if !defined(OPAQUE) && !defined(TRANSLUCENT) if (color.a < 0.005) // matches 0/255 and 1/255 { discard; } #else // The billboard is rendered twice. The opaque pass discards translucent fragments // and the translucent pass discards opaque fragments. #ifdef OPAQUE if (color.a < 0.995) // matches < 254/255 { discard; } #else if (color.a >= 0.995) // matches 254/255 and 255/255 { discard; } #endif #endif #ifdef VECTOR_TILE color *= u_highlightColor; #endif out_FragColor = color; #ifdef LOG_DEPTH czm_writeLogDepth(); #endif #ifdef FRAGMENT_DEPTH_CHECK float temp = v_compressed.y; temp = temp * SHIFT_RIGHT1; float temp2 = (temp - floor(temp)) * SHIFT_LEFT1; bool enableDepthTest = temp2 != 0.0; bool applyTranslate = floor(temp) != 0.0; if (enableDepthTest) { temp = v_compressed.z; temp = temp * SHIFT_RIGHT12; vec2 dimensions; dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; dimensions.x = floor(temp); temp = v_compressed.w; temp = temp * SHIFT_RIGHT12; vec2 imageSize; imageSize.y = (temp - floor(temp)) * SHIFT_LEFT12; imageSize.x = floor(temp); vec2 adjustedST = v_textureCoordinates - v_textureCoordinateBounds.xy; adjustedST = adjustedST / vec2(v_textureCoordinateBounds.z - v_textureCoordinateBounds.x, v_textureCoordinateBounds.w - v_textureCoordinateBounds.y); float epsilonEyeDepth = v_compressed.x + czm_epsilon1; float globeDepth1 = getGlobeDepth(adjustedST, v_originTextureCoordinateAndTranslate.xy, applyTranslate, dimensions, imageSize); // negative values go into the screen if (globeDepth1 != 0.0 && globeDepth1 > epsilonEyeDepth) { float globeDepth2 = getGlobeDepth(adjustedST, vec2(0.0, 1.0), applyTranslate, dimensions, imageSize); // top left corner if (globeDepth2 != 0.0 && globeDepth2 > epsilonEyeDepth) { float globeDepth3 = getGlobeDepth(adjustedST, vec2(1.0, 1.0), applyTranslate, dimensions, imageSize); // top right corner if (globeDepth3 != 0.0 && globeDepth3 > epsilonEyeDepth) { discard; } } } } #endif } `;var oM=`#ifdef INSTANCED in vec2 direction; #endif in vec4 positionHighAndScale; in vec4 positionLowAndRotation; in vec4 compressedAttribute0; // pixel offset, translate, horizontal origin, vertical origin, show, direction, texture coordinates (texture offset) in vec4 compressedAttribute1; // aligned axis, translucency by distance, image width in vec4 compressedAttribute2; // label horizontal origin, image height, color, pick color, size in meters, valid aligned axis, 13 bits free in vec4 eyeOffset; // eye offset in meters, 4 bytes free (texture range) in vec4 scaleByDistance; // near, nearScale, far, farScale in vec4 pixelOffsetScaleByDistance; // near, nearScale, far, farScale in vec4 compressedAttribute3; // distance display condition near, far, disableDepthTestDistance, dimensions in vec2 sdf; // sdf outline color (rgb) and width (w) #if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) in vec4 textureCoordinateBoundsOrLabelTranslate; // the min and max x and y values for the texture coordinates #endif #ifdef VECTOR_TILE in float a_batchId; #endif out vec2 v_textureCoordinates; #ifdef FRAGMENT_DEPTH_CHECK out vec4 v_textureCoordinateBounds; out vec4 v_originTextureCoordinateAndTranslate; out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize out mat2 v_rotationMatrix; #endif out vec4 v_pickColor; out vec4 v_color; #ifdef SDF out vec4 v_outlineColor; out float v_outlineWidth; #endif const float UPPER_BOUND = 32768.0; const float SHIFT_LEFT16 = 65536.0; const float SHIFT_LEFT12 = 4096.0; const float SHIFT_LEFT8 = 256.0; const float SHIFT_LEFT7 = 128.0; const float SHIFT_LEFT5 = 32.0; const float SHIFT_LEFT3 = 8.0; const float SHIFT_LEFT2 = 4.0; const float SHIFT_LEFT1 = 2.0; const float SHIFT_RIGHT12 = 1.0 / 4096.0; const float SHIFT_RIGHT8 = 1.0 / 256.0; const float SHIFT_RIGHT7 = 1.0 / 128.0; const float SHIFT_RIGHT5 = 1.0 / 32.0; const float SHIFT_RIGHT3 = 1.0 / 8.0; const float SHIFT_RIGHT2 = 1.0 / 4.0; const float SHIFT_RIGHT1 = 1.0 / 2.0; vec4 addScreenSpaceOffset(vec4 positionEC, vec2 imageSize, float scale, vec2 direction, vec2 origin, vec2 translate, vec2 pixelOffset, vec3 alignedAxis, bool validAlignedAxis, float rotation, bool sizeInMeters, out mat2 rotationMatrix, out float mpp) { // Note the halfSize cannot be computed in JavaScript because it is sent via // compressed vertex attributes that coerce it to an integer. vec2 halfSize = imageSize * scale * 0.5; halfSize *= ((direction * 2.0) - 1.0); vec2 originTranslate = origin * abs(halfSize); #if defined(ROTATION) || defined(ALIGNED_AXIS) if (validAlignedAxis || rotation != 0.0) { float angle = rotation; if (validAlignedAxis) { vec4 projectedAlignedAxis = czm_modelView3D * vec4(alignedAxis, 0.0); angle += sign(-projectedAlignedAxis.x) * acos(sign(projectedAlignedAxis.y) * (projectedAlignedAxis.y * projectedAlignedAxis.y) / (projectedAlignedAxis.x * projectedAlignedAxis.x + projectedAlignedAxis.y * projectedAlignedAxis.y)); } float cosTheta = cos(angle); float sinTheta = sin(angle); rotationMatrix = mat2(cosTheta, sinTheta, -sinTheta, cosTheta); halfSize = rotationMatrix * halfSize; } else { rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); } #endif mpp = czm_metersPerPixel(positionEC); positionEC.xy += (originTranslate + halfSize) * czm_branchFreeTernary(sizeInMeters, 1.0, mpp); positionEC.xy += (translate + pixelOffset) * mpp; return positionEC; } #ifdef VERTEX_DEPTH_CHECK float getGlobeDepth(vec4 positionEC) { vec4 posWC = czm_eyeToWindowCoordinates(positionEC); float globeDepth = czm_unpackDepth(texture(czm_globeDepthTexture, posWC.xy / czm_viewport.zw)); if (globeDepth == 0.0) { return 0.0; // not on the globe } vec4 eyeCoordinate = czm_windowToEyeCoordinates(posWC.xy, globeDepth); return eyeCoordinate.z / eyeCoordinate.w; } #endif void main() { // Modifying this shader may also require modifications to Billboard._computeScreenSpacePosition // unpack attributes vec3 positionHigh = positionHighAndScale.xyz; vec3 positionLow = positionLowAndRotation.xyz; float scale = positionHighAndScale.w; #if defined(ROTATION) || defined(ALIGNED_AXIS) float rotation = positionLowAndRotation.w; #else float rotation = 0.0; #endif float compressed = compressedAttribute0.x; vec2 pixelOffset; pixelOffset.x = floor(compressed * SHIFT_RIGHT7); compressed -= pixelOffset.x * SHIFT_LEFT7; pixelOffset.x -= UPPER_BOUND; vec2 origin; origin.x = floor(compressed * SHIFT_RIGHT5); compressed -= origin.x * SHIFT_LEFT5; origin.y = floor(compressed * SHIFT_RIGHT3); compressed -= origin.y * SHIFT_LEFT3; #ifdef FRAGMENT_DEPTH_CHECK vec2 depthOrigin = origin.xy; #endif origin -= vec2(1.0); float show = floor(compressed * SHIFT_RIGHT2); compressed -= show * SHIFT_LEFT2; #ifdef INSTANCED vec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w); vec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w); vec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange; #else vec2 direction; direction.x = floor(compressed * SHIFT_RIGHT1); direction.y = compressed - direction.x * SHIFT_LEFT1; vec2 textureCoordinates = czm_decompressTextureCoordinates(compressedAttribute0.w); #endif float temp = compressedAttribute0.y * SHIFT_RIGHT8; pixelOffset.y = -(floor(temp) - UPPER_BOUND); vec2 translate; translate.y = (temp - floor(temp)) * SHIFT_LEFT16; temp = compressedAttribute0.z * SHIFT_RIGHT8; translate.x = floor(temp) - UPPER_BOUND; translate.y += (temp - floor(temp)) * SHIFT_LEFT8; translate.y -= UPPER_BOUND; temp = compressedAttribute1.x * SHIFT_RIGHT8; float temp2 = floor(compressedAttribute2.w * SHIFT_RIGHT2); vec2 imageSize = vec2(floor(temp), temp2); #ifdef FRAGMENT_DEPTH_CHECK float labelHorizontalOrigin = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2)); float applyTranslate = 0.0; if (labelHorizontalOrigin != 0.0) // is a billboard, so set apply translate to false { applyTranslate = 1.0; labelHorizontalOrigin -= 2.0; depthOrigin.x = labelHorizontalOrigin + 1.0; } depthOrigin = vec2(1.0) - (depthOrigin * 0.5); #endif #ifdef EYE_DISTANCE_TRANSLUCENCY vec4 translucencyByDistance; translucencyByDistance.x = compressedAttribute1.z; translucencyByDistance.z = compressedAttribute1.w; translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; temp = compressedAttribute1.y * SHIFT_RIGHT8; translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; #endif #if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) temp = compressedAttribute3.w; temp = temp * SHIFT_RIGHT12; vec2 dimensions; dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; dimensions.x = floor(temp); #endif #ifdef ALIGNED_AXIS vec3 alignedAxis = czm_octDecode(floor(compressedAttribute1.y * SHIFT_RIGHT8)); temp = compressedAttribute2.z * SHIFT_RIGHT5; bool validAlignedAxis = (temp - floor(temp)) * SHIFT_LEFT1 > 0.0; #else vec3 alignedAxis = vec3(0.0); bool validAlignedAxis = false; #endif vec4 pickColor; vec4 color; temp = compressedAttribute2.y; temp = temp * SHIFT_RIGHT8; pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; temp = floor(temp) * SHIFT_RIGHT8; pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; pickColor.r = floor(temp); temp = compressedAttribute2.x; temp = temp * SHIFT_RIGHT8; color.b = (temp - floor(temp)) * SHIFT_LEFT8; temp = floor(temp) * SHIFT_RIGHT8; color.g = (temp - floor(temp)) * SHIFT_LEFT8; color.r = floor(temp); temp = compressedAttribute2.z * SHIFT_RIGHT8; bool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0; temp = floor(temp) * SHIFT_RIGHT8; pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; pickColor /= 255.0; color.a = floor(temp); color /= 255.0; /////////////////////////////////////////////////////////////////////////// vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); vec4 positionEC = czm_modelViewRelativeToEye * p; #if defined(FRAGMENT_DEPTH_CHECK) || defined(VERTEX_DEPTH_CHECK) float eyeDepth = positionEC.z; #endif positionEC = czm_eyeOffset(positionEC, eyeOffset.xyz); positionEC.xyz *= show; /////////////////////////////////////////////////////////////////////////// #if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(EYE_DISTANCE_PIXEL_OFFSET) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) float lengthSq; if (czm_sceneMode == czm_sceneMode2D) { // 2D camera distance is a special case // treat all billboards as flattened to the z=0.0 plane lengthSq = czm_eyeHeight2D.y; } else { lengthSq = dot(positionEC.xyz, positionEC.xyz); } #endif #ifdef EYE_DISTANCE_SCALING float distanceScale = czm_nearFarScalar(scaleByDistance, lengthSq); scale *= distanceScale; translate *= distanceScale; // push vertex behind near plane for clipping if (scale == 0.0) { positionEC.xyz = vec3(0.0); } #endif float translucency = 1.0; #ifdef EYE_DISTANCE_TRANSLUCENCY translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); // push vertex behind near plane for clipping if (translucency == 0.0) { positionEC.xyz = vec3(0.0); } #endif #ifdef EYE_DISTANCE_PIXEL_OFFSET float pixelOffsetScale = czm_nearFarScalar(pixelOffsetScaleByDistance, lengthSq); pixelOffset *= pixelOffsetScale; #endif #ifdef DISTANCE_DISPLAY_CONDITION float nearSq = compressedAttribute3.x; float farSq = compressedAttribute3.y; if (lengthSq < nearSq || lengthSq > farSq) { positionEC.xyz = vec3(0.0); } #endif mat2 rotationMatrix; float mpp; #ifdef DISABLE_DEPTH_DISTANCE float disableDepthTestDistance = compressedAttribute3.z; #endif #ifdef VERTEX_DEPTH_CHECK if (lengthSq < disableDepthTestDistance) { float depthsilon = 10.0; vec2 labelTranslate = textureCoordinateBoundsOrLabelTranslate.xy; vec4 pEC1 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); float globeDepth1 = getGlobeDepth(pEC1); if (globeDepth1 != 0.0 && pEC1.z + depthsilon < globeDepth1) { vec4 pEC2 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0, 1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); float globeDepth2 = getGlobeDepth(pEC2); if (globeDepth2 != 0.0 && pEC2.z + depthsilon < globeDepth2) { vec4 pEC3 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); float globeDepth3 = getGlobeDepth(pEC3); if (globeDepth3 != 0.0 && pEC3.z + depthsilon < globeDepth3) { positionEC.xyz = vec3(0.0); } } } } #endif positionEC = addScreenSpaceOffset(positionEC, imageSize, scale, direction, origin, translate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); gl_Position = czm_projection * positionEC; v_textureCoordinates = textureCoordinates; #ifdef LOG_DEPTH czm_vertexLogDepth(); #endif #ifdef DISABLE_DEPTH_DISTANCE if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) { disableDepthTestDistance = czm_minimumDisableDepthTestDistance; } if (disableDepthTestDistance != 0.0) { // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. float zclip = gl_Position.z / gl_Position.w; bool clipped = (zclip < -1.0 || zclip > 1.0); if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) { // Position z on the near plane. gl_Position.z = -gl_Position.w; #ifdef LOG_DEPTH v_depthFromNearPlusOne = 1.0; #endif } } #endif #ifdef FRAGMENT_DEPTH_CHECK if (sizeInMeters) { translate /= mpp; dimensions /= mpp; imageSize /= mpp; } #if defined(ROTATION) || defined(ALIGNED_AXIS) v_rotationMatrix = rotationMatrix; #else v_rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); #endif float enableDepthCheck = 0.0; if (lengthSq < disableDepthTestDistance) { enableDepthCheck = 1.0; } float dw = floor(clamp(dimensions.x, 0.0, SHIFT_LEFT12)); float dh = floor(clamp(dimensions.y, 0.0, SHIFT_LEFT12)); float iw = floor(clamp(imageSize.x, 0.0, SHIFT_LEFT12)); float ih = floor(clamp(imageSize.y, 0.0, SHIFT_LEFT12)); v_compressed.x = eyeDepth; v_compressed.y = applyTranslate * SHIFT_LEFT1 + enableDepthCheck; v_compressed.z = dw * SHIFT_LEFT12 + dh; v_compressed.w = iw * SHIFT_LEFT12 + ih; v_originTextureCoordinateAndTranslate.xy = depthOrigin; v_originTextureCoordinateAndTranslate.zw = translate; v_textureCoordinateBounds = textureCoordinateBoundsOrLabelTranslate; #endif #ifdef SDF vec4 outlineColor; float outlineWidth; temp = sdf.x; temp = temp * SHIFT_RIGHT8; outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; temp = floor(temp) * SHIFT_RIGHT8; outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; outlineColor.r = floor(temp); temp = sdf.y; temp = temp * SHIFT_RIGHT8; float temp3 = (temp - floor(temp)) * SHIFT_LEFT8; temp = floor(temp) * SHIFT_RIGHT8; outlineWidth = (temp - floor(temp)) * SHIFT_LEFT8; outlineColor.a = floor(temp); outlineColor /= 255.0; v_outlineWidth = outlineWidth / 255.0; v_outlineColor = outlineColor; v_outlineColor.a *= translucency; #endif v_pickColor = pickColor; v_color = color; v_color.a *= translucency; } `;function xi(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Mt.clone(n)),l(i)&&(i=Mt.clone(i)),l(o)&&(o=Mt.clone(o)),l(r)&&(r=It.clone(r)),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._pixelOffset=z.clone(y(e.pixelOffset,z.ZERO)),this._translate=new z(0,0),this._eyeOffset=h.clone(y(e.eyeOffset,h.ZERO)),this._heightReference=y(e.heightReference,qe.NONE),this._verticalOrigin=y(e.verticalOrigin,Rn.CENTER),this._horizontalOrigin=y(e.horizontalOrigin,di.CENTER),this._scale=y(e.scale,1),this._color=H.clone(y(e.color,H.WHITE)),this._rotation=y(e.rotation,0),this._alignedAxis=h.clone(y(e.alignedAxis,h.ZERO)),this._width=e.width,this._height=e.height,this._scaleByDistance=o,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._sizeInMeters=y(e.sizeInMeters,!1),this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._id=e.id,this._collection=y(e.collection,t),this._pickId=void 0,this._pickPrimitive=y(e._pickPrimitive,this),this._billboardCollection=t,this._dirty=!1,this._index=-1,this._batchIndex=void 0,this._imageIndex=-1,this._imageIndexPromise=void 0,this._imageId=void 0,this._image=void 0,this._imageSubRegion=void 0,this._imageWidth=void 0,this._imageHeight=void 0,this._labelDimensions=void 0,this._labelHorizontalOrigin=void 0,this._labelTranslate=void 0;let s=e.image,a=e.imageId;l(s)&&(l(a)||(typeof s=="string"?a=s:l(s.src)?a=s.src:a=Hn()),this._imageId=a,this._image=s),l(e.imageSubRegion)&&(this._imageId=a,this._imageSubRegion=e.imageSubRegion),l(this._billboardCollection._textureAtlas)&&this._loadImage(),this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=ne.SCENE3D,this._clusterShow=!0,this._outlineColor=H.clone(y(e.outlineColor,H.BLACK)),this._outlineWidth=y(e.outlineWidth,0),this._updateClamping()}var Sae=xi.SHOW_INDEX=0,HU=xi.POSITION_INDEX=1,Pae=xi.PIXEL_OFFSET_INDEX=2,dGe=xi.EYE_OFFSET_INDEX=3,hGe=xi.HORIZONTAL_ORIGIN_INDEX=4,mGe=xi.VERTICAL_ORIGIN_INDEX=5,pGe=xi.SCALE_INDEX=6,GU=xi.IMAGE_INDEX_INDEX=7,vae=xi.COLOR_INDEX=8,_Ge=xi.ROTATION_INDEX=9,gGe=xi.ALIGNED_AXIS_INDEX=10,yGe=xi.SCALE_BY_DISTANCE_INDEX=11,xGe=xi.TRANSLUCENCY_BY_DISTANCE_INDEX=12,bGe=xi.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX=13,TGe=xi.DISTANCE_DISPLAY_CONDITION=14,AGe=xi.DISABLE_DEPTH_DISTANCE=15;xi.TEXTURE_COORDINATE_BOUNDS=16;var wae=xi.SDF_INDEX=17;xi.NUMBER_OF_PROPERTIES=18;function Vo(e,t){let n=e._billboardCollection;l(n)&&(n._updateBillboard(e,t),e._dirty=!0)}Object.defineProperties(xi.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Vo(this,Sae))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),this._updateClamping(),Vo(this,HU))}},heightReference:{get:function(){return this._heightReference},set:function(e){let t=this._heightReference;e!==t&&(this._heightReference=e,this._updateClamping(),Vo(this,HU))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;z.equals(t,e)||(z.clone(e,t),Vo(this,Pae))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Mt.equals(t,e)||(this._scaleByDistance=Mt.clone(e,t),Vo(this,yGe))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Mt.equals(t,e)||(this._translucencyByDistance=Mt.clone(e,t),Vo(this,xGe))}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;Mt.equals(t,e)||(this._pixelOffsetScaleByDistance=Mt.clone(e,t),Vo(this,bGe))}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;h.equals(t,e)||(h.clone(e,t),Vo(this,dGe))}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,Vo(this,hGe))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin!==e&&(this._verticalOrigin=e,Vo(this,mGe))}},scale:{get:function(){return this._scale},set:function(e){this._scale!==e&&(this._scale=e,Vo(this,pGe))}},color:{get:function(){return this._color},set:function(e){let t=this._color;H.equals(t,e)||(H.clone(e,t),Vo(this,vae))}},rotation:{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,Vo(this,_Ge))}},alignedAxis:{get:function(){return this._alignedAxis},set:function(e){let t=this._alignedAxis;h.equals(t,e)||(h.clone(e,t),Vo(this,gGe))}},width:{get:function(){return y(this._width,this._imageWidth)},set:function(e){this._width!==e&&(this._width=e,Vo(this,GU))}},height:{get:function(){return y(this._height,this._imageHeight)},set:function(e){this._height!==e&&(this._height=e,Vo(this,GU))}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters!==e&&(this._sizeInMeters=e,Vo(this,vae))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){It.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=It.clone(e,this._distanceDisplayCondition),Vo(this,TGe))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Vo(this,AGe))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickPrimitive:{get:function(){return this._pickPrimitive},set:function(e){this._pickPrimitive=e,l(this._pickId)&&(this._pickId.object.primitive=e)}},pickId:{get:function(){return this._pickId}},image:{get:function(){return this._imageId},set:function(e){l(e)?typeof e=="string"?this.setImage(e,e):e instanceof De?this.setImage(e.url,e):l(e.src)?this.setImage(e.src,e):this.setImage(Hn(),e):(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=void 0,this._image=void 0,this._imageIndexPromise=void 0,Vo(this,GU))}},ready:{get:function(){return this._imageIndex!==-1}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition),Vo(this,HU)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,Vo(this,Sae))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;H.equals(t,e)||(H.clone(e,t),Vo(this,wae))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Vo(this,wae))}}});xi.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this._pickPrimitive,collection:this._collection,id:this._id})),this._pickId};xi.prototype._updateClamping=function(){xi._updateClamping(this._billboardCollection,this)};var WU=new fe;xi._updateClamping=function(e,t){let n=e._scene;if(!l(n))return;let i=n.globe,o=y(i?.ellipsoid,te.WGS84),r=n.frameState.mode,s=r!==t._mode;if(t._mode=r,(t._heightReference===qe.NONE||s)&&l(t._removeCallbackFunc)&&(t._removeCallbackFunc(),t._removeCallbackFunc=void 0,t._clampedPosition=void 0),t._heightReference===qe.NONE||!l(t._position))return;l(t._removeCallbackFunc)&&t._removeCallbackFunc();let a=o.cartesianToCartographic(t._position);if(!l(a)){t._actualClampedPosition=void 0;return}function c(f){let d=o.cartographicToCartesian(f,t._clampedPosition);HA(t._heightReference)&&(t._mode===ne.SCENE3D?(f.height+=a.height,o.cartographicToCartesian(f,d)):d.x+=a.height),t._clampedPosition=d}t._removeCallbackFunc=n.updateHeight(a,c,t._heightReference),fe.clone(a,WU);let u=n.getHeight(a,t._heightReference);l(u)&&(WU.height=u),c(WU)};xi.prototype._loadImage=function(){let e=this._billboardCollection._textureAtlas,t=this._imageId,n=this._image,i=this._imageSubRegion,o,r=this;function s(c){if(r._imageId!==t||r._image!==n||!Ge.equals(r._imageSubRegion,i))return;let u=e.textureCoordinates[c];r._imageWidth=e.texture.width*u.width,r._imageHeight=e.texture.height*u.height,r._imageIndex=c,r._ready=!0,r._image=void 0,r._imageIndexPromise=void 0,Vo(r,GU);let f=r._billboardCollection._scene;l(f)&&f.frameState.afterRender.push(()=>!0)}if(l(n)&&(o=e.addImage(t,n)),l(i)&&(o=e.addSubRegion(t,i)),this._imageIndexPromise=o,!l(o))return;let a=e.getImageIndex(t);if(l(a)&&!l(i)){s(a);return}o.then(s).catch(function(c){console.error(`Error loading image for billboard: ${c}`),r._imageIndexPromise=void 0})};xi.prototype.setImage=function(e,t){this._imageId!==e&&(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=e,this._image=t,l(this._billboardCollection._textureAtlas)&&this._loadImage())};xi.prototype.setImageSubRegion=function(e,t){this._imageId===e&&Ge.equals(this._imageSubRegion,t)||(this._imageIndex=-1,this._imageId=e,this._imageSubRegion=Ge.clone(t),l(this._billboardCollection._textureAtlas)&&this._loadImage())};xi.prototype._setTranslate=function(e){let t=this._translate;z.equals(t,e)||(z.clone(e,t),Vo(this,Pae))};xi.prototype._getActualPosition=function(){return l(this._clampedPosition)?this._clampedPosition:this._actualPosition};xi.prototype._setActualPosition=function(e){l(this._clampedPosition)||h.clone(e,this._actualPosition),Vo(this,HU)};var Dae=new oe;xi._computeActualPosition=function(e,t,n,i){return l(e._clampedPosition)?(n.mode!==e._mode&&e._updateClamping(),e._clampedPosition):n.mode===ne.SCENE3D?t:(F.multiplyByPoint(i,t,Dae),Hi.computeActualWgs84Position(n,Dae))};var Iae=new h;xi._computeScreenSpacePosition=function(e,t,n,i,o,r){let s=F.multiplyByPoint(e,t,Iae),a=Hi.wgs84WithEyeOffsetToWindowCoordinates(o,s,n,r);if(l(a))return z.add(a,i,a),a};var zU=new z(0,0);xi.prototype.computeScreenSpacePosition=function(e,t){let n=this._billboardCollection;l(t)||(t=new z),z.clone(this._pixelOffset,zU),z.add(zU,this._translate,zU);let i=n.modelMatrix,o=this._position;if(l(this._clampedPosition)&&(o=this._clampedPosition,e.mode!==ne.SCENE3D)){let s=e.mapProjection,a=s.ellipsoid,c=s.unproject(o,WU);o=a.cartographicToCartesian(c,Iae),i=F.IDENTITY}return xi._computeScreenSpacePosition(i,o,this._eyeOffset,zU,e,t)};xi.getScreenSpaceBoundingBox=function(e,t,n){let i=e.width,o=e.height,r=e.scale;i*=r,o*=r;let s=t.x;e.horizontalOrigin===di.RIGHT?s-=i:e.horizontalOrigin===di.CENTER&&(s-=i*.5);let a=t.y;return e.verticalOrigin===Rn.BOTTOM||e.verticalOrigin===Rn.BASELINE?a-=o:e.verticalOrigin===Rn.CENTER&&(a-=o*.5),l(n)||(n=new Ge),n.x=s,n.y=a,n.width=i,n.height=o,n};xi.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&h.equals(this._position,e._position)&&this._imageId===e._imageId&&this._show===e._show&&this._scale===e._scale&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&Ge.equals(this._imageSubRegion,e._imageSubRegion)&&H.equals(this._color,e._color)&&z.equals(this._pixelOffset,e._pixelOffset)&&z.equals(this._translate,e._translate)&&h.equals(this._eyeOffset,e._eyeOffset)&&Mt.equals(this._scaleByDistance,e._scaleByDistance)&&Mt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Mt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&It.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};xi.prototype._destroy=function(){l(this._customData)&&(this._billboardCollection._scene.globe._surface.removeTileCustomData(this._customData),this._customData=void 0),l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this.image=void 0,this._pickId=this._pickId&&this._pickId.destroy(),this._billboardCollection=void 0};var uo=xi;var CGe={OPAQUE:0,TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2},Co=Object.freeze(CGe);var EGe={FONT_SIZE:48,PADDING:10,RADIUS:8,CUTOFF:.25},Vs=Object.freeze(EGe);function a_(e,t,n,i,o){this.bottomLeft=y(e,z.ZERO),this.topRight=y(t,z.ZERO),this.childNode1=n,this.childNode2=i,this.imageIndex=o}var SGe=new z(16,16);function Cy(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.borderWidthInPixels,1),n=y(e.initialSize,SGe);this._context=e.context,this._pixelFormat=y(e.pixelFormat,nt.RGBA),this._borderWidthInPixels=t,this._textureCoordinates=[],this._guid=Hn(),this._idHash={},this._indexHash={},this._initialSize=n,this._root=void 0}Object.defineProperties(Cy.prototype,{borderWidthInPixels:{get:function(){return this._borderWidthInPixels}},textureCoordinates:{get:function(){return this._textureCoordinates}},texture:{get:function(){return l(this._texture)||(this._texture=new Dt({context:this._context,width:this._initialSize.x,height:this._initialSize.y,pixelFormat:this._pixelFormat})),this._texture}},numberOfImages:{get:function(){return this._textureCoordinates.length}},guid:{get:function(){return this._guid}}});function vGe(e,t){let n=e._context,i=e.numberOfImages,o=2,r=e._borderWidthInPixels;if(i>0){let s=e._texture.width,a=e._texture.height,c=o*(s+t.width+r),u=o*(a+t.height+r),f=s/c,d=a/u,p=new a_(new z(s+r,r),new z(c,a)),g=new a_(new z,new z(c,a),e._root,p),m=new a_(new z(r,a+r),new z(c,u)),x=new a_(new z,new z(c,u),g,m);for(let C=0;C<e._textureCoordinates.length;C++){let A=e._textureCoordinates[C];l(A)&&(A.x*=f,A.y*=d,A.width*=f,A.height*=d)}let b=new Dt({context:e._context,width:c,height:u,pixelFormat:e._pixelFormat}),T=new ta({context:n,colorTextures:[e._texture],destroyAttachments:!1});T._bind(),b.copyFromFramebuffer(0,0,0,0,c,u),T._unBind(),T.destroy(),e._texture=e._texture&&e._texture.destroy(),e._texture=b,e._root=x}else{let s=o*(t.width+2*r),a=o*(t.height+2*r);s<e._initialSize.x&&(s=e._initialSize.x),a<e._initialSize.y&&(a=e._initialSize.y),e._texture=e._texture&&e._texture.destroy(),e._texture=new Dt({context:e._context,width:s,height:a,pixelFormat:e._pixelFormat}),e._root=new a_(new z(r,r),new z(s,a))}}function jU(e,t,n){if(l(t)){if(!l(t.childNode1)&&!l(t.childNode2)){if(l(t.imageIndex))return;let i=t.topRight.x-t.bottomLeft.x,o=t.topRight.y-t.bottomLeft.y,r=i-n.width,s=o-n.height;if(r<0||s<0)return;if(r===0&&s===0)return t;if(r>s){t.childNode1=new a_(new z(t.bottomLeft.x,t.bottomLeft.y),new z(t.bottomLeft.x+n.width,t.topRight.y));let a=t.bottomLeft.x+n.width+e._borderWidthInPixels;a<t.topRight.x&&(t.childNode2=new a_(new z(a,t.bottomLeft.y),new z(t.topRight.x,t.topRight.y)))}else{t.childNode1=new a_(new z(t.bottomLeft.x,t.bottomLeft.y),new z(t.topRight.x,t.bottomLeft.y+n.height));let a=t.bottomLeft.y+n.height+e._borderWidthInPixels;a<t.topRight.y&&(t.childNode2=new a_(new z(t.bottomLeft.x,a),new z(t.topRight.x,t.topRight.y)))}return jU(e,t.childNode1,n)}return jU(e,t.childNode1,n)||jU(e,t.childNode2,n)}}function Rae(e,t,n){let i=jU(e,e._root,t);if(l(i)){i.imageIndex=n;let o=e._texture.width,r=e._texture.height,s=i.topRight.x-i.bottomLeft.x,a=i.topRight.y-i.bottomLeft.y,c=i.bottomLeft.x/o,u=i.bottomLeft.y/r,f=s/o,d=a/r;e._textureCoordinates[n]=new Ge(c,u,f,d),e._texture.copyFrom({source:t,xOffset:i.bottomLeft.x,yOffset:i.bottomLeft.y})}else vGe(e,t),Rae(e,t,n);e._guid=Hn()}function Oae(e,t){if(!l(e)||e.isDestroyed())return-1;let n=e.numberOfImages;return Rae(e,t,n),n}Cy.prototype.getImageIndex=function(e){return this._indexHash[e]};Cy.prototype.addImageSync=function(e,t){let n=this._indexHash[e];return l(n)||(n=Oae(this,t),this._idHash[e]=Promise.resolve(n),this._indexHash[e]=n),n};Cy.prototype.addImage=function(e,t){let n=this._idHash[e];if(l(n))return n;typeof t=="function"?t=t(e):(typeof t=="string"||t instanceof De)&&(t=De.createIfNeeded(t).fetchImage());let i=this;return n=Promise.resolve(t).then(function(o){let r=Oae(i,o);return i._indexHash[e]=r,r}),this._idHash[e]=n,n};Cy.prototype.addSubRegion=function(e,t){let n=this._idHash[e];if(!l(n))throw new le(`image with id "${e}" not found in the atlas.`);let i=this;return Promise.resolve(n).then(function(o){if(o===-1)return-1;let r=i._texture.width,s=i._texture.height,a=i._textureCoordinates[o],c=a.x+t.x/r,u=a.y+t.y/s,f=t.width/r,d=t.height/s,p=i._textureCoordinates.push(new Ge(c,u,f,d))-1;return i._indexHash[e]=p,i._guid=Hn(),p})};Cy.prototype.isDestroyed=function(){return!1};Cy.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),ue(this)};var Ey=Cy;var wGe=uo.SHOW_INDEX,sM=uo.POSITION_INDEX,Mae=uo.PIXEL_OFFSET_INDEX,Lae=uo.EYE_OFFSET_INDEX,DGe=uo.HORIZONTAL_ORIGIN_INDEX,PGe=uo.VERTICAL_ORIGIN_INDEX,IGe=uo.SCALE_INDEX,rM=uo.IMAGE_INDEX_INDEX,Nae=uo.COLOR_INDEX,RGe=uo.ROTATION_INDEX,OGe=uo.ALIGNED_AXIS_INDEX,Fae=uo.SCALE_BY_DISTANCE_INDEX,Bae=uo.TRANSLUCENCY_BY_DISTANCE_INDEX,kae=uo.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX,Vae=uo.DISTANCE_DISPLAY_CONDITION,MGe=uo.DISABLE_DEPTH_DISTANCE,LGe=uo.TEXTURE_COORDINATE_BOUNDS,Uae=uo.SDF_INDEX,BW=uo.NUMBER_OF_PROPERTIES,bo,NGe={positionHighAndScale:0,positionLowAndRotation:1,compressedAttribute0:2,compressedAttribute1:3,compressedAttribute2:4,eyeOffset:5,scaleByDistance:6,pixelOffsetScaleByDistance:7,compressedAttribute3:8,textureCoordinateBoundsOrLabelTranslate:9,a_batchId:10,sdf:11},FGe={direction:0,positionHighAndScale:1,positionLowAndRotation:2,compressedAttribute0:3,compressedAttribute1:4,compressedAttribute2:5,eyeOffset:6,scaleByDistance:7,pixelOffsetScaleByDistance:8,compressedAttribute3:9,textureCoordinateBoundsOrLabelTranslate:10,a_batchId:11,sdf:12};function If(e){e=y(e,y.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._textureAtlasGUID=void 0,this._destroyTextureAtlas=!0,this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!1,this._shaderRotation=!1,this._compiledShaderRotation=!1,this._shaderAlignedAxis=!1,this._compiledShaderAlignedAxis=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderPixelOffsetScaleByDistance=!1,this._compiledShaderPixelOffsetScaleByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._shaderClampToGround=!1,this._compiledShaderClampToGround=!1,this._propertiesChanged=new Uint32Array(BW),this._maxSize=0,this._maxEyeOffset=0,this._maxScale=1,this._maxPixelOffset=0,this._allHorizontalCenter=!0,this._allVerticalCenter=!0,this._allSizedInMeters=!0,this._baseVolume=new ae,this._baseVolumeWC=new ae,this._baseVolume2D=new ae,this._boundingVolume=new ae,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowTextureAtlas=y(e.debugShowTextureAtlas,!1),this.blendOption=y(e.blendOption,Co.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ne.SCENE3D,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW],this._highlightColor=H.clone(H.WHITE);let t=this;this._uniforms={u_atlas:function(){return t._textureAtlas.texture},u_highlightColor:function(){return t._highlightColor}};let n=this._scene;l(n)&&l(n.terrainProviderChanged)&&(this._removeCallbackFunc=n.terrainProviderChanged.addEventListener(function(){let i=this._billboards,o=i.length;for(let r=0;r<o;++r)l(i[r])&&i[r]._updateClamping()},this))}Object.defineProperties(If.prototype,{length:{get:function(){return kW(this),this._billboards.length}},textureAtlas:{get:function(){return this._textureAtlas},set:function(e){this._textureAtlas!==e&&(this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._textureAtlas=e,this._createVertexArray=!0)}},destroyTextureAtlas:{get:function(){return this._destroyTextureAtlas},set:function(e){this._destroyTextureAtlas=e}}});function zae(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}If.prototype.add=function(e){let t=new uo(e,this);return t._index=this._billboards.length,this._billboards.push(t),this._createVertexArray=!0,t};If.prototype.remove=function(e){return this.contains(e)?(this._billboards[e._index]=void 0,this._billboardsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};If.prototype.removeAll=function(){zae(this._billboards),this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!0};function kW(e){if(e._billboardsRemoved){e._billboardsRemoved=!1;let t=[],n=e._billboards,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];l(s)&&(s._index=r++,t.push(s))}e._billboards=t}}If.prototype._updateBillboard=function(e,t){e._dirty||(this._billboardsToUpdate[this._billboardsToUpdateIndex++]=e),++this._propertiesChanged[t]};If.prototype.contains=function(e){return l(e)&&e._billboardCollection===this};If.prototype.get=function(e){return kW(this),this._billboards[e]};var RW;function BGe(e){let n=e.cache.billboardCollection_indexBufferBatched;if(l(n))return n;let i=16384*6-6,o=new Uint16Array(i);for(let r=0,s=0;r<i;r+=6,s+=4)o[r]=s,o[r+1]=s+1,o[r+2]=s+2,o[r+3]=s+0,o[r+4]=s+2,o[r+5]=s+3;return n=ct.createIndexBuffer({context:e,typedArray:o,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferBatched=n,n}function kGe(e){let t=e.cache.billboardCollection_indexBufferInstanced;return l(t)||(t=ct.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferInstanced=t),t}function VGe(e){let t=e.cache.billboardCollection_vertexBufferInstanced;return l(t)||(t=ct.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_vertexBufferInstanced=t),t}If.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<BW;++i){let o=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function UGe(e,t,n,i,o,r){let s=[{index:bo.positionHighAndScale,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[sM]},{index:bo.positionLowAndRotation,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[sM]},{index:bo.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Mae]},{index:bo.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Bae]},{index:bo.compressedAttribute2,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Nae]},{index:bo.eyeOffset,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Lae]},{index:bo.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Fae]},{index:bo.pixelOffsetScaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[kae]},{index:bo.compressedAttribute3,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Vae]},{index:bo.textureCoordinateBoundsOrLabelTranslate,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[LGe]}];i&&s.push({index:bo.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:VGe(e)}),l(o)&&s.push({index:bo.a_batchId,componentsPerAttribute:1,componentDatatype:X.FLOAT,bufferUsage:Fe.STATIC_DRAW}),r&&s.push({index:bo.sdf,componentsPerAttribute:2,componentDatatype:X.FLOAT,usage:n[Uae]});let a=i?t:4*t;return new s_(e,s,a,i)}var OW=new Gn;function Hae(e,t,n,i,o){let r,s=i[bo.positionHighAndScale],a=i[bo.positionLowAndRotation],c=o._getActualPosition();e._mode===ne.SCENE3D&&(ae.expand(e._baseVolume,c,e._baseVolume),e._boundingVolumeDirty=!0),Gn.fromCartesian(c,OW);let u=o.scale,f=o.rotation;f!==0&&(e._shaderRotation=!0),e._maxScale=Math.max(e._maxScale,u);let d=OW.high,p=OW.low;e._instanced?(r=o._index,s(r,d.x,d.y,d.z,u),a(r,p.x,p.y,p.z,f)):(r=o._index*4,s(r+0,d.x,d.y,d.z,u),s(r+1,d.x,d.y,d.z,u),s(r+2,d.x,d.y,d.z,u),s(r+3,d.x,d.y,d.z,u),a(r+0,p.x,p.y,p.z,f),a(r+1,p.x,p.y,p.z,f),a(r+2,p.x,p.y,p.z,f),a(r+3,p.x,p.y,p.z,f))}var Pf=new z,Df=32768,ZC=65536,MW=4096,gm=256,zGe=128,HGe=32,GGe=8,Gae=4,WGe=1/256,Wae=0,jae=2,qae=3,Yae=1;function Xae(e,t,n,i,o){let r,s=i[bo.compressedAttribute0],a=o.pixelOffset,c=a.x,u=a.y,f=o._translate,d=f.x,p=f.y;e._maxPixelOffset=Math.max(e._maxPixelOffset,Math.abs(c+d),Math.abs(-u+p));let g=o.horizontalOrigin,m=o._verticalOrigin,x=o.show&&o.clusterShow;o.color.alpha===0&&(x=!1),m===Rn.BASELINE&&(m=Rn.BOTTOM),e._allHorizontalCenter=e._allHorizontalCenter&&g===di.CENTER,e._allVerticalCenter=e._allVerticalCenter&&m===Rn.CENTER;let b=0,T=0,C=0,A=0,E=o._imageIndex;if(E!==-1){let U=n[E];b=U.x,T=U.y,C=U.width,A=U.height}let v=b+C,D=T+A,O=Math.floor(R.clamp(c,-Df,Df)+Df)*zGe;O+=(g+1)*HGe,O+=(m+1)*GGe,O+=(x?1:0)*Gae;let I=Math.floor(R.clamp(u,-Df,Df)+Df)*gm,L=Math.floor(R.clamp(d,-Df,Df)+Df)*gm,N=(R.clamp(p,-Df,Df)+Df)*WGe,_=Math.floor(N),S=Math.floor((N-_)*gm);I+=_,L+=S,Pf.x=b,Pf.y=T;let w=Mn.compressTextureCoordinates(Pf);Pf.x=v;let P=Mn.compressTextureCoordinates(Pf);Pf.y=D;let M=Mn.compressTextureCoordinates(Pf);Pf.x=b;let B=Mn.compressTextureCoordinates(Pf);e._instanced?(r=o._index,s(r,O,I,L,w)):(r=o._index*4,s(r+0,O+Wae,I,L,w),s(r+1,O+jae,I,L,P),s(r+2,O+qae,I,L,M),s(r+3,O+Yae,I,L,B))}function Kae(e,t,n,i,o){let r,s=i[bo.compressedAttribute1],a=o.alignedAxis;h.equals(a,h.ZERO)||(e._shaderAlignedAxis=!0);let c=0,u=1,f=1,d=1,p=o.translucencyByDistance;l(p)&&(c=p.near,u=p.nearValue,f=p.far,d=p.farValue,(u!==1||d!==1)&&(e._shaderTranslucencyByDistance=!0));let g=0,m=o._imageIndex;m!==-1&&(g=n[m].width);let x=e._textureAtlas.texture.width,b=Math.round(y(o.width,x*g));e._maxSize=Math.max(e._maxSize,b);let T=R.clamp(b,0,ZC),C=0;Math.abs(h.magnitudeSquared(a)-1)<R.EPSILON6&&(C=Mn.octEncodeFloat(a)),u=R.clamp(u,0,1),u=u===1?255:u*255|0,T=T*gm+u,d=R.clamp(d,0,1),d=d===1?255:d*255|0,C=C*gm+d,e._instanced?(r=o._index,s(r,T,C,c,f)):(r=o._index*4,s(r+0,T,C,c,f),s(r+1,T,C,c,f),s(r+2,T,C,c,f),s(r+3,T,C,c,f))}function NW(e,t,n,i,o){let r,s=i[bo.compressedAttribute2],a=o.color,c=l(e._batchTable)?H.WHITE:o.getPickId(t.context).color,u=o.sizeInMeters?1:0,f=Math.abs(h.magnitudeSquared(o.alignedAxis)-1)<R.EPSILON6?1:0;e._allSizedInMeters=e._allSizedInMeters&&u===1;let d=0,p=o._imageIndex;p!==-1&&(d=n[p].height);let g=e._textureAtlas.texture.dimensions,m=Math.round(y(o.height,g.y*d));e._maxSize=Math.max(e._maxSize,m);let x=y(o._labelHorizontalOrigin,-2);x+=2;let b=m*Gae+x,T=H.floatToByte(a.red),C=H.floatToByte(a.green),A=H.floatToByte(a.blue),E=T*ZC+C*gm+A;T=H.floatToByte(c.red),C=H.floatToByte(c.green),A=H.floatToByte(c.blue);let v=T*ZC+C*gm+A,D=H.floatToByte(a.alpha)*ZC+H.floatToByte(c.alpha)*gm;D+=u*2+f,e._instanced?(r=o._index,s(r,E,v,D,b)):(r=o._index*4,s(r+0,E,v,D,b),s(r+1,E,v,D,b),s(r+2,E,v,D,b),s(r+3,E,v,D,b))}function FW(e,t,n,i,o){let r,s=i[bo.eyeOffset],a=o.eyeOffset,c=a.z;if(o._heightReference!==qe.NONE&&(c*=1.005),e._maxEyeOffset=Math.max(e._maxEyeOffset,Math.abs(a.x),Math.abs(a.y),Math.abs(c)),e._instanced){let u=0,f=0,d=o._imageIndex;if(d!==-1){let g=n[d];u=g.width,f=g.height}Pf.x=u,Pf.y=f;let p=Mn.compressTextureCoordinates(Pf);r=o._index,s(r,a.x,a.y,c,p)}else r=o._index*4,s(r+0,a.x,a.y,c,0),s(r+1,a.x,a.y,c,0),s(r+2,a.x,a.y,c,0),s(r+3,a.x,a.y,c,0)}function Zae(e,t,n,i,o){let r,s=i[bo.scaleByDistance],a=0,c=1,u=1,f=1,d=o.scaleByDistance;l(d)&&(a=d.near,c=d.nearValue,u=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,u,f)):(r=o._index*4,s(r+0,a,c,u,f),s(r+1,a,c,u,f),s(r+2,a,c,u,f),s(r+3,a,c,u,f))}function $ae(e,t,n,i,o){let r,s=i[bo.pixelOffsetScaleByDistance],a=0,c=1,u=1,f=1,d=o.pixelOffsetScaleByDistance;l(d)&&(a=d.near,c=d.nearValue,u=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderPixelOffsetScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,u,f)):(r=o._index*4,s(r+0,a,c,u,f),s(r+1,a,c,u,f),s(r+2,a,c,u,f),s(r+3,a,c,u,f))}function Qae(e,t,n,i,o){let r,s=i[bo.compressedAttribute3],a=0,c=Number.MAX_VALUE,u=o.distanceDisplayCondition;l(u)&&(a=u.near,c=u.far,a*=a,c*=c,e._shaderDistanceDisplayCondition=!0);let f=o.disableDepthTestDistance,d=ff(o.heightReference)&&t.context.depthTexture;l(f)||(f=d?5e3:0),f*=f,(d||f>0)&&(e._shaderDisableDepthDistance=!0,f===Number.POSITIVE_INFINITY&&(f=-1));let p,g;if(l(o._labelDimensions))g=o._labelDimensions.x,p=o._labelDimensions.y;else{let T=0,C=0,A=o._imageIndex;if(A!==-1){let v=n[A];T=v.height,C=v.width}p=Math.round(y(o.height,e._textureAtlas.texture.dimensions.y*T));let E=e._textureAtlas.texture.width;g=Math.round(y(o.width,E*C))}let m=Math.floor(R.clamp(g,0,MW)),x=Math.floor(R.clamp(p,0,MW)),b=m*MW+x;e._instanced?(r=o._index,s(r,a,c,f,b)):(r=o._index*4,s(r+0,a,c,f,b),s(r+1,a,c,f,b),s(r+2,a,c,f,b),s(r+3,a,c,f,b))}function Jae(e,t,n,i,o){if(ff(o.heightReference)){let m=e._scene,x=t.context,b=t.globeTranslucencyState.translucent,T=l(m.globe)&&m.globe.depthTestAgainstTerrain;e._shaderClampToGround=x.depthTexture&&!b&&T}let r,s=i[bo.textureCoordinateBoundsOrLabelTranslate];if(Nt.maximumVertexTextureImageUnits>0){let m=0,x=0;l(o._labelTranslate)&&(m=o._labelTranslate.x,x=o._labelTranslate.y),e._instanced?(r=o._index,s(r,m,x,0,0)):(r=o._index*4,s(r+0,m,x,0,0),s(r+1,m,x,0,0),s(r+2,m,x,0,0),s(r+3,m,x,0,0));return}let a=0,c=0,u=0,f=0,d=o._imageIndex;if(d!==-1){let m=n[d];a=m.x,c=m.y,u=m.width,f=m.height}let p=a+u,g=c+f;e._instanced?(r=o._index,s(r,a,c,p,g)):(r=o._index*4,s(r+0,a,c,p,g),s(r+1,a,c,p,g),s(r+2,a,c,p,g),s(r+3,a,c,p,g))}function jGe(e,t,n,i,o){if(!l(e._batchTable))return;let r=i[bo.a_batchId],s=o._batchIndex,a;e._instanced?(a=o._index,r(a,s)):(a=o._index*4,r(a+0,s),r(a+1,s),r(a+2,s),r(a+3,s))}function ece(e,t,n,i,o){if(!e._sdf)return;let r,s=i[bo.sdf],a=o.outlineColor,c=o.outlineWidth,u=H.floatToByte(a.red),f=H.floatToByte(a.green),d=H.floatToByte(a.blue),p=u*ZC+f*gm+d,g=c/Vs.RADIUS,m=H.floatToByte(a.alpha)*ZC+H.floatToByte(g)*gm;e._instanced?(r=o._index,s(r,p,m)):(r=o._index*4,s(r+0,p+Wae,m),s(r+1,p+jae,m),s(r+2,p+qae,m),s(r+3,p+Yae,m))}function qGe(e,t,n,i,o){Hae(e,t,n,i,o),Xae(e,t,n,i,o),Kae(e,t,n,i,o),NW(e,t,n,i,o),FW(e,t,n,i,o),Zae(e,t,n,i,o),$ae(e,t,n,i,o),Qae(e,t,n,i,o),Jae(e,t,n,i,o),jGe(e,t,n,i,o),ece(e,t,n,i,o)}function LW(e,t,n,i,o,r){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let u=t[c],f=u.position,d=uo._computeActualPosition(u,f,i,o);l(d)&&(u._setActualPosition(d),r?a.push(d):ae.expand(s,d,s))}r&&ae.fromPoints(a,s)}function YGe(e,t){let n=t.mode,i=e._billboards,o=e._billboardsToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==ne.SCENE3D&&!F.equals(r,e.modelMatrix)?(e._mode=n,F.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===ne.SCENE3D||n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&LW(e,i,i.length,t,r,!0)):n===ne.MORPHING?LW(e,i,i.length,t,r,!0):(n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&LW(e,o,e._billboardsToUpdateIndex,t,r,!1)}function XGe(e,t,n){let i=1;(!e._allSizedInMeters||e._maxPixelOffset!==0)&&(i=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight));let o=i*e._maxScale*e._maxSize*2;e._allHorizontalCenter&&e._allVerticalCenter&&(o*=.5);let r=i*e._maxPixelOffset+e._maxEyeOffset;n.radius+=o+r}function KGe(e,t){let i=t.createViewportQuadCommand(`uniform sampler2D billboard_texture; in vec2 v_textureCoordinates; void main() { out_FragColor = texture(billboard_texture, v_textureCoordinates); } `,{uniformMap:{billboard_texture:function(){return e._textureAtlas.texture}}});return i.pass=Ee.OVERLAY,i}var ZGe=[];If.prototype.update=function(e){if(kW(this),!this.show)return;let t=this._billboards,n=t.length,i=e.context;this._instanced=i.instancedArrays,bo=this._instanced?FGe:NGe,RW=this._instanced?kGe:BGe;let o=this._textureAtlas;if(!l(o)){o=this._textureAtlas=new Ey({context:i});for(let I=0;I<n;++I)t[I]._loadImage()}let r=o.textureCoordinates;if(r.length===0)return;YGe(this,e),t=this._billboards,n=t.length;let s=this._billboardsToUpdate,a=this._billboardsToUpdateIndex,c=this._propertiesChanged,u=o.guid,f=this._createVertexArray||this._textureAtlasGUID!==u;this._textureAtlasGUID=u;let d,p=e.passes,g=p.pick;if(f||!g&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let I=0;I<BW;++I)c[I]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=UGe(i,n,this._buffersUsage,this._instanced,this._batchTable,this._sdf),d=this._vaf.writers;for(let I=0;I<n;++I){let L=this._billboards[I];L._dirty=!1,qGe(this,e,r,d,L)}this._vaf.commit(RW(i))}this._billboardsToUpdateIndex=0}else if(a>0){let I=ZGe;I.length=0,(c[sM]||c[RGe]||c[IGe])&&I.push(Hae),(c[rM]||c[Mae]||c[DGe]||c[PGe]||c[wGe])&&(I.push(Xae),this._instanced&&I.push(FW)),(c[rM]||c[OGe]||c[Bae])&&(I.push(Kae),I.push(NW)),(c[rM]||c[Nae])&&I.push(NW),c[Lae]&&I.push(FW),c[Fae]&&I.push(Zae),c[kae]&&I.push($ae),(c[Vae]||c[MGe]||c[rM]||c[sM])&&I.push(Qae),(c[rM]||c[sM])&&I.push(Jae),c[Uae]&&I.push(ece);let L=I.length;if(d=this._vaf.writers,a/n>.1){for(let N=0;N<a;++N){let _=s[N];_._dirty=!1;for(let S=0;S<L;++S)I[S](this,e,r,d,_)}this._vaf.commit(RW(i))}else{for(let N=0;N<a;++N){let _=s[N];_._dirty=!1;for(let S=0;S<L;++S)I[S](this,e,r,d,_);this._instanced?this._vaf.subCommit(_._index,1):this._vaf.subCommit(_._index*4,4)}this._vaf.endSubCommits()}this._billboardsToUpdateIndex=0}if(a>n*1.5&&(s.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ae.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let m,x=F.IDENTITY;e.mode===ne.SCENE3D?(x=this.modelMatrix,m=ae.clone(this._baseVolumeWC,this._boundingVolume)):m=ae.clone(this._baseVolume2D,this._boundingVolume),XGe(this,e,m);let b=this._blendOption!==this.blendOption;if(this._blendOption=this.blendOption,b){this._blendOption===Co.OPAQUE||this._blendOption===Co.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ve.fromCache({depthTest:{enabled:!0,func:ee.LESS},depthMask:!0}):this._rsOpaque=void 0;let I=this._blendOption===Co.TRANSLUCENT;this._blendOption===Co.TRANSLUCENT||this._blendOption===Co.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ve.fromCache({depthTest:{enabled:!0,func:I?ee.LEQUAL:ee.LESS},depthMask:I,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0}this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let T,C,A,E,v,D=Nt.maximumVertexTextureImageUnits>0;if(b||this._shaderRotation!==this._compiledShaderRotation||this._shaderAlignedAxis!==this._compiledShaderAlignedAxis||this._shaderScaleByDistance!==this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance!==this._compiledShaderTranslucencyByDistance||this._shaderPixelOffsetScaleByDistance!==this._compiledShaderPixelOffsetScaleByDistance||this._shaderDistanceDisplayCondition!==this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance||this._shaderClampToGround!==this._compiledShaderClampToGround||this._sdf!==this._compiledSDF){T=oM,C=iM,v=[],l(this._batchTable)&&(v.push("VECTOR_TILE"),T=this._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(T),C=this._batchTable.getFragmentShaderCallback(!1,void 0)(C)),A=new ze({defines:v,sources:[T]}),this._instanced&&A.defines.push("INSTANCED"),this._shaderRotation&&A.defines.push("ROTATION"),this._shaderAlignedAxis&&A.defines.push("ALIGNED_AXIS"),this._shaderScaleByDistance&&A.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&A.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderPixelOffsetScaleByDistance&&A.defines.push("EYE_DISTANCE_PIXEL_OFFSET"),this._shaderDistanceDisplayCondition&&A.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&A.defines.push("DISABLE_DEPTH_DISTANCE"),this._shaderClampToGround&&(D?A.defines.push("VERTEX_DEPTH_CHECK"):A.defines.push("FRAGMENT_DEPTH_CHECK"));let I=1-Vs.CUTOFF;this._sdf&&A.defines.push("SDF");let L=l(this._batchTable)?"VECTOR_TILE":"";this._blendOption===Co.OPAQUE_AND_TRANSLUCENT&&(E=new ze({defines:["OPAQUE",L],sources:[C]}),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(E.defines.push("SDF"),E.defines.push(`SDF_EDGE ${I}`)),this._sp=$t.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:A,fragmentShaderSource:E,attributeLocations:bo}),E=new ze({defines:["TRANSLUCENT",L],sources:[C]}),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(E.defines.push("SDF"),E.defines.push(`SDF_EDGE ${I}`)),this._spTranslucent=$t.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:A,fragmentShaderSource:E,attributeLocations:bo})),this._blendOption===Co.OPAQUE&&(E=new ze({defines:[L],sources:[C]}),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(E.defines.push("SDF"),E.defines.push(`SDF_EDGE ${I}`)),this._sp=$t.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:A,fragmentShaderSource:E,attributeLocations:bo})),this._blendOption===Co.TRANSLUCENT&&(E=new ze({defines:[L],sources:[C]}),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(E.defines.push("SDF"),E.defines.push(`SDF_EDGE ${I}`)),this._spTranslucent=$t.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:A,fragmentShaderSource:E,attributeLocations:bo})),this._compiledShaderRotation=this._shaderRotation,this._compiledShaderAlignedAxis=this._shaderAlignedAxis,this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderPixelOffsetScaleByDistance=this._shaderPixelOffsetScaleByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance,this._compiledShaderClampToGround=this._shaderClampToGround,this._compiledSDF=this._sdf}let O=e.commandList;if(p.render||p.pick){let I=this._colorCommands,L=this._blendOption===Co.OPAQUE,N=this._blendOption===Co.OPAQUE_AND_TRANSLUCENT,_=this._vaf.va,S=_.length,w=this._uniforms,P;l(this._batchTable)?(w=this._batchTable.getUniformMapCallback()(w),P=this._batchTable.getPickId()):P="v_pickColor",I.length=S;let M=N?S*2:S;for(let B=0;B<M;++B){let U=I[B];l(U)||(U=I[B]=new Ze);let V=L||N&&B%2===0;U.pass=V||!N?Ee.OPAQUE:Ee.TRANSLUCENT,U.owner=this;let G=N?Math.floor(B/2):B;U.boundingVolume=m,U.modelMatrix=x,U.count=_[G].indicesCount,U.shaderProgram=V?this._sp:this._spTranslucent,U.uniformMap=w,U.vertexArray=_[G].va,U.renderState=V?this._rsOpaque:this._rsTranslucent,U.debugShowBoundingVolume=this.debugShowBoundingVolume,U.pickId=P,this._instanced&&(U.count=6,U.instanceCount=n),O.push(U)}this.debugShowTextureAtlas&&(l(this.debugCommand)||(this.debugCommand=KGe(this,e.context)),O.push(this.debugCommand))}};If.prototype.isDestroyed=function(){return!1};If.prototype.destroy=function(){return l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),zae(this._billboards),ue(this)};var Cu=If;function $Ge(e,t,n,i,o){return function(){let r=document.createElement("canvas"),s=o+2*i;r.height=r.width=s;let a=r.getContext("2d");return a.clearRect(0,0,s,s),i!==0&&(a.beginPath(),a.arc(s/2,s/2,s/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=n,a.fill(),e<1&&(a.save(),a.globalCompositeOperation="destination-out",a.beginPath(),a.arc(s/2,s/2,o/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle="black",a.fill(),a.restore())),a.beginPath(),a.arc(s/2,s/2,o/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=t,a.fill(),r}}var yb=$Ge;function ia(e,t,n,i,o){this._content=e,this._billboard=n,this._label=i,this._polyline=o,this._batchId=t,this._billboardImage=void 0,this._billboardColor=void 0,this._billboardOutlineColor=void 0,this._billboardOutlineWidth=void 0,this._billboardSize=void 0,this._pointSize=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._heightOffset=void 0,this._pickIds=new Array(3),$C(this)}var QGe=new fe;Object.defineProperties(ia.prototype,{show:{get:function(){return this._label.show},set:function(e){this._label.show=e,this._billboard.show=e,this._polyline.show=e}},color:{get:function(){return this._color},set:function(e){this._color=H.clone(e,this._color),$C(this)}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=e,$C(this)}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=H.clone(e,this._pointOutlineColor),$C(this)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=e,$C(this)}},labelColor:{get:function(){return this._label.fillColor},set:function(e){this._label.fillColor=e,this._polyline.show=this._label.show&&e.alpha>0}},labelOutlineColor:{get:function(){return this._label.outlineColor},set:function(e){this._label.outlineColor=e}},labelOutlineWidth:{get:function(){return this._label.outlineWidth},set:function(e){this._label.outlineWidth=e}},font:{get:function(){return this._label.font},set:function(e){this._label.font=e}},labelStyle:{get:function(){return this._label.style},set:function(e){this._label.style=e}},labelText:{get:function(){return this._label.text},set:function(e){l(e)||(e=""),this._label.text=e}},backgroundColor:{get:function(){return this._label.backgroundColor},set:function(e){this._label.backgroundColor=e}},backgroundPadding:{get:function(){return this._label.backgroundPadding},set:function(e){this._label.backgroundPadding=e}},backgroundEnabled:{get:function(){return this._label.showBackground},set:function(e){this._label.showBackground=e}},scaleByDistance:{get:function(){return this._label.scaleByDistance},set:function(e){this._label.scaleByDistance=e,this._billboard.scaleByDistance=e}},translucencyByDistance:{get:function(){return this._label.translucencyByDistance},set:function(e){this._label.translucencyByDistance=e,this._billboard.translucencyByDistance=e}},distanceDisplayCondition:{get:function(){return this._label.distanceDisplayCondition},set:function(e){this._label.distanceDisplayCondition=e,this._polyline.distanceDisplayCondition=e,this._billboard.distanceDisplayCondition=e}},heightOffset:{get:function(){return this._heightOffset},set:function(e){let t=y(this._heightOffset,0),n=this._content.tileset.ellipsoid,i=n.cartesianToCartographic(this._billboard.position,QGe);i.height=i.height-t+e;let o=n.cartographicToCartesian(i);this._billboard.position=o,this._label.position=this._billboard.position,this._polyline.positions=[this._polyline.positions[0],o],this._heightOffset=e}},anchorLineEnabled:{get:function(){return this._polyline.show},set:function(e){this._polyline.show=e}},anchorLineColor:{get:function(){return this._polyline.material.uniforms.color},set:function(e){this._polyline.material.uniforms.color=H.clone(e,this._polyline.material.uniforms.color)}},image:{get:function(){return this._billboardImage},set:function(e){let t=this._billboardImage!==e;this._billboardImage=e,t&&$C(this)}},disableDepthTestDistance:{get:function(){return this._label.disableDepthTestDistance},set:function(e){this._label.disableDepthTestDistance=e,this._billboard.disableDepthTestDistance=e}},horizontalOrigin:{get:function(){return this._billboard.horizontalOrigin},set:function(e){this._billboard.horizontalOrigin=e}},verticalOrigin:{get:function(){return this._billboard.verticalOrigin},set:function(e){this._billboard.verticalOrigin=e}},labelHorizontalOrigin:{get:function(){return this._label.horizontalOrigin},set:function(e){this._label.horizontalOrigin=e}},labelVerticalOrigin:{get:function(){return this._label.verticalOrigin},set:function(e){this._label.verticalOrigin=e}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},pickIds:{get:function(){let e=this._pickIds;return e[0]=this._billboard.pickId,e[1]=this._label.pickId,e[2]=this._polyline.pickId,e}}});ia.defaultColor=H.WHITE;ia.defaultPointOutlineColor=H.BLACK;ia.defaultPointOutlineWidth=0;ia.defaultPointSize=8;function $C(e){let t=e._billboard;if(l(e._billboardImage)&&e._billboardImage!==t.image){t.image=e._billboardImage;return}if(l(e._billboardImage))return;let n=y(e._color,ia.defaultColor),i=y(e._pointOutlineColor,ia.defaultPointOutlineColor),o=y(e._pointOutlineWidth,ia.defaultPointOutlineWidth),r=y(e._pointSize,ia.defaultPointSize),s=e._billboardColor,a=e._billboardOutlineColor,c=e._billboardOutlineWidth,u=e._billboardSize;if(H.equals(n,s)&&H.equals(i,a)&&o===c&&r===u)return;e._billboardColor=H.clone(n,e._billboardColor),e._billboardOutlineColor=H.clone(i,e._billboardOutlineColor),e._billboardOutlineWidth=o,e._billboardSize=r;let f=n.alpha,d=n.toCssColorString(),p=i.toCssColorString(),g=JSON.stringify([d,r,p,o]);t.setImage(g,yb(f,d,p,o,r))}ia.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};ia.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};ia.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};ia.prototype.getPropertyInherited=function(e){return Ns.getPropertyInherited(this._content,this._batchId,e)};ia.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};ia.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};ia.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};ia.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var c_=ia;function JGe(e,t,n,i,o){let r=e.measureText(t);if(!!/\S/.test(t)){let a=document.defaultView.getComputedStyle(e.canvas).getPropertyValue("font-size").replace("px",""),c=document.createElement("canvas"),u=100,f=r.width+u|0,d=3*a,p=d/2;c.width=f,c.height=d;let g=c.getContext("2d");g.font=n,g.fillStyle="white",g.fillRect(0,0,c.width+1,c.height+1),i&&(g.strokeStyle="black",g.lineWidth=e.lineWidth,g.strokeText(t,u/2,p)),o&&(g.fillStyle="black",g.fillText(t,u/2,p));let m=g.getImageData(0,0,f,d).data,x=m.length,b=f*4,T,C,A,E;for(T=0;T<x;++T)if(m[T]!==255){A=T/b|0;break}for(T=x-1;T>=0;--T)if(m[T]!==255){E=T/b|0;break}let v=-1;for(T=0;T<f&&v===-1;++T)for(C=0;C<d;++C){let D=T*4+C*b;if(m[D]!==255||m[D+1]!==255||m[D+2]!==255||m[D+3]!==255){v=T;break}}return{width:r.width,height:E-A,ascent:p-A,descent:E-p,minx:v-u/2}}return{width:r.width,height:0,ascent:0,descent:0,minx:0}}var xb;function e6e(e,t){if(e==="")return;t=y(t,y.EMPTY_OBJECT);let n=y(t.font,"10px sans-serif"),i=y(t.stroke,!1),o=y(t.fill,!0),r=y(t.strokeWidth,1),s=y(t.backgroundColor,H.TRANSPARENT),a=y(t.padding,0),c=a*2,u=document.createElement("canvas");u.width=1,u.height=1,u.style.font=n;let f=u.getContext("2d",{willReadFrequently:!0});l(xb)||(l(f.imageSmoothingEnabled)?xb="imageSmoothingEnabled":l(f.mozImageSmoothingEnabled)?xb="mozImageSmoothingEnabled":l(f.webkitImageSmoothingEnabled)?xb="webkitImageSmoothingEnabled":l(f.msImageSmoothingEnabled)&&(xb="msImageSmoothingEnabled")),f.font=n,f.lineJoin="round",f.lineWidth=r,f[xb]=!1,u.style.visibility="hidden",document.body.appendChild(u);let d=JGe(f,e,n,i,o);u.dimensions=d,document.body.removeChild(u),u.style.visibility="";let p=-d.minx,g=Math.ceil(d.width)+p+c,m=d.height+c,x=m-d.ascent+a,b=m-x+c;if(u.width=g,u.height=m,f.font=n,f.lineJoin="round",f.lineWidth=r,f[xb]=!1,s!==H.TRANSPARENT&&(f.fillStyle=s.toCssColorString(),f.fillRect(0,0,u.width,u.height)),i){let T=y(t.strokeColor,H.BLACK);f.strokeStyle=T.toCssColorString(),f.strokeText(e,p+a,b)}if(o){let T=y(t.fillColor,H.WHITE);f.fillStyle=T.toCssColorString(),f.fillText(e,p+a,b)}return u}var bb=e6e;var fce=wo(oce(),1);var n6e={FILL:0,OUTLINE:1,FILL_AND_OUTLINE:2},Uo=Object.freeze(n6e);var rce={},sce=0,i6e=256,o6e=new H(.165,.165,.165,.8),r6e=new z(7,5),ls=Object.freeze({LTR:0,RTL:1,WEAK:2,BRACKETS:3});function Tb(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._rebindAllGlyphs=!0}function cM(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._repositionAllGlyphs=!0}function lM(e,t){return document.defaultView.getComputedStyle(e,null).getPropertyValue(t)}function cce(e){let t=rce[e._font];if(!l(t)){let n=document.createElement("div");n.style.position="absolute",n.style.opacity=0,n.style.font=e._font,document.body.appendChild(n);let i=parseFloat(lM(n,"line-height"));isNaN(i)&&(i=void 0),t={family:lM(n,"font-family"),size:lM(n,"font-size").replace("px",""),style:lM(n,"font-style"),weight:lM(n,"font-weight"),lineHeight:i},document.body.removeChild(n),sce<i6e&&(rce[e._font]=t,sce++)}e._fontFamily=t.family,e._fontSize=t.size,e._fontStyle=t.style,e._fontWeight=t.weight,e._lineHeight=t.lineHeight}function l_(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Mt.clone(n)),l(i)&&(i=Mt.clone(i)),l(o)&&(o=Mt.clone(o)),l(r)&&(r=It.clone(r)),this._renderedText=void 0,this._text=void 0,this._show=y(e.show,!0),this._font=y(e.font,"30px sans-serif"),this._fillColor=H.clone(y(e.fillColor,H.WHITE)),this._outlineColor=H.clone(y(e.outlineColor,H.BLACK)),this._outlineWidth=y(e.outlineWidth,1),this._showBackground=y(e.showBackground,!1),this._backgroundColor=H.clone(y(e.backgroundColor,o6e)),this._backgroundPadding=z.clone(y(e.backgroundPadding,r6e)),this._style=y(e.style,Uo.FILL),this._verticalOrigin=y(e.verticalOrigin,Rn.BASELINE),this._horizontalOrigin=y(e.horizontalOrigin,di.LEFT),this._pixelOffset=z.clone(y(e.pixelOffset,z.ZERO)),this._eyeOffset=h.clone(y(e.eyeOffset,h.ZERO)),this._position=h.clone(y(e.position,h.ZERO)),this._scale=y(e.scale,1),this._id=e.id,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._scaleByDistance=o,this._heightReference=y(e.heightReference,qe.NONE),this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._labelCollection=t,this._glyphs=[],this._backgroundBillboard=void 0,this._batchIndex=void 0,this._rebindAllGlyphs=!0,this._repositionAllGlyphs=!0,this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=void 0,this._clusterShow=!0,this.text=y(e.text,""),this._relativeSize=1,cce(this),this._updateClamping()}Object.defineProperties(l_.prototype,{show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i].billboard;l(r)&&(r.show=e)}let n=this._backgroundBillboard;l(n)&&(n.show=e)}}},position:{get:function(){return this._position},set:function(e){let t=this._position;if(!h.equals(t,e)){h.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o].billboard;l(s)&&(s.position=e)}let i=this._backgroundBillboard;l(i)&&(i.position=e),this._updateClamping()}}},heightReference:{get:function(){return this._heightReference},set:function(e){if(e!==this._heightReference){this._heightReference=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i].billboard;l(r)&&(r.heightReference=e)}let n=this._backgroundBillboard;l(n)&&(n.heightReference=e),cM(this),this._updateClamping()}}},text:{get:function(){return this._text},set:function(e){if(this._text!==e){this._text=e;let t=e.replace(/\u00ad/g,"");this._renderedText=l_.enableRightToLeftDetection?f6e(t):t,Tb(this)}}},font:{get:function(){return this._font},set:function(e){this._font!==e&&(this._font=e,Tb(this),cce(this))}},fillColor:{get:function(){return this._fillColor},set:function(e){let t=this._fillColor;H.equals(t,e)||(H.clone(e,t),Tb(this))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;H.equals(t,e)||(H.clone(e,t),Tb(this))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Tb(this))}},showBackground:{get:function(){return this._showBackground},set:function(e){this._showBackground!==e&&(this._showBackground=e,Tb(this))}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){let t=this._backgroundColor;if(!H.equals(t,e)){H.clone(e,t);let n=this._backgroundBillboard;l(n)&&(n.color=t)}}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){let t=this._backgroundPadding;z.equals(t,e)||(z.clone(e,t),cM(this))}},style:{get:function(){return this._style},set:function(e){this._style!==e&&(this._style=e,Tb(this))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;if(!z.equals(t,e)){z.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.pixelOffset=e)}let i=this._backgroundBillboard;l(i)&&(i.pixelOffset=e)}}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;if(!Mt.equals(t,e)){this._translucencyByDistance=Mt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.translucencyByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.translucencyByDistance=e)}}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;if(!Mt.equals(t,e)){this._pixelOffsetScaleByDistance=Mt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.pixelOffsetScaleByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.pixelOffsetScaleByDistance=e)}}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;if(!Mt.equals(t,e)){this._scaleByDistance=Mt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.scaleByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.scaleByDistance=e)}}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;if(!h.equals(t,e)){h.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.eyeOffset=e)}let i=this._backgroundBillboard;l(i)&&(i.eyeOffset=e)}}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,cM(this))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){if(this._verticalOrigin!==e){this._verticalOrigin=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.verticalOrigin=e)}let n=this._backgroundBillboard;l(n)&&(n.verticalOrigin=e),cM(this)}}},scale:{get:function(){return this._scale},set:function(e){if(this._scale!==e){this._scale=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.scale=e*this._relativeSize)}let n=this._backgroundBillboard;l(n)&&(n.scale=e*this._relativeSize),cM(this)}}},totalScale:{get:function(){return this._scale*this._relativeSize}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){if(!It.equals(e,this._distanceDisplayCondition)){this._distanceDisplayCondition=It.clone(e,this._distanceDisplayCondition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.distanceDisplayCondition=e)}let n=this._backgroundBillboard;l(n)&&(n.distanceDisplayCondition=e)}}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){if(this._disableDepthTestDistance!==e){this._disableDepthTestDistance=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.disableDepthTestDistance=e)}let n=this._backgroundBillboard;l(n)&&(n.disableDepthTestDistance=e)}}},id:{get:function(){return this._id},set:function(e){if(this._id!==e){this._id=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.id=e)}let n=this._backgroundBillboard;l(n)&&(n.id=e)}}},pickId:{get:function(){if(!(this._glyphs.length===0||!l(this._glyphs[0].billboard)))return this._glyphs[0].billboard.pickId}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard._clampedPosition=e)}let n=this._backgroundBillboard;l(n)&&(n._clampedPosition=e)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){if(this._clusterShow!==e){this._clusterShow=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.clusterShow=e)}let n=this._backgroundBillboard;l(n)&&(n.clusterShow=e)}}}});l_.prototype._updateClamping=function(){uo._updateClamping(this._labelCollection,this)};l_.prototype.computeScreenSpacePosition=function(e,t){l(t)||(t=new z);let i=this._labelCollection.modelMatrix,o=l(this._actualClampedPosition)?this._actualClampedPosition:this._position;return uo._computeScreenSpacePosition(i,o,this._eyeOffset,this._pixelOffset,e,t)};l_.getScreenSpaceBoundingBox=function(e,t,n){let i=0,o=0,r=0,s=0,a=e.totalScale,c=e._backgroundBillboard;if(l(c))i=t.x+c._translate.x,o=t.y-c._translate.y,r=c.width*a,s=c.height*a,e.verticalOrigin===Rn.BOTTOM||e.verticalOrigin===Rn.BASELINE?o-=s:e.verticalOrigin===Rn.CENTER&&(o-=s*.5);else{i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;let u=0,f=0,d=e._glyphs,p=d.length;for(let g=0;g<p;++g){let m=d[g],x=m.billboard;if(!l(x))continue;let b=t.x+x._translate.x,T=t.y-x._translate.y,C=m.dimensions.width*a,A=m.dimensions.height*a;e.verticalOrigin===Rn.BOTTOM||e.verticalOrigin===Rn.BASELINE?T-=A:e.verticalOrigin===Rn.CENTER&&(T-=A*.5),e._verticalOrigin===Rn.TOP?T+=Vs.PADDING*a:(e._verticalOrigin===Rn.BOTTOM||e._verticalOrigin===Rn.BASELINE)&&(T-=Vs.PADDING*a),i=Math.min(i,b),o=Math.min(o,T),u=Math.max(u,b+C),f=Math.max(f,T+A)}r=u-i,s=f-o}return l(n)||(n=new Ge),n.x=i,n.y=o,n.width=r,n.height=s,n};l_.prototype.equals=function(e){return this===e||l(e)&&this._show===e._show&&this._scale===e._scale&&this._outlineWidth===e._outlineWidth&&this._showBackground===e._showBackground&&this._style===e._style&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&this._renderedText===e._renderedText&&this._font===e._font&&h.equals(this._position,e._position)&&H.equals(this._fillColor,e._fillColor)&&H.equals(this._outlineColor,e._outlineColor)&&H.equals(this._backgroundColor,e._backgroundColor)&&z.equals(this._backgroundPadding,e._backgroundPadding)&&z.equals(this._pixelOffset,e._pixelOffset)&&h.equals(this._eyeOffset,e._eyeOffset)&&Mt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Mt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Mt.equals(this._scaleByDistance,e._scaleByDistance)&&It.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._id===e._id};l_.prototype.isDestroyed=function(){return!1};l_.enableRightToLeftDetection=!1;function s6e(e,t){let n=/[a-zA-Z0-9]/,i=/[()[\]{}<>]/,o=[],r="",s=ls.LTR,a="",c=e.length;for(let u=0;u<c;++u){let f=e.charAt(u);t.test(f)?a=ls.RTL:n.test(f)?a=ls.LTR:i.test(f)?a=ls.BRACKETS:a=ls.WEAK,u===0&&(s=a),s===a&&a!==ls.BRACKETS?r+=f:(r!==""&&o.push({Type:s,Word:r}),s=a,r=f)}return o.push({Type:a,Word:r}),o}function a6e(e){return e.split("").reverse().join("")}function uM(e,t,n){return e.slice(0,t)+n+e.slice(t)}function c6e(e){switch(e){case"(":return")";case")":return"(";case"[":return"]";case"]":return"[";case"{":return"}";case"}":return"{";case"<":return">";case">":return"<"}}var l6e="\u05D0-\u05EA",u6e="\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF",ace=new RegExp(`[${l6e}${u6e}]`);function f6e(e){let t=e.split(` `),n="";for(let i=0;i<t.length;i++){let o=t[i],r=ace.test(o.charAt(0)),s=s6e(o,ace),a=0,c="";for(let u=0;u<s.length;++u){let f=s[u],d=f.Type===ls.BRACKETS?c6e(f.Word):a6e(f.Word);r?f.Type===ls.RTL?(c=d+c,a=0):f.Type===ls.LTR?(c=uM(c,a,f.Word),a+=f.Word.length):(f.Type===ls.WEAK||f.Type===ls.BRACKETS)&&(f.Type===ls.WEAK&&s[u-1].Type===ls.BRACKETS?c=d+c:s[u-1].Type===ls.RTL?(c=d+c,a=0):s.length>u+1?s[u+1].Type===ls.RTL?(c=d+c,a=0):(c=uM(c,a,f.Word),a+=f.Word.length):c=uM(c,0,d)):f.Type===ls.RTL?c=uM(c,a,d):f.Type===ls.LTR?(c+=f.Word,a=c.length):(f.Type===ls.WEAK||f.Type===ls.BRACKETS)&&(u>0&&s[u-1].Type===ls.RTL?s.length>u+1?s[u+1].Type===ls.RTL?c=uM(c,a,d):(c+=f.Word,a=c.length):c+=f.Word:(c+=f.Word,a=c.length))}n+=c,i<t.length-1&&(n+=` `)}return n}var Sy=l_;var dce=wo(lce(),1);function h6e(){this.textureInfo=void 0,this.dimensions=void 0,this.billboard=void 0}function m6e(e,t,n){this.labelCollection=e,this.index=t,this.dimensions=n}var p6e=1.2,hce="ID_WHITE_PIXEL",VW=new z(4,4),_6e=new Ge(1,1,1,1);function g6e(e){let t=document.createElement("canvas");t.width=VW.x,t.height=VW.y;let n=t.getContext("2d");return n.fillStyle="#fff",n.fillRect(0,0,t.width,t.height),e.addImage(hce,t)}var Rf={};function y6e(e,t,n,i,o,r,s){return Rf.font=t,Rf.fillColor=n,Rf.strokeColor=i,Rf.strokeWidth=o,Rf.padding=Vs.PADDING,s===Rn.CENTER?Rf.textBaseline="middle":s===Rn.TOP?Rf.textBaseline="top":Rf.textBaseline="bottom",Rf.fill=r===Uo.FILL||r===Uo.FILL_AND_OUTLINE,Rf.stroke=r===Uo.OUTLINE||r===Uo.FILL_AND_OUTLINE,Rf.backgroundColor=H.BLACK,bb(e,Rf)}function UW(e,t){t.textureInfo=void 0,t.dimensions=void 0;let n=t.billboard;l(n)&&(n.show=!1,n.image=void 0,l(n._removeCallbackFunc)&&(n._removeCallbackFunc(),n._removeCallbackFunc=void 0),e._spareBillboards.push(n),t.billboard=void 0)}function x6e(e,t,n,i){i.index=e.addImageSync(t,n)}var b6e=new dce.default;function T6e(e,t){let n=t._renderedText,i=b6e.splitGraphemes(n),o=i.length,r=t._glyphs,s=r.length,a,c,u;if(t._relativeSize=t._fontSize/Vs.FONT_SIZE,o<s)for(c=o;c<s;++c)UW(e,r[c]);r.length=o;let f=t.show&&t._showBackground&&n.split(` `).join("").length>0,d=t._backgroundBillboard,p=e._backgroundBillboardCollection;f?(l(d)||(d=p.add({collection:e,image:hce,imageSubRegion:_6e}),t._backgroundBillboard=d),d.color=t._backgroundColor,d.show=t._show,d.position=t._position,d.eyeOffset=t._eyeOffset,d.pixelOffset=t._pixelOffset,d.horizontalOrigin=di.LEFT,d.verticalOrigin=t._verticalOrigin,d.heightReference=t._heightReference,d.scale=t.totalScale,d.pickPrimitive=t,d.id=t._id,d.translucencyByDistance=t._translucencyByDistance,d.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,d.scaleByDistance=t._scaleByDistance,d.distanceDisplayCondition=t._distanceDisplayCondition,d.disableDepthTestDistance=t._disableDepthTestDistance,d.clusterShow=t.clusterShow):l(d)&&(p.remove(d),t._backgroundBillboard=d=void 0);let g=e._glyphTextureCache;for(u=0;u<o;++u){let m=i[u],x=t._verticalOrigin,b=JSON.stringify([m,t._fontFamily,t._fontStyle,t._fontWeight,+x]),T=g[b];if(!l(T)){let C=`${t._fontStyle} ${t._fontWeight} ${Vs.FONT_SIZE}px ${t._fontFamily}`,A=y6e(m,C,H.WHITE,H.WHITE,0,Uo.FILL,x);if(T=new m6e(e,-1,A.dimensions),g[b]=T,A.width>0&&A.height>0){let E=(0,fce.default)(A,{cutoff:Vs.CUTOFF,radius:Vs.RADIUS}),v=A.getContext("2d"),D=A.width,O=A.height,I=v.getImageData(0,0,D,O);for(let L=0;L<D;L++)for(let N=0;N<O;N++){let _=N*D+L,S=E[_]*255,w=_*4;I.data[w+0]=S,I.data[w+1]=S,I.data[w+2]=S,I.data[w+3]=S}v.putImageData(I,0,0),m!==" "&&x6e(e._textureAtlas,b,A,T)}}if(a=r[u],l(a)?T.index===-1?UW(e,a):l(a.textureInfo)&&(a.textureInfo=void 0):(a=new h6e,r[u]=a),a.textureInfo=T,a.dimensions=T.dimensions,T.index!==-1){let C=a.billboard,A=e._spareBillboards;l(C)||(A.length>0?C=A.pop():(C=e._billboardCollection.add({collection:e}),C._labelDimensions=new z,C._labelTranslate=new z),a.billboard=C),C.show=t._show,C.position=t._position,C.eyeOffset=t._eyeOffset,C.pixelOffset=t._pixelOffset,C.horizontalOrigin=di.LEFT,C.verticalOrigin=t._verticalOrigin,C.heightReference=t._heightReference,C.scale=t.totalScale,C.pickPrimitive=t,C.id=t._id,C.image=b,C.translucencyByDistance=t._translucencyByDistance,C.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,C.scaleByDistance=t._scaleByDistance,C.distanceDisplayCondition=t._distanceDisplayCondition,C.disableDepthTestDistance=t._disableDepthTestDistance,C._batchIndex=t._batchIndex,C.outlineColor=t.outlineColor,t.style===Uo.FILL_AND_OUTLINE?(C.color=t._fillColor,C.outlineWidth=t.outlineWidth):t.style===Uo.FILL?(C.color=t._fillColor,C.outlineWidth=0):t.style===Uo.OUTLINE&&(C.color=H.TRANSPARENT,C.outlineWidth=t.outlineWidth)}}t._repositionAllGlyphs=!0}function uce(e,t,n){return t===di.CENTER?-e/2:t===di.RIGHT?-(e+n.x):n.x}var ar=new z,A6e=new z;function C6e(e){let t=e._glyphs,n=e._renderedText,i,o,r=0,s=0,a=[],c=Number.NEGATIVE_INFINITY,u=0,f=1,d,p=t.length,g=e._backgroundBillboard,m=z.clone(l(g)?e._backgroundPadding:z.ZERO,A6e);for(m.x/=e._relativeSize,m.y/=e._relativeSize,d=0;d<p;++d)n.charAt(d)===` `?(a.push(r),++f,r=0):(i=t[d],o=i.dimensions,u=Math.max(u,o.height-o.descent),c=Math.max(c,o.descent),r+=o.width-o.minx,d<p-1&&(r+=t[d+1].dimensions.minx),s=Math.max(s,r));a.push(r);let x=u+c,b=e.totalScale,T=e._horizontalOrigin,C=e._verticalOrigin,A=0,E=a[A],v=uce(E,T,m),D=(l(e._lineHeight)?e._lineHeight:p6e*e._fontSize)/e._relativeSize,O=D*(f-1),I=s,L=x+O;l(g)&&(I+=m.x*2,L+=m.y*2,g._labelHorizontalOrigin=T),ar.x=v*b,ar.y=0;let N=!0,_=0;for(d=0;d<p;++d)if(n.charAt(d)===` `)++A,_+=D,E=a[A],v=uce(E,T,m),ar.x=v*b,N=!0;else if(i=t[d],o=i.dimensions,C===Rn.TOP?(ar.y=o.height-u-m.y,ar.y+=Vs.PADDING):C===Rn.CENTER?ar.y=(O+o.height-u)/2:C===Rn.BASELINE?(ar.y=O,ar.y-=Vs.PADDING):(ar.y=O+c+m.y,ar.y-=Vs.PADDING),ar.y=(ar.y-o.descent-_)*b,N&&(ar.x-=Vs.PADDING*b,N=!1),l(i.billboard)&&(i.billboard._setTranslate(ar),i.billboard._labelDimensions.x=I,i.billboard._labelDimensions.y=L,i.billboard._labelHorizontalOrigin=T),d<p-1){let S=t[d+1];ar.x+=(o.width-o.minx+S.dimensions.minx)*b}if(l(g)&&n.split(` `).join("").length>0&&(T===di.CENTER?v=-s/2-m.x:T===di.RIGHT?v=-(s+m.x*2):v=0,ar.x=v*b,C===Rn.TOP?ar.y=x-u-c:C===Rn.CENTER?ar.y=(x-u)/2-c:C===Rn.BASELINE?ar.y=-m.y-c:ar.y=0,ar.y=ar.y*b,g.width=I,g.height=L,g._setTranslate(ar),g._labelTranslate=z.clone(ar,g._labelTranslate)),ff(e.heightReference))for(d=0;d<p;++d){i=t[d];let S=i.billboard;l(S)&&(S._labelTranslate=z.clone(ar,S._labelTranslate))}}function mce(e,t){let n=t._glyphs;for(let i=0,o=n.length;i<o;++i)UW(e,n[i]);l(t._backgroundBillboard)&&(e._backgroundBillboardCollection.remove(t._backgroundBillboard),t._backgroundBillboard=void 0),t._labelCollection=void 0,l(t._removeCallbackFunc)&&t._removeCallbackFunc(),ue(t)}function ym(e){e=y(e,y.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._backgroundTextureAtlas=void 0,this._backgroundBillboardCollection=new Cu({scene:this._scene}),this._backgroundBillboardCollection.destroyTextureAtlas=!1,this._billboardCollection=new Cu({scene:this._scene,batchTable:this._batchTable}),this._billboardCollection.destroyTextureAtlas=!1,this._billboardCollection._sdf=!0,this._spareBillboards=[],this._glyphTextureCache={},this._labels=[],this._labelsToUpdate=[],this._totalGlyphCount=0,this._highlightColor=H.clone(H.WHITE),this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,Co.OPAQUE_AND_TRANSLUCENT)}Object.defineProperties(ym.prototype,{length:{get:function(){return this._labels.length}}});ym.prototype.add=function(e){let t=new Sy(e,this);return this._labels.push(t),this._labelsToUpdate.push(t),t};ym.prototype.remove=function(e){if(l(e)&&e._labelCollection===this){let t=this._labels.indexOf(e);if(t!==-1)return this._labels.splice(t,1),mce(this,e),!0}return!1};ym.prototype.removeAll=function(){let e=this._labels;for(let t=0,n=e.length;t<n;++t)mce(this,e[t]);e.length=0};ym.prototype.contains=function(e){return l(e)&&e._labelCollection===this};ym.prototype.get=function(e){return this._labels[e]};ym.prototype.update=function(e){if(!this.show)return;let t=this._billboardCollection,n=this._backgroundBillboardCollection;t.modelMatrix=this.modelMatrix,t.debugShowBoundingVolume=this.debugShowBoundingVolume,n.modelMatrix=this.modelMatrix,n.debugShowBoundingVolume=this.debugShowBoundingVolume;let i=e.context;l(this._textureAtlas)||(this._textureAtlas=new Ey({context:i}),t.textureAtlas=this._textureAtlas),l(this._backgroundTextureAtlas)||(this._backgroundTextureAtlas=new Ey({context:i,initialSize:VW}),n.textureAtlas=this._backgroundTextureAtlas,g6e(this._backgroundTextureAtlas));let o=this._labelsToUpdate.length;for(let s=0;s<o;++s){let a=this._labelsToUpdate[s];if(a.isDestroyed())continue;let c=a._glyphs.length;a._rebindAllGlyphs&&(T6e(this,a),a._rebindAllGlyphs=!1),a._repositionAllGlyphs&&(C6e(a),a._repositionAllGlyphs=!1);let u=a._glyphs.length-c;this._totalGlyphCount+=u}let r=n.length>0?Co.TRANSLUCENT:this.blendOption;t.blendOption=r,n.blendOption=r,t._highlightColor=this._highlightColor,n._highlightColor=this._highlightColor,this._labelsToUpdate.length=0,n.update(e),t.update(e)};ym.prototype.isDestroyed=function(){return!1};ym.prototype.destroy=function(){return this.removeAll(),this._billboardCollection=this._billboardCollection.destroy(),this._textureAtlas=this._textureAtlas&&this._textureAtlas.destroy(),this._backgroundBillboardCollection=this._backgroundBillboardCollection.destroy(),this._backgroundTextureAtlas=this._backgroundTextureAtlas&&this._backgroundTextureAtlas.destroy(),ue(this)};var xm=ym;var fM=`in vec3 position3DHigh; in vec3 position3DLow; in vec3 position2DHigh; in vec3 position2DLow; in vec3 prevPosition3DHigh; in vec3 prevPosition3DLow; in vec3 prevPosition2DHigh; in vec3 prevPosition2DLow; in vec3 nextPosition3DHigh; in vec3 nextPosition3DLow; in vec3 nextPosition2DHigh; in vec3 nextPosition2DLow; in vec4 texCoordExpandAndBatchIndex; out vec2 v_st; out float v_width; out vec4 v_pickColor; out float v_polylineAngle; void main() { float texCoord = texCoordExpandAndBatchIndex.x; float expandDir = texCoordExpandAndBatchIndex.y; bool usePrev = texCoordExpandAndBatchIndex.z < 0.0; float batchTableIndex = texCoordExpandAndBatchIndex.w; vec2 widthAndShow = batchTable_getWidthAndShow(batchTableIndex); float width = widthAndShow.x + 0.5; float show = widthAndShow.y; if (width < 1.0) { show = 0.0; } vec4 pickColor = batchTable_getPickColor(batchTableIndex); vec4 p, prev, next; if (czm_morphTime == 1.0) { p = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz); prev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz); next = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz); } else if (czm_morphTime == 0.0) { p = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); prev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy); next = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy); } else { p = czm_columbusViewMorph( czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy), czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz), czm_morphTime); prev = czm_columbusViewMorph( czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy), czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz), czm_morphTime); next = czm_columbusViewMorph( czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy), czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz), czm_morphTime); } #ifdef DISTANCE_DISPLAY_CONDITION vec3 centerHigh = batchTable_getCenterHigh(batchTableIndex); vec4 centerLowAndRadius = batchTable_getCenterLowAndRadius(batchTableIndex); vec3 centerLow = centerLowAndRadius.xyz; float radius = centerLowAndRadius.w; vec2 distanceDisplayCondition = batchTable_getDistanceDisplayCondition(batchTableIndex); float lengthSq; if (czm_sceneMode == czm_sceneMode2D) { lengthSq = czm_eyeHeight2D.y; } else { vec4 center = czm_translateRelativeToEye(centerHigh.xyz, centerLow.xyz); lengthSq = max(0.0, dot(center.xyz, center.xyz) - radius * radius); } float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; if (lengthSq < nearSq || lengthSq > farSq) { show = 0.0; } #endif float polylineAngle; vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, polylineAngle); gl_Position = czm_viewportOrthographic * positionWC * show; v_st.s = texCoord; v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w); v_width = width; v_pickColor = pickColor; v_polylineAngle = polylineAngle; } `;var el={};el.numberOfPoints=function(e,t,n){let i=h.distance(e,t);return Math.ceil(i/n)};el.numberOfPointsRhumbLine=function(e,t,n){let i=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(i/(n*n))))};var E6e=new fe;el.extractHeights=function(e,t){let n=e.length,i=new Array(n);for(let o=0;o<n;o++){let r=e[o];i[o]=t.cartesianToCartographic(r,E6e).height}return i};var S6e=new F,v6e=new h,pce=new h,w6e=new ln(h.UNIT_X,0),_ce=new h,D6e=new ln(h.UNIT_X,0),P6e=new h,I6e=new h,HW=[];function yce(e,t,n){let i=HW;i.length=e;let o;if(t===n){for(o=0;o<e;o++)i[o]=t;return i}let s=(n-t)/e;for(o=0;o<e;o++){let a=t+o*s;i[o]=a}return i}var XU=new fe,YU=new fe,vy=new h,GW=new h,R6e=new h,zW=new Sp,dM=new Ea;function O6e(e,t,n,i,o,r,s,a){let c=i.scaleToGeodeticSurface(e,GW),u=i.scaleToGeodeticSurface(t,R6e),f=el.numberOfPoints(e,t,n),d=i.cartesianToCartographic(c,XU),p=i.cartesianToCartographic(u,YU),g=yce(f,o,r);zW.setEndPoints(d,p);let m=zW.surfaceDistance/f,x=a;d.height=o;let b=i.cartographicToCartesian(d,vy);h.pack(b,s,x),x+=3;for(let T=1;T<f;T++){let C=zW.interpolateUsingSurfaceDistance(T*m,YU);C.height=g[T],b=i.cartographicToCartesian(C,vy),h.pack(b,s,x),x+=3}return x}function M6e(e,t,n,i,o,r,s,a){let c=i.cartesianToCartographic(e,XU),u=i.cartesianToCartographic(t,YU),f=el.numberOfPointsRhumbLine(c,u,n);c.height=0,u.height=0;let d=yce(f,o,r);dM.ellipsoid.equals(i)||(dM=new Ea(void 0,void 0,i)),dM.setEndPoints(c,u);let p=dM.surfaceDistance/f,g=a;c.height=o;let m=i.cartographicToCartesian(c,vy);h.pack(m,s,g),g+=3;for(let x=1;x<f;x++){let b=dM.interpolateUsingSurfaceDistance(x*p,YU);b.height=d[x],m=i.cartographicToCartesian(b,vy),h.pack(m,s,g),g+=3}return g}el.wrapLongitude=function(e,t){let n=[],i=[];if(l(e)&&e.length>0){t=y(t,F.IDENTITY);let o=F.inverseTransformation(t,S6e),r=F.multiplyByPoint(o,h.ZERO,v6e),s=h.normalize(F.multiplyByPointAsVector(o,h.UNIT_Y,pce),pce),a=ln.fromPointNormal(r,s,w6e),c=h.normalize(F.multiplyByPointAsVector(o,h.UNIT_X,_ce),_ce),u=ln.fromPointNormal(r,c,D6e),f=1;n.push(h.clone(e[0]));let d=n[0],p=e.length;for(let g=1;g<p;++g){let m=e[g];if(ln.getPointDistance(u,d)<0||ln.getPointDistance(u,m)<0){let x=Qn.lineSegmentPlane(d,m,a,P6e);if(l(x)){let b=h.multiplyByScalar(s,5e-9,I6e);ln.getPointDistance(a,d)<0&&h.negate(b,b),n.push(h.add(x,b,new h)),i.push(f+1),h.negate(b,b),n.push(h.add(x,b,new h)),f=1}}n.push(h.clone(e[g])),f++,d=m}i.push(f)}return{positions:n,lengths:i}};el.generateArc=function(e){l(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,te.WGS84),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let x=i.scaleToGeodeticSurface(t[0],GW);if(o=r?o[0]:o,o!==0){let b=i.geodeticSurfaceNormal(x,vy);h.multiplyByScalar(b,o,b),h.add(x,b,x)}return[x.x,x.y,x.z]}let s=e.minDistance;if(!l(s)){let x=y(e.granularity,R.RADIANS_PER_DEGREE);s=R.chordLength(x,i.maximumRadius)}let a=0,c;for(c=0;c<n-1;c++)a+=el.numberOfPoints(t[c],t[c+1],s);let u=(a+1)*3,f=new Array(u),d=0;for(c=0;c<n-1;c++){let x=t[c],b=t[c+1],T=r?o[c]:o,C=r?o[c+1]:o;d=O6e(x,b,s,i,T,C,f,d)}HW.length=0;let p=t[n-1],g=i.cartesianToCartographic(p,XU);g.height=r?o[n-1]:o;let m=i.cartographicToCartesian(g,vy);return h.pack(m,f,u-3),f};var gce=new fe,L6e=new fe;el.generateRhumbArc=function(e){l(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,te.WGS84),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let T=i.scaleToGeodeticSurface(t[0],GW);if(o=r?o[0]:o,o!==0){let C=i.geodeticSurfaceNormal(T,vy);h.multiplyByScalar(C,o,C),h.add(T,C,T)}return[T.x,T.y,T.z]}let s=y(e.granularity,R.RADIANS_PER_DEGREE),a=0,c,u=i.cartesianToCartographic(t[0],gce),f;for(c=0;c<n-1;c++)f=i.cartesianToCartographic(t[c+1],L6e),a+=el.numberOfPointsRhumbLine(u,f,s),u=fe.clone(f,gce);let d=(a+1)*3,p=new Array(d),g=0;for(c=0;c<n-1;c++){let T=t[c],C=t[c+1],A=r?o[c]:o,E=r?o[c+1]:o;g=M6e(T,C,s,i,A,E,p,g)}HW.length=0;let m=t[n-1],x=i.cartesianToCartographic(m,XU);x.height=r?o[n-1]:o;let b=i.cartographicToCartesian(x,vy);return h.pack(b,p,d-3),p};el.generateCartesianArc=function(e){let t=el.generateArc(e),n=t.length/3,i=new Array(n);for(let o=0;o<n;o++)i[o]=h.unpack(t,o*3);return i};el.generateCartesianRhumbArc=function(e){let t=el.generateRhumbArc(e),n=t.length/3,i=new Array(n);for(let o=0;o<n;o++)i[o]=h.unpack(t,o*3);return i};var wi=el;function Eu(e,t){e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._width=y(e.width,1),this._loop=y(e.loop,!1),this._distanceDisplayCondition=e.distanceDisplayCondition,this._material=e.material,l(this._material)||(this._material=Vi.fromType(Vi.ColorType,{color:new H(1,1,1,1)}));let n=e.positions;l(n)||(n=[]),this._positions=n,this._actualPositions=xo(n,h.equalsEpsilon),this._loop&&this._actualPositions.length>2&&(this._actualPositions===this._positions&&(this._actualPositions=n.slice()),this._actualPositions.push(h.clone(this._actualPositions[0]))),this._length=this._actualPositions.length,this._id=e.id;let i;l(t)&&(i=F.clone(t.modelMatrix)),this._modelMatrix=i,this._segments=wi.wrapLongitude(this._actualPositions,i),this._actualLength=void 0,this._propertiesChanged=new Uint32Array(bce),this._polylineCollection=t,this._dirty=!1,this._pickId=void 0,this._boundingVolume=ae.fromPoints(this._actualPositions),this._boundingVolumeWC=ae.transform(this._boundingVolume,this._modelMatrix),this._boundingVolume2D=new ae}var xce=Eu.POSITION_INDEX=0,N6e=Eu.SHOW_INDEX=1,F6e=Eu.WIDTH_INDEX=2,B6e=Eu.MATERIAL_INDEX=3,hM=Eu.POSITION_SIZE_INDEX=4,k6e=Eu.DISTANCE_DISPLAY_CONDITION=5,bce=Eu.NUMBER_OF_PROPERTIES=6;function u_(e,t){++e._propertiesChanged[t];let n=e._polylineCollection;l(n)&&(n._updatePolyline(e,t),e._dirty=!0)}Object.defineProperties(Eu.prototype,{show:{get:function(){return this._show},set:function(e){e!==this._show&&(this._show=e,u_(this,N6e))}},positions:{get:function(){return this._positions},set:function(e){let t=xo(e,h.equalsEpsilon);this._loop&&t.length>2&&(t===e&&(t=e.slice()),t.push(h.clone(t[0]))),(this._actualPositions.length!==t.length||this._actualPositions.length!==this._length)&&u_(this,hM),this._positions=e,this._actualPositions=t,this._length=t.length,this._boundingVolume=ae.fromPoints(this._actualPositions,this._boundingVolume),this._boundingVolumeWC=ae.transform(this._boundingVolume,this._modelMatrix,this._boundingVolumeWC),u_(this,xce),this.update()}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,u_(this,B6e))}},width:{get:function(){return this._width},set:function(e){let t=this._width;e!==t&&(this._width=e,u_(this,F6e))}},loop:{get:function(){return this._loop},set:function(e){if(e!==this._loop){let t=this._actualPositions;e?t.length>2&&!h.equals(t[0],t[t.length-1])&&(t.length===this._positions.length&&(this._actualPositions=t=this._positions.slice()),t.push(h.clone(t[0]))):t.length>2&&h.equals(t[0],t[t.length-1])&&(t.length-1===this._positions.length?this._actualPositions=this._positions:t.pop()),this._loop=e,u_(this,hM)}}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},isDestroyed:{get:function(){return!l(this._polylineCollection)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){It.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=It.clone(e,this._distanceDisplayCondition),u_(this,k6e))}}});Eu.prototype.update=function(){let e=F.IDENTITY;l(this._polylineCollection)&&(e=this._polylineCollection.modelMatrix);let t=this._segments.positions.length,n=this._segments.lengths,i=this._propertiesChanged[xce]>0||this._propertiesChanged[hM]>0;if((!F.equals(e,this._modelMatrix)||i)&&(this._segments=wi.wrapLongitude(this._actualPositions,e),this._boundingVolumeWC=ae.transform(this._boundingVolume,e,this._boundingVolumeWC)),this._modelMatrix=F.clone(e,this._modelMatrix),this._segments.positions.length!==t)u_(this,hM);else{let o=n.length;for(let r=0;r<o;++r)if(n[r]!==this._segments.lengths[r]){u_(this,hM);break}}};Eu.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._polylineCollection,id:this._id})),this._pickId};Eu.prototype._clean=function(){this._dirty=!1;let e=this._propertiesChanged;for(let t=0;t<bce-1;++t)e[t]=0};Eu.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._material=this._material&&this._material.destroy(),this._polylineCollection=void 0};var Of=Eu;var V6e=Of.SHOW_INDEX,U6e=Of.WIDTH_INDEX,jW=Of.POSITION_INDEX,z6e=Of.MATERIAL_INDEX,Tce=Of.POSITION_SIZE_INDEX,H6e=Of.DISTANCE_DISPLAY_CONDITION,Dce=Of.NUMBER_OF_PROPERTIES,zl={texCoordExpandAndBatchIndex:0,position3DHigh:1,position3DLow:2,position2DHigh:3,position2DLow:4,prevPosition3DHigh:5,prevPosition3DLow:6,prevPosition2DHigh:7,prevPosition2DLow:8,nextPosition3DHigh:9,nextPosition3DLow:10,nextPosition2DHigh:11,nextPosition2DLow:12};function $d(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._opaqueRS=void 0,this._translucentRS=void 0,this._colorCommands=[],this._polylinesUpdated=!1,this._polylinesRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(Dce),this._polylines=[],this._polylineBuckets={},this._positionBufferUsage={bufferUsage:Fe.STATIC_DRAW,frameCount:0},this._mode=void 0,this._polylinesToUpdate=[],this._vertexArrays=[],this._positionBuffer=void 0,this._texCoordExpandAndBatchIndexBuffer=void 0,this._batchTable=void 0,this._createBatchTable=!1,this._useHighlightColor=!1,this._highlightColor=H.clone(H.WHITE);let t=this;this._uniformMap={u_highlightColor:function(){return t._highlightColor}}}Object.defineProperties($d.prototype,{length:{get:function(){return qW(this),this._polylines.length}}});$d.prototype.add=function(e){let t=new Of(e,this);return t._index=this._polylines.length,this._polylines.push(t),this._createVertexArray=!0,this._createBatchTable=!0,t};$d.prototype.remove=function(e){if(this.contains(e)){if(this._polylinesRemoved=!0,this._createVertexArray=!0,this._createBatchTable=!0,l(e._bucket)){let t=e._bucket;t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()}return e._destroy(),!0}return!1};$d.prototype.removeAll=function(){YW(this),Mce(this),this._polylineBuckets={},this._polylinesRemoved=!1,this._polylines.length=0,this._polylinesToUpdate.length=0,this._createVertexArray=!0};$d.prototype.contains=function(e){return l(e)&&e._polylineCollection===this};$d.prototype.get=function(e){return qW(this),this._polylines[e]};function G6e(e,t){l(e._batchTable)&&e._batchTable.destroy();let n=[{functionName:"batchTable_getWidthAndShow",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:2},{functionName:"batchTable_getPickColor",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0},{functionName:"batchTable_getCenterHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"batchTable_getCenterLowAndRadius",componentDatatype:X.FLOAT,componentsPerAttribute:4},{functionName:"batchTable_getDistanceDisplayCondition",componentDatatype:X.FLOAT,componentsPerAttribute:2}];e._batchTable=new fx(t,n,e._polylines.length)}var Pce=new Gn,Ice=new oe,Rce=new z;$d.prototype.update=function(e){if(qW(this),this._polylines.length===0||!this.show)return;K6e(this,e);let t=e.context,n=e.mapProjection,i,o=this._propertiesChanged;if(this._createBatchTable){if(Nt.maximumVertexTextureImageUnits===0)throw new le("Vertex texture fetch support is required to render polylines. The maximum number of vertex texture image units must be greater than zero.");G6e(this,t),this._createBatchTable=!1}if(this._createVertexArray||j6e(this))Ece(this,t,n);else if(this._polylinesUpdated){let c=this._polylinesToUpdate;if(this._mode!==ne.SCENE3D){let u=c.length;for(let f=0;f<u;++f)i=c[f],i.update()}if(o[Tce]||o[z6e])Ece(this,t,n);else{let u=c.length,f=this._polylineBuckets;for(let d=0;d<u;++d){i=c[d],o=i._propertiesChanged;let p=i._bucket,g=0;for(let m in f)if(f.hasOwnProperty(m)){if(f[m]===p){o[jW]&&p.writeUpdate(g,i,this._positionBuffer,n);break}g+=f[m].lengthOfPositions}if((o[V6e]||o[U6e])&&this._batchTable.setBatchedAttribute(i._index,0,new z(i._width,i._show)),this._batchTable.attributes.length>2){if(o[jW]||o[Tce]){let m=e.mode===ne.SCENE2D?i._boundingVolume2D:i._boundingVolumeWC,x=Gn.fromCartesian(m.center,Pce),b=oe.fromElements(x.low.x,x.low.y,x.low.z,m.radius,Ice);this._batchTable.setBatchedAttribute(i._index,2,x.high),this._batchTable.setBatchedAttribute(i._index,3,b)}if(o[H6e]){let m=Rce;m.x=0,m.y=Number.MAX_VALUE;let x=i.distanceDisplayCondition;l(x)&&(m.x=x.near,m.y=x.far),this._batchTable.setBatchedAttribute(i._index,4,m)}}i._clean()}}c.length=0,this._polylinesUpdated=!1}o=this._propertiesChanged;for(let c=0;c<Dce;++c)o[c]=0;let r=F.IDENTITY;e.mode===ne.SCENE3D&&(r=this.modelMatrix);let s=e.passes,a=e.morphTime!==0;if((!l(this._opaqueRS)||this._opaqueRS.depthTest.enabled!==a)&&(this._opaqueRS=Ve.fromCache({depthMask:a,depthTest:{enabled:a}})),(!l(this._translucentRS)||this._translucentRS.depthTest.enabled!==a)&&(this._translucentRS=Ve.fromCache({blending:un.ALPHA_BLEND,depthMask:!a,depthTest:{enabled:a}})),this._batchTable.update(e),s.render||s.pick){let c=this._colorCommands;W6e(this,e,c,r)}};var mM=new ae,Ace=new ae;function W6e(e,t,n,i){let o=t.context,r=t.commandList,s=n.length,a=0,c=!0,u=e._vertexArrays,f=e.debugShowBoundingVolume,p=e._batchTable.getUniformMapCallback(),g=u.length;for(let m=0;m<g;++m){let x=u[m],b=x.buckets,T=b.length;for(let C=0;C<T;++C){let A=b[C],E=A.offset,v=A.bucket.shaderProgram,D=A.bucket.polylines,O=D.length,I,L,N=0,_,S;for(let w=0;w<O;++w){let P=D[w],M=Y6e(P._material);if(M!==I){if(l(I)&&N>0){let G=L.isTranslucent();a>=s?(_=new Ze({owner:e}),n.push(_)):_=n[a],++a,S=_t(p(L._uniforms),e._uniformMap),_.boundingVolume=ae.clone(mM,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=x.va,_.renderState=G?e._translucentRS:e._opaqueRS,_.pass=G?Ee.TRANSLUCENT:Ee.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=S,_.count=N,_.offset=E,E+=N,N=0,c=!0,r.push(_)}L=P._material,L.update(o),I=M}let B=P._locatorBuckets,U=B.length;for(let G=0;G<U;++G){let k=B[G];k.locator===A&&(N+=k.count)}let V;t.mode===ne.SCENE3D?V=P._boundingVolumeWC:t.mode===ne.COLUMBUS_VIEW?V=P._boundingVolume2D:t.mode===ne.SCENE2D?l(P._boundingVolume2D)&&(V=ae.clone(P._boundingVolume2D,Ace),V.center.x=0):l(P._boundingVolumeWC)&&l(P._boundingVolume2D)&&(V=ae.union(P._boundingVolumeWC,P._boundingVolume2D,Ace)),c?(c=!1,ae.clone(V,mM)):ae.union(V,mM,mM)}l(I)&&N>0&&(a>=s?(_=new Ze({owner:e}),n.push(_)):_=n[a],++a,S=_t(p(L._uniforms),e._uniformMap),_.boundingVolume=ae.clone(mM,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=x.va,_.renderState=L.isTranslucent()?e._translucentRS:e._opaqueRS,_.pass=L.isTranslucent()?Ee.TRANSLUCENT:Ee.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=S,_.count=N,_.offset=E,c=!0,r.push(_)),I=void 0}}n.length=a}$d.prototype.isDestroyed=function(){return!1};$d.prototype.destroy=function(){return Oce(this),YW(this),Mce(this),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function j6e(e){let t=!1,n=e._propertiesChanged,i=e._positionBufferUsage;return n[jW]?(i.bufferUsage!==Fe.STREAM_DRAW&&(t=!0,i.bufferUsage=Fe.STREAM_DRAW),i.frameCount=100):i.bufferUsage!==Fe.STATIC_DRAW&&(i.frameCount===0?(t=!0,i.bufferUsage=Fe.STATIC_DRAW):i.frameCount--),t}var Cce=[0,0,0];function Ece(e,t,n){e._createVertexArray=!1,YW(e),Oce(e),X6e(e);let i=[[]],o=i[0],r=e._batchTable,s=e._useHighlightColor,a=[0],c=0,u=[[]],f=0,d=e._polylineBuckets,p,g;for(p in d)d.hasOwnProperty(p)&&(g=d[p],g.updateShader(t,r,s),f+=g.lengthOfPositions);if(f>0){let m=e._mode,x=new Float32Array(6*f*3),b=new Float32Array(f*4),T,C=0,A=0,E=0;for(p in d)if(d.hasOwnProperty(p)){g=d[p],g.write(x,b,C,A,E,r,t,n),m===ne.MORPHING&&(l(T)||(T=new Float32Array(6*f*3)),g.writeForMorph(T,C));let S=g.lengthOfPositions;C+=6*S*3,A+=S*4,E+=S*4,c=g.updateIndices(i,a,u,c)}let v=e._positionBufferUsage.bufferUsage,D=Fe.STATIC_DRAW;e._positionBuffer=ct.createVertexBuffer({context:t,typedArray:x,usage:v});let O;l(T)&&(O=ct.createVertexBuffer({context:t,typedArray:T,usage:v})),e._texCoordExpandAndBatchIndexBuffer=ct.createVertexBuffer({context:t,typedArray:b,usage:D});let I=3*Float32Array.BYTES_PER_ELEMENT,L=4*Float32Array.BYTES_PER_ELEMENT,N=0,_=i.length;for(let S=0;S<_;++S)if(o=i[S],o.length>0){let w=new Uint16Array(o),P=ct.createIndexBuffer({context:t,typedArray:w,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT});N+=a[S];let M=6*(S*(I*R.SIXTY_FOUR_KILOBYTES)-N*I),B=I+M,U=I+B,V=I+U,G=I+V,k=I+G,Y=S*(L*R.SIXTY_FOUR_KILOBYTES)-N*L,W=[{index:zl.position3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:M,strideInBytes:6*I},{index:zl.position3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:B,strideInBytes:6*I},{index:zl.position2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:M,strideInBytes:6*I},{index:zl.position2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:B,strideInBytes:6*I},{index:zl.prevPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*I},{index:zl.prevPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*I},{index:zl.prevPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*I},{index:zl.prevPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*I},{index:zl.nextPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*I},{index:zl.nextPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*I},{index:zl.nextPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*I},{index:zl.nextPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*I},{index:zl.texCoordExpandAndBatchIndex,componentsPerAttribute:4,componentDatatype:X.FLOAT,vertexBuffer:e._texCoordExpandAndBatchIndexBuffer,offsetInBytes:Y}],Q,j,K,Z;m===ne.SCENE3D?(j=e._positionBuffer,Q="vertexBuffer",K=Cce,Z="value"):m===ne.SCENE2D||m===ne.COLUMBUS_VIEW?(j=Cce,Q="value",K=e._positionBuffer,Z="vertexBuffer"):(j=O,Q="vertexBuffer",K=e._positionBuffer,Z="vertexBuffer"),W[0][Q]=j,W[1][Q]=j,W[2][Z]=K,W[3][Z]=K,W[4][Q]=j,W[5][Q]=j,W[6][Z]=K,W[7][Z]=K,W[8][Q]=j,W[9][Q]=j,W[10][Z]=K,W[11][Z]=K;let he=new ei({context:t,attributes:W,indexBuffer:P});e._vertexArrays.push({va:he,buckets:u[S]})}}}function q6e(e,t){return t instanceof Dt?t.id:t}var KU=[];function Y6e(e){let t=Vi._uniformList[e.type],n=t.length;KU.length=2*n;let i=0;for(let o=0;o<n;++o){let r=t[o];KU[i]=r,KU[i+1]=e._uniforms[r](),i+=2}return`${e.type}:${JSON.stringify(KU,q6e)}`}function X6e(e){let t=e._mode,n=e._modelMatrix,i=e._polylineBuckets={},o=e._polylines,r=o.length;for(let s=0;s<r;++s){let a=o[s];if(a._actualPositions.length>1){a.update();let c=a.material,u=i[c.type];l(u)||(u=i[c.type]=new bm(c,t,n)),u.addPolyline(a)}}}function K6e(e,t){let n=t.mode;(e._mode!==n||!F.equals(e._modelMatrix,e.modelMatrix))&&(e._mode=n,e._modelMatrix=F.clone(e.modelMatrix),e._createVertexArray=!0)}function qW(e){if(e._polylinesRemoved){e._polylinesRemoved=!1;let t=[],n=[],i=0,o,r=e._polylines.length;for(let s=0;s<r;++s)o=e._polylines[s],o.isDestroyed||(o._index=i++,n.push(o),t.push(o));e._polylines=t,e._polylinesToUpdate=n}}function YW(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)if(!t[i].isDestroyed){let o=t[i]._bucket;l(o)&&(o.shaderProgram=o.shaderProgram&&o.shaderProgram.destroy())}}function Oce(e){let t=e._vertexArrays.length;for(let n=0;n<t;++n)e._vertexArrays[n].va.destroy();e._vertexArrays.length=0}$d.prototype._updatePolyline=function(e,t){this._polylinesUpdated=!0,e._dirty||this._polylinesToUpdate.push(e),++this._propertiesChanged[t]};function Mce(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)t[i].isDestroyed||t[i]._destroy()}function WW(e,t,n){this.count=e,this.offset=t,this.bucket=n}function bm(e,t,n){this.polylines=[],this.lengthOfPositions=0,this.material=e,this.shaderProgram=void 0,this.mode=t,this.modelMatrix=n}bm.prototype.addPolyline=function(e){this.polylines.push(e),e._actualLength=this.getPolylinePositionsLength(e),this.lengthOfPositions+=e._actualLength,e._bucket=this};bm.prototype.updateShader=function(e,t,n){if(l(this.shaderProgram))return;let i=["DISTANCE_DISPLAY_CONDITION"];n&&i.push("VECTOR_TILE"),this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&i.push("POLYLINE_DASH"),Vt.isInternetExplorer()||i.push("CLIP_POLYLINE");let o=new ze({defines:i,sources:[`in vec4 v_pickColor; `,this.material.shaderSource,Ax]}),r=t.getVertexShaderCallback()(fM),s=new ze({defines:i,sources:[hu,r]});this.shaderProgram=$t.fromCache({context:e,vertexShaderSource:s,fragmentShaderSource:o,attributeLocations:zl})};function Lce(e){return h.dot(h.UNIT_X,e._boundingVolume.center)<0||e._boundingVolume.intersectPlane(ln.ORIGIN_ZX_PLANE)===Gt.INTERSECTING}bm.prototype.getPolylinePositionsLength=function(e){let t;if(this.mode===ne.SCENE3D||!Lce(e))return t=e._actualPositions.length,t*4-4;let n=0,i=e._segments.lengths;t=i.length;for(let o=0;o<t;++o)n+=i[o]*4-4;return n};var ys=new h,Mf=new h,Lf=new h,ZU=new h,Z6e=new oe,$6e=new z;bm.prototype.write=function(e,t,n,i,o,r,s,a){let c=this.mode,u=a.ellipsoid.maximumRadius*R.PI,f=this.polylines,d=f.length;for(let p=0;p<d;++p){let g=f[p],m=g.width,x=g.show&&m>0,b=g._index,T=this.getSegments(g,a),C=T.positions,A=T.lengths,E=C.length,v=g.getPickId(s).color,D=0,O=0,I;for(let U=0;U<E;++U){U===0?g._loop?I=C[E-2]:(I=ZU,h.subtract(C[0],C[1],I),h.add(C[0],I,I)):I=C[U-1],h.clone(I,Mf),h.clone(C[U],ys),U===E-1?g._loop?I=C[1]:(I=ZU,h.subtract(C[E-1],C[E-2],I),h.add(C[E-1],I,I)):I=C[U+1],h.clone(I,Lf);let V=A[D];U===O+V&&(O+=V,++D);let G=U-O===0,k=U===O+A[D]-1;c===ne.SCENE2D&&(Mf.z=0,ys.z=0,Lf.z=0),(c===ne.SCENE2D||c===ne.MORPHING)&&(G||k)&&u-Math.abs(ys.x)<1&&((ys.x<0&&Mf.x>0||ys.x>0&&Mf.x<0)&&h.clone(ys,Mf),(ys.x<0&&Lf.x>0||ys.x>0&&Lf.x<0)&&h.clone(ys,Lf));let Y=G?2:0,W=k?2:4;for(let Q=Y;Q<W;++Q){Gn.writeElements(ys,e,n),Gn.writeElements(Mf,e,n+6),Gn.writeElements(Lf,e,n+12);let j=Q-2<0?-1:1;t[o]=U/(E-1),t[o+1]=2*(Q%2)-1,t[o+2]=j,t[o+3]=b,n+=6*3,o+=4}}let L=Z6e;L.x=H.floatToByte(v.red),L.y=H.floatToByte(v.green),L.z=H.floatToByte(v.blue),L.w=H.floatToByte(v.alpha);let N=$6e;N.x=m,N.y=x?1:0;let _=c===ne.SCENE2D?g._boundingVolume2D:g._boundingVolumeWC,S=Gn.fromCartesian(_.center,Pce),w=S.high,P=oe.fromElements(S.low.x,S.low.y,S.low.z,_.radius,Ice),M=Rce;M.x=0,M.y=Number.MAX_VALUE;let B=g.distanceDisplayCondition;l(B)&&(M.x=B.near,M.y=B.far),r.setBatchedAttribute(b,0,N),r.setBatchedAttribute(b,1,L),r.attributes.length>2&&(r.setBatchedAttribute(b,2,w),r.setBatchedAttribute(b,3,P),r.setBatchedAttribute(b,4,M))}};var Q6e=new h,J6e=new h,e9e=new h,Sce=new h;bm.prototype.writeForMorph=function(e,t){let n=this.modelMatrix,i=this.polylines,o=i.length;for(let r=0;r<o;++r){let s=i[r],a=s._segments.positions,c=s._segments.lengths,u=a.length,f=0,d=0;for(let p=0;p<u;++p){let g;p===0?s._loop?g=a[u-2]:(g=Sce,h.subtract(a[0],a[1],g),h.add(a[0],g,g)):g=a[p-1],g=F.multiplyByPoint(n,g,J6e);let m=F.multiplyByPoint(n,a[p],Q6e),x;p===u-1?s._loop?x=a[1]:(x=Sce,h.subtract(a[u-1],a[u-2],x),h.add(a[u-1],x,x)):x=a[p+1],x=F.multiplyByPoint(n,x,e9e);let b=c[f];p===d+b&&(d+=b,++f);let T=p-d===0,C=p===d+c[f]-1,A=T?2:0,E=C?2:4;for(let v=A;v<E;++v)Gn.writeElements(m,e,t),Gn.writeElements(g,e,t+6),Gn.writeElements(x,e,t+12),t+=6*3}}};var t9e=new Array(1);bm.prototype.updateIndices=function(e,t,n,i){let o=n.length-1,r=new WW(0,i,this);n[o].push(r);let s=0,a=e[e.length-1],c=0;a.length>0&&(c=a[a.length-1]+1);let u=this.polylines,f=u.length;for(let d=0;d<f;++d){let p=u[d];p._locatorBuckets=[];let g;if(this.mode===ne.SCENE3D){g=t9e;let x=p._actualPositions.length;if(x>0)g[0]=x;else continue}else g=p._segments.lengths;let m=g.length;if(m>0){let x=0;for(let b=0;b<m;++b){let T=g[b]-1;for(let C=0;C<T;++C)c+4>R.SIXTY_FOUR_KILOBYTES&&(p._locatorBuckets.push({locator:r,count:x}),x=0,t.push(4),a=[],e.push(a),c=0,r.count=s,s=0,i=0,r=new WW(0,0,this),n[++o]=[r]),a.push(c,c+2,c+1),a.push(c+1,c+2,c+3),x+=6,s+=6,i+=6,c+=4}p._locatorBuckets.push({locator:r,count:x}),c+4>R.SIXTY_FOUR_KILOBYTES&&(t.push(0),a=[],e.push(a),c=0,r.count=s,i=0,s=0,r=new WW(0,0,this),n[++o]=[r])}p._clean()}return r.count=s,i};bm.prototype.getPolylineStartIndex=function(e){let t=this.polylines,n=0,i=t.length;for(let o=0;o<i;++o){let r=t[o];if(r===e)break;n+=r._actualLength}return n};var QC={positions:void 0,lengths:void 0},vce=new Array(1),n9e=new h,i9e=new fe;bm.prototype.getSegments=function(e,t){let n=e._actualPositions;if(this.mode===ne.SCENE3D)return vce[0]=n.length,QC.positions=n,QC.lengths=vce,QC;Lce(e)&&(n=e._segments.positions);let i=t.ellipsoid,o=[],r=this.modelMatrix,s=n.length,a,c=n9e;for(let u=0;u<s;++u)a=n[u],c=F.multiplyByPoint(r,a,c),o.push(t.project(i.cartesianToCartographic(c,i9e)));if(o.length>0){e._boundingVolume2D=ae.fromPoints(o,e._boundingVolume2D);let u=e._boundingVolume2D.center;e._boundingVolume2D.center=new h(u.z,u.x,u.y)}return QC.positions=o,QC.lengths=e._segments.lengths,QC};var wce;bm.prototype.writeUpdate=function(e,t,n,i){let o=this.mode,r=i.ellipsoid.maximumRadius*R.PI,s=t._actualLength;if(s){e+=this.getPolylineStartIndex(t);let a=wce,c=6*s*3;!l(a)||a.length<c?a=wce=new Float32Array(c):a.length>c&&(a=new Float32Array(a.buffer,0,c));let u=this.getSegments(t,i),f=u.positions,d=u.lengths,p=0,g=0,m=0,x;s=f.length;for(let b=0;b<s;++b){b===0?t._loop?x=f[s-2]:(x=ZU,h.subtract(f[0],f[1],x),h.add(f[0],x,x)):x=f[b-1],h.clone(x,Mf),h.clone(f[b],ys),b===s-1?t._loop?x=f[1]:(x=ZU,h.subtract(f[s-1],f[s-2],x),h.add(f[s-1],x,x)):x=f[b+1],h.clone(x,Lf);let T=d[g];b===m+T&&(m+=T,++g);let C=b-m===0,A=b===m+d[g]-1;o===ne.SCENE2D&&(Mf.z=0,ys.z=0,Lf.z=0),(o===ne.SCENE2D||o===ne.MORPHING)&&(C||A)&&r-Math.abs(ys.x)<1&&((ys.x<0&&Mf.x>0||ys.x>0&&Mf.x<0)&&h.clone(ys,Mf),(ys.x<0&&Lf.x>0||ys.x>0&&Lf.x<0)&&h.clone(ys,Lf));let E=C?2:0,v=A?2:4;for(let D=E;D<v;++D)Gn.writeElements(ys,a,p),Gn.writeElements(Mf,a,p+6),Gn.writeElements(Lf,a,p+12),p+=6*3}n.copyFromArrayView(a,6*3*Float32Array.BYTES_PER_ELEMENT*e)}};var Qd=$d;function wy(e){this._positions=e.positions,this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._rectangle=e.rectangle,this._minHeight=e.minimumHeight,this._maxHeight=e.maximumHeight,this._billboardCollection=new Cu({batchTable:e.batchTable}),this._labelCollection=new xm({batchTable:e.batchTable}),this._polylineCollection=new Qd,this._polylineCollection._useHighlightColor=!0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(wy.prototype,{ready:{get:function(){return this._ready}},pointsLength:{get:function(){return this._billboardCollection.length}},texturesByteLength:{get:function(){let e=this._billboardCollection.textureAtlas.texture.sizeInBytes,t=this._labelCollection._textureAtlas.texture.sizeInBytes;return e+t}}});function o9e(e,t){let n=e._rectangle,i=e._minHeight,o=e._maxHeight,r=2+se.packedLength+te.packedLength,s=new Float64Array(r),a=0;return s[a++]=i,s[a++]=o,se.pack(n,s,a),a+=se.packedLength,te.pack(t,s,a),s}var r9e=new mi("createVectorTilePoints",5),s9e=new h;function a9e(e,t){let n=e._positions,i=e._packedBuffer;l(i)||(n=e._positions=n.slice(),e._batchIds=e._batchIds.slice(),i=e._packedBuffer=o9e(e,t));let o=[n.buffer,i.buffer],r={positions:n.buffer,packedBuffer:i.buffer},s=r9e.scheduleTask(r,o);if(l(s))return s.then(a=>{if(e.isDestroyed())return;e._positions=new Float64Array(a.positions);let c=e._billboardCollection,u=e._labelCollection,f=e._polylineCollection;n=e._positions;let d=e._batchIds,p=n.length/3;for(let g=0;g<p;++g){let m=d[g],x=h.unpack(n,g*3,s9e),b=c.add();b.position=x,b._batchIndex=m;let T=u.add();T.text=" ",T.position=x,T._batchIndex=m;let C=f.add();C.positions=[h.clone(x),h.clone(x)]}e._positions=void 0,e._packedBuffer=void 0,e._ready=!0}).catch(a=>{e.isDestroyed()||(e._error=a)})}wy.prototype.createFeatures=function(e,t){let n=this._billboardCollection,i=this._labelCollection,o=this._polylineCollection,r=this._batchIds,s=r.length;for(let a=0;a<s;++a){let c=r[a],u=n.get(a),f=i.get(a),d=o.get(a);t[c]=new c_(e,c,u,f,d)}};wy.prototype.applyDebugSettings=function(e,t){e?(H.clone(t,this._billboardCollection._highlightColor),H.clone(t,this._labelCollection._highlightColor),H.clone(t,this._polylineCollection._highlightColor)):(H.clone(H.WHITE,this._billboardCollection._highlightColor),H.clone(H.WHITE,this._labelCollection._highlightColor),H.clone(H.WHITE,this._polylineCollection._highlightColor))};function c9e(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.pointSize=c_.defaultPointSize,s.color=c_.defaultColor,s.pointOutlineColor=c_.defaultPointOutlineColor,s.pointOutlineWidth=c_.defaultPointOutlineWidth,s.labelColor=H.WHITE,s.labelOutlineColor=H.WHITE,s.labelOutlineWidth=1,s.font="30px sans-serif",s.labelStyle=Uo.FILL,s.labelText=void 0,s.backgroundColor=new H(.165,.165,.165,.8),s.backgroundPadding=new z(7,5),s.backgroundEnabled=!1,s.scaleByDistance=void 0,s.translucencyByDistance=void 0,s.distanceDisplayCondition=void 0,s.heightOffset=0,s.anchorLineEnabled=!1,s.anchorLineColor=H.WHITE,s.image=void 0,s.disableDepthTestDistance=0,s.horizontalOrigin=di.CENTER,s.verticalOrigin=Rn.CENTER,s.labelHorizontalOrigin=di.RIGHT,s.labelVerticalOrigin=Rn.BASELINE}}var l9e=new H,u9e=new H,f9e=new H,d9e=new H,h9e=new H,m9e=new H,pM=new Mt,_M=new Mt,XW=new It;wy.prototype.applyStyle=function(e,t){if(!l(e)){c9e(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];if(l(e.show)&&(s.show=e.show.evaluate(s)),l(e.pointSize)&&(s.pointSize=e.pointSize.evaluate(s)),l(e.color)&&(s.color=e.color.evaluateColor(s,l9e)),l(e.pointOutlineColor)&&(s.pointOutlineColor=e.pointOutlineColor.evaluateColor(s,u9e)),l(e.pointOutlineWidth)&&(s.pointOutlineWidth=e.pointOutlineWidth.evaluate(s)),l(e.labelColor)&&(s.labelColor=e.labelColor.evaluateColor(s,f9e)),l(e.labelOutlineColor)&&(s.labelOutlineColor=e.labelOutlineColor.evaluateColor(s,d9e)),l(e.labelOutlineWidth)&&(s.labelOutlineWidth=e.labelOutlineWidth.evaluate(s)),l(e.font)&&(s.font=e.font.evaluate(s)),l(e.labelStyle)&&(s.labelStyle=e.labelStyle.evaluate(s)),l(e.labelText)?s.labelText=e.labelText.evaluate(s):s.labelText=void 0,l(e.backgroundColor)&&(s.backgroundColor=e.backgroundColor.evaluateColor(s,h9e)),l(e.backgroundPadding)&&(s.backgroundPadding=e.backgroundPadding.evaluate(s)),l(e.backgroundEnabled)&&(s.backgroundEnabled=e.backgroundEnabled.evaluate(s)),l(e.scaleByDistance)){let a=e.scaleByDistance.evaluate(s);l(a)?(pM.near=a.x,pM.nearValue=a.y,pM.far=a.z,pM.farValue=a.w,s.scaleByDistance=pM):s.scaleByDistance=void 0}else s.scaleByDistance=void 0;if(l(e.translucencyByDistance)){let a=e.translucencyByDistance.evaluate(s);l(a)?(_M.near=a.x,_M.nearValue=a.y,_M.far=a.z,_M.farValue=a.w,s.translucencyByDistance=_M):s.translucencyByDistance=void 0}else s.translucencyByDistance=void 0;if(l(e.distanceDisplayCondition)){let a=e.distanceDisplayCondition.evaluate(s);l(a)?(XW.near=a.x,XW.far=a.y,s.distanceDisplayCondition=XW):s.distanceDisplayCondition=void 0}else s.distanceDisplayCondition=void 0;l(e.heightOffset)&&(s.heightOffset=e.heightOffset.evaluate(s)),l(e.anchorLineEnabled)&&(s.anchorLineEnabled=e.anchorLineEnabled.evaluate(s)),l(e.anchorLineColor)&&(s.anchorLineColor=e.anchorLineColor.evaluateColor(s,m9e)),l(e.image)?s.image=e.image.evaluate(s):s.image=void 0,l(e.disableDepthTestDistance)&&(s.disableDepthTestDistance=e.disableDepthTestDistance.evaluate(s)),l(e.horizontalOrigin)&&(s.horizontalOrigin=e.horizontalOrigin.evaluate(s)),l(e.verticalOrigin)&&(s.verticalOrigin=e.verticalOrigin.evaluate(s)),l(e.labelHorizontalOrigin)&&(s.labelHorizontalOrigin=e.labelHorizontalOrigin.evaluate(s)),l(e.labelVerticalOrigin)&&(s.labelVerticalOrigin=e.labelVerticalOrigin.evaluate(s))}};wy.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=a9e(this,e.mapProjection.ellipsoid)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._polylineCollection.update(e),this._billboardCollection.update(e),this._labelCollection.update(e)};wy.prototype.isDestroyed=function(){return!1};wy.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._polylineCollection=this._polylineCollection&&this._polylineCollection.destroy(),ue(this)};var gM=wy;function f_(e){this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._counts=e.counts,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._batchedPositions=void 0,this._transferrableBatchIds=void 0,this._vertexBatchIds=void 0,this._ellipsoid=y(e.ellipsoid,te.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._polygonMinimumHeights=e.polygonMinimumHeights,this._polygonMaximumHeights=e.polygonMaximumHeights,this._center=y(e.center,h.ZERO),this._rectangle=e.rectangle,this._center=void 0,this._boundingVolume=e.boundingVolume,this._boundingVolumes=void 0,this._batchedIndices=void 0,this._ready=!1,this._promise=void 0,this._error=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=Vn.BOTH}Object.defineProperties(f_.prototype,{trianglesLength:{get:function(){return l(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});function p9e(e){let t=new Float64Array(3+h.packedLength+te.packedLength+se.packedLength),n=0;return t[n++]=e._indices.BYTES_PER_ELEMENT,t[n++]=e._minimumHeight,t[n++]=e._maximumHeight,h.pack(e._center,t,n),n+=h.packedLength,te.pack(e._ellipsoid,t,n),n+=te.packedLength,se.pack(e._rectangle,t,n),t}function _9e(e,t){let n=1,i=t[n++],o=e._boundingVolumes=new Array(i);for(let a=0;a<i;++a)o[a]=Sn.unpack(t,n),n+=Sn.packedLength;let r=t[n++],s=e._batchedIndices=new Array(r);for(let a=0;a<r;++a){let c=H.unpack(t,n);n+=H.packedLength;let u=t[n++],f=t[n++],d=t[n++],p=new Array(d);for(let g=0;g<d;++g)p[g]=t[n++];s[a]=new cm({color:c,offset:u,count:f,batchIds:p})}}var g9e=new mi("createVectorTilePolygons",5),y9e=new H;function x9e(e){if(l(e._primitive))return;let t=e._positions,n=e._counts,i=e._indexCounts,o=e._indices,r=e._transferrableBatchIds,s=e._batchTableColors,a=e._packedBuffer;if(!l(s)){t=e._positions=e._positions.slice(),n=e._counts=e._counts.slice(),i=e._indexCounts=e._indexCounts.slice(),o=e._indices=e._indices.slice(),e._center=e._ellipsoid.cartographicToCartesian(se.center(e._rectangle)),r=e._transferrableBatchIds=new Uint32Array(e._batchIds),s=e._batchTableColors=new Uint32Array(r.length);let g=e._batchTable,m=s.length;for(let x=0;x<m;++x){let b=g.getColor(x,y9e);s[x]=b.toRgba()}a=e._packedBuffer=p9e(e)}let c=[t.buffer,n.buffer,i.buffer,o.buffer,r.buffer,s.buffer,a.buffer],u={packedBuffer:a.buffer,positions:t.buffer,counts:n.buffer,indexCounts:i.buffer,indices:o.buffer,batchIds:r.buffer,batchTableColors:s.buffer},f=e._polygonMinimumHeights,d=e._polygonMaximumHeights;l(f)&&l(d)&&(f=f.slice(),d=d.slice(),c.push(f.buffer,d.buffer),u.minimumHeights=f,u.maximumHeights=d);let p=g9e.scheduleTask(u,c);if(l(p))return p.then(g=>{if(e.isDestroyed())return;e._positions=void 0,e._counts=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0;let m=new Float64Array(g.packedBuffer),x=m[0];_9e(e,m),e._indices=Ne.getSizeInBytes(x)===2?new Uint16Array(g.indices):new Uint32Array(g.indices),e._indexOffsets=new Uint32Array(g.indexOffsets),e._indexCounts=new Uint32Array(g.indexCounts),e._batchedPositions=new Float32Array(g.positions),e._vertexBatchIds=new Uint16Array(g.batchIds),b9e(e),e._ready=!0}).catch(g=>{e.isDestroyed()||(e._error=g)})}function b9e(e){l(e._primitive)||(e._primitive=new Hx({batchTable:e._batchTable,positions:e._batchedPositions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center}),e._batchTable=void 0,e._batchIds=void 0,e._positions=void 0,e._counts=void 0,e._indices=void 0,e._indexCounts=void 0,e._indexOffsets=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0,e._center=void 0,e._rectangle=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0)}f_.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};f_.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};f_.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};f_.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};f_.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=x9e(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};f_.prototype.isDestroyed=function(){return!1};f_.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var yM=f_;var xM=`in vec4 currentPosition; in vec4 previousPosition; in vec4 nextPosition; in vec2 expandAndWidth; in float a_batchId; uniform mat4 u_modifiedModelView; void main() { float expandDir = expandAndWidth.x; float width = abs(expandAndWidth.y) + 0.5; bool usePrev = expandAndWidth.y < 0.0; vec4 p = u_modifiedModelView * currentPosition; vec4 prev = u_modifiedModelView * previousPosition; vec4 next = u_modifiedModelView * nextPosition; float angle; vec4 positionWC = getPolylineWindowCoordinatesEC(p, prev, next, expandDir, width, usePrev, angle); gl_Position = czm_viewportOrthographic * positionWC; } `;function Jd(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,te.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._boundingVolume=e.boundingVolume,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._currentPositions=void 0,this._previousPositions=void 0,this._nextPositions=void 0,this._expandAndWidth=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=H.clone(H.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Jd.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function T9e(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+se.packedLength+te.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,se.pack(t,a,c),c+=se.packedLength,te.pack(o,a,c),c+=te.packedLength,h.pack(r,a,c),a}var A9e=new mi("createVectorTilePolylines",5),JC={previousPosition:0,currentPosition:1,nextPosition:2,expandAndWidth:3,a_batchId:4};function C9e(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=T9e(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},u=A9e.scheduleTask(c,a);if(l(u))return u.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._currentPositions=new Float32Array(f.currentPositions),e._previousPositions=new Float32Array(f.previousPositions),e._nextPositions=new Float32Array(f.nextPositions),e._expandAndWidth=new Float32Array(f.expandAndWidth),e._vertexBatchIds=new Uint16Array(f.batchIds);let d=f.indexDatatype;e._indices=d===Ne.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),E9e(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function E9e(e,t){if(!l(e._va)){let n=e._currentPositions,i=e._previousPositions,o=e._nextPositions,r=e._expandAndWidth,s=e._vertexBatchIds,a=e._indices,c=i.byteLength+n.byteLength+o.byteLength;c+=r.byteLength+s.byteLength+a.byteLength,e._trianglesLength=a.length/3,e._geometryByteLength=c;let u=ct.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),f=ct.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),d=ct.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),p=ct.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),g=ct.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),m=ct.createIndexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:a.BYTES_PER_ELEMENT===2?Ne.UNSIGNED_SHORT:Ne.UNSIGNED_INT}),x=[{index:JC.previousPosition,vertexBuffer:u,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:JC.currentPosition,vertexBuffer:f,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:JC.nextPosition,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:JC.expandAndWidth,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:2},{index:JC.a_batchId,vertexBuffer:g,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ei({context:t,attributes:x,indexBuffer:m}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._currentPositions=void 0,e._previousPositions=void 0,e._nextPositions=void 0,e._expandAndWidth=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var bM=new F,Nce=new h;function S9e(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return F.clone(n,bM),F.multiplyByPoint(bM,e._center,Nce),F.setTranslation(bM,Nce,bM),bM},u_highlightColor:function(){return e._highlightColor}})}function v9e(e){if(l(e._rs))return;let t={enabled:!0,factor:-5,units:-5};e._rs=Ve.fromCache({blending:un.ALPHA_BLEND,depthMask:!1,depthTest:{enabled:!0},polygonOffset:t})}var w9e=`uniform vec4 u_highlightColor; void main() { out_FragColor = u_highlightColor; } `;function D9e(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(xM),o=n.getFragmentShaderCallback(!1,void 0,!1)(w9e),r=new ze({defines:["VECTOR_TILE",Vt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[hu,i]}),s=new ze({defines:["VECTOR_TILE"],sources:[o]});e._sp=$t.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:JC})}function P9e(e,t){if(!l(e._command)){let n=e._batchTable.getUniformMapCallback()(e._uniformMap);e._command=new Ze({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:n,boundingVolume:e._boundingVolume,pass:Ee.TRANSLUCENT,pickId:e._batchTable.getPickId()})}t.commandList.push(e._command)}Jd.getPolylinePositions=function(e,t){let n=e._batchIds,i=e._decodedPositions,o=e._decodedPositionOffsets;if(!l(n)||!l(i))return;let r,s,a=n.length,c=0,u=0;for(r=0;r<a;++r)n[r]===t&&(c+=o[r+1]-o[r]);if(c===0)return;let f=new Float64Array(c*3);for(r=0;r<a;++r)if(n[r]===t){let d=o[r],p=o[r+1]-d;for(s=0;s<p;++s){let g=(d+s)*3;f[u++]=i[g],f[u++]=i[g+1],f[u++]=i[g+2]}}return f};Jd.prototype.getPositions=function(e){return Jd.getPolylinePositions(this,e)};Jd.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Ns(e,r)}};Jd.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function I9e(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.color=H.WHITE}}var R9e=new H,O9e=H.WHITE,M9e=!0;Jd.prototype.applyStyle=function(e,t){if(!l(e)){I9e(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.color=l(e.color)?e.color.evaluateColor(s,R9e):O9e,s.show=l(e.show)?e.show.evaluate(s):M9e}};Jd.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=C9e(this,t)),l(this._error)){let i=this._error;throw this._error=void 0,i}return}S9e(this,t),D9e(this,t),v9e(this);let n=e.passes;(n.render||n.pick)&&P9e(this,e)};Jd.prototype.isDestroyed=function(){return!1};Jd.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var Ab=Jd;var TM=`in vec3 startEllipsoidNormal; in vec3 endEllipsoidNormal; in vec4 startPositionAndHeight; in vec4 endPositionAndHeight; in vec4 startFaceNormalAndVertexCorner; in vec4 endFaceNormalAndHalfWidth; in float a_batchId; uniform mat4 u_modifiedModelView; uniform vec2 u_minimumMaximumVectorHeights; out vec4 v_startPlaneEC; out vec4 v_endPlaneEC; out vec4 v_rightPlaneEC; out float v_halfWidth; out vec3 v_volumeUpEC; void main() { // vertex corner IDs // 3-----------7 // /| left /| // / | 1 / | // 2-----------6 5 end // | / | / // start |/ right |/ // 0-----------4 // float isEnd = floor(startFaceNormalAndVertexCorner.w * 0.251); // 0 for front, 1 for end float isTop = floor(startFaceNormalAndVertexCorner.w * mix(0.51, 0.19, isEnd)); // 0 for bottom, 1 for top vec3 forward = endPositionAndHeight.xyz - startPositionAndHeight.xyz; vec3 right = normalize(cross(forward, startEllipsoidNormal)); vec4 position = vec4(startPositionAndHeight.xyz, 1.0); position.xyz += forward * isEnd; v_volumeUpEC = czm_normal * normalize(cross(right, forward)); // Push for volume height float offset; vec3 ellipsoidNormal = mix(startEllipsoidNormal, endEllipsoidNormal, isEnd); // offset height to create volume offset = mix(startPositionAndHeight.w, endPositionAndHeight.w, isEnd); offset = mix(u_minimumMaximumVectorHeights.y, u_minimumMaximumVectorHeights.x, isTop) - offset; position.xyz += offset * ellipsoidNormal; // move from RTC to EC position = u_modifiedModelView * position; right = czm_normal * right; // Push for width in a direction that is in the start or end plane and in a plane with right // N = normalEC ("right-facing" direction for push) // R = right // p = angle between N and R // w = distance to push along R if R == N // d = distance to push along N // // N R // { p| } * cos(p) = dot(N, R) = w / d // d | |w * d = w / dot(N, R) // { | } // o---------- polyline segment ----> // vec3 scratchNormal = mix(-startFaceNormalAndVertexCorner.xyz, endFaceNormalAndHalfWidth.xyz, isEnd); scratchNormal = cross(scratchNormal, mix(startEllipsoidNormal, endEllipsoidNormal, isEnd)); vec3 miterPushNormal = czm_normal * normalize(scratchNormal); offset = 2.0 * endFaceNormalAndHalfWidth.w * max(0.0, czm_metersPerPixel(position)); // offset = widthEC offset = offset / dot(miterPushNormal, right); position.xyz += miterPushNormal * (offset * sign(0.5 - mod(startFaceNormalAndVertexCorner.w, 2.0))); gl_Position = czm_depthClamp(czm_projection * position); position = u_modifiedModelView * vec4(startPositionAndHeight.xyz, 1.0); vec3 startNormalEC = czm_normal * startFaceNormalAndVertexCorner.xyz; v_startPlaneEC = vec4(startNormalEC, -dot(startNormalEC, position.xyz)); v_rightPlaneEC = vec4(right, -dot(right, position.xyz)); position = u_modifiedModelView * vec4(endPositionAndHeight.xyz, 1.0); vec3 endNormalEC = czm_normal * endFaceNormalAndHalfWidth.xyz; v_endPlaneEC = vec4(endNormalEC, -dot(endNormalEC, position.xyz)); v_halfWidth = endFaceNormalAndHalfWidth.w; } `;var AM=`in vec4 v_startPlaneEC; in vec4 v_endPlaneEC; in vec4 v_rightPlaneEC; in float v_halfWidth; in vec3 v_volumeUpEC; uniform vec4 u_highlightColor; void main() { float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); // Discard for sky if (logDepthOrDepth == 0.0) { #ifdef DEBUG_SHOW_VOLUME out_FragColor = vec4(0.0, 0.0, 1.0, 0.5); return; #else // DEBUG_SHOW_VOLUME discard; #endif // DEBUG_SHOW_VOLUME } vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); eyeCoordinate /= eyeCoordinate.w; float halfMaxWidth = v_halfWidth * czm_metersPerPixel(eyeCoordinate); // Expand halfMaxWidth if direction to camera is almost perpendicular with the volume's up direction halfMaxWidth += halfMaxWidth * (1.0 - dot(-normalize(eyeCoordinate.xyz), v_volumeUpEC)); // Check distance of the eye coordinate against the right-facing plane float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); // Check eye coordinate against the mitering planes float distanceFromStart = czm_planeDistance(v_startPlaneEC, eyeCoordinate.xyz); float distanceFromEnd = czm_planeDistance(v_endPlaneEC, eyeCoordinate.xyz); if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { #ifdef DEBUG_SHOW_VOLUME out_FragColor = vec4(logDepthOrDepth, 0.0, 0.0, 0.5); return; #else // DEBUG_SHOW_VOLUME discard; #endif // DEBUG_SHOW_VOLUME } out_FragColor = u_highlightColor; czm_writeDepthClamp(); } `;function d_(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,te.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._minimumMaximumVectorHeights=new z(ci._defaultMinTerrainHeight,ci._defaultMaxTerrainHeight),this._boundingVolume=Sn.fromRectangle(e.rectangle,ci._defaultMinTerrainHeight,ci._defaultMaxTerrainHeight,this._ellipsoid),this._classificationType=e.classificationType,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._startEllipsoidNormals=void 0,this._endEllipsoidNormals=void 0,this._startPositionAndHeights=void 0,this._startFaceNormalAndVertexCornerIds=void 0,this._endPositionAndHeights=void 0,this._endFaceNormalAndHalfWidths=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=H.clone(H.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(d_.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function L9e(e,t,n){let i=ci.getMinimumMaximumHeights(t,n),o=i.minimumTerrainHeight,r=i.maximumTerrainHeight,s=e._minimumMaximumVectorHeights;s.x=o,s.y=r;let a=e._boundingVolume,c=e._rectangle;Sn.fromRectangle(c,o,r,n,a)}function N9e(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+se.packedLength+te.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,se.pack(t,a,c),c+=se.packedLength,te.pack(o,a,c),c+=te.packedLength,h.pack(r,a,c),a}var F9e=new mi("createVectorTileClampedPolylines"),Dy={startEllipsoidNormal:0,endEllipsoidNormal:1,startPositionAndHeight:2,endPositionAndHeight:3,startFaceNormalAndVertexCorner:4,endFaceNormalAndHalfWidth:5,a_batchId:6};function B9e(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=N9e(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},u=F9e.scheduleTask(c,a);if(l(u))return u.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._startEllipsoidNormals=new Float32Array(f.startEllipsoidNormals),e._endEllipsoidNormals=new Float32Array(f.endEllipsoidNormals),e._startPositionAndHeights=new Float32Array(f.startPositionAndHeights),e._startFaceNormalAndVertexCornerIds=new Float32Array(f.startFaceNormalAndVertexCornerIds),e._endPositionAndHeights=new Float32Array(f.endPositionAndHeights),e._endFaceNormalAndHalfWidths=new Float32Array(f.endFaceNormalAndHalfWidths),e._vertexBatchIds=new Uint16Array(f.vertexBatchIds);let d=f.indexDatatype;e._indices=d===Ne.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),k9e(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function k9e(e,t){if(!l(e._va)){let n=e._startEllipsoidNormals,i=e._endEllipsoidNormals,o=e._startPositionAndHeights,r=e._endPositionAndHeights,s=e._startFaceNormalAndVertexCornerIds,a=e._endFaceNormalAndHalfWidths,c=e._vertexBatchIds,u=e._indices,f=n.byteLength+i.byteLength;f+=o.byteLength+r.byteLength,f+=s.byteLength+a.byteLength,f+=c.byteLength+u.byteLength,e._trianglesLength=u.length/3,e._geometryByteLength=f;let d=ct.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),p=ct.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),g=ct.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),m=ct.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),x=ct.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),b=ct.createVertexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW}),T=ct.createVertexBuffer({context:t,typedArray:c,usage:Fe.STATIC_DRAW}),C=ct.createIndexBuffer({context:t,typedArray:u,usage:Fe.STATIC_DRAW,indexDatatype:u.BYTES_PER_ELEMENT===2?Ne.UNSIGNED_SHORT:Ne.UNSIGNED_INT}),A=[{index:Dy.startEllipsoidNormal,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:Dy.endEllipsoidNormal,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:Dy.startPositionAndHeight,vertexBuffer:g,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Dy.endPositionAndHeight,vertexBuffer:m,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Dy.startFaceNormalAndVertexCorner,vertexBuffer:x,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Dy.endFaceNormalAndHalfWidth,vertexBuffer:b,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Dy.a_batchId,vertexBuffer:T,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ei({context:t,attributes:A,indexBuffer:C}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._startEllipsoidNormals=void 0,e._endEllipsoidNormals=void 0,e._startPositionAndHeights=void 0,e._startFaceNormalAndVertexCornerIds=void 0,e._endPositionAndHeights=void 0,e._endFaceNormalAndHalfWidths=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var CM=new F,Fce=new h;function V9e(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return F.clone(n,CM),F.multiplyByPoint(CM,e._center,Fce),F.setTranslation(CM,Fce,CM),CM},u_highlightColor:function(){return e._highlightColor},u_minimumMaximumVectorHeights:function(){return e._minimumMaximumVectorHeights}})}function Bce(e){return Ve.fromCache({cull:{enabled:!0,face:hi.FRONT},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Un.EQUAL,frontOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},backFunction:Un.EQUAL,backOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK}})}function U9e(e){l(e._rs)||(e._rs=Bce(!1),e._rs3DTiles=Bce(!0))}function z9e(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(TM),o=n.getFragmentShaderCallback(!1,void 0,!0)(AM),r=new ze({defines:["VECTOR_TILE",Vt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[hu,i]}),s=new ze({defines:["VECTOR_TILE"],sources:[o]});e._sp=$t.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:Dy})}function H9e(e,t){let n=e._command;if(!l(e._command)){let o=e._batchTable.getUniformMapCallback()(e._uniformMap);n=e._command=new Ze({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:o,boundingVolume:e._boundingVolume,pass:Ee.TERRAIN_CLASSIFICATION,pickId:e._batchTable.getPickId()});let r=Ze.shallowClone(n,n.derivedCommands.tileset);r.renderState=e._rs3DTiles,r.pass=Ee.CESIUM_3D_TILE_CLASSIFICATION,n.derivedCommands.tileset=r}let i=e._classificationType;(i===Vn.TERRAIN||i===Vn.BOTH)&&t.commandList.push(n),(i===Vn.CESIUM_3D_TILE||i===Vn.BOTH)&&t.commandList.push(n.derivedCommands.tileset)}d_.prototype.getPositions=function(e){return Ab.getPolylinePositions(this,e)};d_.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Ns(e,r)}};d_.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function G9e(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.color=H.WHITE}}var W9e=new H,j9e=H.WHITE,q9e=!0;d_.prototype.applyStyle=function(e,t){if(!l(e)){G9e(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.color=l(e.color)?e.color.evaluateColor(s,W9e):j9e,s.show=l(e.show)?e.show.evaluate(s):q9e}};function Y9e(e){return ci.initialize().then(function(){L9e(e,e._rectangle,e._ellipsoid)}).catch(t=>{e.isDestroyed()||(e._error=t)})}d_.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=Y9e(this).then(B9e(this,t))),l(this._error)){let i=this._error;throw this._error=void 0,i}return}V9e(this,t),z9e(this,t),U9e(this);let n=e.passes;(n.render||n.pick)&&H9e(this,e)};d_.prototype.isDestroyed=function(){return!1};d_.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var EM=d_;var KW=32767,X9e=new fe,K9e=new h;function Z9e(e,t,n,i,o){let r=e.length/3,s=e.subarray(0,r),a=e.subarray(r,2*r),c=e.subarray(2*r,3*r);Mn.zigZagDeltaDecode(s,a,c);let u=new Float64Array(e.length);for(let f=0;f<r;++f){let d=s[f],p=a[f],g=c[f],m=R.lerp(t.west,t.east,d/KW),x=R.lerp(t.south,t.north,p/KW),b=R.lerp(n,i,g/KW),T=fe.fromRadians(m,x,b,X9e),C=o.cartographicToCartesian(T,K9e);h.pack(C,u,f*3)}return u}var SM=Z9e;function th(e,t,n,i,o){this._tileset=e,this._tile=t,this._resource=n,this._polygons=void 0,this._polylines=void 0,this._points=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,tWe(this,i,o)}Object.defineProperties(th.prototype,{featuresLength:{get:function(){return l(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return l(this._points)?this._points.pointsLength:0}},trianglesLength:{get:function(){let e=0;return l(this._polygons)&&(e+=this._polygons.trianglesLength),l(this._polylines)&&(e+=this._polylines.trianglesLength),e}},geometryByteLength:{get:function(){let e=0;return l(this._polygons)&&(e+=this._polygons.geometryByteLength),l(this._polylines)&&(e+=this._polylines.geometryByteLength),e}},texturesByteLength:{get:function(){return l(this._points)?this._points.texturesByteLength:0}},batchTableByteLength:{get:function(){return l(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function $9e(e){return function(t,n){l(e._polygons)&&e._polygons.updateCommands(t,n)}}function Q9e(e,t){let n,i,o,r,s=y(e.POLYGONS_LENGTH,0),a=y(e.POLYLINES_LENGTH,0),c=y(e.POINTS_LENGTH,0);if(s>0&&l(e.POLYGON_BATCH_IDS)){let p=t.byteOffset+e.POLYGON_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,p,s)}if(a>0&&l(e.POLYLINE_BATCH_IDS)){let p=t.byteOffset+e.POLYLINE_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,p,a)}if(c>0&&l(e.POINT_BATCH_IDS)){let p=t.byteOffset+e.POINT_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,p,c)}let u=l(n)||l(i)||l(o),f=s>0&&!l(n)||a>0&&!l(i)||c>0&&!l(o);if(u&&f)throw new le("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)){let p=0;if(!l(n)&&s>0)for(n=new Uint16Array(s),r=0;r<s;++r)n[r]=p++;if(!l(i)&&a>0)for(i=new Uint16Array(a),r=0;r<a;++r)i[r]=p++;if(!l(o)&&c>0)for(o=new Uint16Array(c),r=0;r<c;++r)o[r]=p++}return{polygons:n,polylines:i,points:o}}var eh=Uint32Array.BYTES_PER_ELEMENT;function J9e(e){return new Ab(e)}function eWe(e){return new EM(e)}function tWe(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=eh;let r=o.getUint32(n,!0);if(r!==1)throw new le(`Only Vector tile version 1 is supported. Version ${r} is not.`);n+=eh;let s=o.getUint32(n,!0);if(n+=eh,s===0){e._ready=!0;return}let a=o.getUint32(n,!0);if(n+=eh,a===0)throw new le("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=eh;let u=o.getUint32(n,!0);n+=eh;let f=o.getUint32(n,!0);n+=eh;let d=o.getUint32(n,!0);n+=eh;let p=o.getUint32(n,!0);n+=eh;let g=o.getUint32(n,!0);n+=eh;let m=o.getUint32(n,!0);n+=eh;let x=Ro(i,n,a);n+=a;let b=new Uint8Array(t,n,c);n+=c;let T,C;u>0&&(T=Ro(i,n,u),n+=u,f>0&&(C=new Uint8Array(t,n,f),C=new Uint8Array(C),n+=f));let A=y(x.POLYGONS_LENGTH,0),E=y(x.POLYLINES_LENGTH,0),v=y(x.POINTS_LENGTH,0),D=A+E+v,O=new Bp(e,D,T,C,$9e(e));if(e._batchTable=O,D===0)return;let I=new Yd(x,b),L=I.getGlobalProperty("REGION");if(!l(L))throw new le("Feature table global property: REGION must be defined");let N=se.unpack(L),_=L[4],S=L[5],w=e._tile.computedTransform,P=I.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(P)?(P=h.unpack(P),F.multiplyByPoint(w,P,P)):(P=se.center(N),P.height=R.lerp(_,S,.5),P=te.WGS84.cartographicToCartesian(P));let M=Q9e(x,b);if(n+=(4-n%4)%4,A>0){I.featuresLength=A;let B=y(I.getPropertyArray("POLYGON_COUNTS",X.UNSIGNED_INT,1),I.getPropertyArray("POLYGON_COUNT",X.UNSIGNED_INT,1));if(!l(B))throw new le("Feature table property: POLYGON_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let U=y(I.getPropertyArray("POLYGON_INDEX_COUNTS",X.UNSIGNED_INT,1),I.getPropertyArray("POLYGON_INDEX_COUNT",X.UNSIGNED_INT,1));if(!l(U))throw new le("Feature table property: POLYGON_INDEX_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let V=B.reduce(function(j,K){return j+K*2},0),G=U.reduce(function(j,K){return j+K},0),k=new Uint32Array(t,n,G);n+=d;let Y=new Uint16Array(t,n,V);n+=p;let W,Q;l(x.POLYGON_MINIMUM_HEIGHTS)&&l(x.POLYGON_MAXIMUM_HEIGHTS)&&(W=I.getPropertyArray("POLYGON_MINIMUM_HEIGHTS",X.FLOAT,1),Q=I.getPropertyArray("POLYGON_MAXIMUM_HEIGHTS",X.FLOAT,1)),e._polygons=new yM({positions:Y,counts:B,indexCounts:U,indices:k,minimumHeight:_,maximumHeight:S,polygonMinimumHeights:W,polygonMaximumHeights:Q,center:P,rectangle:N,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,batchIds:M.polygons,modelMatrix:w})}if(E>0){I.featuresLength=E;let B=y(I.getPropertyArray("POLYLINE_COUNTS",X.UNSIGNED_INT,1),I.getPropertyArray("POLYLINE_COUNT",X.UNSIGNED_INT,1));if(!l(B))throw new le("Feature table property: POLYLINE_COUNTS must be defined when POLYLINES_LENGTH is greater than 0");let U=I.getPropertyArray("POLYLINE_WIDTHS",X.UNSIGNED_SHORT,1);if(!l(U)){U=new Uint16Array(E);for(let Q=0;Q<E;++Q)U[Q]=2}let V=B.reduce(function(Q,j){return Q+j*3},0),G=new Uint16Array(t,n,V);n+=g;let k=e._tileset,Y=k.examineVectorLinesFunction;if(l(Y)){let Q=SM(new Uint16Array(G),N,_,S,te.WGS84);nWe(Q,B,M.polylines,O,e.url,Y)}let W=J9e;l(k.classificationType)&&(W=eWe),e._polylines=W({positions:G,widths:U,counts:B,batchIds:M.polylines,minimumHeight:_,maximumHeight:S,center:P,rectangle:N,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,classificationType:k.classificationType,keepDecodedPositions:k.vectorKeepDecodedPositions})}if(v>0){let B=new Uint16Array(t,n,v*3);n+=m,e._points=new gM({positions:B,batchIds:M.points,minimumHeight:_,maximumHeight:S,rectangle:N,batchTable:O})}}function ZW(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._polygons)&&e._polygons.createFeatures(e,n),l(e._polylines)&&e._polylines.createFeatures(e,n),l(e._points)&&e._points.createFeatures(e,n),e._features=n}}th.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};th.prototype.getFeature=function(e){return l(this._features)||ZW(this),this._features[e]};th.prototype.applyDebugSettings=function(e,t){l(this._polygons)&&this._polygons.applyDebugSettings(e,t),l(this._polylines)&&this._polylines.applyDebugSettings(e,t),l(this._points)&&this._points.applyDebugSettings(e,t)};th.prototype.applyStyle=function(e){l(this._features)||ZW(this),l(this._polygons)&&this._polygons.applyStyle(e,this._features),l(this._polylines)&&this._polylines.applyStyle(e,this._features),l(this._points)&&this._points.applyStyle(e,this._features)};th.prototype.update=function(e,t){let n=!0;l(this._polygons)&&(this._polygons.classificationType=this._tileset.classificationType,this._polygons.debugWireframe=this._tileset.debugWireframe,this._polygons.update(t),n=n&&this._polygons.ready),l(this._polylines)&&(this._polylines.update(t),n=n&&this._polylines.ready),l(this._points)&&(this._points.update(t),n=n&&this._points.ready),l(this._batchTable)&&n&&(l(this._features)||ZW(this),this._batchTable.update(e,t),this._ready=!0)};th.prototype.pick=function(e,t,n){};th.prototype.getPolylinePositions=function(e){let t=this._polylines;if(l(t))return t.getPositions(e)};th.prototype.isDestroyed=function(){return!1};th.prototype.destroy=function(){return this._polygons=this._polygons&&this._polygons.destroy(),this._polylines=this._polylines&&this._polylines.destroy(),this._points=this._points&&this._points.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function nWe(e,t,n,i,o,r){let s=t.length,a=0;for(let c=0;c<s;c++){let u=t[c]*3,f=e.slice(a,a+u);a+=u,r(f,n[c],o,i)}}var vM=th;var kce={b3dm:function(e,t,n,i,o){return _m.fromB3dm(e,t,n,i,o)},pnts:function(e,t,n,i,o){return _m.fromPnts(e,t,n,i,o)},i3dm:function(e,t,n,i,o){return _m.fromI3dm(e,t,n,i,o)},cmpt:function(e,t,n,i,o){return h1.fromTileType(e,t,n,i,o,kce)},externalTileset:function(e,t,n,i){return nM.fromJson(e,t,n,i)},geom:function(e,t,n,i,o){return new p1(e,t,n,i,o)},vctr:function(e,t,n,i,o){return new vM(e,t,n,i,o)},subt:function(e,t,n,i,o){return CC.fromSubtreeJson(e,t,n,void 0,i,o)},subtreeJson:function(e,t,n,i){return CC.fromSubtreeJson(e,t,n,i)},glb:function(e,t,n,i,o){if(i.byteLength<12)throw new le("Invalid glb content");let a=new DataView(i,o).getUint32(8,!0),c=new Uint8Array(i,o,a);return _m.fromGltf(e,t,n,c)},gltf:function(e,t,n,i){return _m.fromGltf(e,t,n,i)},geoJson:function(e,t,n,i){return _m.fromGeoJson(e,t,n,i)}},Cb=kce;var iWe={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},zo=Object.freeze(iWe);var nh={BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",COMPOSITE:"cmpt",POINT_CLOUD:"pnts",VECTOR:"vctr",GEOMETRY:"geom",GLTF:"gltf",GLTF_BINARY:"glb",IMPLICIT_SUBTREE:"subt",IMPLICIT_SUBTREE_JSON:"subtreeJson",EXTERNAL_TILESET:"externalTileset",MULTIPLE_CONTENT:"multipleContent",GEOJSON:"geoJson",VOXEL_BINARY:"voxl",VOXEL_JSON:"voxelJson"};nh.isBinaryFormat=function(e){switch(e){case nh.BATCHED_3D_MODEL:case nh.INSTANCED_3D_MODEL:case nh.COMPOSITE:case nh.POINT_CLOUD:case nh.VECTOR:case nh.GEOMETRY:case nh.IMPLICIT_SUBTREE:case nh.VOXEL_BINARY:case nh.GLTF_BINARY:return!0;default:return!1}};var xs=Object.freeze(nh);var oWe={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0},Nf=Object.freeze(oWe);var Us={RENDER:0,PICK:1,SHADOW:2,PRELOAD:3,PRELOAD_FLIGHT:4,REQUEST_RENDER_MODE_DEFER_CHECK:5,MOST_DETAILED_PRELOAD:6,MOST_DETAILED_PICK:7,NUMBER_OF_PASSES:8},h_=new Array(Us.NUMBER_OF_PASSES);h_[Us.RENDER]=Object.freeze({pass:Us.RENDER,isRender:!0,requestTiles:!0,ignoreCommands:!1});h_[Us.PICK]=Object.freeze({pass:Us.PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});h_[Us.SHADOW]=Object.freeze({pass:Us.SHADOW,isRender:!1,requestTiles:!0,ignoreCommands:!1});h_[Us.PRELOAD]=Object.freeze({pass:Us.PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});h_[Us.PRELOAD_FLIGHT]=Object.freeze({pass:Us.PRELOAD_FLIGHT,isRender:!1,requestTiles:!0,ignoreCommands:!0});h_[Us.REQUEST_RENDER_MODE_DEFER_CHECK]=Object.freeze({pass:Us.REQUEST_RENDER_MODE_DEFER_CHECK,isRender:!1,requestTiles:!0,ignoreCommands:!0});h_[Us.MOST_DETAILED_PRELOAD]=Object.freeze({pass:Us.MOST_DETAILED_PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});h_[Us.MOST_DETAILED_PICK]=Object.freeze({pass:Us.MOST_DETAILED_PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});Us.getPassOptions=function(e){return h_[e]};var Mo=Object.freeze(Us);function Tm(e,t){this._tileset=e,this._tile=t,this.featurePropertiesDirty=!1}Object.defineProperties(Tm.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return!0}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){}},metadata:{get:function(){},set:function(e){}},batchTable:{get:function(){}},group:{get:function(){},set:function(e){}}});Tm.prototype.hasProperty=function(e,t){return!1};Tm.prototype.getFeature=function(e){};Tm.prototype.applyDebugSettings=function(e,t){};Tm.prototype.applyStyle=function(e){};Tm.prototype.update=function(e,t){};Tm.prototype.pick=function(e,t,n){};Tm.prototype.isDestroyed=function(){return!1};Tm.prototype.destroy=function(){return ue(this)};var eE=Tm;function m_(e){e=y(e,y.EMPTY_OBJECT);let t=e.content,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(m_.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});m_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};m_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};m_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};m_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};m_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};m_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};m_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var wM=m_;function $W(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){$W._oneTimeWarning("findContentMetadata-missing-root-schema","Could not find a metadata schema for content metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(l(n.class)){let o=i[n.class];return new wM({content:n,class:o})}}$W._oneTimeWarning=Lt;var Eb=$W;function rWe(e,t){let n=e.metadataExtension;if(!l(n))return;let i=n.groups,o=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"].group:t.group;if(typeof o=="number")return i[o];let r=n.groupIds.findIndex(function(s){return s===o});return r>=0?i[r]:void 0}var Sb=rWe;function p_(e){e=y(e,y.EMPTY_OBJECT);let t=e.tile,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(p_.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});p_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};p_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};p_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};p_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};p_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};p_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};p_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var DM=p_;function QW(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){QW._oneTimeWarning("findTileMetadata-missing-root-schema","Could not find a metadata schema for tile metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(l(n.class)){let o=i[n.class];return new DM({tile:n,class:o})}}QW._oneTimeWarning=Lt;var PM=QW;function sWe(e){let t=new Uint8Array(e),n=Fd(t);if(n==="glTF"&&(n="glb"),xs.isBinaryFormat(n))return{contentType:n,binaryPayload:t};let i=aWe(t);if(l(i.root))return{contentType:xs.EXTERNAL_TILESET,jsonPayload:i};if(l(i.asset))return{contentType:xs.GLTF,jsonPayload:i};if(l(i.tileAvailability))return{contentType:xs.IMPLICIT_SUBTREE_JSON,jsonPayload:i};if(l(i.type))return{contentType:xs.GEOJSON,jsonPayload:i};if(l(i.voxelTable))return{contentType:xs.VOXEL_JSON,jsonPayload:i};throw new le("Invalid tile content.")}function aWe(e){let t;try{t=Ro(e)}catch{throw new le("Invalid tile content.")}return t}var Am=sWe;function Ff(e,t,n,i){this._tileset=e,this._tile=t,this._tilesetResource=n,this._contents=[],this._contentsCreated=!1;let o=l(i.contents)?i.contents:i.content;this._innerContentHeaders=o,this._requestsInFlight=0,this._cancelCount=0;let r=this._innerContentHeaders.length;this._arrayFetchPromises=new Array(r),this._requests=new Array(r),this._ready=!1,this._innerContentResources=new Array(r),this._serverKeys=new Array(r);for(let s=0;s<r;s++){let a=n.getDerivedResource({url:o[s].uri}),c=Ka.getServerKey(a.getUrlComponent());this._innerContentResources[s]=a,this._serverKeys[s]=c}}Object.defineProperties(Ff.prototype,{featurePropertiesDirty:{get:function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)if(e[n].featurePropertiesDirty)return!0;return!1},set:function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].featurePropertiesDirty=e}},featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){return this._contents}},ready:{get:function(){return this._contentsCreated?this._ready:!1}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){}},metadata:{get:function(){},set:function(){}},batchTable:{get:function(){}},group:{get:function(){},set:function(){}},innerContentUrls:{get:function(){return this._innerContentHeaders.map(function(e){return e.uri})}}});function JW(e,t){e._requestsInFlight+=t,e.tileset.statistics.numberOfPendingRequests+=t}function Vce(e,t){e._cancelCount++,e._tile._contentState=t;let n=e.tileset.statistics;n.numberOfPendingRequests-=e._requestsInFlight,n.numberOfAttemptedRequests+=e._requestsInFlight,e._requestsInFlight=0;let i=e._innerContentHeaders.length;e._arrayFetchPromises=new Array(i)}Ff.prototype.requestInnerContents=function(){if(!cWe(this._serverKeys)){this.tileset.statistics.numberOfAttemptedRequests+=this._serverKeys.length;return}let e=this._innerContentHeaders;JW(this,e.length);let t=this._cancelCount;for(let n=0;n<e.length;n++)this._arrayFetchPromises[n]=lWe(this,n,t,this._tile._contentState);return uWe(this)};function cWe(e){let t={};for(let n=0;n<e.length;n++){let i=e[n];l(t[i])?t[i]++:t[i]=1}for(let n in t)if(t.hasOwnProperty(n)&&!Ka.serverHasOpenSlots(n,t[n]))return!1;return Ka.heapHasOpenSlots(e.length)}function lWe(e,t,n,i){let o=e._innerContentResources[t].clone(),r=e.tile,s=function(){return r._priority},a=e._serverKeys[t],c=new qo({throttle:!0,throttleByServer:!0,type:os.TILES3D,priorityFunction:s,serverKey:a});o.request=c,e._requests[t]=c;let u=o.fetchArrayBuffer();if(l(u))return u.then(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===$n.CANCELLED){Vce(e,i);return}return JW(e,-1),f}}).catch(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===$n.CANCELLED){Vce(e,i);return}JW(e,-1),Uce(e,t,f)}})}async function uWe(e){let t=e._cancelCount,n=await Promise.all(e._arrayFetchPromises);if(t<e._cancelCount)return;let i=n.map((r,s)=>fWe(e,r,s)),o=await Promise.all(i);return e._contentsCreated=!0,e._contents=o.filter(l),o}async function fWe(e,t,n){if(l(t))try{let i=Am(t);if(i.contentType===xs.EXTERNAL_TILESET)throw new le("External tilesets are disallowed inside multiple contents");e._disableSkipLevelOfDetail=e._disableSkipLevelOfDetail||i.contentType===xs.GEOMETRY||i.contentType===xs.VECTOR;let o=e._tileset,r=e._innerContentResources[n],s=e._tile,a,c=Cb[i.contentType];l(i.binaryPayload)?a=await Promise.resolve(c(o,s,r,i.binaryPayload.buffer,0)):a=await Promise.resolve(c(o,s,r,i.jsonPayload));let u=e._innerContentHeaders[n];if(s.hasImplicitContentMetadata){let d=s.implicitSubtree,p=s.implicitCoordinates;a.metadata=d.getContentMetadataView(p,n)}else s.hasImplicitContent||(a.metadata=Eb(o,u));let f=Sb(o,u);return l(f)&&(a.group=new kx({metadata:f})),a}catch(i){Uce(e,n,i)}}function Uce(e,t,n){let i=e._tileset,o=e._innerContentResources[t].url,r=l(n.message)?n.message:n.toString();i.tileFailed.numberOfListeners>0?i.tileFailed.raiseEvent({url:o,message:r}):(console.log(`A content failed to load: ${o}`),console.log(`Error: ${r}`))}Ff.prototype.cancelRequests=function(){for(let e=0;e<this._requests.length;e++){let t=this._requests[e];l(t)&&t.cancel()}};Ff.prototype.hasProperty=function(e,t){return!1};Ff.prototype.getFeature=function(e){};Ff.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyDebugSettings(e,t)};Ff.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};Ff.prototype.update=function(e,t){let n=this._contents,i=n.length,o=!0;for(let r=0;r<i;++r)n[r].update(e,t),o=o&&n[r].ready;!this._ready&&o&&(this._ready=!0)};Ff.prototype.pick=function(e,t,n){if(!this._ready)return;let i,o=Number.POSITIVE_INFINITY,r=this._contents,s=r.length;for(let a=0;a<s;++a){let c=r[a].pick(e,t,n);if(!l(c))continue;let u=h.distance(e.origin,c);u<o&&(i=c,o=u)}if(l(i))return n};Ff.prototype.isDestroyed=function(){return!1};Ff.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var IM=Ff;var zce=Math.cos,Hce=Math.sin,dWe=Math.sqrt,tj={};tj.computePosition=function(e,t,n,i,o,r,s){let a=t.radiiSquared,c=e.nwCorner,u=e.boundingRectangle,f=c.latitude-e.granYCos*i+o*e.granXSin,d=zce(f),p=Hce(f),g=a.z*p,m=c.longitude+i*e.granYSin+o*e.granXCos,x=d*zce(m),b=d*Hce(m),T=a.x*x,C=a.y*b,A=dWe(T*x+C*b+g*p);if(r.x=T/A,r.y=C/A,r.z=g/A,n){let E=e.stNwCorner;l(E)?(f=E.latitude-e.stGranYCos*i+o*e.stGranXSin,m=E.longitude+i*e.stGranYSin+o*e.stGranXCos,s.x=(m-e.stWest)*e.lonScalar,s.y=(f-e.stSouth)*e.latScalar):(s.x=(m-u.west)*e.lonScalar,s.y=(f-u.south)*e.latScalar)}};var hWe=new Qi,Bf=new h,mWe=new fe,$U=new h,ej=new Ci;function Gce(e,t,n,i,o,r,s){let a=Math.cos(t),c=i*a,u=n*a,f=Math.sin(t),d=i*f,p=n*f;Bf=ej.project(e,Bf),Bf=h.subtract(Bf,$U,Bf);let g=Qi.fromRotation(t,hWe);Bf=Qi.multiplyByVector(g,Bf,Bf),Bf=h.add(Bf,$U,Bf),e=ej.unproject(Bf,e),r-=1,s-=1;let m=e.latitude,x=m+r*p,b=m-c*s,T=m-c*s+r*p,C=Math.max(m,x,b,T),A=Math.min(m,x,b,T),E=e.longitude,v=E+r*u,D=E+s*d,O=E+s*d+r*u,I=Math.max(E,v,D,O),L=Math.min(E,v,D,O);return{north:C,south:A,east:I,west:L,granYCos:c,granYSin:d,granXCos:u,granXSin:p,nwCorner:e}}tj.computeOptions=function(e,t,n,i,o,r,s){let a=e.east,c=e.west,u=e.north,f=e.south,d=!1,p=!1;u===R.PI_OVER_TWO&&(d=!0),f===-R.PI_OVER_TWO&&(p=!0);let g,m=u-f;c>a?g=R.TWO_PI-c+a:g=a-c;let x=Math.ceil(g/t)+1,b=Math.ceil(m/t)+1,T=g/(x-1),C=m/(b-1),A=se.northwest(e,r),E=se.center(e,mWe);(n!==0||i!==0)&&(E.longitude<A.longitude&&(E.longitude+=R.TWO_PI),$U=ej.project(E,$U));let v=C,D=T,O=0,I=0,L=se.clone(e,o),N={granYCos:v,granYSin:O,granXCos:D,granXSin:I,nwCorner:A,boundingRectangle:L,width:x,height:b,northCap:d,southCap:p};if(n!==0){let _=Gce(A,n,T,C,E,x,b);u=_.north,f=_.south,a=_.east,c=_.west,N.granYCos=_.granYCos,N.granYSin=_.granYSin,N.granXCos=_.granXCos,N.granXSin=_.granXSin,L.north=u,L.south=f,L.east=a,L.west=c}if(i!==0){n=n-i;let _=se.northwest(L,s),S=Gce(_,n,T,C,E,x,b);N.stGranYCos=S.granYCos,N.stGranXCos=S.granXCos,N.stGranYSin=S.granYSin,N.stGranXSin=S.granXSin,N.stNwCorner=_,N.stWest=S.west,N.stSouth=S.south}return N};var bs=tj;var pWe=new ae,_We=new ae,gWe=new h,yWe=new se;function Wce(e,t){let n=e._ellipsoid,i=t.height,o=t.width,r=t.northCap,s=t.southCap,a=i,c=2,u=0,f=4;r&&(c-=1,a-=1,u+=1,f-=2),s&&(c-=1,a-=1,u+=1,f-=2),u+=c*o+2*a-f;let d=new Float64Array(u*3),p=0,g=0,m,x=gWe;if(r)bs.computePosition(t,n,!1,g,0,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;else for(m=0;m<o;m++)bs.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;for(m=o-1,g=1;g<i;g++)bs.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;if(g=i-1,!s)for(m=o-2;m>=0;m--)bs.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;for(m=0,g=i-2;g>0;g--)bs.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;let b=d.length/3*2,T=Ne.createTypedArray(d.length/3,b),C=0;for(let E=0;E<d.length/3-1;E++)T[C++]=E,T[C++]=E+1;T[C++]=d.length/3-1,T[C++]=0;let A=new st({attributes:new fn,primitiveType:Le.LINES});return A.attributes.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),A.indices=T,A}function xWe(e,t){let n=e._surfaceHeight,i=e._extrudedHeight,o=e._ellipsoid,r=Wce(e,t),s=t.height,a=t.width,c=si.scaleToGeodeticHeight(r.attributes.position.values,n,o,!1),u=c.length,f=new Float64Array(u*2);f.set(c);let d=si.scaleToGeodeticHeight(r.attributes.position.values,i,o);f.set(d,u),r.attributes.position.values=f;let p=t.northCap,g=t.southCap,m=4;p&&(m-=1),g&&(m-=1);let x=(f.length/3+m)*2,b=Ne.createTypedArray(f.length/3,x);u=f.length/6;let T=0;for(let A=0;A<u-1;A++)b[T++]=A,b[T++]=A+1,b[T++]=A+u,b[T++]=A+u+1;b[T++]=u-1,b[T++]=0,b[T++]=u+u-1,b[T++]=u,b[T++]=0,b[T++]=u;let C;if(p)C=s-1;else{let A=a-1;b[T++]=A,b[T++]=A+u,C=a+s-2}if(b[T++]=C,b[T++]=C+u,!g){let A=a+C-1;b[T++]=A,b[T]=A+u}return r.indices=b,r}function nE(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.granularity,R.RADIANS_PER_DEGREE),i=y(e.ellipsoid,te.WGS84),o=y(e.rotation,0),r=y(e.height,0),s=y(e.extrudedHeight,r);this._rectangle=se.clone(t),this._granularity=n,this._ellipsoid=i,this._surfaceHeight=Math.max(r,s),this._rotation=o,this._extrudedHeight=Math.min(r,s),this._offsetAttribute=e.offsetAttribute,this._workerName="createRectangleOutlineGeometry"}nE.packedLength=se.packedLength+te.packedLength+5;nE.pack=function(e,t,n){return n=y(n,0),se.pack(e._rectangle,t,n),n+=se.packedLength,te.pack(e._ellipsoid,t,n),n+=te.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._extrudedHeight,t[n]=y(e._offsetAttribute,-1),t};var jce=new se,qce=te.clone(te.UNIT_SPHERE),tE={rectangle:jce,ellipsoid:qce,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};nE.unpack=function(e,t,n){t=y(t,0);let i=se.unpack(e,t,jce);t+=se.packedLength;let o=te.unpack(e,t,qce);t+=te.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t];return l(n)?(n._rectangle=se.clone(i,n._rectangle),n._ellipsoid=te.clone(o,n._ellipsoid),n._surfaceHeight=s,n._rotation=a,n._extrudedHeight=c,n._offsetAttribute=u===-1?void 0:u,n):(tE.granularity=r,tE.height=s,tE.rotation=a,tE.extrudedHeight=c,tE.offsetAttribute=u===-1?void 0:u,new nE(tE))};var bWe=new fe;nE.createGeometry=function(e){let t=e._rectangle,n=e._ellipsoid,i=bs.computeOptions(t,e._granularity,e._rotation,0,yWe,bWe),o,r;if(R.equalsEpsilon(t.north,t.south,R.EPSILON10)||R.equalsEpsilon(t.east,t.west,R.EPSILON10))return;let s=e._surfaceHeight,a=e._extrudedHeight,c=!R.equalsEpsilon(s,a,0,R.EPSILON2),u;if(c){if(o=xWe(e,i),l(e._offsetAttribute)){let p=o.attributes.position.values.length/3,g=new Uint8Array(p);e._offsetAttribute===an.TOP?g=g.fill(1,0,p/2):(u=e._offsetAttribute===an.NONE?0:1,g=g.fill(u)),o.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}let f=ae.fromRectangle3D(t,n,s,_We),d=ae.fromRectangle3D(t,n,a,pWe);r=ae.union(f,d)}else{if(o=Wce(e,i),o.attributes.position.values=si.scaleToGeodeticHeight(o.attributes.position.values,s,n,!1),l(e._offsetAttribute)){let f=o.attributes.position.values.length;u=e._offsetAttribute===an.NONE?0:1;let d=new Uint8Array(f/3).fill(u);o.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}r=ae.fromRectangle3D(t,n,s)}return new st({attributes:o.attributes,indices:o.indices,primitiveType:Le.LINES,boundingSphere:r,offsetAttribute:e._offsetAttribute})};var vb=nE;function oE(e){this.rectangle=se.clone(e.rectangle),this.minimumHeight=y(e.minimumHeight,0),this.maximumHeight=y(e.maximumHeight,0),this.southwestCornerCartesian=new h,this.northeastCornerCartesian=new h,this.westNormal=new h,this.southNormal=new h,this.eastNormal=new h,this.northNormal=new h;let t=y(e.ellipsoid,te.WGS84);SWe(this,e.rectangle,t),this._orientedBoundingBox=void 0,this._boundingSphere=void 0,y(e.computeBoundingVolumes,!0)&&this.computeBoundingVolumes(t)}Object.defineProperties(oE.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});oE.prototype.computeBoundingVolumes=function(e){this._orientedBoundingBox=Sn.fromRectangle(this.rectangle,this.minimumHeight,this.maximumHeight,e),this._boundingSphere=ae.fromOrientedBoundingBox(this._orientedBoundingBox)};var Yce=new h,QU=new h,Xce=new h,TWe=new h,AWe=new h,CWe=new h,EWe=new h,kf=new fe,Kce=new ln(h.UNIT_X,0),iE=new pn;function SWe(e,t,n){n.cartographicToCartesian(se.southwest(t),e.southwestCornerCartesian),n.cartographicToCartesian(se.northeast(t),e.northeastCornerCartesian),kf.longitude=t.west,kf.latitude=(t.south+t.north)*.5,kf.height=0;let i=n.cartographicToCartesian(kf,CWe),o=h.cross(i,h.UNIT_Z,TWe);h.normalize(o,e.westNormal),kf.longitude=t.east;let r=n.cartographicToCartesian(kf,EWe),s=h.cross(h.UNIT_Z,r,Yce);h.normalize(s,e.eastNormal);let a=h.subtract(i,r,Yce);h.magnitude(a)===0&&(a=h.clone(o,a));let c=h.normalize(a,AWe),u=t.south,f;if(u>0){kf.longitude=(t.west+t.east)*.5,kf.latitude=u;let x=n.cartographicToCartesian(kf,iE.origin);h.clone(c,iE.direction);let b=ln.fromPointNormal(e.southwestCornerCartesian,e.westNormal,Kce);Qn.rayPlane(iE,b,e.southwestCornerCartesian),f=n.geodeticSurfaceNormal(x,QU)}else f=n.geodeticSurfaceNormalCartographic(se.southeast(t),QU);let d=h.cross(f,a,Xce);h.normalize(d,e.southNormal);let p=t.north,g;if(p<0){kf.longitude=(t.west+t.east)*.5,kf.latitude=p;let x=n.cartographicToCartesian(kf,iE.origin);h.negate(c,iE.direction);let b=ln.fromPointNormal(e.northeastCornerCartesian,e.eastNormal,Kce);Qn.rayPlane(iE,b,e.northeastCornerCartesian),g=n.geodeticSurfaceNormal(x,QU)}else g=n.geodeticSurfaceNormalCartographic(se.northwest(t),QU);let m=h.cross(a,g,Xce);h.normalize(m,e.northNormal)}var vWe=new h,wWe=new h,DWe=new h(0,-1,0),PWe=new h(0,0,-1),Zce=new h;function IWe(e,t){let n=t.camera,i=n.positionWC,o=n.positionCartographic,r=0;if(!se.contains(e.rectangle,o)){let u=e.southwestCornerCartesian,f=e.northeastCornerCartesian,d=e.westNormal,p=e.southNormal,g=e.eastNormal,m=e.northNormal;t.mode!==ne.SCENE3D&&(u=t.mapProjection.project(se.southwest(e.rectangle),vWe),u.z=u.y,u.y=u.x,u.x=0,f=t.mapProjection.project(se.northeast(e.rectangle),wWe),f.z=f.y,f.y=f.x,f.x=0,d=DWe,g=h.UNIT_Y,p=PWe,m=h.UNIT_Z);let x=h.subtract(i,u,Zce),b=h.dot(x,d),T=h.dot(x,p),C=h.subtract(i,f,Zce),A=h.dot(C,g),E=h.dot(C,m);b>0?r+=b*b:A>0&&(r+=A*A),T>0?r+=T*T:E>0&&(r+=E*E)}let s,a,c;if(t.mode===ne.SCENE3D?(s=o.height,a=e.minimumHeight,c=e.maximumHeight):(s=i.x,a=0,c=0),s>c){let u=s-c;r+=u*u}else if(s<a){let u=a-s;r+=u*u}return Math.sqrt(r)}oE.prototype.distanceToCamera=function(e){let t=IWe(this,e);if(e.mode===ne.SCENE3D&&l(this._orientedBoundingBox)){let n=Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC));return Math.max(t,n)}return t};oE.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};oE.prototype.createDebugVolume=function(e){let t=new F.clone(F.IDENTITY),n=new vb({rectangle:this.rectangle,height:this.minimumHeight,extrudedHeight:this.maximumHeight}),i=new xt({geometry:n,id:"outline",modelMatrix:t,attributes:{color:zt.fromColor(e)}});return new vn({geometryInstances:i,appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1})};var Vf=oE;var RM={},RWe=new h,$ce=new h,Qce=new h,Jce=new h,ele=new Sn;RM.validOutline=function(e){let n=Sn.fromPoints(e,ele).halfAxes,i=$.getColumn(n,0,$ce),o=$.getColumn(n,1,Qce),r=$.getColumn(n,2,Jce),s=h.magnitude(i),a=h.magnitude(o),c=h.magnitude(r);return!(s===0&&(a===0||c===0)||a===0&&c===0)};RM.computeProjectTo2DArguments=function(e,t,n,i){let o=Sn.fromPoints(e,ele),r=o.halfAxes,s=$.getColumn(r,0,$ce),a=$.getColumn(r,1,Qce),c=$.getColumn(r,2,Jce),u=h.magnitude(s),f=h.magnitude(a),d=h.magnitude(c),p=Math.min(u,f,d);if(u===0&&(f===0||d===0)||f===0&&d===0)return!1;let g,m;return(p===f||p===d)&&(g=s),p===u?g=a:p===d&&(m=a),(p===u||p===f)&&(m=c),h.normalize(g,n),h.normalize(m,i),h.clone(o.center,t),!0};function tle(e,t,n,i,o){let r=h.subtract(e,t,RWe),s=h.dot(n,r),a=h.dot(i,r);return z.fromElements(s,a,o)}RM.createProjectPointsTo2DFunction=function(e,t,n){return function(i){let o=new Array(i.length);for(let r=0;r<i.length;r++)o[r]=tle(i[r],e,t,n);return o}};RM.createProjectPointTo2DFunction=function(e,t,n){return function(i,o){return tle(i,e,t,n,o)}};var __=RM;function OWe(e){let t=e.length,n=new Float64Array(t*3),i=Ne.createTypedArray(t,t*2),o=0,r=0;for(let a=0;a<t;a++){let c=e[a];n[o++]=c.x,n[o++]=c.y,n[o++]=c.z,i[r++]=a,i[r++]=(a+1)%t}let s=new fn({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n})});return new st({attributes:s,indices:i,primitiveType:Le.LINES})}function wb(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy;this._polygonHierarchy=t,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=zn.computeHierarchyPackedLength(t,h)+1}wb.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions}};return new wb(t)};wb.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),t[n]=e.packedLength,t};var MWe={polygonHierarchy:{}};wb.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=e[t];return l(n)||(n=new wb(MWe)),n._polygonHierarchy=i,n.packedLength=o,n};wb.createGeometry=function(e){let t=e._polygonHierarchy,n=t.positions;if(n=xo(n,h.equalsEpsilon,!0),n.length<3||!__.validOutline(n))return;let o=zn.polygonOutlinesFromHierarchy(t,!1);if(o.length===0)return;let r=[];for(let c=0;c<o.length;c++){let u=new xt({geometry:OWe(o[c])});r.push(u)}let s=Nn.combineInstances(r)[0],a=ae.fromPoints(t.positions);return new st({attributes:s.attributes,indices:s.indices,primitiveType:s.primitiveType,boundingSphere:a})};var Uf=wb;var JU=new fe;function OM(e){let t=Up.fromToken(e.token),n=y(e.minimumHeight,0),i=y(e.maximumHeight,0),o=y(e.ellipsoid,te.WGS84);this.s2Cell=t,this.minimumHeight=n,this.maximumHeight=i,this.ellipsoid=o;let r=HWe(t,n,i,o);this._boundingPlanes=r;let s=qWe(r);this._vertices=s,this._edgeNormals=new Array(6),this._edgeNormals[0]=lj(r[0],s.slice(0,4));let a;for(a=0;a<4;a++)this._edgeNormals[0][a]=h.negate(this._edgeNormals[0][a],this._edgeNormals[0][a]);for(this._edgeNormals[1]=lj(r[1],s.slice(4,8)),a=0;a<4;a++)this._edgeNormals[2+a]=lj(r[2+a],[s[a%4],s[(a+1)%4],s[4+(a+1)%4],s[4+a]]);for(this._planeVertices=[this._vertices.slice(0,4),this._vertices.slice(4,8)],a=0;a<4;a++)this._planeVertices.push([this._vertices[a%4],this._vertices[(a+1)%4],this._vertices[4+(a+1)%4],this._vertices[4+a]]);let c=t.getCenter();JU=o.cartesianToCartographic(c,JU),JU.height=(i+n)/2,this.center=o.cartographicToCartesian(JU,c),this._boundingSphere=ae.fromPoints(s)}var LWe=new h,NWe=new fe,FWe=new h,BWe=new fe,kWe=new h,VWe=new h,UWe=new h,zWe=new h;function HWe(e,t,n,i){let o=new Array(6),r=e.getCenter(),s=i.geodeticSurfaceNormal(r,LWe),a=i.cartesianToCartographic(r,NWe);a.height=n;let c=i.cartographicToCartesian(a,FWe),u=ln.fromPointNormal(c,s);o[0]=u;let f=0,d,p=[],g,m;for(d=0;d<4;d++){g=e.getVertex(d),p[d]=g,m=i.cartesianToCartographic(g,BWe),m.height=t;let b=ln.getPointDistance(u,i.cartographicToCartesian(m,kWe));b<f&&(f=b)}let x=ln.clone(u);for(x.normal=h.negate(x.normal,x.normal),x.distance=x.distance*-1+f,o[1]=x,d=0;d<4;d++){g=p[d];let b=p[(d+1)%4],T=i.geodeticSurfaceNormal(g,VWe),C=h.subtract(b,g,zWe),A=h.cross(C,T,UWe);A=h.normalize(A,A),o[2+d]=ln.fromPointNormal(g,A)}return o}var Db=new h,Pb=new h,Ib=new h,nj=new h,ij=new h,oj=new h,GWe=new h,WWe=new h,jWe=new h,rj=new h,sj=new h,aj=new h,Py=new h,Cm=new $;function nle(e,t,n){Db=e.normal,Pb=t.normal,Ib=n.normal,nj=h.multiplyByScalar(e.normal,-e.distance,nj),ij=h.multiplyByScalar(t.normal,-t.distance,ij),oj=h.multiplyByScalar(n.normal,-n.distance,oj),rj=h.multiplyByScalar(h.cross(Pb,Ib,GWe),h.dot(nj,Db),rj),sj=h.multiplyByScalar(h.cross(Ib,Db,WWe),h.dot(ij,Pb),sj),aj=h.multiplyByScalar(h.cross(Db,Pb,jWe),h.dot(oj,Ib),aj),Cm[0]=Db.x,Cm[1]=Pb.x,Cm[2]=Ib.x,Cm[3]=Db.y,Cm[4]=Pb.y,Cm[5]=Ib.y,Cm[6]=Db.z,Cm[7]=Pb.z,Cm[8]=Ib.z;let i=$.determinant(Cm);return Py=h.add(rj,sj,Py),Py=h.add(Py,aj,Py),new h(Py.x/i,Py.y/i,Py.z/i)}function qWe(e){let t=new Array(8);for(let n=0;n<4;n++)t[n]=nle(e[0],e[2+(n+3)%4],e[2+n%4]),t[n+4]=nle(e[1],e[2+(n+3)%4],e[2+n%4]);return t}var cj=new h,rE=new h;function lj(e,t){let n=[];for(let i=0;i<4;i++)cj=h.subtract(t[(i+1)%4],t[i],cj),rE=h.cross(e.normal,cj,rE),rE=h.normalize(rE,rE),n[i]=h.clone(rE);return n}Object.defineProperties(OM.prototype,{boundingVolume:{get:function(){return this}},boundingSphere:{get:function(){return this._boundingSphere}}});var uj=new h;OM.prototype.distanceToCamera=function(e){let t=e.camera.positionWC,n=[],i=[],o;ln.getPointDistance(this._boundingPlanes[0],t)>0?(n.push(0),i.push(this._planeVertices[0]),o=this._edgeNormals[0]):ln.getPointDistance(this._boundingPlanes[1],t)>0&&(n.push(1),i.push(this._planeVertices[1]),o=this._edgeNormals[1]);let r,s;for(r=0;r<4;r++)s=2+r,ln.getPointDistance(this._boundingPlanes[s],t)>0&&(n.push(s),i.push(this._planeVertices[s]),o=this._edgeNormals[s]);if(n.length===0)return 0;let a,c;if(n.length===1)return c=this._boundingPlanes[n[0]],a=fj(ln.projectPointOntoPlane(c,t,uj),i[0],c,o),h.distance(a,t);if(n.length===2){if(n[0]===0){let p=[this._vertices[4*n[0]+(n[1]-2)],this._vertices[4*n[0]+(n[1]-2+1)%4]];return a=ile(t,p[0],p[1]),h.distance(a,t)}let f=Number.MAX_VALUE,d;for(r=0;r<2;r++)c=this._boundingPlanes[n[r]],a=fj(ln.projectPointOntoPlane(c,t,uj),i[r],c,this._edgeNormals[n[r]]),d=h.distanceSquared(a,t),d<f&&(f=d);return Math.sqrt(f)}else if(n.length>3)return a=fj(ln.projectPointOntoPlane(this._boundingPlanes[1],t,uj),this._planeVertices[1],this._boundingPlanes[1],this._edgeNormals[1]),h.distance(a,t);let u=n[1]===2&&n[2]===5?0:1;return n[0]===0?h.distance(t,this._vertices[(n[1]-2+u)%4]):h.distance(t,this._vertices[4+(n[1]-2+u)%4])};var YWe=new h,XWe=new h;function ile(e,t,n){let i=h.subtract(n,t,YWe),o=h.subtract(e,t,XWe),r=h.dot(i,o);if(r<=0)return t;let s=h.dot(i,i);return r>=s?n:(r=r/s,new h((1-r)*t.x+r*n.x,(1-r)*t.y+r*n.y,(1-r)*t.z+r*n.z))}var KWe=new ln(h.UNIT_X,0);function fj(e,t,n,i){let o=Number.MAX_VALUE,r,s,a;for(let c=0;c<t.length;c++){let u=ln.fromPointNormal(t[c],i[c],KWe);ln.getPointDistance(u,e)<0||(a=ile(e,t[c],t[(c+1)%4]),r=h.distance(e,a),r<o&&(o=r,s=a))}return l(s)?s:e}OM.prototype.intersectPlane=function(e){let t=0,n=0;for(let i=0;i<this._vertices.length;i++)h.dot(e.normal,this._vertices[i])+e.distance<0?n++:t++;return t===this._vertices.length?Gt.INSIDE:n===this._vertices.length?Gt.OUTSIDE:Gt.INTERSECTING};OM.prototype.createDebugVolume=function(e){let t=new F.clone(F.IDENTITY),n=new Uf({polygonHierarchy:{positions:this._planeVertices[0]}}),i=Uf.createGeometry(n),o=new xt({geometry:i,id:"outline",modelMatrix:t,attributes:{color:zt.fromColor(e)}}),r=new Uf({polygonHierarchy:{positions:this._planeVertices[1]}}),s=Uf.createGeometry(r),a=new xt({geometry:s,id:"outline",modelMatrix:t,attributes:{color:zt.fromColor(e)}}),c=[];for(let u=0;u<4;u++){let f=new Uf({polygonHierarchy:{positions:this._planeVertices[2+u]}}),d=Uf.createGeometry(f);c[u]=new xt({geometry:d,id:"outline",modelMatrix:t,attributes:{color:zt.fromColor(e)}})}return new vn({geometryInstances:[c[0],c[1],c[2],c[3],a,o],appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1})};var MM=OM;var ZWe=new h(1,1,1),ez=Math.cos,tz=Math.sin;function sE(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,ZWe),n=y(e.innerRadii,t),i=y(e.minimumClock,0),o=y(e.maximumClock,R.TWO_PI),r=y(e.minimumCone,0),s=y(e.maximumCone,R.PI),a=Math.round(y(e.stackPartitions,10)),c=Math.round(y(e.slicePartitions,8)),u=Math.round(y(e.subdivisions,128));this._radii=h.clone(t),this._innerRadii=h.clone(n),this._minimumClock=i,this._maximumClock=o,this._minimumCone=r,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._subdivisions=u,this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}sE.packedLength=2*h.packedLength+8;sE.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),n+=h.packedLength,h.pack(e._innerRadii,t,n),n+=h.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n++]=e._subdivisions,t[n]=y(e._offsetAttribute,-1),t};var ole=new h,rle=new h,g_={radii:ole,innerRadii:rle,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};sE.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,ole);t+=h.packedLength;let o=h.unpack(e,t,rle);t+=h.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(o,n._innerRadii),n._minimumClock=r,n._maximumClock=s,n._minimumCone=a,n._maximumCone=c,n._stackPartitions=u,n._slicePartitions=f,n._subdivisions=d,n._offsetAttribute=p===-1?void 0:p,n):(g_.minimumClock=r,g_.maximumClock=s,g_.minimumCone=a,g_.maximumCone=c,g_.stackPartitions=u,g_.slicePartitions=f,g_.subdivisions=d,g_.offsetAttribute=p===-1?void 0:p,new sE(g_))};sE.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,o=e._maximumClock,r=e._minimumCone,s=e._maximumCone,a=e._subdivisions,c=te.fromCartesian3(t),u=e._slicePartitions+1,f=e._stackPartitions+1;u=Math.round(u*Math.abs(o-i)/R.TWO_PI),f=Math.round(f*Math.abs(s-r)/R.PI),u<2&&(u=2),f<2&&(f=2);let d=0,p=1,g=n.x!==t.x||n.y!==t.y||n.z!==t.z,m=!1,x=!1;g&&(p=2,r>0&&(m=!0,d+=u),s<Math.PI&&(x=!0,d+=u));let b=a*p*(f+u),T=new Float64Array(b*3),C=2*(b+d-(u+f)*p),A=Ne.createTypedArray(b,C),E,v,D,O,I=0,L=new Array(f),N=new Array(f);for(E=0;E<f;E++)O=r+E*(s-r)/(f-1),L[E]=tz(O),N[E]=ez(O);let _=new Array(a),S=new Array(a);for(E=0;E<a;E++)D=i+E*(o-i)/(a-1),_[E]=tz(D),S[E]=ez(D);for(E=0;E<f;E++)for(v=0;v<a;v++)T[I++]=t.x*L[E]*S[v],T[I++]=t.y*L[E]*_[v],T[I++]=t.z*N[E];if(g)for(E=0;E<f;E++)for(v=0;v<a;v++)T[I++]=n.x*L[E]*S[v],T[I++]=n.y*L[E]*_[v],T[I++]=n.z*N[E];for(L.length=a,N.length=a,E=0;E<a;E++)O=r+E*(s-r)/(a-1),L[E]=tz(O),N[E]=ez(O);for(_.length=u,S.length=u,E=0;E<u;E++)D=i+E*(o-i)/(u-1),_[E]=tz(D),S[E]=ez(D);for(E=0;E<a;E++)for(v=0;v<u;v++)T[I++]=t.x*L[E]*S[v],T[I++]=t.y*L[E]*_[v],T[I++]=t.z*N[E];if(g)for(E=0;E<a;E++)for(v=0;v<u;v++)T[I++]=n.x*L[E]*S[v],T[I++]=n.y*L[E]*_[v],T[I++]=n.z*N[E];for(I=0,E=0;E<f*p;E++){let M=E*a;for(v=0;v<a-1;v++)A[I++]=M+v,A[I++]=M+v+1}let w=f*a*p;for(E=0;E<u;E++)for(v=0;v<a-1;v++)A[I++]=w+E+v*u,A[I++]=w+E+(v+1)*u;if(g)for(w=f*a*p+u*a,E=0;E<u;E++)for(v=0;v<a-1;v++)A[I++]=w+E+v*u,A[I++]=w+E+(v+1)*u;if(g){let M=f*a*p,B=M+a*u;if(m)for(E=0;E<u;E++)A[I++]=M+E,A[I++]=B+E;if(x)for(M+=a*u-u,B+=a*u-u,E=0;E<u;E++)A[I++]=M+E,A[I++]=B+E}let P=new fn({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T})});if(l(e._offsetAttribute)){let M=T.length,B=e._offsetAttribute===an.NONE?0:1,U=new Uint8Array(M/3).fill(B);P.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:U})}return new st({attributes:P,indices:A,primitiveType:Le.LINES,boundingSphere:ae.fromEllipsoid(c),offsetAttribute:e._offsetAttribute})};var Su=sE;function aE(e){let t=y(e.radius,1),i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,subdivisions:e.subdivisions};this._ellipsoidGeometry=new Su(i),this._workerName="createSphereOutlineGeometry"}aE.packedLength=Su.packedLength;aE.pack=function(e,t,n){return Su.pack(e._ellipsoidGeometry,t,n)};var $We=new Su,Rb={radius:void 0,radii:new h,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};aE.unpack=function(e,t,n){let i=Su.unpack(e,t,$We);return Rb.stackPartitions=i._stackPartitions,Rb.slicePartitions=i._slicePartitions,Rb.subdivisions=i._subdivisions,l(n)?(h.clone(i._radii,Rb.radii),n._ellipsoidGeometry=new Su(Rb),n):(Rb.radius=i._radii.x,new aE(Rb))};aE.createGeometry=function(e){return Su.createGeometry(e._ellipsoidGeometry)};var y_=aE;function cE(e,t){t===0&&(t=R.EPSILON7),this._boundingSphere=new ae(e,t)}Object.defineProperties(cE.prototype,{center:{get:function(){return this._boundingSphere.center}},radius:{get:function(){return this._boundingSphere.radius}},boundingVolume:{get:function(){return this._boundingSphere}},boundingSphere:{get:function(){return this._boundingSphere}}});cE.prototype.distanceToCamera=function(e){let t=this._boundingSphere;return Math.max(0,h.distance(t.center,e.camera.positionWC)-t.radius)};cE.prototype.intersectPlane=function(e){return ae.intersectPlane(this._boundingSphere,e)};cE.prototype.update=function(e,t){h.clone(e,this._boundingSphere.center),this._boundingSphere.radius=t};cE.prototype.createDebugVolume=function(e){let t=new y_({radius:this.radius}),n=F.fromTranslation(this.center,new F.clone(F.IDENTITY)),i=new xt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:zt.fromColor(e)}});return new vn({geometryInstances:i,appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1})};var x_=cE;var QWe=new h,JWe=new h,eje=new h,tje=new h;function Ob(e,t,n){n=h.cross(e,t,n);let i=h.magnitude(n);return h.multiplyByScalar(n,R.EPSILON7/i,n)}function dj(e,t){let n=h.normalize(e,tje),i=h.equalsEpsilon(n,h.UNIT_X,R.EPSILON6)?h.UNIT_Y:h.UNIT_X;return Ob(e,i,t)}function sle(e){let t=$.getColumn(e,0,QWe),n=$.getColumn(e,1,JWe),i=$.getColumn(e,2,eje),o=h.equals(t,h.ZERO),r=h.equals(n,h.ZERO),s=h.equals(i,h.ZERO);return!o&&!r&&!s?e:o&&r&&s?(e[0]=R.EPSILON7,e[4]=R.EPSILON7,e[8]=R.EPSILON7,e):(o&&!r&&!s?t=Ob(n,i,t):!o&&r&&!s?n=Ob(t,i,n):!o&&!r&&s?i=Ob(n,t,i):o?r?s||(t=dj(i,t),n=Ob(i,t,n)):(t=dj(n,t),i=Ob(n,t,i)):(n=dj(t,n),i=Ob(n,t,i)),$.setColumn(e,0,t,e),$.setColumn(e,1,n,e),$.setColumn(e,2,i,e),e)}function lE(e,t){t=sle(t),this._orientedBoundingBox=new Sn(e,t),this._boundingSphere=ae.fromOrientedBoundingBox(this._orientedBoundingBox)}Object.defineProperties(lE.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});lE.prototype.distanceToCamera=function(e){return Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC))};lE.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};lE.prototype.update=function(e,t){h.clone(e,this._orientedBoundingBox.center),t=sle(t),$.clone(t,this._orientedBoundingBox.halfAxes),ae.fromOrientedBoundingBox(this._orientedBoundingBox,this._boundingSphere)};lE.prototype.createDebugVolume=function(e){let t=new Cd({minimum:new h(-1,-1,-1),maximum:new h(1,1,1)}),n=F.fromRotationTranslation(this.boundingVolume.halfAxes,this.boundingVolume.center),i=new xt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:zt.fromColor(e)}});return new vn({geometryInstances:i,appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1})};var vu=lE;function Qo(e,t,n,i){this._tileset=e,this._header=n;let o=l(n.contents),r=o&&n.contents.length>1||oi(n,"3DTILES_multiple_contents"),s=o&&!r?n.contents[0]:n.content;this._contentHeader=s,this.transform=l(n.transform)?F.unpack(n.transform):F.clone(F.IDENTITY);let a=l(i)?i.computedTransform:e.modelMatrix,c=F.multiply(a,this.transform,new F),u=l(i)?i._initialTransform:F.IDENTITY;this._initialTransform=F.multiply(u,this.transform,new F),this.computedTransform=c,this.metadata=PM(e,n),this._verticalExaggeration=1,this._verticalExaggerationRelativeHeight=0,this._boundingVolume=this.createBoundingVolume(n.boundingVolume,c),this._boundingVolume2D=void 0;let f;l(s)&&l(s.boundingVolume)&&(f=this.createBoundingVolume(s.boundingVolume,c)),this._contentBoundingVolume=f,this._contentBoundingVolume2D=void 0;let d;l(n.viewerRequestVolume)&&(d=this.createBoundingVolume(n.viewerRequestVolume,c)),this._viewerRequestVolume=d,this.geometricError=n.geometricError,this._geometricError=n.geometricError,l(this._geometricError)||(this._geometricError=l(i)?i._geometricError:e._geometricError,Qo._deprecationWarning("geometricErrorUndefined","Required property geometricError is undefined for this tile. Using parent's geometric error instead.")),this.updateGeometricErrorScale();let p;l(n.refine)?((n.refine==="replace"||n.refine==="add")&&Qo._deprecationWarning("lowercase-refine",`This tile uses a lowercase refine "${n.refine}". Instead use "${n.refine.toUpperCase()}".`),p=n.refine.toUpperCase()==="REPLACE"?Bo.REPLACE:Bo.ADD):l(i)?p=i.refine:p=Bo.REPLACE,this.refine=p,this.children=[],this.parent=i;let g,m=!1,x,b,T;if(t=De.createIfNeeded(t),r)x=zo.UNLOADED,b=t.clone();else if(l(s)){let v=s.uri;l(s.url)&&(Qo._deprecationWarning("contentUrl",'This tileset JSON uses the "content.url" property which has been deprecated. Use "content.uri" instead.'),v=s.url),v===""?(Qo._deprecationWarning("contentUriEmpty","content.uri property is an empty string, which creates a circular dependency, making this tileset invalid. Omit the content property instead"),g=new eE(e,this),m=!0,x=zo.READY):(x=zo.UNLOADED,b=t.getDerivedResource({url:v}),T=Ka.getServerKey(b.getUrlComponent()))}else g=new eE(e,this),m=!0,x=zo.READY;this._content=g,this._contentResource=b,this._contentState=x,this._expiredContent=void 0,this._serverKey=T,this.hasEmptyContent=m,this.hasTilesetContent=!1,this.hasImplicitContent=!1,this.hasImplicitContentMetadata=!1,this.hasMultipleContents=r,this.cacheNode=void 0;let C=n.expire,A,E;l(C)&&(A=C.duration,l(C.date)&&(E=J.fromIso8601(C.date))),this.expireDuration=A,this.expireDate=E,this.lastStyleTime=0,this._optimChildrenWithinParent=Nf.NOT_COMPUTED,this.clippingPlanesDirty=!1,this.clippingPolygonsDirty=!1,this.priorityDeferred=!1,this.implicitTileset=void 0,this.implicitCoordinates=void 0,this.implicitSubtree=void 0,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._screenSpaceErrorProgressiveResolution=0,this._visibilityPlaneMask=0,this._visible=!1,this._inRequestVolume=!1,this._finalResolution=!0,this._depth=0,this._stackLength=0,this._selectionDepth=0,this._updatedVisibilityFrame=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._wasSelectedLastFrame=!1,this._requestedFrame=0,this._ancestorWithContent=void 0,this._ancestorWithContentAvailable=void 0,this._refines=!1,this._shouldSelect=!1,this._isClipped=!0,this._isClippedByPolygon=!1,this._clippingPlanesState=0,this._clippingPolygonsState=0,this._debugBoundingVolume=void 0,this._debugContentBoundingVolume=void 0,this._debugViewerRequestVolume=void 0,this._debugColor=H.fromRandom({alpha:1}),this._debugColorizeTiles=!1,this._priority=0,this._priorityHolder=this,this._priorityProgressiveResolution=!1,this._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1,this._priorityReverseScreenSpaceError=0,this._foveatedFactor=0,this._wasMinPriorityChild=!1,this._loadTimestamp=new J,this._commandsLength=0,this._color=void 0,this._colorDirty=!1,this._request=void 0}Qo._deprecationWarning=Ls;Object.defineProperties(Qo.prototype,{tileset:{get:function(){return this._tileset}},content:{get:function(){return this._content}},boundingVolume:{get:function(){return this._boundingVolume}},contentBoundingVolume:{get:function(){return y(this._contentBoundingVolume,this._boundingVolume)}},boundingSphere:{get:function(){return this._boundingVolume.boundingSphere}},isVisible:{get:function(){return this._visible&&this._inRequestVolume}},extras:{get:function(){return this._header.extras}},color:{get:function(){return l(this._color)||(this._color=new H),H.clone(this._color)},set:function(e){this._color=H.clone(e,this._color),this._colorDirty=!0}},hasRenderableContent:{get:function(){return!this.hasEmptyContent&&!this.hasTilesetContent&&!this.hasImplicitContent}},contentAvailable:{get:function(){return this.contentReady&&this.hasRenderableContent||l(this._expiredContent)&&!this.contentFailed}},contentReady:{get:function(){return this._contentState===zo.READY}},contentUnloaded:{get:function(){return this._contentState===zo.UNLOADED}},hasUnloadedRenderableContent:{get:function(){return this.hasRenderableContent&&this.contentUnloaded}},contentExpired:{get:function(){return this._contentState===zo.EXPIRED}},contentFailed:{get:function(){return this._contentState===zo.FAILED}},commandsLength:{get:function(){return this._commandsLength}}});var Iy=new h;function nje(e,t){let{tileset:n,boundingSphere:i}=e,{radius:o,center:r}=i,{camera:s}=t,a=h.multiplyByScalar(s.directionWC,e._centerZDepth,Iy),c=h.add(s.positionWC,a,Iy),u=h.subtract(c,r,Iy);if(h.magnitude(u)>o){let E=h.normalize(u,Iy),v=h.multiplyByScalar(E,o,Iy),D=h.add(r,v,Iy),O=h.subtract(D,s.positionWC,Iy),I=h.normalize(O,Iy);e._foveatedFactor=1-Math.abs(h.dot(s.directionWC,I))}else e._foveatedFactor=0;let p=e.refine===Bo.REPLACE,g=n.isSkippingLevelOfDetail;if(p&&!g||!n.foveatedScreenSpaceError||n.foveatedConeSize===1||e._priorityProgressiveResolution&&p&&g||n._pass===Mo.PRELOAD_FLIGHT||n._pass===Mo.PRELOAD)return!1;let m=1-Math.cos(s.frustum.fov*.5),x=n.foveatedConeSize*m;if(e._foveatedFactor<=x)return!1;let b=m-x,T=R.clamp((e._foveatedFactor-x)/b,0,1),C=n.foveatedInterpolationCallback(n.foveatedMinimumScreenSpaceErrorRelaxation,n.memoryAdjustedScreenSpaceError,T),A=e._screenSpaceError===0&&l(e.parent)?e.parent._screenSpaceError*.5:e._screenSpaceError;return n.memoryAdjustedScreenSpaceError-C<=A}var ule=new J;Qo.prototype.getScreenSpaceError=function(e,t,n){let i=this._tileset,o=y(n,1),r=l(this.parent)?this.parent.geometricError:i._scaledGeometricError,s=t?r:this.geometricError;if(s===0)return 0;let{camera:a,context:c}=e,u=a.frustum,f=c.drawingBufferWidth,d=c.drawingBufferHeight*o,p;if(e.mode===ne.SCENE2D||u instanceof rn){let g=u.offCenterFrustum;l(g)&&(u=g);let m=Math.max(u.top-u.bottom,u.right-u.left)/Math.max(f,d);p=s/m}else{let g=Math.max(this._distanceToCamera,R.EPSILON7),m=u.sseDenominator;if(p=s*d/(g*m),i.dynamicScreenSpaceError){let x=i._dynamicScreenSpaceErrorComputedDensity,b=i.dynamicScreenSpaceErrorFactor,T=R.fog(g,x)*b;p-=T}}return p/=e.pixelRatio,p};function ije(e,t){if(e.progressiveResolutionHeightFraction<=0||e.progressiveResolutionHeightFraction>.5)return!1;let n=e.memoryAdjustedScreenSpaceError,i=t._screenSpaceErrorProgressiveResolution>n;t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1;let o=t.parent,r=t._screenSpaceErrorProgressiveResolution<=n,s=l(o)&&o._screenSpaceErrorProgressiveResolution>n;return r&&s&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!0,i=!0),i}function oje(e,t){let n=t.parent,o=l(n)&&(!e.isSkippingLevelOfDetail||t._screenSpaceError===0||n.hasTilesetContent||n.hasImplicitContent)?n._screenSpaceError:t._screenSpaceError;return e.root._screenSpaceError-o}Qo.prototype.updateVisibility=function(e){let{parent:t,tileset:n}=this;if(this._updatedVisibilityFrame===n._updatedVisibilityFrame)return;let i=l(t)?t.computedTransform:n.modelMatrix,o=l(t)?t._visibilityPlaneMask:as.MASK_INDETERMINATE;this.updateTransform(i,e),this._distanceToCamera=this.distanceToTile(e),this._centerZDepth=this.distanceToTileCenter(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._screenSpaceErrorProgressiveResolution=this.getScreenSpaceError(e,!1,n.progressiveResolutionHeightFraction),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==as.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._priorityReverseScreenSpaceError=oje(n,this),this._priorityProgressiveResolution=ije(n,this),this.priorityDeferred=nje(this,e),this._updatedVisibilityFrame=n._updatedVisibilityFrame};Qo.prototype.updateExpiration=function(){if(l(this.expireDate)&&this.contentReady&&!this.hasEmptyContent&&!this.hasMultipleContents){let e=J.now(ule);J.lessThan(this.expireDate,e)&&(this._contentState=zo.EXPIRED,this._expiredContent=this._content)}};function rje(e){if(!l(e.expireDuration))return;let t=J.now(ule);J.addSeconds(t,e.expireDuration,t),l(e.expireDate)?J.lessThan(e.expireDate,t)&&J.clone(t,e.expireDate):e.expireDate=J.clone(t)}function sje(e){return function(){return e._priority}}Qo.prototype.requestContent=function(){if(!this.hasEmptyContent)return this.hasMultipleContents?aje(this):lje(this)};function aje(e){let t=e._content,n=e._tileset;if(!l(t)){let o=oi(e._header,"3DTILES_multiple_contents")?e._header.extensions["3DTILES_multiple_contents"]:e._header;t=new IM(n,e,e._contentResource.clone(),o),e._content=t}let i=t.requestInnerContents();if(l(i))return e._contentState=zo.LOADING,i.then(o=>{if(!e.isDestroyed()&&l(o))return e._contentState=zo.PROCESSING,t}).catch(o=>{if(!e.isDestroyed())throw e._contentState=zo.FAILED,o})}async function cje(e,t,n,i,o){let r=e._contentState;e._contentState=zo.LOADING,++t.statistics.numberOfPendingRequests;let s;try{s=await o}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;if(n.cancelled||n.state===$n.CANCELLED){e._contentState=r,++t.statistics.numberOfAttemptedRequests;return}throw e._contentState=zo.FAILED,a}if(e.isDestroyed()){--t.statistics.numberOfPendingRequests;return}if(n.cancelled||n.state===$n.CANCELLED){e._contentState=r,--t.statistics.numberOfPendingRequests,++t.statistics.numberOfAttemptedRequests;return}try{let a=await uje(e,s);return--t.statistics.numberOfPendingRequests,e.isDestroyed()?void 0:(i&&(e.expireDate=void 0),e._content=a,e._contentState=zo.PROCESSING,a)}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;throw e._contentState=zo.FAILED,a}}function lje(e){let t=e._contentResource.clone(),n=e.contentExpired;n&&t.setQueryParameters({expired:e.expireDate.toString()});let i=new qo({throttle:!0,throttleByServer:!0,type:os.TILES3D,priorityFunction:sje(e),serverKey:e._serverKey});e._request=i,t.request=i;let o=e._tileset,r=t.fetchArrayBuffer();if(!l(r)){++o.statistics.numberOfAttemptedRequests;return}return cje(e,o,i,n,r)}async function uje(e,t){let n=Am(t),i=e._tileset;i._disableSkipLevelOfDetail=i._disableSkipLevelOfDetail||n.contentType===xs.GEOMETRY||n.contentType===xs.VECTOR,(n.contentType===xs.IMPLICIT_SUBTREE||n.contentType===xs.IMPLICIT_SUBTREE_JSON)&&(e.hasImplicitContent=!0),n.contentType===xs.EXTERNAL_TILESET&&(e.hasTilesetContent=!0);let o,r=Cb[n.contentType];if(e.isDestroyed())return;l(n.binaryPayload)?o=await Promise.resolve(r(i,e,e._contentResource,n.binaryPayload.buffer,0)):o=await Promise.resolve(r(i,e,e._contentResource,n.jsonPayload));let s=e._contentHeader;if(e.hasImplicitContentMetadata){let c=e.implicitSubtree,u=e.implicitCoordinates;o.metadata=c.getContentMetadataView(u,0)}else e.hasImplicitContent||(o.metadata=Eb(i,s));let a=Sb(i,s);return l(a)&&(o.group=new kx({metadata:a})),o}Qo.prototype.cancelRequests=function(){this.hasMultipleContents?this._content.cancelRequests():this._request.cancel()};Qo.prototype.unloadContent=function(){this.hasRenderableContent&&(this._content=this._content&&this._content.destroy(),this._contentState=zo.UNLOADED,this.lastStyleTime=0,this.clippingPlanesDirty=this._clippingPlanesState===0,this._clippingPlanesState=0,this.clippingPolygonsDirty=this._clippingPolygonsState===0,this._clippingPolygonsState=0,this._debugColorizeTiles=!1,this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy())};var fle=new ae;function mj(e,t){if(t.mode!==ne.SCENE3D&&!l(e._boundingVolume2D)){let n=e._boundingVolume.boundingSphere,i=ae.projectTo2D(n,t.mapProjection,fle);e._boundingVolume2D=new x_(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._boundingVolume2D:e._boundingVolume}function fje(e,t){if(t.mode!==ne.SCENE3D&&!l(e._contentBoundingVolume2D)){let n=e._contentBoundingVolume.boundingSphere,i=ae.projectTo2D(n,t.mapProjection,fle);e._contentBoundingVolume2D=new x_(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._contentBoundingVolume2D:e._contentBoundingVolume}Qo.prototype.visibility=function(e,t){let n=e.cullingVolume,i=mj(this,e),o=this._tileset,r=o.clippingPlanes;if(l(r)&&r.enabled){let a=r.computeIntersectionWithBoundingVolume(i,o.clippingPlanesOriginMatrix);if(this._isClipped=a!==Gt.INSIDE,a===Gt.OUTSIDE)return as.MASK_OUTSIDE}let s=o.clippingPolygons;if(l(s)&&s.enabled){let a=s.computeIntersectionWithBoundingVolume(i);this._isClippedByPolygon=a!==Gt.OUTSIDE}return n.computeVisibilityWithPlaneMask(i,t)};Qo.prototype.contentVisibility=function(e){if(!l(this._contentBoundingVolume))return Gt.INSIDE;if(this._visibilityPlaneMask===as.MASK_INSIDE)return Gt.INSIDE;let t=e.cullingVolume,n=fje(this,e),i=this._tileset,o=i.clippingPlanes;if(l(o)&&o.enabled){let s=o.computeIntersectionWithBoundingVolume(n,i.clippingPlanesOriginMatrix);if(this._isClipped=s!==Gt.INSIDE,s===Gt.OUTSIDE)return Gt.OUTSIDE}let r=i.clippingPolygons;if(l(r)&&r.enabled){let s=r.computeIntersectionWithBoundingVolume(n);if(this._isClippedByPolygon=s!==Gt.OUTSIDE,s===Gt.INSIDE)return Gt.OUTSIDE}return t.computeVisibility(n)};Qo.prototype.distanceToTile=function(e){return mj(this,e).distanceToCamera(e)};var dje=new h;Qo.prototype.distanceToTileCenter=function(e){let n=mj(this,e).boundingVolume,i=h.subtract(n.center,e.camera.positionWC,dje);return h.dot(e.camera.directionWC,i)};Qo.prototype.insideViewerRequestVolume=function(e){let t=this._viewerRequestVolume;return!l(t)||t.distanceToCamera(e)===0};var dle=new $,hle=new h,hje=new $,pj=new h,mle=new se,ple=new Sn,hj=new F;function mje(e,t,n){let i=h.fromElements(e[0],e[1],e[2],pj),o=$.fromArray(e,3,hje);i=F.multiplyByPoint(t,i,i);let r=F.getMatrix3(t,dle);return o=$.multiply(r,o,o),l(n)?(n.update(i,o),n):new vu(i,o)}function pje(e,t,n,i){let o=se.unpack(e,0,mle),r=e[4],s=e[5],a=Sn.fromRectangle(o,r,s,te.WGS84,ple),c=a.center,u=a.halfAxes;t=F.multiplyTransformation(t,F.inverseTransformation(n,hj),hj),c=F.multiplyByPoint(t,c,c);let f=F.getMatrix3(t,dle);return u=$.multiply(f,u,u),l(i)&&i instanceof vu?(i.update(c,u),i):new vu(c,u)}function _je(e,t,n,i){if(!F.equalsEpsilon(t,n,R.EPSILON8))return pje(e,t,n,i);let o=se.unpack(e,0,mle);return l(i)?(i.rectangle=se.clone(o,i.rectangle),i.minimumHeight=e[4],i.maximumHeight=e[5],i.computeBoundingVolumes(te.WGS84),i):new Vf({rectangle:o,minimumHeight:e[4],maximumHeight:e[5]})}function gje(e,t,n){let i=h.fromElements(e[0],e[1],e[2],pj),o=e[3];i=F.multiplyByPoint(t,i,i);let r=F.getScale(t,hle),s=h.maximumComponent(r);return o*=s,l(n)?(n.update(i,o),n):new x_(i,o)}Qo.prototype.createBoundingVolume=function(e,t,n){let i=this.metadata,o;if(l(i)&&(o=nb.parseBoundingVolumeSemantic("TILE",i)),l(o)&&(e=o),!l(e))throw new le("boundingVolume must be defined");if(oi(e,"3DTILES_bounding_volume_S2"))return new MM(e.extensions["3DTILES_bounding_volume_S2"]);let{box:r,region:s,sphere:a}=e;if(l(r)){let c=mje(r,t,n);return this._verticalExaggeration!==1&&ale(c,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c}if(l(s)){let c=_je(s,t,this._initialTransform,n);return this._verticalExaggeration===1||(c instanceof vu?ale(c,this._verticalExaggeration,this._verticalExaggerationRelativeHeight):(c.minimumHeight=pr.getHeight(c.minimumHeight,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c.maximumHeight=pr.getHeight(c.maximumHeight,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c.computeBoundingVolumes(te.WGS84))),c}if(l(a)){let c=gje(a,t,n);if(this._verticalExaggeration!==1){let u=pr.getPosition(c.center,te.WGS84,this._verticalExaggeration,this._verticalExaggerationRelativeHeight,pj),f=c.radius*this._verticalExaggeration;c.update(u,f)}return c}throw new le("boundingVolume must contain a sphere, region, or box")};var yje=h.unpackArray(new Array(8*3).fill(0));function ale(e,t,n){let i=e.boundingVolume.computeCorners(yje).map(r=>pr.getPosition(r,te.WGS84,t,n,r)),o=Sn.fromPoints(i,ple);e.update(o.center,o.halfAxes)}Qo.prototype.updateTransform=function(e,t){e=y(e,F.IDENTITY);let n=F.multiplyTransformation(e,this.transform,hj),i=!F.equals(n,this.computedTransform),o=l(t)&&(this._verticalExaggeration!==t.verticalExaggeration||this._verticalExaggerationRelativeHeight!==t.verticalExaggerationRelativeHeight);if(!i&&!o)return;i&&F.clone(n,this.computedTransform),o&&(this._verticalExaggeration=t.verticalExaggeration,this._verticalExaggerationRelativeHeight=t.verticalExaggerationRelativeHeight);let r=this._header,s=this._contentHeader;this._boundingVolume=this.createBoundingVolume(r.boundingVolume,this.computedTransform,this._boundingVolume),l(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(s.boundingVolume,this.computedTransform,this._contentBoundingVolume)),l(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(r.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()};Qo.prototype.updateGeometricErrorScale=function(){let e=F.getScale(this.computedTransform,hle),t=h.maximumComponent(e);if(this.geometricError=this._geometricError*t,!l(this.parent)){let n=this._tileset;n._scaledGeometricError=n._geometricError*t}};function xje(e,t,n,i){if(!i.isRender)return;let o=l(e._contentHeader)&&l(e._contentHeader.boundingVolume),r=t.debugShowBoundingVolume||t.debugShowContentBoundingVolume&&!o;if(r){let c;e._finalResolution?e.hasRenderableContent?c=H.WHITE:c=H.DARKGRAY:c=H.YELLOW,l(e._debugBoundingVolume)||(e._debugBoundingVolume=e._boundingVolume.createDebugVolume(c)),e._debugBoundingVolume.update(n);let u=e._debugBoundingVolume.getGeometryInstanceAttributes("outline");u.color=zt.toValue(c,u.color)}else!r&&l(e._debugBoundingVolume)&&(e._debugBoundingVolume=e._debugBoundingVolume.destroy());t.debugShowContentBoundingVolume&&o?(l(e._debugContentBoundingVolume)||(e._debugContentBoundingVolume=e._contentBoundingVolume.createDebugVolume(H.BLUE)),e._debugContentBoundingVolume.update(n)):!t.debugShowContentBoundingVolume&&l(e._debugContentBoundingVolume)&&(e._debugContentBoundingVolume=e._debugContentBoundingVolume.destroy()),t.debugShowViewerRequestVolume&&l(e._viewerRequestVolume)?(l(e._debugViewerRequestVolume)||(e._debugViewerRequestVolume=e._viewerRequestVolume.createDebugVolume(H.YELLOW)),e._debugViewerRequestVolume.update(n)):!t.debugShowViewerRequestVolume&&l(e._debugViewerRequestVolume)&&(e._debugViewerRequestVolume=e._debugViewerRequestVolume.destroy());let s=t.debugColorizeTiles&&!e._debugColorizeTiles||l(t._heatmap.tilePropertyName),a=!t.debugColorizeTiles&&e._debugColorizeTiles;s?(t._heatmap.colorize(e,n),e._debugColorizeTiles=!0,e.color=e._debugColor):a&&(e._debugColorizeTiles=!1,e.color=H.WHITE),e._colorDirty&&(e._colorDirty=!1,e._content.applyDebugSettings(!0,e._color)),a&&t.makeStyleDirty()}function bje(e,t,n){let i=e._expiredContent;if(!e.hasMultipleContents&&l(i)){if(!e.contentReady){try{i.update(t,n)}catch{}return}e._expiredContent.destroy(),e._expiredContent=void 0}if(l(e.content))try{e.content.update(t,n)}catch(o){throw e._contentState=zo.FAILED,o}}function Tje(e,t){let n=t.clippingPlanes,i=0;l(n)&&e._isClipped&&n.enabled&&(i=n.clippingPlanesState),i!==e._clippingPlanesState&&(e._clippingPlanesState=i,e.clippingPlanesDirty=!0)}function Aje(e,t){let n=t.clippingPolygons,i=0;l(n)&&e._isClippedByPolygon&&n.enabled&&(i=n.clippingPolygonsState),i!==e._clippingPolygonsState&&(e._clippingPolygonsState=i,e.clippingPolygonsDirty=!0)}Qo.prototype.update=function(e,t,n){let{commandList:i}=t,o=i.length;Tje(this,e),Aje(this,e),xje(this,e,t,n),bje(this,e,t);let r=i.length;this._commandsLength=r-o;for(let s=o;s<r;++s){let a=i[s],c=a.pass===Ee.TRANSLUCENT;a.depthForTranslucentClassification=c}this.clippingPlanesDirty=!1,this.clippingPolygonsDirty=!1};var cle=[];Qo.prototype.process=function(e,t){!this.contentExpired&&!this.contentReady&&this._content.ready&&(rje(this),this._selectedFrame=0,this.lastStyleTime=0,J.now(this._loadTimestamp),this._contentState=zo.READY,!this.hasTilesetContent&&!this.hasImplicitContent&&(e._statistics.incrementLoadCounts(this.content),++e._statistics.numberOfTilesWithContentReady,++e._statistics.numberOfLoadedTilesTotal,e._cache.add(this)));let n=t.commandList;t.commandList=cle;try{this._content.update(e,t)}catch(i){throw this._contentState=zo.FAILED,i}cle.length=0,t.commandList=n};function lle(e,t,n){let i=e*Math.pow(10,t);return parseInt(i)*Math.pow(10,n)}function nz(e,t,n){return Math.max(R.normalize(e,t,n)-R.EPSILON7,0)}Qo.prototype.updatePriority=function(){let e=this.tileset,t=e.preferLeaves,n=e._minimumPriority,i=e._maximumPriority,o=4,r=1,s=0,a=o,c=s+a,u=o,f=c+u,d=r,p=Math.pow(10,f),g=f+d,m=r,x=Math.pow(10,g),b=g+m,T=Math.pow(10,b),C=nz(this._depth,n.depth,i.depth);C=t?1-C:C;let E=!e.isSkippingLevelOfDetail&&this.refine===Bo.REPLACE?nz(this._priorityHolder._distanceToCamera,n.distance,i.distance):nz(this._priorityReverseScreenSpaceError,n.reverseScreenSpaceError,i.reverseScreenSpaceError),v=lle(E,a,s),D=this._priorityProgressiveResolution?0:p,O=nz(this._priorityHolder._foveatedFactor,n.foveatedFactor,i.foveatedFactor),I=lle(O,u,c),L=this.priorityDeferred?x:0,N=e._pass===Mo.PRELOAD_FLIGHT?0:T;this._priority=C+v+D+I+L+N};Qo.prototype.isDestroyed=function(){return!1};Qo.prototype.destroy=function(){return this._content=this._content&&this._content.destroy(),this._expiredContent=this._expiredContent&&!this._expiredContent.isDestroyed()&&this._expiredContent.destroy(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy(),ue(this)};var zf=Qo;function b_(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.group,i=e.class,o=l(n.properties)?n.properties:{};this._class=i,this._properties=o,this._id=t,this._extras=n.extras,this._extensions=n.extensions}Object.defineProperties(b_.prototype,{class:{get:function(){return this._class}},id:{get:function(){return this._id}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});b_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};b_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};b_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};b_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};b_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};b_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};b_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var uE=b_;function T_(e){e=y(e,y.EMPTY_OBJECT);let t=e.tileset,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(T_.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});T_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};T_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};T_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};T_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};T_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};T_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};T_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var LM=T_;function _le(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataJson,n=e.schema,i=y(t.metadata,t.tileset),o;l(i)&&(o=new LM({tileset:i,class:n.classes[i.class]}));let r=[],s=[],a=t.groups;if(Array.isArray(a)){let c=a.length;for(let u=0;u<c;u++){let f=a[u];s.push(new uE({group:f,class:n.classes[f.class]}))}}else if(l(a)){r=Object.keys(a).sort();let c=r.length;for(let u=0;u<c;u++){let f=r[u];if(a.hasOwnProperty(f)){let d=a[f];s.push(new uE({id:f,group:a[f],class:n.classes[d.class]}))}}}this._schema=n,this._groups=s,this._groupIds=r,this._tileset=o,this._statistics=t.statistics,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(_le.prototype,{schema:{get:function(){return this._schema}},groups:{get:function(){return this._groups}},groupIds:{get:function(){return this._groupIds}},tileset:{get:function(){return this._tileset}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var Mb=_le;var gle={},Cje=new h;gle.checkChildrenWithinParent=function(e){let t=e.children,n=t.length,i=e.boundingVolume;if(i instanceof vu||i instanceof Vf){let o=i._orientedBoundingBox;e._optimChildrenWithinParent=Nf.USE_OPTIMIZATION;for(let r=0;r<n;++r){let a=t[r].boundingVolume;if(!(a instanceof vu||a instanceof Vf)){e._optimChildrenWithinParent=Nf.SKIP_OPTIMIZATION;break}let c=a._orientedBoundingBox,u=h.subtract(c.center,o.center,Cje),f=h.magnitude(u);h.divideByScalar(u,f,u);let d=Math.abs(o.halfAxes[0]*u.x)+Math.abs(o.halfAxes[1]*u.y)+Math.abs(o.halfAxes[2]*u.z)+Math.abs(o.halfAxes[3]*u.x)+Math.abs(o.halfAxes[4]*u.y)+Math.abs(o.halfAxes[5]*u.z)+Math.abs(o.halfAxes[6]*u.x)+Math.abs(o.halfAxes[7]*u.y)+Math.abs(o.halfAxes[8]*u.z),p=Math.abs(c.halfAxes[0]*u.x)+Math.abs(c.halfAxes[1]*u.y)+Math.abs(c.halfAxes[2]*u.z)+Math.abs(c.halfAxes[3]*u.x)+Math.abs(c.halfAxes[4]*u.y)+Math.abs(c.halfAxes[5]*u.z)+Math.abs(c.halfAxes[6]*u.x)+Math.abs(c.halfAxes[7]*u.y)+Math.abs(c.halfAxes[8]*u.z);if(d<=p+f){e._optimChildrenWithinParent=Nf.SKIP_OPTIMIZATION;break}}}return e._optimChildrenWithinParent===Nf.USE_OPTIMIZATION};var NM=gle;function FM(){this.head=void 0,this.tail=void 0,this._length=0}Object.defineProperties(FM.prototype,{length:{get:function(){return this._length}}});function Eje(e,t,n){this.item=e,this.previous=t,this.next=n}FM.prototype.add=function(e){let t=new Eje(e,this.tail,void 0);return l(this.tail)?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),++this._length,t};function yle(e,t){l(t.previous)&&l(t.next)?(t.previous.next=t.next,t.next.previous=t.previous):l(t.previous)?(t.previous.next=void 0,e.tail=t.previous):l(t.next)?(t.next.previous=void 0,e.head=t.next):(e.head=void 0,e.tail=void 0),t.next=void 0,t.previous=void 0}FM.prototype.remove=function(e){l(e)&&(yle(this,e),--this._length)};FM.prototype.splice=function(e,t){if(e===t)return;yle(this,t);let n=e.next;e.next=t,this.tail===e?this.tail=t:n.previous=t,t.next=n,t.previous=e};var BM=FM;function Lb(){this._list=new BM,this._sentinel=this._list.add(),this._trimTiles=!1}Lb.prototype.reset=function(){this._list.splice(this._list.tail,this._sentinel)};Lb.prototype.touch=function(e){let t=e.cacheNode;l(t)&&this._list.splice(this._sentinel,t)};Lb.prototype.add=function(e){l(e.cacheNode)||(e.cacheNode=this._list.add(e))};Lb.prototype.unloadTile=function(e,t,n){let i=t.cacheNode;l(i)&&(this._list.remove(i),t.cacheNode=void 0,n(e,t))};Lb.prototype.unloadTiles=function(e,t){let n=this._trimTiles;this._trimTiles=!1;let i=this._list,o=this._sentinel,r=i.head;for(;r!==o&&(e.totalMemoryUsageInBytes>e.cacheBytes||n);){let s=r.item;r=r.next,this.unloadTile(e,s,t)}};Lb.prototype.trim=function(){this._trimTiles=!0};var kM=Lb;function iz(e){this.tilePropertyName=e,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE,this._previousMinimum=Number.MAX_VALUE,this._previousMaximum=-Number.MAX_VALUE,this._referenceMinimum={},this._referenceMaximum={}}function gj(e,t){let n;return t==="_loadTimestamp"?n=J.toDate(e).getTime():n=e,n}iz.prototype.setReferenceMinimumMaximum=function(e,t,n){this._referenceMinimum[n]=gj(e,n),this._referenceMaximum[n]=gj(t,n)};function Sje(e,t){let n=e.tilePropertyName;if(l(n)){let i=gj(t[n],n);return l(i)?(e._maximum=Math.max(i,e._maximum),e._minimum=Math.min(i,e._minimum),i):(e.tilePropertyName=void 0,i)}}var _j=[new H(.1,.1,.1,1),new H(.153,.278,.878,1),new H(.827,.231,.49,1),new H(.827,.188,.22,1),new H(1,.592,.259,1),new H(1,.843,0,1)];iz.prototype.colorize=function(e,t){let n=this.tilePropertyName;if(!l(n)||!e.contentAvailable||e._selectedFrame!==t.frameNumber)return;let i=Sje(this,e),o=this._previousMinimum,r=this._previousMaximum;if(o===Number.MAX_VALUE||r===-Number.MAX_VALUE)return;let s=r-o+R.EPSILON7,c=R.clamp(i-o,0,s)/s,u=_j.length-1,f=c*u,d=Math.floor(f),p=Math.ceil(f),g=f-d,m=_j[d],x=_j[p],b=H.clone(H.WHITE);b.red=R.lerp(m.red,x.red,g),b.green=R.lerp(m.green,x.green,g),b.blue=R.lerp(m.blue,x.blue,g),e._debugColor=b};iz.prototype.resetMinimumMaximum=function(){let e=this.tilePropertyName;if(l(e)){let t=this._referenceMinimum[e],n=this._referenceMaximum[e],i=l(t)&&l(n);this._previousMinimum=i?t:this._minimum,this._previousMaximum=i?n:this._maximum,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE}};var VM=iz;function fE(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfPendingRequests=0,this.numberOfTilesProcessing=0,this.numberOfTilesWithContentReady=0,this.numberOfTilesTotal=0,this.numberOfLoadedTilesTotal=0,this.numberOfFeaturesSelected=0,this.numberOfFeaturesLoaded=0,this.numberOfPointsSelected=0,this.numberOfPointsLoaded=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0,this.geometryByteLength=0,this.texturesByteLength=0,this.batchTableByteLength=0}fE.prototype.clear=function(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfFeaturesSelected=0,this.numberOfPointsSelected=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0};function oz(e,t,n,i){let o=t.innerContents,r=t.pointsLength,s=t.trianglesLength,a=t.featuresLength,c=t.geometryByteLength,u=t.texturesByteLength,f=t.batchTableByteLength;if(i?(e.numberOfFeaturesLoaded+=n?-a:a,e.numberOfPointsLoaded+=n?-r:r,e.geometryByteLength+=n?-c:c,e.texturesByteLength+=n?-u:u,e.batchTableByteLength+=n?-f:f):(e.numberOfFeaturesSelected+=n?-a:a,e.numberOfPointsSelected+=n?-r:r,e.numberOfTrianglesSelected+=n?-s:s),l(o)){let d=o.length;for(let p=0;p<d;++p)oz(e,o[p],n,i)}}fE.prototype.incrementSelectionCounts=function(e){oz(this,e,!1,!1)};fE.prototype.incrementLoadCounts=function(e){oz(this,e,!1,!0)};fE.prototype.decrementLoadCounts=function(e){oz(this,e,!0,!0)};fE.clone=function(e,t){t.selected=e.selected,t.visited=e.visited,t.numberOfCommands=e.numberOfCommands,t.selected=e.selected,t.numberOfAttemptedRequests=e.numberOfAttemptedRequests,t.numberOfPendingRequests=e.numberOfPendingRequests,t.numberOfTilesProcessing=e.numberOfTilesProcessing,t.numberOfTilesWithContentReady=e.numberOfTilesWithContentReady,t.numberOfTilesTotal=e.numberOfTilesTotal,t.numberOfFeaturesSelected=e.numberOfFeaturesSelected,t.numberOfFeaturesLoaded=e.numberOfFeaturesLoaded,t.numberOfPointsSelected=e.numberOfPointsSelected,t.numberOfPointsLoaded=e.numberOfPointsLoaded,t.numberOfTrianglesSelected=e.numberOfTrianglesSelected,t.numberOfTilesStyled=e.numberOfTilesStyled,t.numberOfFeaturesStyled=e.numberOfFeaturesStyled,t.numberOfTilesCulledWithChildrenUnion=e.numberOfTilesCulledWithChildrenUnion,t.geometryByteLength=e.geometryByteLength,t.texturesByteLength=e.texturesByteLength,t.batchTableByteLength=e.batchTableByteLength};var A_=fE;function UM(){this._style=void 0,this._styleDirty=!1,this._lastStyleTime=0}Object.defineProperties(UM.prototype,{style:{get:function(){return this._style},set:function(e){e!==this._style&&(this._style=e,this._styleDirty=!0)}}});UM.prototype.makeDirty=function(){this._styleDirty=!0};UM.prototype.resetDirty=function(){this._styleDirty=!1};UM.prototype.applyStyle=function(e){if(!l(e.root)||l(this._style)&&!this._style._ready)return;let t=this._styleDirty;t&&++this._lastStyleTime;let n=this._lastStyleTime,i=e._statistics,o=t?e._selectedTiles:e._selectedTilesToStyle,r=o.length;for(let s=0;s<r;++s){let a=o[s];if(a.lastStyleTime!==n){let c=a.content;a.lastStyleTime=n,c.applyStyle(this._style),i.numberOfFeaturesStyled+=c.featuresLength,++i.numberOfTilesStyled}}};var zM=UM;function vje(e,t,n){let i=oi(t,"3DTILES_implicit_tiling")?t.extensions["3DTILES_implicit_tiling"]:t.implicitTiling;this.baseResource=e,this.geometricError=t.geometricError,this.metadataSchema=n;let o=t.boundingVolume;if(!l(o.box)&&!l(o.region)&&!oi(o,"3DTILES_bounding_volume_S2")&&!oi(o,"3DTILES_bounding_volume_cylinder"))throw new le("Only box, region, 3DTILES_bounding_volume_S2, and 3DTILES_bounding_volume_cylinder are supported for implicit tiling");this.boundingVolume=o,this.refine=t.refine,this.subtreeUriTemplate=new De({url:i.subtrees.uri}),this.contentUriTemplates=[],this.contentHeaders=[];let r=wje(t);for(let s=0;s<r.length;s++){let a=r[s];this.contentHeaders.push(He(a,!0));let c=new De({url:a.uri});this.contentUriTemplates.push(c)}this.contentCount=this.contentHeaders.length,this.tileHeader=Dje(t),this.subdivisionScheme=jr[i.subdivisionScheme],this.branchingFactor=jr.getBranchingFactor(this.subdivisionScheme),this.subtreeLevels=i.subtreeLevels,l(i.availableLevels)?this.availableLevels=i.availableLevels:this.availableLevels=i.maximumLevel+1}function wje(e){if(oi(e,"3DTILES_multiple_contents")){let t=e.extensions["3DTILES_multiple_contents"];return l(t.contents)?t.contents:t.content}return l(e.contents)?e.contents:l(e.content)?[e.content]:[]}function Dje(e){let t=He(e,!0);return l(t.extensions)&&(delete t.extensions["3DTILES_implicit_tiling"],delete t.extensions["3DTILES_multiple_contents"],Object.keys(t.extensions).length===0&&delete t.extensions),delete t.implicitTiling,delete t.contents,delete t.content,t}var Nb=vje;var HM={};function xle(e){return e=(e^e<<8)&16711935,e=(e^e<<4)&252645135,e=(e^e<<2)&858993459,e=(e^e<<1)&1431655765,e}function yj(e){return e=(e^e<<16)&50331903,e=(e^e<<8)&50393103,e=(e^e<<4)&51130563,e=(e^e<<2)&153391689,e}function ble(e){return e&=1431655765,e=(e^e>>1)&858993459,e=(e^e>>2)&252645135,e=(e^e>>4)&16711935,e=(e^e>>8)&65535,e}function xj(e){return e&=153391689,e=(e^e>>2)&51130563,e=(e^e>>4)&50393103,e=(e^e>>8)&4278190335,e=(e^e>>16)&1023,e}HM.encode2D=function(e,t){return(xle(e)|xle(t)<<1)>>>0};HM.decode2D=function(e,t){return l(t)||(t=new Array(2)),t[0]=ble(e),t[1]=ble(e>>1),t};HM.encode3D=function(e,t,n){return yj(e)|yj(t)<<1|yj(n)<<2};HM.decode3D=function(e,t){return l(t)||(t=new Array(3)),t[0]=xj(e),t[1]=xj(e>>1),t[2]=xj(e>>2),t};var Ry=HM;function Ho(e){this.subdivisionScheme=e.subdivisionScheme,this.subtreeLevels=e.subtreeLevels,this.level=e.level,this.x=e.x,this.y=e.y,this.z=void 0,e.subdivisionScheme===jr.OCTREE&&(this.z=e.z)}Object.defineProperties(Ho.prototype,{childIndex:{get:function(){let e=0;return e|=this.x&1,e|=(this.y&1)<<1,this.subdivisionScheme===jr.OCTREE&&(e|=(this.z&1)<<2),e}},mortonIndex:{get:function(){return this.subdivisionScheme===jr.OCTREE?Ry.encode3D(this.x,this.y,this.z):Ry.encode2D(this.x,this.y)}},tileIndex:{get:function(){let e=this.subdivisionScheme===jr.OCTREE?((1<<3*this.level)-1)/7:((1<<2*this.level)-1)/3,t=this.mortonIndex;return e+t}}});Ho.prototype.getDescendantCoordinates=function(e){let t=this.level+e.level,n=(this.x<<e.level)+e.x,i=(this.y<<e.level)+e.y;if(this.subdivisionScheme===jr.OCTREE){let o=(this.z<<e.level)+e.z;return new Ho({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new Ho({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};Ho.prototype.getAncestorCoordinates=function(e){let t=1<<e,n=this.level-e,i=Math.floor(this.x/t),o=Math.floor(this.y/t);if(this.subdivisionScheme===jr.OCTREE){let r=Math.floor(this.z/t);return new Ho({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o,z:r})}return new Ho({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o})};Ho.prototype.getOffsetCoordinates=function(e){let t=e.level-this.level,n=1<<t,i=e.x%n,o=e.y%n;if(this.subdivisionScheme===jr.OCTREE){let r=e.z%n;return new Ho({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o,z:r})}return new Ho({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o})};Ho.prototype.getChildCoordinates=function(e){let t=this.level+1,n=2*this.x+e%2,i=2*this.y+Math.floor(e/2)%2;if(this.subdivisionScheme===jr.OCTREE){let o=2*this.z+Math.floor(e/4)%2;return new Ho({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new Ho({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};Ho.prototype.getSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels)};Ho.prototype.getParentSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels+this.subtreeLevels)};Ho.prototype.isAncestor=function(e){let t=e.level-this.level;if(t<=0)return!1;let n=e.x>>t,i=e.y>>t,o=this.x===n,r=this.y===i;if(this.subdivisionScheme===jr.OCTREE){let s=e.z>>t,a=this.z===s;return o&&r&&a}return o&&r};Ho.prototype.isEqual=function(e){return this.subdivisionScheme===e.subdivisionScheme&&this.subtreeLevels===e.subtreeLevels&&this.level===e.level&&this.x===e.x&&this.y===e.y&&(this.subdivisionScheme===jr.OCTREE?this.z===e.z:!0)};Ho.prototype.isImplicitTilesetRoot=function(){return this.level===0};Ho.prototype.isSubtreeRoot=function(){return this.level%this.subtreeLevels===0};Ho.prototype.isBottomOfSubtree=function(){return this.level%this.subtreeLevels===this.subtreeLevels-1};Ho.prototype.getTemplateValues=function(){let e={level:this.level,x:this.x,y:this.y};return this.subdivisionScheme===jr.OCTREE&&(e.z=this.z),e};var Tle=[0,0,0];Ho.fromMortonIndex=function(e,t,n,i){let o;return e===jr.OCTREE?(o=Ry.decode3D(i,Tle),new Ho({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1],z:o[2]})):(o=Ry.decode2D(i,Tle),new Ho({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1]}))};Ho.fromTileIndex=function(e,t,n){let i,o,r;return e===jr.OCTREE?(i=Math.floor(R.log2(7*n+1)/3),o=((1<<3*i)-1)/7,r=n-o):(i=Math.floor(R.log2(3*n+1)/2),o=((1<<2*i)-1)/3,r=n-o),Ho.fromMortonIndex(e,t,i,r)};var Fb=Ho;function C_(){}C_.selectTiles=function(e,t){de.throwInstantiationError()};C_.sortChildrenByDistanceToCamera=function(e,t){return t._distanceToCamera===0&&e._distanceToCamera===0?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera};C_.canTraverse=function(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:e._screenSpaceError>e.tileset.memoryAdjustedScreenSpaceError};C_.selectTile=function(e,t){if(e.contentVisibility(t)===Gt.OUTSIDE)return;e._wasSelectedLastFrame=!0;let{content:n,tileset:i}=e;n.featurePropertiesDirty?(n.featurePropertiesDirty=!1,e.lastStyleTime=0,i._selectedTilesToStyle.push(e)):e._selectedFrame<t.frameNumber-1&&(i._selectedTilesToStyle.push(e),e._wasSelectedLastFrame=!1),e._selectedFrame=t.frameNumber,i._selectedTiles.push(e)};C_.visitTile=function(e,t){++e.tileset._statistics.visited,e._visitedFrame=t.frameNumber};C_.touchTile=function(e,t){e._touchedFrame!==t.frameNumber&&(e.tileset._cache.touch(e),e._touchedFrame=t.frameNumber)};C_.loadTile=function(e,t){let{tileset:n}=e;if(e._requestedFrame===t.frameNumber||!e.hasUnloadedRenderableContent&&!e.contentExpired||!Pje(e,t))return;let i=t.camera.timeSinceMoved<n.foveatedTimeDelay;e.priorityDeferred&&i||(e._requestedFrame=t.frameNumber,n._requestedTiles.push(e))};function Pje(e,t){let{tileset:n}=e;if(!n._cullRequestsWhileMoving)return!0;let{positionWCDeltaMagnitude:i,positionWCDeltaMagnitudeLastFrame:o}=t.camera,r=i!==0?i:o,s=Math.max(e.boundingSphere.radius*2,1);return n.cullRequestsWhileMovingMultiplier*r/s<1}C_.updateTile=function(e,t){Ale(e,t),e.updateExpiration(),e._wasMinPriorityChild=!1,e._priorityHolder=e,Oje(e),e._shouldSelect=!1,e._finalResolution=!0};function Ale(e,t){if(e.updateVisibility(t),!e.isVisible)return;let n=e.children.length>0;if((e.hasTilesetContent||e.hasImplicitContent)&&n){let r=e.children[0];Ale(r,t),e._visible=r._visible;return}if(Ije(e,t)){e._visible=!1;return}let i=e.refine===Bo.REPLACE,o=e._optimChildrenWithinParent===Nf.USE_OPTIMIZATION;if(i&&o&&n&&!Rje(e,t)){++e.tileset._statistics.numberOfTilesCulledWithChildrenUnion,e._visible=!1;return}}function Ije(e,t){let{parent:n,tileset:i}=e;return!l(n)||n.hasTilesetContent||n.hasImplicitContent||n.refine!==Bo.ADD?!1:e.getScreenSpaceError(t,!0)<=i.memoryAdjustedScreenSpaceError}function Rje(e,t){let n=!1,i=e.children;for(let o=0;o<i.length;++o){let r=i[o];r.updateVisibility(t),n=n||r.isVisible}return n}function Oje(e){let t=e.tileset._minimumPriority,n=e.tileset._maximumPriority,i=e._priorityHolder;n.distance=Math.max(i._distanceToCamera,n.distance),t.distance=Math.min(i._distanceToCamera,t.distance),n.depth=Math.max(e._depth,n.depth),t.depth=Math.min(e._depth,t.depth),n.foveatedFactor=Math.max(i._foveatedFactor,n.foveatedFactor),t.foveatedFactor=Math.min(i._foveatedFactor,t.foveatedFactor),n.reverseScreenSpaceError=Math.max(e._priorityReverseScreenSpaceError,n.reverseScreenSpaceError),t.reverseScreenSpaceError=Math.min(e._priorityReverseScreenSpaceError,t.reverseScreenSpaceError)}var zs=C_;function Cle(){}var GM={stack:new qc,stackMaximumLength:0};Cle.selectTiles=function(e,t){e._selectedTiles.length=0,e._requestedTiles.length=0,e.hasMixedContent=!1;let n=!0,i=e.root;if(i.updateVisibility(t),!i.isVisible)return n;let{touchTile:o,visitTile:r}=zs,s=GM.stack;for(s.push(i);s.length>0;){GM.stackMaximumLength=Math.max(GM.stackMaximumLength,s.length);let a=s.pop(),c=a.refine===Bo.ADD,u=a.refine===Bo.REPLACE,f=Mje(a);f&&Lje(a,s,t),(c||u&&!f)&&(Nje(e,a),o(a,t),Fje(a,t),a.hasRenderableContent&&!a.contentAvailable&&(n=!1)),r(a,t)}return GM.stack.trim(GM.stackMaximumLength),n};function Mje(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:(e.hasEmptyContent,!0)}function Lje(e,t,n){let{children:i}=e;for(let o=0;o<i.length;++o){let r=i[o];r.updateVisibility(n),r.isVisible&&t.push(r)}}function Nje(e,t){(t.hasUnloadedRenderableContent||t.contentExpired)&&(t._priority=0,e._requestedTiles.push(t))}function Fje(e,t){e.contentAvailable&&e.contentVisibility(t)!==Gt.OUTSIDE&&e.tileset._selectedTiles.push(e)}var WM=Cle;function Ele(){}var jM={stack:new qc,stackMaximumLength:0},qM={stack:new qc,stackMaximumLength:0};Ele.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(zs.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;kje(n,t),jM.stack.trim(jM.stackMaximumLength),qM.stack.trim(qM.stackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function bj(e,t){e.contentAvailable&&zs.selectTile(e,t)}function Bje(e,t,n){let i=e.refine===Bo.REPLACE,{tileset:o,children:r}=e,{updateTile:s,loadTile:a,touchTile:c}=zs;for(let m=0;m<r.length;++m)s(r[m],n);r.sort(zs.sortChildrenByDistanceToCamera);let u=i&&e.hasRenderableContent,f=!0,d=!1,p=-1,g=Number.MAX_VALUE;for(let m=0;m<r.length;++m){let x=r[m];if(x.isVisible?(t.push(x),x._foveatedFactor<g&&(p=m,g=x._foveatedFactor),d=!0):(u||o.loadSiblings)&&(x._foveatedFactor<g&&(p=m,g=x._foveatedFactor),a(x,n),c(x,n)),u){let b;x._inRequestVolume?x.hasRenderableContent?b=x.contentAvailable:b=Vje(x,n):b=!1,f=f&&b}}if(d||(f=!1),p!==-1&&i){let m=r[p];m._wasMinPriorityChild=!0;let x=(e._wasMinPriorityChild||e===o.root)&&g<=e._priorityHolder._foveatedFactor?e._priorityHolder:e;x._foveatedFactor=Math.min(m._foveatedFactor,x._foveatedFactor),x._distanceToCamera=Math.min(m._distanceToCamera,x._distanceToCamera);for(let b=0;b<r.length;++b)r[b]._priorityHolder=x}return f}function kje(e,t){let{tileset:n}=e,{canTraverse:i,loadTile:o,visitTile:r,touchTile:s}=zs,a=jM.stack;for(a.push(e);a.length>0;){jM.stackMaximumLength=Math.max(jM.stackMaximumLength,a.length);let c=a.pop(),u=c.parent,f=!l(u)||u._refines;c._refines=i(c)?Bje(c,a,t)&&f:!1;let d=!c._refines&&f;c.hasRenderableContent?c.refine===Bo.ADD?(bj(c,t),o(c,t)):c.refine===Bo.REPLACE&&(o(c,t),d&&bj(c,t)):(n._emptyTiles.push(c),o(c,t),d&&bj(c,t)),r(c,t),s(c,t)}}function Vje(e,t){let{canTraverse:n,updateTile:i,loadTile:o,touchTile:r}=zs,s=!0,a=qM.stack;for(a.push(e);a.length>0;){qM.stackMaximumLength=Math.max(qM.stackMaximumLength,a.length);let c=a.pop(),u=c.children,f=u.length,d=!c.hasRenderableContent&&n(c);if(!d&&!c.contentAvailable&&(s=!1),i(c,t),c.isVisible||(o(c,t),r(c,t)),d)for(let p=0;p<f;++p){let g=u[p];a.push(g)}}return e.hasEmptyContent||s}var YM=Ele;function Sle(){}var XM={stack:new qc,stackMaximumLength:0},KM={stack:new qc,stackMaximumLength:0},E_={stack:new qc,stackMaximumLength:0,ancestorStack:new qc,ancestorStackMaximumLength:0},Uje=2;Sle.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(zs.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;qje(n,t),Yje(n,t),XM.stack.trim(XM.stackMaximumLength),KM.stack.trim(KM.stackMaximumLength),E_.stack.trim(E_.stackMaximumLength),E_.ancestorStack.trim(E_.ancestorStackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function zje(e,t){let{updateTile:n,touchTile:i,selectTile:o}=zs,r=KM.stack;for(r.push(e);r.length>0;){KM.stackMaximumLength=Math.max(KM.stackMaximumLength,r.length);let a=r.pop().children;for(let c=0;c<a.length;++c){let u=a[c];u.isVisible&&(u.contentAvailable?(n(u,t),i(u,t),o(u,t)):u._depth-e._depth<Uje&&r.push(u))}}}function rz(e,t){let n=e.contentAvailable?e:e._ancestorWithContentAvailable;l(n)?n._shouldSelect=!0:zje(e,t)}function Hje(e,t){e._ancestorWithContent=void 0,e._ancestorWithContentAvailable=void 0;let{parent:n}=e;if(!l(n))return;let i=!n.hasUnloadedRenderableContent||n._requestedFrame===t.frameNumber;e._ancestorWithContent=i?n:n._ancestorWithContent,e._ancestorWithContentAvailable=n.contentAvailable?n:n._ancestorWithContentAvailable}function Gje(e,t){let n=t._ancestorWithContent;return!e.immediatelyLoadDesiredLevelOfDetail&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf||l(n)&&t._screenSpaceError<n._screenSpaceError/e.skipScreenSpaceErrorFactor&&t._depth>n._depth+e.skipLevels)}function Wje(e,t,n){let{tileset:i,children:o}=e,{updateTile:r,loadTile:s,touchTile:a}=zs;for(let u=0;u<o.length;++u)r(o[u],n);o.sort(zs.sortChildrenByDistanceToCamera);let c=!1;for(let u=0;u<o.length;++u){let f=o[u];f.isVisible?(t.push(f),c=!0):i.loadSiblings&&(s(f,n),a(f,n))}return c}function jje(e,t){let{tileset:n}=e;return n.immediatelyLoadDesiredLevelOfDetail?!1:l(e._ancestorWithContent)?e._screenSpaceError===0?e.parent._screenSpaceError>t:e._screenSpaceError>t:!0}function qje(e,t){let{tileset:n}=e,i=n.immediatelyLoadDesiredLevelOfDetail?Number.MAX_VALUE:Math.max(n.baseScreenSpaceError,n.memoryAdjustedScreenSpaceError),{canTraverse:o,loadTile:r,visitTile:s,touchTile:a}=zs,c=XM.stack;for(c.push(e);c.length>0;){XM.stackMaximumLength=Math.max(XM.stackMaximumLength,c.length);let u=c.pop();Hje(u,t);let f=u.parent,d=!l(f)||f._refines;u._refines=o(u)?Wje(u,c,t)&&d:!1;let p=!u._refines&&d;u.hasRenderableContent?u.refine===Bo.ADD?(rz(u,t),r(u,t)):u.refine===Bo.REPLACE&&(jje(u,i)?(r(u,t),p&&rz(u,t)):p?(rz(u,t),r(u,t)):Gje(n,u)&&r(u,t)):(n._emptyTiles.push(u),r(u,t),p&&rz(u,t)),s(u,t),a(u,t)}}function Yje(e,t){let{selectTile:n,canTraverse:i}=zs,{stack:o,ancestorStack:r}=E_,s;for(o.push(e);o.length>0||r.length>0;){if(E_.stackMaximumLength=Math.max(E_.stackMaximumLength,o.length),E_.ancestorStackMaximumLength=Math.max(E_.ancestorStackMaximumLength,r.length),r.length>0){let u=r.peek();if(u._stackLength===o.length){r.pop(),u!==s&&(u._finalResolution=!1),n(u,t);continue}}let a=o.pop();if(!l(a))continue;let c=i(a);if(a._shouldSelect)if(a.refine===Bo.ADD)n(a,t);else{if(a._selectionDepth=r.length,a._selectionDepth>0&&(a.tileset.hasMixedContent=!0),s=a,!c){n(a,t);continue}r.push(a),a._stackLength=o.length}if(c){let u=a.children;for(let f=0;f<u.length;++f){let d=u[f];d.isVisible&&o.push(d)}}}}var ZM=Sle;function Jo(e){e=y(e,y.EMPTY_OBJECT),this._url=void 0,this._basePath=void 0,this._root=void 0,this._resource=void 0,this._asset=void 0,this._properties=void 0,this._geometricError=void 0,this._scaledGeometricError=void 0,this._extensionsUsed=void 0,this._extensions=void 0,this._modelUpAxis=void 0,this._modelForwardAxis=void 0,this._cache=new kM,this._processingQueue=[],this._selectedTiles=[],this._emptyTiles=[],this._requestedTiles=[],this._selectedTilesToStyle=[],this._loadTimestamp=void 0,this._timeSinceLoad=0,this._updatedVisibilityFrame=0,this._updatedModelMatrixFrame=0,this._modelMatrixChanged=!1,this._previousModelMatrix=void 0,this._extras=void 0,this._credits=void 0,this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._cullWithChildrenBounds=y(e.cullWithChildrenBounds,!0),this._allTilesAdditive=!0,this._hasMixedContent=!1,this._stencilClearCommand=void 0,this._backfaceCommands=new qc,this._maximumScreenSpaceError=y(e.maximumScreenSpaceError,16),this._memoryAdjustedScreenSpaceError=this._maximumScreenSpaceError,this._cacheBytes=y(e.cacheBytes,512*1024*1024);let t=y(e.maximumCacheOverflowBytes,512*1024*1024);this._maximumCacheOverflowBytes=t,this._styleEngine=new zM,this._styleApplied=!1,this._modelMatrix=l(e.modelMatrix)?F.clone(e.modelMatrix):F.clone(F.IDENTITY),this._addHeightCallbacks=[],this._statistics=new A_,this._statisticsLast=new A_,this._statisticsPerPass=new Array(Mo.NUMBER_OF_PASSES);for(let o=0;o<Mo.NUMBER_OF_PASSES;++o)this._statisticsPerPass[o]=new A_;this._requestedTilesInFlight=[],this._maximumPriority={foveatedFactor:-Number.MAX_VALUE,depth:-Number.MAX_VALUE,distance:-Number.MAX_VALUE,reverseScreenSpaceError:-Number.MAX_VALUE},this._minimumPriority={foveatedFactor:Number.MAX_VALUE,depth:Number.MAX_VALUE,distance:Number.MAX_VALUE,reverseScreenSpaceError:Number.MAX_VALUE},this._heatmap=new VM(e.debugHeatmapTilePropertyName),this.cullRequestsWhileMoving=y(e.cullRequestsWhileMoving,!0),this._cullRequestsWhileMoving=!1,this.cullRequestsWhileMovingMultiplier=y(e.cullRequestsWhileMovingMultiplier,60),this.progressiveResolutionHeightFraction=R.clamp(y(e.progressiveResolutionHeightFraction,.3),0,.5),this.preferLeaves=y(e.preferLeaves,!1),this._tilesLoaded=!1,this._initialTilesLoaded=!1,this._tileDebugLabels=void 0,this._classificationType=e.classificationType,this._ellipsoid=y(e.ellipsoid,te.WGS84),this._initialClippingPlanesOriginMatrix=F.IDENTITY,this._clippingPlanesOriginMatrix=void 0,this._clippingPlanesOriginMatrixDirty=!0,this._vectorClassificationOnly=y(e.vectorClassificationOnly,!1),this._vectorKeepDecodedPositions=y(e.vectorKeepDecodedPositions,!1),this.preloadWhenHidden=y(e.preloadWhenHidden,!1),this.preloadFlightDestinations=y(e.preloadFlightDestinations,!0),this._pass=void 0,this.dynamicScreenSpaceError=y(e.dynamicScreenSpaceError,!0),this.foveatedScreenSpaceError=y(e.foveatedScreenSpaceError,!0),this._foveatedConeSize=y(e.foveatedConeSize,.1),this._foveatedMinimumScreenSpaceErrorRelaxation=y(e.foveatedMinimumScreenSpaceErrorRelaxation,0),this.foveatedInterpolationCallback=y(e.foveatedInterpolationCallback,R.lerp),this.foveatedTimeDelay=y(e.foveatedTimeDelay,.2),this.dynamicScreenSpaceErrorDensity=y(e.dynamicScreenSpaceErrorDensity,2e-4),this.dynamicScreenSpaceErrorFactor=y(e.dynamicScreenSpaceErrorFactor,24),this.dynamicScreenSpaceErrorHeightFalloff=y(e.dynamicScreenSpaceErrorHeightFalloff,.25),this._dynamicScreenSpaceErrorComputedDensity=0,this.shadows=y(e.shadows,yn.ENABLED),this.show=y(e.show,!0),this.colorBlendMode=Rl.HIGHLIGHT,this.colorBlendAmount=.5,this._pointCloudShading=new mm(e.pointCloudShading),this._pointCloudEyeDomeLighting=new $p,this.loadProgress=new pe,this.allTilesLoaded=new pe,this.initialTilesLoaded=new pe,this.tileLoad=new pe,this.tileUnload=new pe,this.tileFailed=new pe,this.tileVisible=new pe,this.skipLevelOfDetail=y(e.skipLevelOfDetail,!1),this._disableSkipLevelOfDetail=!1,this.baseScreenSpaceError=y(e.baseScreenSpaceError,1024),this.skipScreenSpaceErrorFactor=y(e.skipScreenSpaceErrorFactor,16),this.skipLevels=y(e.skipLevels,1),this.immediatelyLoadDesiredLevelOfDetail=y(e.immediatelyLoadDesiredLevelOfDetail,!1),this.loadSiblings=y(e.loadSiblings,!1),this._clippingPlanes=void 0,l(e.clippingPlanes)&&cs.setOwner(e.clippingPlanes,this,"_clippingPlanes"),this._clippingPolygons=void 0,l(e.clippingPolygons)&&Gd.setOwner(e.clippingPolygons,this,"_clippingPolygons"),l(e.imageBasedLighting)?(this._imageBasedLighting=e.imageBasedLighting,this._shouldDestroyImageBasedLighting=!1):(this._imageBasedLighting=new Bx,this._shouldDestroyImageBasedLighting=!0),this.lightColor=e.lightColor,this.backFaceCulling=y(e.backFaceCulling,!0),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,H.BLACK),this.splitDirection=y(e.splitDirection,Qc.NONE),this.enableCollision=y(e.enableCollision,!1),this._projectTo2D=y(e.projectTo2D,!1),this._enablePick=y(e.enablePick,!1),this.debugFreezeFrame=y(e.debugFreezeFrame,!1),this.debugColorizeTiles=y(e.debugColorizeTiles,!1),this._enableDebugWireframe=y(e.enableDebugWireframe,!1),this.debugWireframe=y(e.debugWireframe,!1),this.debugWireframe===!0&&this._enableDebugWireframe===!1&&Lt("tileset-debug-wireframe-ignored","enableDebugWireframe must be set to true in the Cesium3DTileset constructor, otherwise debugWireframe will be ignored."),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowContentBoundingVolume=y(e.debugShowContentBoundingVolume,!1),this.debugShowViewerRequestVolume=y(e.debugShowViewerRequestVolume,!1),this._tileDebugLabels=void 0,this.debugPickedTileLabelOnly=!1,this.debugPickedTile=void 0,this.debugPickPosition=void 0,this.debugShowGeometricError=y(e.debugShowGeometricError,!1),this.debugShowRenderingStatistics=y(e.debugShowRenderingStatistics,!1),this.debugShowMemoryUsage=y(e.debugShowMemoryUsage,!1),this.debugShowUrl=y(e.debugShowUrl,!1),this.examineVectorLinesFunction=void 0,this._metadataExtension=void 0,this._customShader=e.customShader;let n=y(e.featureIdLabel,"featureId_0");typeof n=="number"&&(n=`featureId_${n}`),this._featureIdLabel=n;let i=y(e.instanceFeatureIdLabel,"instanceFeatureId_0");typeof i=="number"&&(i=`instanceFeatureId_${i}`),this._instanceFeatureIdLabel=i}Object.defineProperties(Jo.prototype,{isCesium3DTileset:{get:function(){return!0}},asset:{get:function(){return this._asset}},extensions:{get:function(){return this._extensions}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){cs.setOwner(e,this,"_clippingPlanes")}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){Gd.setOwner(e,this,"_clippingPolygons")}},properties:{get:function(){return this._properties}},tilesLoaded:{get:function(){return this._tilesLoaded}},resource:{get:function(){return this._resource}},basePath:{get:function(){return Ls("Cesium3DTileset.basePath","Cesium3DTileset.basePath has been deprecated. All tiles are relative to the url of the tileset JSON file that contains them. Use the url property instead."),this._basePath}},style:{get:function(){return this._styleEngine.style},set:function(e){this._styleEngine.style=e}},customShader:{get:function(){return this._customShader},set:function(e){this._customShader=e}},hasMixedContent:{get:function(){return this._hasMixedContent},set:function(e){this._hasMixedContent=e}},isSkippingLevelOfDetail:{get:function(){return this.skipLevelOfDetail&&!l(this._classificationType)&&!this._disableSkipLevelOfDetail&&!this._allTilesAdditive}},metadataExtension:{get:function(){return this._metadataExtension}},metadata:{get:function(){if(l(this._metadataExtension))return this._metadataExtension.tileset}},schema:{get:function(){if(l(this._metadataExtension))return this._metadataExtension.schema}},maximumScreenSpaceError:{get:function(){return this._maximumScreenSpaceError},set:function(e){this._maximumScreenSpaceError=e,this._memoryAdjustedScreenSpaceError=e}},cacheBytes:{get:function(){return this._cacheBytes},set:function(e){this._cacheBytes=e}},maximumCacheOverflowBytes:{get:function(){return this._maximumCacheOverflowBytes},set:function(e){this._maximumCacheOverflowBytes=e}},memoryAdjustedScreenSpaceError:{get:function(){return this._memoryAdjustedScreenSpaceError}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){this._pointCloudShading=e}},root:{get:function(){return this._root}},boundingSphere:{get:function(){return this._root.updateTransform(this._modelMatrix),this._root.boundingSphere}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix)}},timeSinceLoad:{get:function(){return this._timeSinceLoad}},totalMemoryUsageInBytes:{get:function(){let e=this._statistics;return e.texturesByteLength+e.geometryByteLength+e.batchTableByteLength}},clippingPlanesOriginMatrix:{get:function(){return l(this._clippingPlanesOriginMatrix)?(this._clippingPlanesOriginMatrixDirty&&(F.multiply(this.root.computedTransform,this._initialClippingPlanesOriginMatrix,this._clippingPlanesOriginMatrix),this._clippingPlanesOriginMatrixDirty=!1),this._clippingPlanesOriginMatrix):F.IDENTITY}},styleEngine:{get:function(){return this._styleEngine}},statistics:{get:function(){return this._statistics}},classificationType:{get:function(){return this._classificationType}},ellipsoid:{get:function(){return this._ellipsoid}},foveatedConeSize:{get:function(){return this._foveatedConeSize},set:function(e){this._foveatedConeSize=e}},foveatedMinimumScreenSpaceErrorRelaxation:{get:function(){return this._foveatedMinimumScreenSpaceErrorRelaxation},set:function(e){this._foveatedMinimumScreenSpaceErrorRelaxation=e}},extras:{get:function(){return this._extras}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1)}},vectorClassificationOnly:{get:function(){return this._vectorClassificationOnly}},vectorKeepDecodedPositions:{get:function(){return this._vectorKeepDecodedPositions}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen=e,Mle(this)}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),this._instanceFeatureIdLabel=e}}});Jo.fromIonAssetId=async function(e,t){let n=await _u.fromAssetId(e);return Jo.fromUrl(n,t)};Jo.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=De.createIfNeeded(e),i;n.extension==="json"?i=n.getBaseUri(!0):n.isDataUri&&(i="");let o=await Jo.loadJson(n),r=await Xje(n,o),s=new Jo(t);s._resource=n,s._url=n.url,s._basePath=i,s._metadataExtension=r,s._geometricError=o.geometricError,s._scaledGeometricError=o.geometricError;let a=o.asset;s._asset=a,s._extras=o.extras,Mle(s);let c=l(o.asset.gltfUpAxis)?Io.fromName(o.asset.gltfUpAxis):Io.Y,u=y(t.modelUpAxis,c),f=y(t.modelForwardAxis,Io.X);s._properties=o.properties,s._extensionsUsed=o.extensionsUsed,s._extensions=o.extensions,s._modelUpAxis=u,s._modelForwardAxis=f,s._root=s.loadTileset(n,o);let p=s._root.createBoundingVolume(o.root.boundingVolume,F.IDENTITY).boundingSphere.center,g=s._ellipsoid.cartesianToCartographic(p);return l(g)&&g.height>ci._defaultMinTerrainHeight&&(s._initialClippingPlanesOriginMatrix=wt.eastNorthUpToFixedFrame(p)),s._clippingPlanesOriginMatrix=F.clone(s._initialClippingPlanesOriginMatrix),s};Jo.loadJson=function(e){return De.createIfNeeded(e).fetchJson()};Jo.prototype.makeStyleDirty=function(){this._styleEngine.makeDirty()};Jo.prototype.loadTileset=function(e,t,n){let i=t.asset;if(!l(i))throw new le("Tileset must have an asset property.");if(i.version!=="0.0"&&i.version!=="1.0"&&i.version!=="1.1")throw new le("The tileset must be 3D Tiles version 0.0, 1.0, or 1.1");l(t.extensionsRequired)&&Jo.checkSupportedExtensions(t.extensionsRequired);let o=this._statistics,r=i.tilesetVersion;l(r)&&(this._basePath+=`?v=${r}`,e=e.clone(),e.setQueryParameters({v:r}));let s=vle(this,e,t.root,n);l(n)&&(n.children.push(s),s._depth=n._depth+1);let a=[];for(a.push(s);a.length>0;){let c=a.pop();++o.numberOfTilesTotal,this._allTilesAdditive=this._allTilesAdditive&&c.refine===Bo.ADD;let u=c._header.children;if(l(u))for(let f=0;f<u.length;++f){let d=u[f],p=vle(this,e,d,c);c.children.push(p),p._depth=c._depth+1,a.push(p)}this._cullWithChildrenBounds&&NM.checkChildrenWithinParent(c)}return s};function vle(e,t,n,i){if(!(l(n.implicitTiling)||oi(n,"3DTILES_implicit_tiling")))return new zf(e,t,n,i);let r=e.schema,s=new Nb(t,n,r),a=new Fb({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:0,x:0,y:0,z:0}),c=s.subtreeUriTemplate.getDerivedResource({templateValues:a.getTemplateValues()}).url,f=He(n,!0);f.contents=[{uri:c}],delete f.content,delete f.extensions;let d=new zf(e,t,f,i);return d.implicitTileset=s,d.implicitCoordinates=a,d}async function Xje(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t,i;if(l(n.schemaUri))e=e.getDerivedResource({url:n.schemaUri}),i=zi.getSchemaLoader({resource:e});else if(l(n.schema))i=zi.getSchemaLoader({schema:n.schema});else return;await i.load();let o=new Mb({schema:i.schema,metadataJson:n});return zi.unload(i),o}var wle=new h,Kje=new fe,Zje=new F,$je=new h,Qje=new h,Jje=new h,e7e=new h;function t7e(e,t){let n,i,o,r,s,a=t.camera,c=e._root,u=c.contentBoundingVolume;if(u instanceof Vf)n=h.normalize(a.positionWC,wle),i=a.directionWC,o=a.positionCartographic.height,r=u.minimumHeight,s=u.maximumHeight;else{let x=F.inverseTransformation(c.computedTransform,Zje),b=t.mapProjection.ellipsoid,T=u.boundingVolume,C=F.multiplyByPoint(x,T.center,$je);if(h.magnitude(C)>b.minimumRadius){let A=fe.fromCartesian(C,b,Kje);n=h.normalize(a.positionWC,wle),i=a.directionWC,o=a.positionCartographic.height,r=0,s=A.height*2}else{let A=F.multiplyByPoint(x,a.positionWC,Qje);if(n=h.UNIT_Z,i=F.multiplyByPointAsVector(x,a.directionWC,Jje),i=h.normalize(i,i),o=A.z,u instanceof vu){let E=$.getColumn(T.halfAxes,2,e7e),v=h.magnitude(E);r=C.z-v,s=C.z+v}else if(u instanceof x_){let E=T.radius;r=C.z-E,s=C.z+E}}}let f=e.dynamicScreenSpaceErrorHeightFalloff,d=r+(s-r)*f,p=s,g=R.clamp((o-d)/(p-d),0,1),m=1-Math.abs(h.dot(i,n));m=m*(1-g),e._dynamicScreenSpaceErrorComputedDensity=e.dynamicScreenSpaceErrorDensity*m}function n7e(e,t){if(t.hasEmptyContent)return;let{statistics:n}=e,i=t.contentExpired,o=t.requestContent();l(o)&&(o.then(r=>{!l(r)||t.isDestroyed()||e.isDestroyed()||(e._processingQueue.push(t),++n.numberOfTilesProcessing)}).catch(r=>{Ile(r,e,t)}),i&&(t.hasTilesetContent||t.hasImplicitContent?_7e(e,t):(n.decrementLoadCounts(t.content),--n.numberOfTilesWithContentReady)),e._requestedTilesInFlight.push(t))}function Ple(e,t){return e._priority-t._priority}Jo.prototype.postPassesUpdate=function(e){l(this._root)&&(i7e(this,e),y7e(this,e),this._cache.unloadTiles(this,Ole),this._styleApplied&&this._styleEngine.resetDirty(),this._styleApplied=!1)};Jo.prototype.prePassesUpdate=function(e){if(!l(this._root))return;u7e(this,e);let t=this._clippingPlanes;this._clippingPlanesOriginMatrixDirty=!0,l(t)&&t.enabled&&t.update(e);let n=this._clippingPolygons;l(n)&&n.enabled&&n.update(e),l(this._loadTimestamp)||(this._loadTimestamp=J.clone(e.time)),this._timeSinceLoad=Math.max(J.secondsDifference(e.time,this._loadTimestamp)*1e3,0),this.dynamicScreenSpaceError&&t7e(this,e),e.newFrame&&this._cache.reset()};function i7e(e,t){let n=e._requestedTilesInFlight,i=0;for(let o=0;o<n.length;++o){let r=n[o],s=t.frameNumber-r._touchedFrame>=1;if(r._contentState!==zo.LOADING){++i;continue}else if(s){r.cancelRequests(),++i;continue}i>0&&(n[o-i]=r)}n.length-=i}function o7e(e){let t=e._requestedTiles;t.sort(Ple);for(let n=0;n<t.length;++n)n7e(e,t[n])}function Ile(e,t,n){if(t.isDestroyed())return;let i;n.isDestroyed()||(i=n._contentResource.url);let o=l(e.message)?e.message:e.toString();t.tileFailed.numberOfListeners>0?t.tileFailed.raiseEvent({url:i,message:o}):(console.log(`A 3D tile failed to load: ${i}`),console.log(`Error: ${o}`))}function r7e(e){let t=e._processingQueue,n=0;for(let i=0;i<t.length;++i){let o=t[i];if(o.isDestroyed()||o._contentState!==zo.PROCESSING){++n;continue}n>0&&(t[i-n]=o)}t.length-=n}var s7e=new fe,a7e=new fe,c7e=new h;function l7e(e,t,n){if(!e.enableCollision||!e.show)return;let i=e._addHeightCallbacks,o=t.boundingSphere;for(let r of i){if(r.invoked||t._wasSelectedLastFrame)continue;let s=r.ellipsoid,a=fe.clone(r.positionCartographic,s7e),c=fe.fromCartesian(o.center,s,a7e);l(c)&&(a.height=c.height);let u=fe.toCartesian(a,s,c7e);h.distance(u,o.center)<=o.radius&&n.afterRender.push(()=>{l(r.callback)&&r.callback(a),r.invoked=!1})}}function u7e(e,t){r7e(e);let n=e._processingQueue,{cacheBytes:i,maximumCacheOverflowBytes:o,statistics:r}=e,s=i+o,a=!1;for(let c=0;c<n.length;++c){if(e.totalMemoryUsageInBytes>s){a=!0;break}let u=n[c];try{u.process(e,t),u.contentReady&&(--r.numberOfTilesProcessing,e.tileLoad.raiseEvent(u))}catch(f){--r.numberOfTilesProcessing,Ile(f,e,u)}}e.totalMemoryUsageInBytes<i?d7e(e):a&&n.length>0&&f7e(e)}function f7e(e){e._memoryAdjustedScreenSpaceError*=1.02;let t=e._processingQueue;for(let n=0;n<t.length;++n)t[n].updatePriority();t.sort(Ple)}function d7e(e){e._memoryAdjustedScreenSpaceError=Math.max(e.memoryAdjustedScreenSpaceError/1.02,e.maximumScreenSpaceError)}var sz=new h,h7e={maximumFractionDigits:3};function Dle(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,h7e):Math.round(t).toLocaleString()}function Tj(e){let{halfAxes:t,radius:n,center:i}=e.boundingVolume.boundingVolume,o=h.clone(i,sz);if(l(t))o.x+=.75*(t[0]+t[3]+t[6]),o.y+=.75*(t[1]+t[4]+t[7]),o.z+=.75*(t[2]+t[5]+t[8]);else if(l(n)){let r=h.normalize(i,sz);r=h.multiplyByScalar(r,.75*n,sz),o=h.add(r,i,sz)}return o}function Aj(e,t,n){let i="",o=0;if(t.debugShowGeometricError&&(i+=` Geometric error: ${e.geometricError}`,o++),t.debugShowRenderingStatistics&&(i+=` Commands: ${e.commandsLength}`,o++,e.content.pointsLength>0&&(i+=` Points: ${e.content.pointsLength}`,o++),e.content.trianglesLength>0&&(i+=` Triangles: ${e.content.trianglesLength}`,o++),i+=` Features: ${e.content.featuresLength}`,o++),t.debugShowMemoryUsage&&(i+=` Texture Memory: ${Dle(e.content.texturesByteLength)}`,i+=` Geometry Memory: ${Dle(e.content.geometryByteLength)}`,o+=2),t.debugShowUrl)if(e.hasMultipleContents){i+=` Urls:`;let s=e.content.innerContentUrls;for(let a=0;a<s.length;a++)i+=` - ${s[a]}`;o+=s.length}else i+=` Url: ${e._contentHeader.uri}`,o++;let r={text:i.substring(1),position:n,font:`${19-o}px sans-serif`,showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY};return t._tileDebugLabels.add(r)}function m7e(e,t){let n=e._selectedTiles,i=n.length,o=e._emptyTiles,r=o.length;if(e._tileDebugLabels.removeAll(),e.debugPickedTileLabelOnly){if(l(e.debugPickedTile)){let s=l(e.debugPickPosition)?e.debugPickPosition:Tj(e.debugPickedTile),a=Aj(e.debugPickedTile,e,s);a.pixelOffset=new z(15,-15)}}else{for(let s=0;s<i;++s){let a=n[s];Aj(a,e,Tj(a))}for(let s=0;s<r;++s){let a=o[s];(a.hasTilesetContent||a.hasImplicitContent)&&Aj(a,e,Tj(a))}}e._tileDebugLabels.update(t)}function p7e(e,t,n){e._styleEngine.applyStyle(e),e._styleApplied=!0;let{commandList:i,context:o}=t,r=i.length,s=e._selectedTiles,a=e.isSkippingLevelOfDetail&&e._hasMixedContent&&o.stencilBuffer&&s.length>0;e._backfaceCommands.length=0,a&&(l(e._stencilClearCommand)||(e._stencilClearCommand=new ii({stencil:0,pass:Ee.CESIUM_3D_TILE,renderState:Ve.fromCache({stencilMask:Ft.SKIP_LOD_MASK})})),i.push(e._stencilClearCommand));let{statistics:c,tileVisible:u}=e,f=n.isRender,d=i.length;for(let m=0;m<s.length;++m){let x=s[m];f&&u.raiseEvent(x),l7e(e,x,t),x.update(e,t,n),c.incrementSelectionCounts(x.content),++c.selected}let p=e._emptyTiles;for(let m=0;m<p.length;++m)p[m].update(e,t,n);let g=i.length-d;if(e._backfaceCommands.trim(),a){let m=e._backfaceCommands.values,x=m.length;i.length+=x;for(let b=g-1;b>=0;--b)i[d+x+b]=i[d+b];for(let b=0;b<x;++b)i[d+b]=m[b]}g=i.length-r,c.numberOfCommands=g,f&&(e.pointCloudShading.attenuation&&e.pointCloudShading.eyeDomeLighting&&g>0&&e._pointCloudEyeDomeLighting.update(t,r,e.pointCloudShading,e.boundingSphere),e.debugShowGeometricError||e.debugShowRenderingStatistics||e.debugShowMemoryUsage||e.debugShowUrl?(l(e._tileDebugLabels)||(e._tileDebugLabels=new xm),m7e(e,t)):e._tileDebugLabels=e._tileDebugLabels&&e._tileDebugLabels.destroy())}var Rle=[];function _7e(e,t){let n=t,i=Rle;for(i.push(t);i.length>0;){t=i.pop();let o=t.children;for(let r=0;r<o.length;++r)i.push(o[r]);t!==n&&(g7e(e,t),--e._statistics.numberOfTilesTotal)}n.children=[]}function Ole(e,t){e.tileUnload.raiseEvent(t),e._statistics.decrementLoadCounts(t.content),--e._statistics.numberOfTilesWithContentReady,t.unloadContent()}function g7e(e,t){e._cache.unloadTile(e,t,Ole),t.destroy()}Jo.prototype.trimLoadedTiles=function(){this._cache.trim()};function y7e(e,t){let n=e._statistics,i=e._statisticsLast,o=n.numberOfPendingRequests,r=n.numberOfTilesProcessing,s=i.numberOfPendingRequests,a=i.numberOfTilesProcessing;A_.clone(n,i);let c=o!==s||r!==a;c&&t.afterRender.push(function(){return e.loadProgress.raiseEvent(o,r),!0}),e._tilesLoaded=n.numberOfPendingRequests===0&&n.numberOfTilesProcessing===0&&n.numberOfAttemptedRequests===0,c&&e._tilesLoaded&&(t.afterRender.push(function(){return e.allTilesLoaded.raiseEvent(),!0}),e._initialTilesLoaded||(e._initialTilesLoaded=!0,t.afterRender.push(function(){return e.initialTilesLoaded.raiseEvent(),!0})))}function x7e(e){e._heatmap.resetMinimumMaximum(),e._minimumPriority.depth=Number.MAX_VALUE,e._maximumPriority.depth=-Number.MAX_VALUE,e._minimumPriority.foveatedFactor=Number.MAX_VALUE,e._maximumPriority.foveatedFactor=-Number.MAX_VALUE,e._minimumPriority.distance=Number.MAX_VALUE,e._maximumPriority.distance=-Number.MAX_VALUE,e._minimumPriority.reverseScreenSpaceError=Number.MAX_VALUE,e._maximumPriority.reverseScreenSpaceError=-Number.MAX_VALUE}function b7e(e,t){t.frameNumber===e._updatedModelMatrixFrame&&l(e._previousModelMatrix)||(e._updatedModelMatrixFrame=t.frameNumber,e._modelMatrixChanged=!F.equals(e.modelMatrix,e._previousModelMatrix),e._modelMatrixChanged&&(e._previousModelMatrix=F.clone(e.modelMatrix,e._previousModelMatrix)))}function T7e(e,t,n,i){if(t.mode===ne.MORPHING||!l(e._root))return!1;let o=e._statistics;o.clear(),++e._updatedVisibilityFrame,x7e(e),b7e(e,t),e._cullRequestsWhileMoving=e.cullRequestsWhileMoving&&!e._modelMatrixChanged;let r=e.getTraversal(i).selectTiles(e,t);if(i.requestTiles&&o7e(e),p7e(e,t,i),A_.clone(o,n),i.isRender){let s=e._credits;if(l(s)&&o.selected!==0)for(let a=0;a<s.length;++a){let c=s[a];t.creditDisplay.addCreditToNextFrame(c)}}return r}function Mle(e){let t=e._credits;l(t)||(t=[]),t.length=0,l(e.resource.credits)&&e.resource.credits.forEach(i=>{t.push(Tt.clone(i))});let n=e.asset.extras;if(l(n)&&l(n.cesium)&&l(n.cesium.credits)){let i=n.cesium.credits;for(let o=0;o<i.length;++o){let r=i[o];t.push(new Tt(r.html))}}t.forEach(i=>i.showOnScreen=i.showOnScreen||e._showCreditsOnScreen),e._credits=t}Jo.prototype.getTraversal=function(e){let{pass:t}=e;return t===Mo.MOST_DETAILED_PRELOAD||t===Mo.MOST_DETAILED_PICK?WM:this.isSkippingLevelOfDetail?ZM:YM};Jo.prototype.update=function(e){this.updateForPass(e,e.tilesetPassState)};Jo.prototype.updateForPass=function(e,t){let n=t.pass;if(n===Mo.PRELOAD&&(!this.preloadWhenHidden||this.show)||n===Mo.PRELOAD_FLIGHT&&(!this.preloadFlightDestinations||!this.show&&!this.preloadWhenHidden)||n===Mo.REQUEST_RENDER_MODE_DEFER_CHECK&&(!this._cullRequestsWhileMoving&&this.foveatedTimeDelay<=0||!this.show))return;let i=e.commandList,o=e.camera,r=e.cullingVolume;t.ready=!1;let s=Mo.getPassOptions(n),a=s.ignoreCommands,c=y(t.commandList,i),u=c.length;e.commandList=c,e.camera=y(t.camera,o),e.cullingVolume=y(t.cullingVolume,r);let f=this._clippingPolygons;l(f)&&f.enabled&&f.queueCommands(e);let d=this._statisticsPerPass[n];(this.show||a)&&(this._pass=n,t.ready=T7e(this,e,d,s)),a&&(c.length=u),e.commandList=i,e.camera=o,e.cullingVolume=r};Jo.prototype.hasExtension=function(e){return l(this._extensionsUsed)?this._extensionsUsed.indexOf(e)>-1:!1};Jo.prototype.isDestroyed=function(){return!1};Jo.prototype.destroy=function(){if(this._tileDebugLabels=this._tileDebugLabels&&this._tileDebugLabels.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._clippingPolygons=this._clippingPolygons&&this._clippingPolygons.destroy(),l(this._root)){let e=Rle;for(e.push(this._root);e.length>0;){let t=e.pop();t.destroy();let n=t.children;for(let i=0;i<n.length;++i)e.push(n[i])}}return this._root=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0,ue(this)};Jo.supportedExtensions={"3DTILES_metadata":!0,"3DTILES_implicit_tiling":!0,"3DTILES_content_gltf":!0,"3DTILES_multiple_contents":!0,"3DTILES_bounding_volume_S2":!0,"3DTILES_batch_table_hierarchy":!0,"3DTILES_draco_point_compression":!0,MAXAR_content_geojson:!0};Jo.checkSupportedExtensions=function(e){for(let t=0;t<e.length;t++)if(!Jo.supportedExtensions[e[t]])throw new le(`Unsupported 3D Tiles Extension: ${e[t]}`)};var A7e=new pn,C7e=new h,E7e=new fe;Jo.prototype.getHeight=function(e,t){let n=t.globe?.ellipsoid;l(n)||(n=te.WGS84);let i=A7e,o=n.cartographicToCartesian(e,i.direction);h.normalize(i.direction,i.direction),i.direction=h.normalize(o,i.direction),i.direction=h.negate(o,i.direction),i.origin=h.multiplyByScalar(i.direction,-2*n.maximumRadius,i.origin);let r=this.pick(i,t.frameState,C7e);if(l(r))return n.cartesianToCartographic(r,E7e)?.height};Jo.prototype.updateHeight=function(e,t,n){n=y(n,te.WGS84);let i={positionCartographic:e,ellipsoid:n,callback:t,invoked:!1},o=()=>{let r=this._addHeightCallbacks,s=r.length;for(let a=0;a<s;++a)if(r[a]===i){r.splice(a,1);break}i.callback&&(i.callback=void 0)};return this._addHeightCallbacks.push(i),o};var S7e=new Ta,v7e=new h;Jo.prototype.pick=function(e,t,n){if(!t.context.webgl2&&!this._enablePick)return;let i=this._selectedTiles,o=i.length,r=[];for(let c=0;c<o;++c){let u=i[c],f=Qn.raySphere(e,u.contentBoundingVolume.boundingSphere,S7e);!l(f)||!l(u.content)||r.push(u)}let s=r.length;r.sort((c,u)=>{let f=ae.distanceSquaredTo(c.contentBoundingVolume.boundingSphere,e.origin),d=ae.distanceSquaredTo(u.contentBoundingVolume.boundingSphere,e.origin);return f-d});let a;for(let c=0;c<s;++c){let f=r[c].content.pick(e,t,v7e);if(l(f))return a=h.clone(f,n),a}};var oa=Jo;var w7e=new F;function Oy(e,t){t.collectionChanged.addEventListener(Oy.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._tilesetHash={},this._entitiesToVisualize=new bt,this._onCollectionChanged(t,t.values,[],[])}Oy.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._tilesetHash,i=this._primitives;for(let o=0,r=t.length;o<r;o++){let s=t[o],a=s._tileset,c,u=n[s.id],f=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),d;f&&(d=s.computeModelMatrix(e,w7e),c=De.createIfNeeded(q.getValueOrUndefined(a._uri,e)));let p=l(u)?u.tilesetPrimitive:void 0;if(!f){l(p)&&(p.show=!1);continue}(!l(u)||c.url!==u.url)&&(l(p)&&i.removeAndDestroy(p),delete n[s.id],D7e(c,n,s,i)),l(p)&&(p.show=!0,l(d)&&(p.modelMatrix=d),p.maximumScreenSpaceError=q.getValueOrDefault(a.maximumScreenSpaceError,e,p.maximumScreenSpaceError))}return!0};Oy.prototype.isDestroyed=function(){return!1};Oy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Oy.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._tilesetHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)Cj(this,e[i],t,n);return ue(this)};Oy.prototype.getBoundingSphere=function(e,t){let n=this._tilesetHash[e.id];if(!l(n)||n.loadFail)return at.FAILED;let i=n.tilesetPrimitive;return l(i)?i.show?(ae.clone(i.boundingSphere,t),at.DONE):at.FAILED:at.PENDING};Oy.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._tilesetHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._tileset)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._tileset)?s.set(r.id,r):(Cj(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],Cj(this,r,a,c),s.remove(r.id)};function Cj(e,t,n,i){let o=n[t.id];l(o)&&(l(o.tilesetPrimitive)&&i.removeAndDestroy(o.tilesetPrimitive),delete n[t.id])}async function D7e(e,t,n,i){t[n.id]={url:e.url,loadFail:!1};try{let o=await oa.fromUrl(e);if(o.id=n,i.add(o),!l(t[n.id]))return;t[n.id].tilesetPrimitive=o}catch(o){console.error(o),t[n.id].loadFail=!0}}var $M=Oy;var P7e=H.WHITE,I7e=H.BLACK,R7e=new z(2,2);function dE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.repeat=e.repeat}Object.defineProperties(dE.prototype,{isConstant:{get:function(){return q.isConstant(this._evenColor)&&q.isConstant(this._oddColor)&&q.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},evenColor:ce("evenColor"),oddColor:ce("oddColor"),repeat:ce("repeat")});dE.prototype.getType=function(e){return"Checkerboard"};dE.prototype.getValue=function(e,t){return l(t)||(t={}),t.lightColor=q.getValueOrClonedDefault(this._evenColor,e,P7e,t.lightColor),t.darkColor=q.getValueOrClonedDefault(this._oddColor,e,I7e,t.darkColor),t.repeat=q.getValueOrDefault(this._repeat,e,R7e),t};dE.prototype.equals=function(e){return this===e||e instanceof dE&&q.equals(this._evenColor,e._evenColor)&&q.equals(this._oddColor,e._oddColor)&&q.equals(this._repeat,e._repeat)};var hE=dE;var Lle={id:void 0};function QM(e){if(e._firing){e._refire=!0;return}if(e._suspendCount===0){let t=e._addedEntities,n=e._removedEntities,i=e._changedEntities;if(i.length!==0||t.length!==0||n.length!==0){e._firing=!0;do{e._refire=!1;let o=t.values.slice(0),r=n.values.slice(0),s=i.values.slice(0);t.removeAll(),n.removeAll(),i.removeAll(),e._collectionChanged.raiseEvent(e,o,r,s)}while(e._refire);e._firing=!1}}}function dc(e){this._owner=e,this._entities=new bt,this._addedEntities=new bt,this._removedEntities=new bt,this._changedEntities=new bt,this._suspendCount=0,this._collectionChanged=new pe,this._id=Hn(),this._show=!0,this._firing=!1,this._refire=!1}dc.prototype.suspendEvents=function(){this._suspendCount++};dc.prototype.resumeEvents=function(){this._suspendCount--,QM(this)};Object.defineProperties(dc.prototype,{collectionChanged:{get:function(){return this._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._entities.values}},show:{get:function(){return this._show},set:function(e){if(e===this._show)return;this.suspendEvents();let t,n=[],i=this._entities.values,o=i.length;for(t=0;t<o;t++)n.push(i[t].isShowing);for(this._show=e,t=0;t<o;t++){let r=n[t],s=i[t];r!==s.isShowing&&s.definitionChanged.raiseEvent(s,"isShowing",s.isShowing,r)}this.resumeEvents()}},owner:{get:function(){return this._owner}}});dc.prototype.computeAvailability=function(){let e=Ue.MAXIMUM_VALUE,t=Ue.MINIMUM_VALUE,n=this._entities.values;for(let i=0,o=n.length;i<o;i++){let s=n[i].availability;if(l(s)){let a=s.start,c=s.stop;J.lessThan(a,e)&&!a.equals(Ue.MINIMUM_VALUE)&&(e=a),J.greaterThan(c,t)&&!c.equals(Ue.MAXIMUM_VALUE)&&(t=c)}}return Ue.MAXIMUM_VALUE.equals(e)&&(e=Ue.MINIMUM_VALUE),Ue.MINIMUM_VALUE.equals(t)&&(t=Ue.MAXIMUM_VALUE),new Tn({start:e,stop:t})};dc.prototype.add=function(e){e instanceof Zo||(e=new Zo(e));let t=e.id,n=this._entities;if(n.contains(t))throw new de(`An entity with id ${t} already exists in this collection.`);return e.entityCollection=this,n.set(t,e),this._removedEntities.remove(t)||this._addedEntities.set(t,e),e.definitionChanged.addEventListener(dc.prototype._onEntityDefinitionChanged,this),QM(this),e};dc.prototype.remove=function(e){return l(e)?this.removeById(e.id):!1};dc.prototype.contains=function(e){return this._entities.get(e.id)===e};dc.prototype.removeById=function(e){if(!l(e))return!1;let n=this._entities.get(e);return this._entities.remove(e)?(this._addedEntities.remove(e)||(this._removedEntities.set(e,n),this._changedEntities.remove(e)),this._entities.remove(e),n.definitionChanged.removeEventListener(dc.prototype._onEntityDefinitionChanged,this),QM(this),!0):!1};dc.prototype.removeAll=function(){let e=this._entities,t=e.length,n=e.values,i=this._addedEntities,o=this._removedEntities;for(let r=0;r<t;r++){let s=n[r],a=s.id,c=i.get(a);l(c)||(s.definitionChanged.removeEventListener(dc.prototype._onEntityDefinitionChanged,this),o.set(a,s))}e.removeAll(),i.removeAll(),this._changedEntities.removeAll(),QM(this)};dc.prototype.getById=function(e){return this._entities.get(e)};dc.prototype.getOrCreateEntity=function(e){let t=this._entities.get(e);return l(t)||(Lle.id=e,t=new Zo(Lle),this.add(t)),t};dc.prototype._onEntityDefinitionChanged=function(e){let t=e.id;this._addedEntities.contains(t)||this._changedEntities.set(t,e),QM(this)};var Hs=dc;var az={id:void 0},mE=new Array(2);function Ej(e){let t=e.propertyNames,n=t.length;for(let i=0;i<n;i++)e[t[i]]=void 0;e._name=void 0,e._availability=void 0}function Nle(e,t,n,i){mE[0]=n,mE[1]=i.id,t[JSON.stringify(mE)]=i.definitionChanged.addEventListener(Pr.prototype._onDefinitionChanged,e)}function Fle(e,t,n,i){mE[0]=n,mE[1]=i.id;let o=JSON.stringify(mE);t[o](),t[o]=void 0}function My(e){if(e._shouldRecomposite=!0,e._suspendCount!==0)return;let t=e._collections,n=t.length,i=e._collectionsCopy,o=i.length,r,s,a,c,u,f=e._composite,d=new Hs(e),p=e._eventHash,g;for(r=0;r<o;r++)for(u=i[r],u.collectionChanged.removeEventListener(Pr.prototype._onCollectionChanged,e),a=u.values,g=u.id,c=a.length-1;c>-1;c--)s=a[c],Fle(e,p,g,s);for(r=n-1;r>=0;r--)for(u=t[r],u.collectionChanged.addEventListener(Pr.prototype._onCollectionChanged,e),a=u.values,g=u.id,c=a.length-1;c>-1;c--){s=a[c],Nle(e,p,g,s);let x=d.getById(s.id);l(x)||(x=f.getById(s.id),l(x)?Ej(x):(az.id=s.id,x=new Zo(az)),d.add(x)),x.merge(s)}e._collectionsCopy=t.slice(0),f.suspendEvents(),f.removeAll();let m=d.values;for(r=0;r<m.length;r++)f.add(m[r]);f.resumeEvents()}function Pr(e,t){this._owner=t,this._composite=new Hs(this),this._suspendCount=0,this._collections=l(e)?e.slice():[],this._collectionsCopy=[],this._id=Hn(),this._eventHash={},My(this),this._shouldRecomposite=!1}Object.defineProperties(Pr.prototype,{collectionChanged:{get:function(){return this._composite._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._composite.values}},owner:{get:function(){return this._owner}}});Pr.prototype.addCollection=function(e,t){l(t)?this._collections.splice(t,0,e):(t=this._collections.length,this._collections.push(e)),My(this)};Pr.prototype.removeCollection=function(e){let t=this._collections.indexOf(e);return t!==-1?(this._collections.splice(t,1),My(this),!0):!1};Pr.prototype.removeAllCollections=function(){this._collections.length=0,My(this)};Pr.prototype.containsCollection=function(e){return this._collections.indexOf(e)!==-1};Pr.prototype.contains=function(e){return this._composite.contains(e)};Pr.prototype.indexOfCollection=function(e){return this._collections.indexOf(e)};Pr.prototype.getCollection=function(e){return this._collections[e]};Pr.prototype.getCollectionsLength=function(){return this._collections.length};function cz(e,t){return e.indexOf(t)}function Ble(e,t,n){let i=e._collections;if(t=R.clamp(t,0,i.length-1),n=R.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,My(e)}Pr.prototype.raiseCollection=function(e){let t=cz(this._collections,e);Ble(this,t,t+1)};Pr.prototype.lowerCollection=function(e){let t=cz(this._collections,e);Ble(this,t,t-1)};Pr.prototype.raiseCollectionToTop=function(e){let t=cz(this._collections,e);t!==this._collections.length-1&&(this._collections.splice(t,1),this._collections.push(e),My(this))};Pr.prototype.lowerCollectionToBottom=function(e){let t=cz(this._collections,e);t!==0&&(this._collections.splice(t,1),this._collections.splice(0,0,e),My(this))};Pr.prototype.suspendEvents=function(){this._suspendCount++,this._composite.suspendEvents()};Pr.prototype.resumeEvents=function(){this._suspendCount--,this._shouldRecomposite&&this._suspendCount===0&&(My(this),this._shouldRecomposite=!1),this._composite.resumeEvents()};Pr.prototype.computeAvailability=function(){return this._composite.computeAvailability()};Pr.prototype.getById=function(e){return this._composite.getById(e)};Pr.prototype._onCollectionChanged=function(e,t,n){let i=this._collectionsCopy,o=i.length,r=this._composite;r.suspendEvents();let s,a,c,u,f=n.length,d=this._eventHash,p=e.id;for(s=0;s<f;s++){let m=n[s];Fle(this,d,p,m);let x=m.id;for(a=o-1;a>=0;a--)c=i[a].getById(x),l(c)&&(l(u)||(u=r.getById(x),Ej(u)),u.merge(c));l(u)||r.removeById(x),u=void 0}let g=t.length;for(s=0;s<g;s++){let m=t[s];Nle(this,d,p,m);let x=m.id;for(a=o-1;a>=0;a--)c=i[a].getById(x),l(c)&&(l(u)||(u=r.getById(x),l(u)?Ej(u):(az.id=x,u=new Zo(az),r.add(u))),u.merge(c));u=void 0}r.resumeEvents()};Pr.prototype._onDefinitionChanged=function(e,t,n,i){let o=this._collections,r=this._composite,s=o.length,a=e.id,c=r.getById(a),u=c[t],f=!l(u),d=!0;for(let p=s-1;p>=0;p--){let g=o[p].getById(e.id);if(l(g)){let m=g[t];if(l(m)){if(d)if(d=!1,l(m.merge)&&l(m.clone))u=m.clone(u);else{u=m;break}u.merge(m)}}}f&&c.propertyNames.indexOf(t)===-1&&c.addProperty(t),c[t]=u};var Sj=Pr;function vj(){this._removalFunctions=[]}vj.prototype.add=function(e,t,n){let i=e.addEventListener(t,n);this._removalFunctions.push(i);let o=this;return function(){i();let r=o._removalFunctions;r.splice(r.indexOf(i),1)}};vj.prototype.removeAll=function(){let e=this._removalFunctions;for(let t=0,n=e.length;t<n;++t)e[t]();e.length=0};var Ir=vj;function Pj(e,t){return J.compare(e.start,t.start)}function Rr(e){if(this._intervals=[],this._changedEvent=new pe,l(e)){let t=e.length;for(let n=0;n<t;n++)this.addInterval(e[n])}}Object.defineProperties(Rr.prototype,{changedEvent:{get:function(){return this._changedEvent}},start:{get:function(){let e=this._intervals;return e.length===0?void 0:e[0].start}},isStartIncluded:{get:function(){let e=this._intervals;return e.length===0?!1:e[0].isStartIncluded}},stop:{get:function(){let e=this._intervals,t=e.length;return t===0?void 0:e[t-1].stop}},isStopIncluded:{get:function(){let e=this._intervals,t=e.length;return t===0?!1:e[t-1].isStopIncluded}},length:{get:function(){return this._intervals.length}},isEmpty:{get:function(){return this._intervals.length===0}}});Rr.prototype.equals=function(e,t){if(this===e)return!0;if(!(e instanceof Rr))return!1;let n=this._intervals,i=e._intervals,o=n.length;if(o!==i.length)return!1;for(let r=0;r<o;r++)if(!Tn.equals(n[r],i[r],t))return!1;return!0};Rr.prototype.get=function(e){return this._intervals[e]};Rr.prototype.removeAll=function(){this._intervals.length>0&&(this._intervals.length=0,this._changedEvent.raiseEvent(this))};Rr.prototype.findIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t]:void 0};Rr.prototype.findDataForIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t].data:void 0};Rr.prototype.contains=function(e){return this.indexOf(e)>=0};var wj=new Tn;Rr.prototype.indexOf=function(e){let t=this._intervals;wj.start=e,wj.stop=e;let n=Do(t,wj,Pj);return n>=0?t[n].isStartIncluded?n:n>0&&t[n-1].stop.equals(e)&&t[n-1].isStopIncluded?n-1:~n:(n=~n,n>0&&n-1<t.length&&Tn.contains(t[n-1],e)?n-1:~n)};Rr.prototype.findInterval=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.start,n=e.stop,i=e.isStartIncluded,o=e.isStopIncluded,r=this._intervals;for(let s=0,a=r.length;s<a;s++){let c=r[s];if((!l(t)||c.start.equals(t))&&(!l(n)||c.stop.equals(n))&&(!l(i)||c.isStartIncluded===i)&&(!l(o)||c.isStopIncluded===o))return r[s]}};Rr.prototype.addInterval=function(e,t){if(e.isEmpty)return;let n=this._intervals;if(n.length===0||J.greaterThan(e.start,n[n.length-1].stop)){n.push(e),this._changedEvent.raiseEvent(this);return}let i=Do(n,e,Pj);i<0?i=~i:i>0&&e.isStartIncluded&&n[i-1].isStartIncluded&&n[i-1].start.equals(e.start)?--i:i<n.length&&!e.isStartIncluded&&n[i].isStartIncluded&&n[i].start.equals(e.start)&&++i;let o;for(i>0&&(o=J.compare(n[i-1].stop,e.start),(o>0||o===0&&(n[i-1].isStopIncluded||e.isStartIncluded))&&((l(t)?t(n[i-1].data,e.data):n[i-1].data===e.data)?(J.greaterThan(e.stop,n[i-1].stop)?e=new Tn({start:n[i-1].start,stop:e.stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:e.isStopIncluded,data:e.data}):e=new Tn({start:n[i-1].start,stop:n[i-1].stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:n[i-1].isStopIncluded||e.stop.equals(n[i-1].stop)&&e.isStopIncluded,data:e.data}),n.splice(i-1,1),--i):(o=J.compare(n[i-1].stop,e.stop),(o>0||o===0&&n[i-1].isStopIncluded&&!e.isStopIncluded)&&n.splice(i,0,new Tn({start:e.stop,stop:n[i-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i-1].isStopIncluded,data:n[i-1].data})),n[i-1]=new Tn({start:n[i-1].start,stop:e.start,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:n[i-1].data}))));i<n.length&&(o=J.compare(e.stop,n[i].start),o>0||o===0&&(e.isStopIncluded||n[i].isStartIncluded));)if(l(t)?t(n[i].data,e.data):n[i].data===e.data)e=new Tn({start:e.start,stop:J.greaterThan(n[i].stop,e.stop)?n[i].stop:e.stop,isStartIncluded:e.isStartIncluded,isStopIncluded:J.greaterThan(n[i].stop,e.stop)?n[i].isStopIncluded:e.isStopIncluded,data:e.data}),n.splice(i,1);else if(n[i]=new Tn({start:e.stop,stop:n[i].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i].isStopIncluded,data:n[i].data}),n[i].isEmpty)n.splice(i,1);else break;n.splice(i,0,e),this._changedEvent.raiseEvent(this)};Rr.prototype.removeInterval=function(e){if(e.isEmpty)return!1;let t=this._intervals,n=Do(t,e,Pj);n<0&&(n=~n);let i=!1;for(n>0&&(J.greaterThan(t[n-1].stop,e.start)||t[n-1].stop.equals(e.start)&&t[n-1].isStopIncluded&&e.isStartIncluded)&&(i=!0,(J.greaterThan(t[n-1].stop,e.stop)||t[n-1].isStopIncluded&&!e.isStopIncluded&&t[n-1].stop.equals(e.stop))&&t.splice(n,0,new Tn({start:e.stop,stop:t[n-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n-1].isStopIncluded,data:t[n-1].data})),t[n-1]=new Tn({start:t[n-1].start,stop:e.start,isStartIncluded:t[n-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:t[n-1].data})),n<t.length&&!e.isStartIncluded&&t[n].isStartIncluded&&e.start.equals(t[n].start)&&(i=!0,t.splice(n,0,new Tn({start:t[n].start,stop:t[n].start,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data})),++n);n<t.length&&J.greaterThan(e.stop,t[n].stop);)i=!0,t.splice(n,1);return n<t.length&&e.stop.equals(t[n].stop)&&(i=!0,!e.isStopIncluded&&t[n].isStopIncluded?n+1<t.length&&t[n+1].start.equals(e.stop)&&t[n].data===t[n+1].data?(t.splice(n,1),t[n]=new Tn({start:t[n].start,stop:t[n].stop,isStartIncluded:!0,isStopIncluded:t[n].isStopIncluded,data:t[n].data})):t[n]=new Tn({start:e.stop,stop:e.stop,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data}):t.splice(n,1)),n<t.length&&(J.greaterThan(e.stop,t[n].start)||e.stop.equals(t[n].start)&&e.isStopIncluded&&t[n].isStartIncluded)&&(i=!0,t[n]=new Tn({start:e.stop,stop:t[n].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n].isStopIncluded,data:t[n].data})),i&&this._changedEvent.raiseEvent(this),i};Rr.prototype.intersect=function(e,t,n){let i=new Rr,o=0,r=0,s=this._intervals,a=e._intervals;for(;o<s.length&&r<a.length;){let c=s[o],u=a[r];if(J.lessThan(c.stop,u.start))++o;else if(J.lessThan(u.stop,c.start))++r;else{if(l(n)||l(t)&&t(c.data,u.data)||!l(t)&&u.data===c.data){let f=Tn.intersect(c,u,new Tn,n);f.isEmpty||i.addInterval(f,t)}J.lessThan(c.stop,u.stop)||c.stop.equals(u.stop)&&!c.isStopIncluded&&u.isStopIncluded?++o:++r}}return i};Rr.fromJulianDateArray=function(e,t){l(t)||(t=new Rr);let n=e.julianDates,i=n.length,o=e.dataCallback,r=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=y(e.leadingInterval,!1),c=y(e.trailingInterval,!1),u,f=0;a&&(++f,u=new Tn({start:Ue.MINIMUM_VALUE,stop:n[0],isStartIncluded:!0,isStopIncluded:!r}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u));for(let d=0;d<i-1;++d){let p=n[d],g=n[d+1];u=new Tn({start:p,stop:g,isStartIncluded:t.length===f?r:!0,isStopIncluded:d===i-2?s:!1}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u),p=g}return c&&(u=new Tn({start:n[i-1],stop:Ue.MAXIMUM_VALUE,isStartIncluded:!s,isStopIncluded:!0}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u)),t};var hc=new fp,JM=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Dj(e,t,n){l(n)||(n=new J),J.toGregorianDate(e,hc);let i=hc.millisecond+t.millisecond,o=hc.second+t.second,r=hc.minute+t.minute,s=hc.hour+t.hour,a=hc.day+t.day,c=hc.month+t.month,u=hc.year+t.year;for(i>=1e3&&(o+=Math.floor(i/1e3),i=i%1e3),o>=60&&(r+=Math.floor(o/60),o=o%60),r>=60&&(s+=Math.floor(r/60),r=r%60),s>=24&&(a+=Math.floor(s/24),s=s%24),JM[2]=xd(u)?29:28;a>JM[c]||c>=13;)a>JM[c]&&(a-=JM[c],++c),c>=13&&(--c,u+=Math.floor(c/12),c=c%12,++c),JM[2]=xd(u)?29:28;return hc.millisecond=i,hc.second=o,hc.minute=r,hc.hour=s,hc.day=a,hc.month=c,hc.year=u,J.fromGregorianDate(hc,n)}var O7e=new J,M7e=/P(?:([\d.,]+)Y)?(?:([\d.,]+)M)?(?:([\d.,]+)W)?(?:([\d.,]+)D)?(?:T(?:([\d.,]+)H)?(?:([\d.,]+)M)?(?:([\d.,]+)S)?)?/;function kle(e,t){if(!l(e)||e.length===0)return!1;if(t.year=0,t.month=0,t.day=0,t.hour=0,t.minute=0,t.second=0,t.millisecond=0,e[0]==="P"){let n=e.match(M7e);if(!l(n))return!1;if(l(n[1])&&(t.year=Number(n[1].replace(",","."))),l(n[2])&&(t.month=Number(n[2].replace(",","."))),l(n[3])&&(t.day=Number(n[3].replace(",","."))*7),l(n[4])&&(t.day+=Number(n[4].replace(",","."))),l(n[5])&&(t.hour=Number(n[5].replace(",","."))),l(n[6])&&(t.minute=Number(n[6].replace(",","."))),l(n[7])){let i=Number(n[7].replace(",","."));t.second=Math.floor(i),t.millisecond=i%1*1e3}}else e[e.length-1]!=="Z"&&(e+="Z"),J.toGregorianDate(J.fromIso8601(e,O7e),t);return t.year||t.month||t.day||t.hour||t.minute||t.second||t.millisecond}var eL=new fp;Rr.fromIso8601=function(e,t){let n=e.iso8601.split("/"),i=J.fromIso8601(n[0]),o=J.fromIso8601(n[1]),r=[];if(!kle(n[2],eL))r.push(i,o);else{let s=J.clone(i);for(r.push(s);J.compare(s,o)<0;)s=Dj(s,eL),J.compare(o,s)<=0&&J.clone(o,s),r.push(s)}return Rr.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};Rr.fromIso8601DateArray=function(e,t){return Rr.fromJulianDateArray({julianDates:e.iso8601Dates.map(function(n){return J.fromIso8601(n)}),isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};Rr.fromIso8601DurationArray=function(e,t){let n=e.epoch,i=e.iso8601Durations,o=y(e.relativeToPrevious,!1),r=[],s,a,c=i.length;for(let u=0;u<c;++u)(kle(i[u],eL)||u===0)&&(o&&l(a)?s=Dj(a,eL):s=Dj(n,eL),r.push(s),a=s);return Rr.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};var Or=Rr;function L7e(e,t,n,i){function o(){n.raiseEvent(e)}let r=[];t.removeAll();let s=i.length;for(let a=0;a<s;a++){let c=i.get(a);l(c.data)&&r.indexOf(c.data)===-1&&t.add(c.data.definitionChanged,o)}}function Bb(){this._eventHelper=new Ir,this._definitionChanged=new pe,this._intervals=new Or,this._intervals.changedEvent.addEventListener(Bb.prototype._intervalsChanged,this)}Object.defineProperties(Bb.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});Bb.prototype.getValue=function(e,t){let n=this._intervals.findDataForIntervalContainingDate(e);if(l(n))return n.getValue(e,t)};Bb.prototype.equals=function(e){return this===e||e instanceof Bb&&this._intervals.equals(e._intervals,q.equals)};Bb.prototype._intervalsChanged=function(){L7e(this,this._eventHelper,this._definitionChanged,this._intervals),this._definitionChanged.raiseEvent(this)};var mc=Bb;function Ly(){this._definitionChanged=new pe,this._composite=new mc,this._composite.definitionChanged.addEventListener(Ly.prototype._raiseDefinitionChanged,this)}Object.defineProperties(Ly.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite._intervals}}});Ly.prototype.getType=function(e){let t=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(t))return t.getType(e)};Ly.prototype.getValue=function(e,t){let n=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(n))return n.getValue(e,t)};Ly.prototype.equals=function(e){return this===e||e instanceof Ly&&this._composite.equals(e._composite,q.equals)};Ly.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var pE=Ly;function Ny(e){this._referenceFrame=y(e,to.FIXED),this._definitionChanged=new pe,this._composite=new mc,this._composite.definitionChanged.addEventListener(Ny.prototype._raiseDefinitionChanged,this)}Object.defineProperties(Ny.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite.intervals}},referenceFrame:{get:function(){return this._referenceFrame},set:function(e){this._referenceFrame=e}}});Ny.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,to.FIXED,t)};Ny.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(i))return i.getValueInReferenceFrame(e,t,n)};Ny.prototype.equals=function(e){return this===e||e instanceof Ny&&this._referenceFrame===e._referenceFrame&&this._composite.equals(e._composite,q.equals)};Ny.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var ra=Ny;var N7e={ROUNDED:0,MITERED:1,BEVELED:2},Di=Object.freeze(N7e);var sa=[new h,new h],F7e=new h,B7e=new h,k7e=new h,V7e=new h,U7e=new h,z7e=new h,H7e=new h,G7e=new h,W7e=new h,_E=new h,lz=new h,tL={},Ij=new fe;function j7e(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++){let o=e[i];Ij=t.cartesianToCartographic(o,Ij),n[i]=Ij.height,e[i]=t.scaleToGeodeticSurface(o,o)}return n}function Rj(e,t,n,i){let o=e[0],r=e[1],s=h.angleBetween(o,r),a=Math.ceil(s/i),c=new Array(a),u;if(t===n){for(u=0;u<a;u++)c[u]=t;return c.push(n),c}let d=(n-t)/a;for(u=1;u<a;u++){let p=t+u*d;c[u]=p}return c[0]=t,c.push(n),c}var uz=new h,fz=new h;function q7e(e,t,n,i){let o=new Hr(n,i),r=o.projectPointOntoPlane(h.add(n,e,uz),uz),s=o.projectPointOntoPlane(h.add(n,t,fz),fz),a=z.angleBetween(r,s);return s.x*r.y-s.y*r.x>=0?-a:a}var Y7e=new h(-1,0,0),kb=new F,X7e=new F,Oj=new $,K7e=$.IDENTITY.clone(),Z7e=new h,$7e=new oe,Vle=new h;function S_(e,t,n,i,o,r,s,a){let c=Z7e,u=$7e;kb=wt.eastNorthUpToFixedFrame(e,o,kb),c=F.multiplyByPointAsVector(kb,Y7e,c),c=h.normalize(c,c);let f=q7e(c,t,e,o);Oj=$.fromRotationZ(f,Oj),Vle.z=r,kb=F.multiplyTransformation(kb,F.fromRotationTranslation(Oj,Vle,X7e),kb);let d=K7e;d[0]=s;for(let p=0;p<a;p++)for(let g=0;g<n.length;g+=3)u=h.fromArray(n,g,u),u=$.multiplyByVector(d,u,u),u=F.multiplyByPoint(kb,u,u),i.push(u.x,u.y,u.z);return i}var Q7e=new h;function Mj(e,t,n,i,o,r,s){for(let a=0;a<e.length;a+=3){let c=h.fromArray(e,a,Q7e);i=S_(c,t,n,i,o,r[a/3],s,1)}return i}function J7e(e,t){let n=e.length,i=new Array(n*6),o=0,r=t.x+t.width/2,s=t.y+t.height/2,a=e[0];i[o++]=a.x-r,i[o++]=0,i[o++]=a.y-s;for(let c=1;c<n;c++){a=e[c];let u=a.x-r,f=a.y-s;i[o++]=u,i[o++]=0,i[o++]=f,i[o++]=u,i[o++]=0,i[o++]=f}return a=e[0],i[o++]=a.x-r,i[o++]=0,i[o++]=a.y-s,i}function Ule(e,t){let n=e.length,i=new Array(n*3),o=0,r=t.x+t.width/2,s=t.y+t.height/2;for(let a=0;a<n;a++)i[o++]=e[a].x-r,i[o++]=0,i[o++]=e[a].y-s;return i}var zle=new Me,Hle=new h,Gle=new $;function Wle(e,t,n,i,o,r,s,a,c,u){let f=h.angleBetween(h.subtract(t,e,_E),h.subtract(n,e,lz)),d=i===Di.BEVELED?0:Math.ceil(f/R.toRadians(5)),p;o?p=$.fromQuaternion(Me.fromAxisAngle(h.negate(e,_E),f/(d+1),zle),Gle):p=$.fromQuaternion(Me.fromAxisAngle(e,f/(d+1),zle),Gle);let g,m;if(t=h.clone(t,Hle),d>0){let x=u?2:1;for(let b=0;b<d;b++)t=$.multiplyByVector(p,t,t),g=h.subtract(t,e,_E),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(t,lz),s=S_(m,g,a,s,r,c,1,x)}else g=h.subtract(t,e,_E),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(t,lz),s=S_(m,g,a,s,r,c,1,1),n=h.clone(n,Hle),g=h.subtract(n,e,_E),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(n,lz),s=S_(m,g,a,s,r,c,1,1);return s}tL.removeDuplicatesFromShape=function(e){let t=e.length,n=[];for(let i=t-1,o=0;o<t;i=o++){let r=e[i],s=e[o];z.equals(r,s)||n.push(s)}return n};tL.angleIsGreaterThanPi=function(e,t,n,i){let o=new Hr(n,i),r=o.projectPointOntoPlane(h.add(n,e,uz),uz),s=o.projectPointOntoPlane(h.add(n,t,fz),fz);return s.x*r.y-s.y*r.x>=0};var eqe=new h,tqe=new h;tL.computePositions=function(e,t,n,i,o){let r=i._ellipsoid,s=j7e(e,r),a=i._granularity,c=i._cornerType,u=o?J7e(t,n):Ule(t,n),f=o?Ule(t,n):void 0,d=n.height/2,p=n.width/2,g=e.length,m=[],x=o?[]:void 0,b=F7e,T=B7e,C=k7e,A=V7e,E=U7e,v=z7e,D=H7e,O=G7e,I=W7e,L=e[0],N=e[1];A=r.geodeticSurfaceNormal(L,A),b=h.subtract(N,L,b),b=h.normalize(b,b),O=h.cross(A,b,O),O=h.normalize(O,O);let _=s[0],S=s[1];o&&(x=S_(L,O,f,x,r,_+d,1,1)),I=h.clone(L,I),L=N,T=h.negate(b,T);let w,P;for(let U=1;U<g-1;U++){let V=o?2:1;if(N=e[U+1],L.equals(N)){Lt("Positions are too close and are considered equivalent with rounding error.");continue}b=h.subtract(N,L,b),b=h.normalize(b,b),C=h.add(b,T,C),C=h.normalize(C,C),A=r.geodeticSurfaceNormal(L,A);let G=h.multiplyByScalar(A,h.dot(b,A),eqe);h.subtract(b,G,G),h.normalize(G,G);let k=h.multiplyByScalar(A,h.dot(T,A),tqe);if(h.subtract(T,k,k),h.normalize(k,k),!R.equalsEpsilon(Math.abs(h.dot(G,k)),1,R.EPSILON7)){C=h.cross(C,A,C),C=h.cross(A,C,C),C=h.normalize(C,C);let W=1/Math.max(.25,h.magnitude(h.cross(C,T,_E))),Q=tL.angleIsGreaterThanPi(b,T,L,r);Q?(E=h.add(L,h.multiplyByScalar(C,W*p,C),E),v=h.add(E,h.multiplyByScalar(O,p,v),v),sa[0]=h.clone(I,sa[0]),sa[1]=h.clone(v,sa[1]),w=Rj(sa,_+d,S+d,a),P=wi.generateArc({positions:sa,granularity:a,ellipsoid:r}),m=Mj(P,O,u,m,r,w,1),O=h.cross(A,b,O),O=h.normalize(O,O),D=h.add(E,h.multiplyByScalar(O,p,D),D),c===Di.ROUNDED||c===Di.BEVELED?Wle(E,v,D,c,Q,r,m,u,S+d,o):(C=h.negate(C,C),m=S_(L,C,u,m,r,S+d,W,V)),I=h.clone(D,I)):(E=h.add(L,h.multiplyByScalar(C,W*p,C),E),v=h.add(E,h.multiplyByScalar(O,-p,v),v),sa[0]=h.clone(I,sa[0]),sa[1]=h.clone(v,sa[1]),w=Rj(sa,_+d,S+d,a),P=wi.generateArc({positions:sa,granularity:a,ellipsoid:r}),m=Mj(P,O,u,m,r,w,1),O=h.cross(A,b,O),O=h.normalize(O,O),D=h.add(E,h.multiplyByScalar(O,-p,D),D),c===Di.ROUNDED||c===Di.BEVELED?Wle(E,v,D,c,Q,r,m,u,S+d,o):m=S_(L,C,u,m,r,S+d,W,V),I=h.clone(D,I)),T=h.negate(b,T)}else m=S_(I,O,u,m,r,_+d,1,1),I=L;_=S,S=s[U+1],L=N}sa[0]=h.clone(I,sa[0]),sa[1]=h.clone(L,sa[1]),w=Rj(sa,_+d,S+d,a),P=wi.generateArc({positions:sa,granularity:a,ellipsoid:r}),m=Mj(P,O,u,m,r,w,1),o&&(x=S_(L,O,f,x,r,S+d,1,1)),g=m.length;let M=o?g+x.length:g,B=new Float64Array(M);return B.set(m),o&&B.set(x,g),B};var ih=tL;var Nj={},gE=new h,Kle=new h,nqe=new h,jle=new h,tl=[new h,new h],Zle=new h,$le=new h,Qle=new h,iqe=new h,oqe=new h,rqe=new h,sqe=new h,aqe=new h,cqe=new h,lqe=new h,qle=new Me,Yle=new $;function dz(e,t,n,i,o){let r=h.angleBetween(h.subtract(t,e,gE),h.subtract(n,e,Kle)),s=i===Di.BEVELED?1:Math.ceil(r/R.toRadians(5))+1,a=s*3,c=new Array(a);c[a-3]=n.x,c[a-2]=n.y,c[a-1]=n.z;let u;o?u=$.fromQuaternion(Me.fromAxisAngle(h.negate(e,gE),r/s,qle),Yle):u=$.fromQuaternion(Me.fromAxisAngle(e,r/s,qle),Yle);let f=0;t=h.clone(t,gE);for(let d=0;d<s;d++)t=$.multiplyByVector(u,t,t),c[f++]=t.x,c[f++]=t.y,c[f++]=t.z;return c}function uqe(e){let t=Zle,n=$le,i=Qle,o=e[1];n=h.fromArray(e[1],o.length-3,n),i=h.fromArray(e[0],0,i),t=h.midpoint(n,i,t);let r=dz(t,n,i,Di.ROUNDED,!1),s=e.length-1,a=e[s-1];o=e[s],n=h.fromArray(a,a.length-3,n),i=h.fromArray(o,0,i),t=h.midpoint(n,i,t);let c=dz(t,n,i,Di.ROUNDED,!1);return[r,c]}function Xle(e,t,n,i){let o=gE;return i?o=h.add(e,t,o):(t=h.negate(t,t),o=h.add(e,t,o)),[o.x,o.y,o.z,n.x,n.y,n.z]}function Lj(e,t,n,i){let o=new Array(e.length),r=new Array(e.length),s=h.multiplyByScalar(t,n,gE),a=h.negate(s,Kle),c=0,u=e.length-1;for(let f=0;f<e.length;f+=3){let d=h.fromArray(e,f,nqe),p=h.add(d,a,jle);o[c++]=p.x,o[c++]=p.y,o[c++]=p.z;let g=h.add(d,s,jle);r[u--]=g.z,r[u--]=g.y,r[u--]=g.x}return i.push(o,r),i}Nj.addAttribute=function(e,t,n,i){let o=t.x,r=t.y,s=t.z;l(n)&&(e[n]=o,e[n+1]=r,e[n+2]=s),l(i)&&(e[i]=s,e[i-1]=r,e[i-2]=o)};var fqe=new h,dqe=new h;Nj.computePositions=function(e){let t=e.granularity,n=e.positions,i=e.ellipsoid,o=e.width/2,r=e.cornerType,s=e.saveAttributes,a=Zle,c=$le,u=Qle,f=iqe,d=oqe,p=rqe,g=sqe,m=aqe,x=cqe,b=lqe,T=[],C=s?[]:void 0,A=s?[]:void 0,E=n[0],v=n[1];c=h.normalize(h.subtract(v,E,c),c),a=i.geodeticSurfaceNormal(E,a),f=h.normalize(h.cross(a,c,f),f),s&&(C.push(f.x,f.y,f.z),A.push(a.x,a.y,a.z)),g=h.clone(E,g),E=v,u=h.negate(c,u);let D,O=[],I,L=n.length;for(I=1;I<L-1;I++){a=i.geodeticSurfaceNormal(E,a),v=n[I+1],c=h.normalize(h.subtract(v,E,c),c),d=h.normalize(h.add(c,u,d),d);let _=h.multiplyByScalar(a,h.dot(c,a),fqe);h.subtract(c,_,_),h.normalize(_,_);let S=h.multiplyByScalar(a,h.dot(u,a),dqe);if(h.subtract(u,S,S),h.normalize(S,S),!R.equalsEpsilon(Math.abs(h.dot(_,S)),1,R.EPSILON7)){d=h.cross(d,a,d),d=h.cross(a,d,d),d=h.normalize(d,d);let P=o/Math.max(.25,h.magnitude(h.cross(d,u,gE))),M=ih.angleIsGreaterThanPi(c,u,E,i);d=h.multiplyByScalar(d,P,d),M?(m=h.add(E,d,m),b=h.add(m,h.multiplyByScalar(f,o,b),b),x=h.add(m,h.multiplyByScalar(f,o*2,x),x),tl[0]=h.clone(g,tl[0]),tl[1]=h.clone(b,tl[1]),D=wi.generateArc({positions:tl,granularity:t,ellipsoid:i}),T=Lj(D,f,o,T),s&&(C.push(f.x,f.y,f.z),A.push(a.x,a.y,a.z)),p=h.clone(x,p),f=h.normalize(h.cross(a,c,f),f),x=h.add(m,h.multiplyByScalar(f,o*2,x),x),g=h.add(m,h.multiplyByScalar(f,o,g),g),r===Di.ROUNDED||r===Di.BEVELED?O.push({leftPositions:dz(m,p,x,r,M)}):O.push({leftPositions:Xle(E,h.negate(d,d),x,M)})):(x=h.add(E,d,x),b=h.add(x,h.negate(h.multiplyByScalar(f,o,b),b),b),m=h.add(x,h.negate(h.multiplyByScalar(f,o*2,m),m),m),tl[0]=h.clone(g,tl[0]),tl[1]=h.clone(b,tl[1]),D=wi.generateArc({positions:tl,granularity:t,ellipsoid:i}),T=Lj(D,f,o,T),s&&(C.push(f.x,f.y,f.z),A.push(a.x,a.y,a.z)),p=h.clone(m,p),f=h.normalize(h.cross(a,c,f),f),m=h.add(x,h.negate(h.multiplyByScalar(f,o*2,m),m),m),g=h.add(x,h.negate(h.multiplyByScalar(f,o,g),g),g),r===Di.ROUNDED||r===Di.BEVELED?O.push({rightPositions:dz(x,p,m,r,M)}):O.push({rightPositions:Xle(E,d,m,M)})),u=h.negate(c,u)}E=v}a=i.geodeticSurfaceNormal(E,a),tl[0]=h.clone(g,tl[0]),tl[1]=h.clone(E,tl[1]),D=wi.generateArc({positions:tl,granularity:t,ellipsoid:i}),T=Lj(D,f,o,T),s&&(C.push(f.x,f.y,f.z),A.push(a.x,a.y,a.z));let N;return r===Di.ROUNDED&&(N=uqe(T)),{positions:T,corners:O,lefts:C,normals:A,endPositions:N}};var Fi=Nj;var tue=new h,nue=new h,hz=new h,mz=new h,hqe=new h,iue=new h,Fy=new h,yE=new h;function oue(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function oh(e,t,n,i,o,r){let s=e.normals,a=e.tangents,c=e.bitangents,u=h.normalize(h.cross(n,t,Fy),Fy);r.normal&&Fi.addAttribute(s,t,i,o),r.tangent&&Fi.addAttribute(a,u,i,o),r.bitangent&&Fi.addAttribute(c,n,i,o)}function rue(e,t,n){let i=e.positions,o=e.corners,r=e.endPositions,s=e.lefts,a=e.normals,c=new fn,u,f=0,d=0,p,g=0,m;for(p=0;p<i.length;p+=2)m=i[p].length-3,f+=m,g+=m*2,d+=i[p+1].length-3;for(f+=3,d+=3,p=0;p<o.length;p++){u=o[p];let Z=o[p].leftPositions;l(Z)?(m=Z.length,f+=m,g+=m):(m=o[p].rightPositions.length,d+=m,g+=m)}let x=l(r),b;x&&(b=r[0].length-3,f+=b,d+=b,b/=3,g+=b*6);let T=f+d,C=new Float64Array(T),A=t.normal?new Float32Array(T):void 0,E=t.tangent?new Float32Array(T):void 0,v=t.bitangent?new Float32Array(T):void 0,D={normals:A,tangents:E,bitangents:v},O=0,I=T-1,L,N,_,S,w=tue,P=nue,M,B,U=b/2,V=Ne.createTypedArray(T/3,g),G=0;if(x){B=hz,M=mz;let Z=r[0];for(w=h.fromArray(a,0,w),P=h.fromArray(s,0,P),p=0;p<U;p++)B=h.fromArray(Z,(U-1-p)*3,B),M=h.fromArray(Z,(U+p)*3,M),Fi.addAttribute(C,M,O),Fi.addAttribute(C,B,void 0,I),oh(D,w,P,O,I,t),N=O/3,S=N+1,L=(I-2)/3,_=L-1,V[G++]=L,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=S,O+=3,I-=3}let k=0,Y=0,W=i[k++],Q=i[k++];C.set(W,O),C.set(Q,I-Q.length+1),P=h.fromArray(s,Y,P);let j,K;for(m=Q.length-3,p=0;p<m;p+=3)j=n.geodeticSurfaceNormal(h.fromArray(W,p,Fy),Fy),K=n.geodeticSurfaceNormal(h.fromArray(Q,m-p,yE),yE),w=h.normalize(h.add(j,K,w),w),oh(D,w,P,O,I,t),N=O/3,S=N+1,L=(I-2)/3,_=L-1,V[G++]=L,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=S,O+=3,I-=3;for(j=n.geodeticSurfaceNormal(h.fromArray(W,m,Fy),Fy),K=n.geodeticSurfaceNormal(h.fromArray(Q,m,yE),yE),w=h.normalize(h.add(j,K,w),w),Y+=3,p=0;p<o.length;p++){let Z;u=o[p];let he=u.leftPositions,be=u.rightPositions,re,_e,xe=iue,Ce=hz,we=mz;if(w=h.fromArray(a,Y,w),l(he)){for(oh(D,w,P,void 0,I,t),I-=3,re=S,_e=_,Z=0;Z<he.length/3;Z++)xe=h.fromArray(he,Z*3,xe),V[G++]=re,V[G++]=_e-Z-1,V[G++]=_e-Z,Fi.addAttribute(C,xe,void 0,I),Ce=h.fromArray(C,(_e-Z-1)*3,Ce),we=h.fromArray(C,re*3,we),P=h.normalize(h.subtract(Ce,we,P),P),oh(D,w,P,void 0,I,t),I-=3;xe=h.fromArray(C,re*3,xe),Ce=h.subtract(h.fromArray(C,_e*3,Ce),xe,Ce),we=h.subtract(h.fromArray(C,(_e-Z)*3,we),xe,we),P=h.normalize(h.add(Ce,we,P),P),oh(D,w,P,O,void 0,t),O+=3}else{for(oh(D,w,P,O,void 0,t),O+=3,re=_,_e=S,Z=0;Z<be.length/3;Z++)xe=h.fromArray(be,Z*3,xe),V[G++]=re,V[G++]=_e+Z,V[G++]=_e+Z+1,Fi.addAttribute(C,xe,O),Ce=h.fromArray(C,re*3,Ce),we=h.fromArray(C,(_e+Z)*3,we),P=h.normalize(h.subtract(Ce,we,P),P),oh(D,w,P,O,void 0,t),O+=3;xe=h.fromArray(C,re*3,xe),Ce=h.subtract(h.fromArray(C,(_e+Z)*3,Ce),xe,Ce),we=h.subtract(h.fromArray(C,_e*3,we),xe,we),P=h.normalize(h.negate(h.add(we,Ce,P),P),P),oh(D,w,P,void 0,I,t),I-=3}for(W=i[k++],Q=i[k++],W.splice(0,3),Q.splice(Q.length-3,3),C.set(W,O),C.set(Q,I-Q.length+1),m=Q.length-3,Y+=3,P=h.fromArray(s,Y,P),Z=0;Z<Q.length;Z+=3)j=n.geodeticSurfaceNormal(h.fromArray(W,Z,Fy),Fy),K=n.geodeticSurfaceNormal(h.fromArray(Q,m-Z,yE),yE),w=h.normalize(h.add(j,K,w),w),oh(D,w,P,O,I,t),S=O/3,N=S-1,_=(I-2)/3,L=_+1,V[G++]=L,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=S,O+=3,I-=3;O-=3,I+=3}if(w=h.fromArray(a,a.length-3,w),oh(D,w,P,O,I,t),x){O+=3,I-=3,B=hz,M=mz;let Z=r[1];for(p=0;p<U;p++)B=h.fromArray(Z,(b-p-1)*3,B),M=h.fromArray(Z,p*3,M),Fi.addAttribute(C,B,void 0,I),Fi.addAttribute(C,M,O),oh(D,w,P,O,I,t),S=O/3,N=S-1,_=(I-2)/3,L=_+1,V[G++]=L,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=S,O+=3,I-=3}if(c.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:C}),t.st){let Z=new Float32Array(T/3*2),he,be,re=0;if(x){f/=3,d/=3;let _e=Math.PI/(b+1);be=1/(f-b+1),he=1/(d-b+1);let xe,Ce=b/2;for(p=Ce+1;p<b+1;p++)xe=R.PI_OVER_TWO+_e*p,Z[re++]=he*(1+Math.cos(xe)),Z[re++]=.5*(1+Math.sin(xe));for(p=1;p<d-b+1;p++)Z[re++]=p*he,Z[re++]=0;for(p=b;p>Ce;p--)xe=R.PI_OVER_TWO-p*_e,Z[re++]=1-he*(1+Math.cos(xe)),Z[re++]=.5*(1+Math.sin(xe));for(p=Ce;p>0;p--)xe=R.PI_OVER_TWO-_e*p,Z[re++]=1-be*(1+Math.cos(xe)),Z[re++]=.5*(1+Math.sin(xe));for(p=f-b;p>0;p--)Z[re++]=p*be,Z[re++]=1;for(p=1;p<Ce+1;p++)xe=R.PI_OVER_TWO+_e*p,Z[re++]=be*(1+Math.cos(xe)),Z[re++]=.5*(1+Math.sin(xe))}else{for(f/=3,d/=3,be=1/(f-1),he=1/(d-1),p=0;p<d;p++)Z[re++]=p*he,Z[re++]=0;for(p=f;p>0;p--)Z[re++]=(p-1)*be,Z[re++]=1}c.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:Z})}return t.normal&&(c.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.normals})),t.tangent&&(c.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.tangents})),t.bitangent&&(c.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.bitangents})),{attributes:c,indices:V}}function mqe(e,t){if(!t.normal&&!t.tangent&&!t.bitangent&&!t.st)return e;let n=e.position.values,i,o;(t.normal||t.bitangent)&&(i=e.normal.values,o=e.bitangent.values);let r=e.position.values.length/18,s=r*3,a=r*2,c=s*2,u;if(t.normal||t.bitangent||t.tangent){let f=t.normal?new Float32Array(s*6):void 0,d=t.tangent?new Float32Array(s*6):void 0,p=t.bitangent?new Float32Array(s*6):void 0,g=tue,m=nue,x=hz,b=mz,T=hqe,C=iue,A=c;for(u=0;u<s;u+=3){let E=A+c;g=h.fromArray(n,u,g),m=h.fromArray(n,u+s,m),x=h.fromArray(n,(u+3)%s,x),m=h.subtract(m,g,m),x=h.subtract(x,g,x),b=h.normalize(h.cross(m,x,b),b),t.normal&&(Fi.addAttribute(f,b,E),Fi.addAttribute(f,b,E+3),Fi.addAttribute(f,b,A),Fi.addAttribute(f,b,A+3)),(t.tangent||t.bitangent)&&(C=h.fromArray(i,u,C),t.bitangent&&(Fi.addAttribute(p,C,E),Fi.addAttribute(p,C,E+3),Fi.addAttribute(p,C,A),Fi.addAttribute(p,C,A+3)),t.tangent&&(T=h.normalize(h.cross(C,b,T),T),Fi.addAttribute(d,T,E),Fi.addAttribute(d,T,E+3),Fi.addAttribute(d,T,A),Fi.addAttribute(d,T,A+3))),A+=6}if(t.normal){for(f.set(i),u=0;u<s;u+=3)f[u+s]=-i[u],f[u+s+1]=-i[u+1],f[u+s+2]=-i[u+2];e.normal.values=f}else e.normal=void 0;if(t.bitangent?(p.set(o),p.set(o,s),e.bitangent.values=p):e.bitangent=void 0,t.tangent){let E=e.tangent.values;d.set(E),d.set(E,s),e.tangent.values=d}}if(t.st){let f=e.st.values,d=new Float32Array(a*6);d.set(f),d.set(f,a);let p=a*2;for(let g=0;g<2;g++){for(d[p++]=f[0],d[p++]=f[1],u=2;u<a;u+=2){let m=f[u],x=f[u+1];d[p++]=m,d[p++]=x,d[p++]=m,d[p++]=x}d[p++]=f[0],d[p++]=f[1]}e.st.values=d}return e}function Fj(e,t,n){n[t++]=e[0],n[t++]=e[1],n[t++]=e[2];for(let i=3;i<e.length;i+=3){let o=e[i],r=e[i+1],s=e[i+2];n[t++]=o,n[t++]=r,n[t++]=s,n[t++]=o,n[t++]=r,n[t++]=s}return n[t++]=e[0],n[t++]=e[1],n[t++]=e[2],n}function pqe(e,t){let n=new Ie({position:t.position,normal:t.normal||t.bitangent||e.shadowVolume,tangent:t.tangent,bitangent:t.normal||t.bitangent,st:t.st}),i=e.ellipsoid,o=Fi.computePositions(e),r=rue(o,n,i),s=e.height,a=e.extrudedHeight,c=r.attributes,u=r.indices,f=c.position.values,d=f.length,p=new Float64Array(d*6),g=new Float64Array(d);g.set(f);let m=new Float64Array(d*4);f=si.scaleToGeodeticHeight(f,s,i),m=Fj(f,0,m),g=si.scaleToGeodeticHeight(g,a,i),m=Fj(g,d*2,m),p.set(f),p.set(g,d),p.set(m,d*2),c.position.values=p,c=mqe(c,t);let x,b=d/3;if(e.shadowVolume){let L=c.normal.values;d=L.length;let N=new Float32Array(d*6);for(x=0;x<d;x++)L[x]=-L[x];N.set(L,d),N=Fj(L,d*4,N),c.extrudeDirection=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:N}),t.normal||(c.normal=void 0)}if(l(e.offsetAttribute)){let L=new Uint8Array(b*6);if(e.offsetAttribute===an.TOP)L=L.fill(1,0,b).fill(1,b*2,b*4);else{let N=e.offsetAttribute===an.NONE?0:1;L=L.fill(N)}c.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:L})}let T=u.length,C=b+b,A=Ne.createTypedArray(p.length/3,T*2+C*3);A.set(u);let E=T;for(x=0;x<T;x+=3){let L=u[x],N=u[x+1],_=u[x+2];A[E++]=_+b,A[E++]=N+b,A[E++]=L+b}let v,D,O,I;for(x=0;x<C;x+=2)v=x+C,D=v+C,O=v+1,I=D+1,A[E++]=v,A[E++]=D,A[E++]=O,A[E++]=O,A[E++]=D,A[E++]=I;return{attributes:c,indices:A}}var Jle=new h,nL=new h,Gf=new fe;function eue(e,t,n,i,o,r){let s=h.subtract(t,e,Jle);h.normalize(s,s);let a=n.geodeticSurfaceNormal(e,nL),c=h.cross(s,a,Jle);h.multiplyByScalar(c,i,c);let u=o.latitude,f=o.longitude,d=r.latitude,p=r.longitude;h.add(e,c,nL),n.cartesianToCartographic(nL,Gf);let g=Gf.latitude,m=Gf.longitude;u=Math.min(u,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),h.subtract(e,c,nL),n.cartesianToCartographic(nL,Gf),g=Gf.latitude,m=Gf.longitude,u=Math.min(u,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),o.latitude=u,o.longitude=f,r.latitude=d,r.longitude=p}var Hf=new h,iL=new h,Hl=new fe,Gl=new fe;function sue(e,t,n,i,o){e=oue(e,t);let r=xo(e,h.equalsEpsilon),s=r.length;if(s<2||n<=0)return new se;let a=n*.5;Hl.latitude=Number.POSITIVE_INFINITY,Hl.longitude=Number.POSITIVE_INFINITY,Gl.latitude=Number.NEGATIVE_INFINITY,Gl.longitude=Number.NEGATIVE_INFINITY;let c,u;if(i===Di.ROUNDED){let p=r[0];h.subtract(p,r[1],Hf),h.normalize(Hf,Hf),h.multiplyByScalar(Hf,a,Hf),h.add(p,Hf,iL),t.cartesianToCartographic(iL,Gf),c=Gf.latitude,u=Gf.longitude,Hl.latitude=Math.min(Hl.latitude,c),Hl.longitude=Math.min(Hl.longitude,u),Gl.latitude=Math.max(Gl.latitude,c),Gl.longitude=Math.max(Gl.longitude,u)}for(let p=0;p<s-1;++p)eue(r[p],r[p+1],t,a,Hl,Gl);let f=r[s-1];h.subtract(f,r[s-2],Hf),h.normalize(Hf,Hf),h.multiplyByScalar(Hf,a,Hf),h.add(f,Hf,iL),eue(f,iL,t,a,Hl,Gl),i===Di.ROUNDED&&(t.cartesianToCartographic(iL,Gf),c=Gf.latitude,u=Gf.longitude,Hl.latitude=Math.min(Hl.latitude,c),Hl.longitude=Math.min(Hl.longitude,u),Gl.latitude=Math.max(Gl.latitude,c),Gl.longitude=Math.max(Gl.longitude,u));let d=l(o)?o:new se;return d.north=Gl.latitude,d.south=Hl.latitude,d.east=Gl.longitude,d.west=Hl.longitude,d}function w_(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.width,i=y(e.height,0),o=y(e.extrudedHeight,i);this._positions=t,this._ellipsoid=te.clone(y(e.ellipsoid,te.WGS84)),this._vertexFormat=Ie.clone(y(e.vertexFormat,Ie.DEFAULT)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Di.ROUNDED),this._granularity=y(e.granularity,R.RADIANS_PER_DEGREE),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createCorridorGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this.packedLength=1+t.length*h.packedLength+te.packedLength+Ie.packedLength+7}w_.pack=function(e,t,n){n=y(n,0);let i=e._positions,o=i.length;t[n++]=o;for(let r=0;r<o;++r,n+=h.packedLength)h.pack(i[r],t,n);return te.pack(e._ellipsoid,t,n),n+=te.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var aue=te.clone(te.UNIT_SPHERE),cue=new Ie,v_={positions:void 0,ellipsoid:aue,vertexFormat:cue,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};w_.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=new Array(i);for(let m=0;m<i;++m,t+=h.packedLength)o[m]=h.unpack(e,t);let r=te.unpack(e,t,aue);t+=te.packedLength;let s=Ie.unpack(e,t,cue);t+=Ie.packedLength;let a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t++]===1,g=e[t];return l(n)?(n._positions=o,n._ellipsoid=te.clone(r,n._ellipsoid),n._vertexFormat=Ie.clone(s,n._vertexFormat),n._width=a,n._height=c,n._extrudedHeight=u,n._cornerType=f,n._granularity=d,n._shadowVolume=p,n._offsetAttribute=g===-1?void 0:g,n):(v_.positions=o,v_.width=a,v_.height=c,v_.extrudedHeight=u,v_.cornerType=f,v_.granularity=d,v_.shadowVolume=p,v_.offsetAttribute=g===-1?void 0:g,new w_(v_))};w_.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.positions,i=e.width,o=y(e.ellipsoid,te.WGS84),r=y(e.cornerType,Di.ROUNDED);return sue(n,o,i,r,t)};w_.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=oue(t,i);let o=xo(t,h.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!R.equalsEpsilon(r,s,0,R.EPSILON2),c=e._vertexFormat,u={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!0},f;if(a)u.height=r,u.extrudedHeight=s,u.shadowVolume=e._shadowVolume,u.offsetAttribute=e._offsetAttribute,f=pqe(u,c);else{let g=Fi.computePositions(u);if(f=rue(g,c,i),f.attributes.position.values=si.scaleToGeodeticHeight(f.attributes.position.values,r,i),l(e._offsetAttribute)){let m=e._offsetAttribute===an.NONE?0:1,x=f.attributes.position.values.length,b=new Uint8Array(x/3).fill(m);f.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:b})}}let d=f.attributes,p=ae.fromVertices(d.position.values,void 0,3);return c.position||(f.attributes.position.values=void 0),new st({attributes:d,indices:f.indices,primitiveType:Le.TRIANGLES,boundingSphere:p,offsetAttribute:e._offsetAttribute})};w_.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new w_({positions:e._positions,width:e._width,cornerType:e._cornerType,ellipsoid:o,granularity:i,extrudedHeight:r,height:s,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(w_.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=sue(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}});var Vb=w_;var lue=new h,uue=new h,_qe=new h;function gqe(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function fue(e,t){let n=[],i=e.positions,o=e.corners,r=e.endPositions,s=new fn,a,c=0,u=0,f,d=0,p;for(f=0;f<i.length;f+=2)p=i[f].length-3,c+=p,d+=p/3*4,u+=i[f+1].length-3;for(c+=3,u+=3,f=0;f<o.length;f++){a=o[f];let M=o[f].leftPositions;l(M)?(p=M.length,c+=p,d+=p/3*2):(p=o[f].rightPositions.length,u+=p,d+=p/3*2)}let g=l(r),m;g&&(m=r[0].length-3,c+=m,u+=m,m/=3,d+=m*4);let x=c+u,b=new Float64Array(x),T=0,C=x-1,A,E,v,D,O,I,L=m/2,N=Ne.createTypedArray(x/3,d+4),_=0;if(N[_++]=T/3,N[_++]=(C-2)/3,g){n.push(T/3),I=lue,O=uue;let M=r[0];for(f=0;f<L;f++)I=h.fromArray(M,(L-1-f)*3,I),O=h.fromArray(M,(L+f)*3,O),Fi.addAttribute(b,O,T),Fi.addAttribute(b,I,void 0,C),E=T/3,D=E+1,A=(C-2)/3,v=A-1,N[_++]=A,N[_++]=v,N[_++]=E,N[_++]=D,T+=3,C-=3}let S=0,w=i[S++],P=i[S++];for(b.set(w,T),b.set(P,C-P.length+1),p=P.length-3,n.push(T/3,(C-2)/3),f=0;f<p;f+=3)E=T/3,D=E+1,A=(C-2)/3,v=A-1,N[_++]=A,N[_++]=v,N[_++]=E,N[_++]=D,T+=3,C-=3;for(f=0;f<o.length;f++){let M;a=o[f];let B=a.leftPositions,U=a.rightPositions,V,G=_qe;if(l(B)){for(C-=3,V=v,n.push(D),M=0;M<B.length/3;M++)G=h.fromArray(B,M*3,G),N[_++]=V-M-1,N[_++]=V-M,Fi.addAttribute(b,G,void 0,C),C-=3;n.push(V-Math.floor(B.length/6)),t===Di.BEVELED&&n.push((C-2)/3+1),T+=3}else{for(T+=3,V=D,n.push(v),M=0;M<U.length/3;M++)G=h.fromArray(U,M*3,G),N[_++]=V+M,N[_++]=V+M+1,Fi.addAttribute(b,G,T),T+=3;n.push(V+Math.floor(U.length/6)),t===Di.BEVELED&&n.push(T/3-1),C-=3}for(w=i[S++],P=i[S++],w.splice(0,3),P.splice(P.length-3,3),b.set(w,T),b.set(P,C-P.length+1),p=P.length-3,M=0;M<P.length;M+=3)D=T/3,E=D-1,v=(C-2)/3,A=v+1,N[_++]=A,N[_++]=v,N[_++]=E,N[_++]=D,T+=3,C-=3;T-=3,C+=3,n.push(T/3,(C-2)/3)}if(g){T+=3,C-=3,I=lue,O=uue;let M=r[1];for(f=0;f<L;f++)I=h.fromArray(M,(m-f-1)*3,I),O=h.fromArray(M,f*3,O),Fi.addAttribute(b,I,void 0,C),Fi.addAttribute(b,O,T),D=T/3,E=D-1,v=(C-2)/3,A=v+1,N[_++]=A,N[_++]=v,N[_++]=E,N[_++]=D,T+=3,C-=3;n.push(T/3)}else n.push(T/3,(C-2)/3);return N[_++]=T/3,N[_++]=(C-2)/3,s.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b}),{attributes:s,indices:N,wallIndices:n}}function yqe(e){let t=e.ellipsoid,n=Fi.computePositions(e),i=fue(n,e.cornerType),o=i.wallIndices,r=e.height,s=e.extrudedHeight,a=i.attributes,c=i.indices,u=a.position.values,f=u.length,d=new Float64Array(f);d.set(u);let p=new Float64Array(f*2);if(u=si.scaleToGeodeticHeight(u,r,t),d=si.scaleToGeodeticHeight(d,s,t),p.set(u),p.set(d,f),a.position.values=p,f/=3,l(e.offsetAttribute)){let A=new Uint8Array(f*2);if(e.offsetAttribute===an.TOP)A=A.fill(1,0,f);else{let E=e.offsetAttribute===an.NONE?0:1;A=A.fill(E)}a.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}let g,m=c.length,x=Ne.createTypedArray(p.length/3,(m+o.length)*2);x.set(c);let b=m;for(g=0;g<m;g+=2){let A=c[g],E=c[g+1];x[b++]=A+f,x[b++]=E+f}let T,C;for(g=0;g<o.length;g++)T=o[g],C=T+f,x[b++]=T,x[b++]=C;return{attributes:a,indices:x}}function oL(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.width,i=y(e.height,0),o=y(e.extrudedHeight,i);this._positions=t,this._ellipsoid=te.clone(y(e.ellipsoid,te.WGS84)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Di.ROUNDED),this._granularity=y(e.granularity,R.RADIANS_PER_DEGREE),this._offsetAttribute=e.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+t.length*h.packedLength+te.packedLength+6}oL.pack=function(e,t,n){n=y(n,0);let i=e._positions,o=i.length;t[n++]=o;for(let r=0;r<o;++r,n+=h.packedLength)h.pack(i[r],t,n);return te.pack(e._ellipsoid,t,n),n+=te.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n]=y(e._offsetAttribute,-1),t};var due=te.clone(te.UNIT_SPHERE),By={positions:void 0,ellipsoid:due,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};oL.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=new Array(i);for(let p=0;p<i;++p,t+=h.packedLength)o[p]=h.unpack(e,t);let r=te.unpack(e,t,due);t+=te.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t];return l(n)?(n._positions=o,n._ellipsoid=te.clone(r,n._ellipsoid),n._width=s,n._height=a,n._extrudedHeight=c,n._cornerType=u,n._granularity=f,n._offsetAttribute=d===-1?void 0:d,n):(By.positions=o,By.width=s,By.height=a,By.extrudedHeight=c,By.cornerType=u,By.granularity=f,By.offsetAttribute=d===-1?void 0:d,new oL(By))};oL.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=gqe(t,i);let o=xo(t,h.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!R.equalsEpsilon(r,s,0,R.EPSILON2),c={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!1},u;if(a)c.height=r,c.extrudedHeight=s,c.offsetAttribute=e._offsetAttribute,u=yqe(c);else{let p=Fi.computePositions(c);if(u=fue(p,c.cornerType),u.attributes.position.values=si.scaleToGeodeticHeight(u.attributes.position.values,r,i),l(e._offsetAttribute)){let g=u.attributes.position.values.length,m=e._offsetAttribute===an.NONE?0:1,x=new Uint8Array(g/3).fill(m);u.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}}let f=u.attributes,d=ae.fromVertices(f.position.values,void 0,3);return new st({attributes:f,indices:u.indices,primitiveType:Le.LINES,boundingSphere:d,offsetAttribute:e._offsetAttribute})};var rL=oL;var xqe=new Zn(0);function nl(e){ni.call(this,e),this._zIndex=0,this._terrainOffsetProperty=void 0}l(Object.create)&&(nl.prototype=Object.create(ni.prototype),nl.prototype.constructor=nl);Object.defineProperties(nl.prototype,{zIndex:{get:function(){return this._zIndex}},terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});nl.prototype._isOnTerrain=function(e,t){return this._fillEnabled&&!l(t.height)&&!l(t.extrudedHeight)&&Vc.isSupported(this._scene)};nl.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight;return t===0||l(n)&&n!==t};nl.prototype._computeCenter=de.throwInstantiationError;nl.prototype._onEntityPropertyChanged=function(e,t,n,i){if(ni.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o))return;l(o.zIndex)&&(l(o.height)||l(o.extrudedHeight))&&Lt(Lt.geometryZIndex),this._zIndex=y(o.zIndex,xqe),l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference,s=o.extrudedHeightReference;if(l(r)||l(s)){let a=new Od(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new Lx(this._scene,a,r,s)}};nl.prototype.destroy=function(){l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0),ni.prototype.destroy.call(this)};nl.getGeometryHeight=function(e,t){if(!l(e)){t!==qe.NONE&&Lt(Lt.geometryHeightReference);return}return ff(t)?0:e};nl.getGeometryExtrudedHeight=function(e,t){if(!l(e)){t!==qe.NONE&&Lt(Lt.geometryExtrudedHeightReference);return}return ff(t)?nl.CLAMP_TO_GROUND:e};nl.CLAMP_TO_GROUND="clamp";nl.computeGeometryOffsetAttribute=function(e,t,n,i){(!l(e)||!l(t))&&(t=qe.NONE),(!l(n)||!l(i))&&(i=qe.NONE);let o=0;if(t!==qe.NONE&&o++,i===qe.RELATIVE_TO_GROUND&&o++,o===2)return an.ALL;if(o===1)return an.TOP};var Wn=nl;var hue=new H,mue=h.ZERO,pue=new h,_ue=new se;function bqe(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.cornerType=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.offsetAttribute=void 0}function rh(e,t){Wn.call(this,{entity:e,scene:t,geometryOptions:new bqe(e),geometryPropertyName:"corridor",observedPropertyNames:["availability","corridor"]}),this._onEntityPropertyChanged(e,"corridor",e.corridor,void 0)}l(Object.create)&&(rh.prototype=Object.create(Wn.prototype),rh.prototype.constructor=rh);rh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof kt){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,hue)),l(o)||(o=H.WHITE),i.color=zt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,mue,pue))),new xt({id:t,geometry:new Vb(this._options),attributes:i})};rh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,hue),o={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:zt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0};return l(this._options.offsetAttribute)&&(o.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,mue,pue))),new xt({id:t,geometry:new rL(this._options),attributes:o})};rh.prototype._computeCenter=function(e,t){let n=q.getValueOrUndefined(this._entity.corridor.positions,e);if(!(!l(n)||n.length===0))return h.clone(n[Math.floor(n.length/2)],t)};rh.prototype._isHidden=function(e,t){return!l(t.positions)||!l(t.width)||ni.prototype._isHidden.call(this,e,t)};rh.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!q.isConstant(t.height)||!q.isConstant(t.extrudedHeight)||!q.isConstant(t.granularity)||!q.isConstant(t.width)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.cornerType)||!q.isConstant(t.zIndex)||this._onTerrain&&!q.isConstant(this._materialProperty)&&!(this._materialProperty instanceof kt)};rh.prototype._setStaticOptions=function(e,t){let n=q.getValueOrUndefined(t.height,Ue.MINIMUM_VALUE),i=q.getValueOrDefault(t.heightReference,Ue.MINIMUM_VALUE,qe.NONE),o=q.getValueOrUndefined(t.extrudedHeight,Ue.MINIMUM_VALUE),r=q.getValueOrDefault(t.extrudedHeightReference,Ue.MINIMUM_VALUE,qe.NONE);l(o)&&!l(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof kt?cn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(Ue.MINIMUM_VALUE,s.positions),s.width=t.width.getValue(Ue.MINIMUM_VALUE),s.granularity=q.getValueOrUndefined(t.granularity,Ue.MINIMUM_VALUE),s.cornerType=q.getValueOrUndefined(t.cornerType,Ue.MINIMUM_VALUE),s.offsetAttribute=Wn.computeGeometryOffsetAttribute(n,i,o,r),s.height=Wn.getGeometryHeight(n,i),o=Wn.getGeometryExtrudedHeight(o,r),o===Wn.CLAMP_TO_GROUND&&(o=ci.getMinimumMaximumHeights(Vb.computeRectangle(s,_ue)).minimumTerrainHeight),s.extrudedHeight=o};rh.DynamicGeometryUpdater=xE;function xE(e,t,n){ti.call(this,e,t,n)}l(Object.create)&&(xE.prototype=Object.create(ti.prototype),xE.prototype.constructor=xE);xE.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.positions)||!l(i.width)||ti.prototype._isHidden.call(this,e,t,n)};xE.prototype._setOptions=function(e,t,n){let i=this._options,o=q.getValueOrUndefined(t.height,n),r=q.getValueOrDefault(t.heightReference,n,qe.NONE),s=q.getValueOrUndefined(t.extrudedHeight,n),a=q.getValueOrDefault(t.extrudedHeightReference,n,qe.NONE);l(s)&&!l(o)&&(o=0),i.positions=q.getValueOrUndefined(t.positions,n),i.width=q.getValueOrUndefined(t.width,n),i.granularity=q.getValueOrUndefined(t.granularity,n),i.cornerType=q.getValueOrUndefined(t.cornerType,n),i.offsetAttribute=Wn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Wn.getGeometryHeight(o,r),s=Wn.getGeometryExtrudedHeight(s,a),s===Wn.CLAMP_TO_GROUND&&(s=ci.getMinimumMaximumHeights(Vb.computeRectangle(i,_ue)).minimumTerrainHeight),i.extrudedHeight=s};var sL=rh;function pz(){de.throwInstantiationError()}Object.defineProperties(pz.prototype,{name:{get:de.throwInstantiationError},clock:{get:de.throwInstantiationError},entities:{get:de.throwInstantiationError},isLoading:{get:de.throwInstantiationError},changedEvent:{get:de.throwInstantiationError},errorEvent:{get:de.throwInstantiationError},loadingEvent:{get:de.throwInstantiationError},show:{get:de.throwInstantiationError},clustering:{get:de.throwInstantiationError}});pz.prototype.update=function(e){de.throwInstantiationError()};pz.setLoading=function(e,t){e._isLoading!==t&&(t?e._entityCollection.suspendEvents():e._entityCollection.resumeEvents(),e._isLoading=t,e._loading.raiseEvent(e,t))};var Mr=pz;function Em(e,t){this._ellipsoid=e,this._cameraPosition=new h,this._cameraPositionInScaledSpace=new h,this._distanceToLimbInScaledSpaceSquared=0,l(t)&&(this.cameraPosition=t)}Object.defineProperties(Em.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,this._cameraPositionInScaledSpace),i=h.magnitudeSquared(n)-1;h.clone(e,this._cameraPosition),this._cameraPositionInScaledSpace=n,this._distanceToLimbInScaledSpaceSquared=i}}});var gue=new h;Em.prototype.isPointVisible=function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,gue);return kj(n,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};Em.prototype.isScaledSpacePointVisible=function(e){return kj(e,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var Tqe=new h;Em.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(e,t){let n=this._ellipsoid,i,o;return l(t)&&t<0&&n.minimumRadius>-t?(o=Tqe,o.x=this._cameraPosition.x/(n.radii.x+t),o.y=this._cameraPosition.y/(n.radii.y+t),o.z=this._cameraPosition.z/(n.radii.z+t),i=o.x*o.x+o.y*o.y+o.z*o.z-1):(o=this._cameraPositionInScaledSpace,i=this._distanceToLimbInScaledSpaceSquared),kj(e,o,i)};Em.prototype.computeHorizonCullingPoint=function(e,t,n){return bue(this._ellipsoid,e,t,n)};var yue=te.clone(te.UNIT_SPHERE);Em.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,n,i){let o=xue(this._ellipsoid,n,yue);return bue(o,e,t,i)};Em.prototype.computeHorizonCullingPointFromVertices=function(e,t,n,i,o){return Tue(this._ellipsoid,e,t,n,i,o)};Em.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,n,i,o,r){let s=xue(this._ellipsoid,o,yue);return Tue(s,e,t,n,i,r)};var Aqe=[];Em.prototype.computeHorizonCullingPointFromRectangle=function(e,t,n){let i=se.subsample(e,t,0,Aqe),o=ae.fromPoints(i);if(!(h.magnitude(o.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(o.center,i,n)};var Cqe=new h;function xue(e,t,n){if(l(t)&&t<0&&e.minimumRadius>-t){let i=h.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,Cqe);e=te.fromCartesian3(i,n)}return e}function bue(e,t,n,i){l(i)||(i=new h);let o=Eue(e,t),r=0;for(let s=0,a=n.length;s<a;++s){let c=n[s],u=Aue(e,c,o);if(u<0)return;r=Math.max(r,u)}return Cue(o,r,i)}var _z=new h;function Tue(e,t,n,i,o,r){l(r)||(r=new h),i=y(i,3),o=y(o,h.ZERO);let s=Eue(e,t),a=0;for(let c=0,u=n.length;c<u;c+=i){_z.x=n[c]+o.x,_z.y=n[c+1]+o.y,_z.z=n[c+2]+o.z;let f=Aue(e,_z,s);if(f<0)return;a=Math.max(a,f)}return Cue(s,a,r)}function kj(e,t,n){let i=t,o=n,r=h.subtract(e,i,gue),s=-h.dot(r,i);return!(o<0?s>0:s>o&&s*s/h.magnitudeSquared(r)>o)}var Eqe=new h,Sqe=new h;function Aue(e,t,n){let i=e.transformPositionToScaledSpace(t,Eqe),o=h.magnitudeSquared(i),r=Math.sqrt(o),s=h.divideByScalar(i,r,Sqe);o=Math.max(1,o),r=Math.max(1,r);let a=h.dot(s,n),c=h.magnitude(h.cross(s,n,s)),u=1/r,f=Math.sqrt(o-1)*u;return 1/(a*u-c*f)}function Cue(e,t,n){if(!(t<=0||t===1/0||t!==t))return h.multiplyByScalar(e,t,n)}var Bj=new h;function Eue(e,t){return h.equals(t,h.ZERO)?t:(e.transformPositionToScaledSpace(t,Bj),h.normalize(Bj,Bj))}var D_=Em;function Lr(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.scaleByDistance,o=e.distanceDisplayCondition;l(n)&&(n=Mt.clone(n)),l(i)&&(i=Mt.clone(i)),l(o)&&(o=It.clone(o)),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._color=H.clone(y(e.color,H.WHITE)),this._outlineColor=H.clone(y(e.outlineColor,H.TRANSPARENT)),this._outlineWidth=y(e.outlineWidth,0),this._pixelSize=y(e.pixelSize,10),this._scaleByDistance=i,this._translucencyByDistance=n,this._distanceDisplayCondition=o,this._disableDepthTestDistance=y(e.disableDepthTestDistance,0),this._id=e.id,this._collection=y(e.collection,t),this._clusterShow=!0,this._pickId=void 0,this._pointPrimitiveCollection=t,this._dirty=!1,this._index=-1}var Sue=Lr.SHOW_INDEX=0,Due=Lr.POSITION_INDEX=1,vqe=Lr.COLOR_INDEX=2,wqe=Lr.OUTLINE_COLOR_INDEX=3,Dqe=Lr.OUTLINE_WIDTH_INDEX=4,Pqe=Lr.PIXEL_SIZE_INDEX=5,Iqe=Lr.SCALE_BY_DISTANCE_INDEX=6,Rqe=Lr.TRANSLUCENCY_BY_DISTANCE_INDEX=7,Oqe=Lr.DISTANCE_DISPLAY_CONDITION_INDEX=8,Mqe=Lr.DISABLE_DEPTH_DISTANCE_INDEX=9;Lr.NUMBER_OF_PROPERTIES=10;function Wf(e,t){let n=e._pointPrimitiveCollection;l(n)&&(n._updatePointPrimitive(e,t),e._dirty=!0)}Object.defineProperties(Lr.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Wf(this,Sue))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),Wf(this,Due))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Mt.equals(t,e)||(this._scaleByDistance=Mt.clone(e,t),Wf(this,Iqe))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Mt.equals(t,e)||(this._translucencyByDistance=Mt.clone(e,t),Wf(this,Rqe))}},pixelSize:{get:function(){return this._pixelSize},set:function(e){this._pixelSize!==e&&(this._pixelSize=e,Wf(this,Pqe))}},color:{get:function(){return this._color},set:function(e){let t=this._color;H.equals(t,e)||(H.clone(e,t),Wf(this,vqe))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;H.equals(t,e)||(H.clone(e,t),Wf(this,wqe))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Wf(this,Dqe))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){It.equals(this._distanceDisplayCondition,e)||(this._distanceDisplayCondition=It.clone(e,this._distanceDisplayCondition),Wf(this,Oqe))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Wf(this,Mqe))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,Wf(this,Sue))}}});Lr.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._collection,id:this._id})),this._pickId};Lr.prototype._getActualPosition=function(){return this._actualPosition};Lr.prototype._setActualPosition=function(e){h.clone(e,this._actualPosition),Wf(this,Due)};var vue=new oe;Lr._computeActualPosition=function(e,t,n){return t.mode===ne.SCENE3D?e:(F.multiplyByPoint(n,e,vue),Hi.computeActualWgs84Position(t,vue))};var wue=new oe;Lr._computeScreenSpacePosition=function(e,t,n,i){let o=F.multiplyByVector(e,oe.fromElements(t.x,t.y,t.z,1,wue),wue);return Hi.wgs84ToWindowCoordinates(n,o,i)};Lr.prototype.computeScreenSpacePosition=function(e,t){let n=this._pointPrimitiveCollection;l(t)||(t=new z);let i=n.modelMatrix,o=Lr._computeScreenSpacePosition(i,this._actualPosition,e,t);if(l(o))return o.y=e.canvas.clientHeight-o.y,o};Lr.getScreenSpaceBoundingBox=function(e,t,n){let i=e.pixelSize,o=i*.5,r=t.x-o,s=t.y-o,a=i,c=i;return l(n)||(n=new Ge),n.x=r,n.y=s,n.width=a,n.height=c,n};Lr.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&h.equals(this._position,e._position)&&H.equals(this._color,e._color)&&this._pixelSize===e._pixelSize&&this._outlineWidth===e._outlineWidth&&this._show===e._show&&H.equals(this._outlineColor,e._outlineColor)&&Mt.equals(this._scaleByDistance,e._scaleByDistance)&&Mt.equals(this._translucencyByDistance,e._translucencyByDistance)&&It.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};Lr.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._pointPrimitiveCollection=void 0};var Gs=Lr;var ky=`in vec4 v_color; in vec4 v_outlineColor; in float v_innerPercent; in float v_pixelDistance; in vec4 v_pickColor; void main() { // The distance in UV space from this fragment to the center of the point, at most 0.5. float distanceToCenter = length(gl_PointCoord - vec2(0.5)); // The max distance stops one pixel shy of the edge to leave space for anti-aliasing. float maxDistance = max(0.0, 0.5 - v_pixelDistance); float wholeAlpha = 1.0 - smoothstep(maxDistance, 0.5, distanceToCenter); float innerAlpha = 1.0 - smoothstep(maxDistance * v_innerPercent, 0.5 * v_innerPercent, distanceToCenter); vec4 color = mix(v_outlineColor, v_color, innerAlpha); color.a *= wholeAlpha; // Fully transparent parts of the billboard are not pickable. #if !defined(OPAQUE) && !defined(TRANSLUCENT) if (color.a < 0.005) // matches 0/255 and 1/255 { discard; } #else // The billboard is rendered twice. The opaque pass discards translucent fragments // and the translucent pass discards opaque fragments. #ifdef OPAQUE if (color.a < 0.995) // matches < 254/255 { discard; } #else if (color.a >= 0.995) // matches 254/255 and 255/255 { discard; } #endif #endif out_FragColor = czm_gammaCorrect(color); czm_writeLogDepth(); } `;var aL=`uniform float u_maxTotalPointSize; in vec4 positionHighAndSize; in vec4 positionLowAndOutline; in vec4 compressedAttribute0; // color, outlineColor, pick color in vec4 compressedAttribute1; // show, translucency by distance, some free space in vec4 scaleByDistance; // near, nearScale, far, farScale in vec3 distanceDisplayConditionAndDisableDepth; // near, far, disableDepthTestDistance out vec4 v_color; out vec4 v_outlineColor; out float v_innerPercent; out float v_pixelDistance; out vec4 v_pickColor; const float SHIFT_LEFT8 = 256.0; const float SHIFT_RIGHT8 = 1.0 / 256.0; void main() { // Modifying this shader may also require modifications to PointPrimitive._computeScreenSpacePosition // unpack attributes vec3 positionHigh = positionHighAndSize.xyz; vec3 positionLow = positionLowAndOutline.xyz; float outlineWidthBothSides = 2.0 * positionLowAndOutline.w; float totalSize = positionHighAndSize.w + outlineWidthBothSides; float outlinePercent = outlineWidthBothSides / totalSize; // Scale in response to browser-zoom. totalSize *= czm_pixelRatio; float temp = compressedAttribute1.x * SHIFT_RIGHT8; float show = floor(temp); #ifdef EYE_DISTANCE_TRANSLUCENCY vec4 translucencyByDistance; translucencyByDistance.x = compressedAttribute1.z; translucencyByDistance.z = compressedAttribute1.w; translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; temp = compressedAttribute1.y * SHIFT_RIGHT8; translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; #endif /////////////////////////////////////////////////////////////////////////// vec4 color; vec4 outlineColor; vec4 pickColor; // compressedAttribute0.z => pickColor.rgb temp = compressedAttribute0.z * SHIFT_RIGHT8; pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; temp = floor(temp) * SHIFT_RIGHT8; pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; pickColor.r = floor(temp); // compressedAttribute0.x => color.rgb temp = compressedAttribute0.x * SHIFT_RIGHT8; color.b = (temp - floor(temp)) * SHIFT_LEFT8; temp = floor(temp) * SHIFT_RIGHT8; color.g = (temp - floor(temp)) * SHIFT_LEFT8; color.r = floor(temp); // compressedAttribute0.y => outlineColor.rgb temp = compressedAttribute0.y * SHIFT_RIGHT8; outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; temp = floor(temp) * SHIFT_RIGHT8; outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; outlineColor.r = floor(temp); // compressedAttribute0.w => color.a, outlineColor.a, pickColor.a temp = compressedAttribute0.w * SHIFT_RIGHT8; pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; pickColor = pickColor / 255.0; temp = floor(temp) * SHIFT_RIGHT8; outlineColor.a = (temp - floor(temp)) * SHIFT_LEFT8; outlineColor /= 255.0; color.a = floor(temp); color /= 255.0; /////////////////////////////////////////////////////////////////////////// vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); vec4 positionEC = czm_modelViewRelativeToEye * p; /////////////////////////////////////////////////////////////////////////// #if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) float lengthSq; if (czm_sceneMode == czm_sceneMode2D) { // 2D camera distance is a special case // treat all billboards as flattened to the z=0.0 plane lengthSq = czm_eyeHeight2D.y; } else { lengthSq = dot(positionEC.xyz, positionEC.xyz); } #endif #ifdef EYE_DISTANCE_SCALING totalSize *= czm_nearFarScalar(scaleByDistance, lengthSq); #endif if (totalSize > 0.0) { // Add padding for anti-aliasing on both sides. totalSize += 3.0; } // Clamp to max point size. totalSize = min(totalSize, u_maxTotalPointSize); // If size is too small, push vertex behind near plane for clipping. // Note that context.minimumAliasedPointSize "will be at most 1.0". if (totalSize < 1.0) { positionEC.xyz = vec3(0.0); totalSize = 1.0; } float translucency = 1.0; #ifdef EYE_DISTANCE_TRANSLUCENCY translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); // push vertex behind near plane for clipping if (translucency < 0.004) { positionEC.xyz = vec3(0.0); } #endif #ifdef DISTANCE_DISPLAY_CONDITION float nearSq = distanceDisplayConditionAndDisableDepth.x; float farSq = distanceDisplayConditionAndDisableDepth.y; if (lengthSq < nearSq || lengthSq > farSq) { // push vertex behind camera to force it to be clipped positionEC.xyz = vec3(0.0, 0.0, 1.0); } #endif gl_Position = czm_projection * positionEC; czm_vertexLogDepth(); #ifdef DISABLE_DEPTH_DISTANCE float disableDepthTestDistance = distanceDisplayConditionAndDisableDepth.z; if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) { disableDepthTestDistance = czm_minimumDisableDepthTestDistance; } if (disableDepthTestDistance != 0.0) { // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. float zclip = gl_Position.z / gl_Position.w; bool clipped = (zclip < -1.0 || zclip > 1.0); if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) { // Position z on the near plane. gl_Position.z = -gl_Position.w; #ifdef LOG_DEPTH czm_vertexLogDepth(vec4(czm_currentFrustum.x)); #endif } } #endif v_color = color; v_color.a *= translucency * show; v_outlineColor = outlineColor; v_outlineColor.a *= translucency * show; v_innerPercent = 1.0 - outlinePercent; v_pixelDistance = 2.0 / totalSize; gl_PointSize = totalSize * show; gl_Position *= show; v_pickColor = pickColor; } `;var Lqe=Gs.SHOW_INDEX,zj=Gs.POSITION_INDEX,Pue=Gs.COLOR_INDEX,Nqe=Gs.OUTLINE_COLOR_INDEX,Fqe=Gs.OUTLINE_WIDTH_INDEX,Bqe=Gs.PIXEL_SIZE_INDEX,Iue=Gs.SCALE_BY_DISTANCE_INDEX,Rue=Gs.TRANSLUCENCY_BY_DISTANCE_INDEX,Oue=Gs.DISTANCE_DISPLAY_CONDITION_INDEX,kqe=Gs.DISABLE_DEPTH_DISTANCE_INDEX,Hj=Gs.NUMBER_OF_PROPERTIES,pc={positionHighAndSize:0,positionLowAndOutline:1,compressedAttribute0:2,compressedAttribute1:3,scaleByDistance:4,distanceDisplayConditionAndDisableDepth:5};function jf(e){e=y(e,y.EMPTY_OBJECT),this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._propertiesChanged=new Uint32Array(Hj),this._maxPixelSize=1,this._baseVolume=new ae,this._baseVolumeWC=new ae,this._baseVolume2D=new ae,this._boundingVolume=new ae,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,Co.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ne.SCENE3D,this._maxTotalPointSize=1,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW];let t=this;this._uniforms={u_maxTotalPointSize:function(){return t._maxTotalPointSize}}}Object.defineProperties(jf.prototype,{length:{get:function(){return Gj(this),this._pointPrimitives.length}}});function Mue(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}jf.prototype.add=function(e){let t=new Gs(e,this);return t._index=this._pointPrimitives.length,this._pointPrimitives.push(t),this._createVertexArray=!0,t};jf.prototype.remove=function(e){return this.contains(e)?(this._pointPrimitives[e._index]=null,this._pointPrimitivesRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};jf.prototype.removeAll=function(){Mue(this._pointPrimitives),this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!0};function Gj(e){if(e._pointPrimitivesRemoved){e._pointPrimitivesRemoved=!1;let t=[],n=e._pointPrimitives,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];s&&(s._index=r++,t.push(s))}e._pointPrimitives=t}}jf.prototype._updatePointPrimitive=function(e,t){e._dirty||(this._pointPrimitivesToUpdate[this._pointPrimitivesToUpdateIndex++]=e),++this._propertiesChanged[t]};jf.prototype.contains=function(e){return l(e)&&e._pointPrimitiveCollection===this};jf.prototype.get=function(e){return Gj(this),this._pointPrimitives[e]};jf.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<Hj;++i){let o=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function Vqe(e,t,n){return new s_(e,[{index:pc.positionHighAndSize,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[zj]},{index:pc.positionLowAndShow,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[zj]},{index:pc.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Pue]},{index:pc.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Rue]},{index:pc.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Iue]},{index:pc.distanceDisplayConditionAndDisableDepth,componentsPerAttribute:3,componentDatatype:X.FLOAT,usage:n[Oue]}],t)}var Vj=new Gn;function Lue(e,t,n,i){let o=i._index,r=i._getActualPosition();e._mode===ne.SCENE3D&&(ae.expand(e._baseVolume,r,e._baseVolume),e._boundingVolumeDirty=!0),Gn.fromCartesian(r,Vj);let s=i.pixelSize,a=i.outlineWidth;e._maxPixelSize=Math.max(e._maxPixelSize,s+a);let c=n[pc.positionHighAndSize],u=Vj.high;c(o,u.x,u.y,u.z,s);let f=n[pc.positionLowAndOutline],d=Vj.low;f(o,d.x,d.y,d.z,a)}var gz=65536,cL=256;function Nue(e,t,n,i){let o=i._index,r=i.color,s=i.getPickId(t).color,a=i.outlineColor,c=H.floatToByte(r.red),u=H.floatToByte(r.green),f=H.floatToByte(r.blue),d=c*gz+u*cL+f;c=H.floatToByte(a.red),u=H.floatToByte(a.green),f=H.floatToByte(a.blue);let p=c*gz+u*cL+f;c=H.floatToByte(s.red),u=H.floatToByte(s.green),f=H.floatToByte(s.blue);let g=c*gz+u*cL+f,m=H.floatToByte(r.alpha)*gz+H.floatToByte(a.alpha)*cL+H.floatToByte(s.alpha),x=n[pc.compressedAttribute0];x(o,d,p,g,m)}function Fue(e,t,n,i){let o=i._index,r=0,s=1,a=1,c=1,u=i.translucencyByDistance;l(u)&&(r=u.near,s=u.nearValue,a=u.far,c=u.farValue,(s!==1||c!==1)&&(e._shaderTranslucencyByDistance=!0));let f=i.show&&i.clusterShow;i.color.alpha===0&&i.outlineColor.alpha===0&&(f=!1),s=R.clamp(s,0,1),s=s===1?255:s*255|0;let d=(f?1:0)*cL+s;c=R.clamp(c,0,1),c=c===1?255:c*255|0;let p=c,g=n[pc.compressedAttribute1];g(o,d,p,r,a)}function Bue(e,t,n,i){let o=i._index,r=n[pc.scaleByDistance],s=0,a=1,c=1,u=1,f=i.scaleByDistance;l(f)&&(s=f.near,a=f.nearValue,c=f.far,u=f.farValue,(a!==1||u!==1)&&(e._shaderScaleByDistance=!0)),r(o,s,a,c,u)}function kue(e,t,n,i){let o=i._index,r=n[pc.distanceDisplayConditionAndDisableDepth],s=0,a=Number.MAX_VALUE,c=i.distanceDisplayCondition;l(c)&&(s=c.near,a=c.far,s*=s,a*=a,e._shaderDistanceDisplayCondition=!0);let u=i.disableDepthTestDistance;u*=u,u>0&&(e._shaderDisableDepthDistance=!0,u===Number.POSITIVE_INFINITY&&(u=-1)),r(o,s,a,u)}function Uqe(e,t,n,i){Lue(e,t,n,i),Nue(e,t,n,i),Fue(e,t,n,i),Bue(e,t,n,i),kue(e,t,n,i)}function Uj(e,t,n,i,o,r){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let u=t[c],f=u.position,d=Gs._computeActualPosition(f,i,o);l(d)&&(u._setActualPosition(d),r?a.push(d):ae.expand(s,d,s))}r&&ae.fromPoints(a,s)}function zqe(e,t){let n=t.mode,i=e._pointPrimitives,o=e._pointPrimitivesToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==ne.SCENE3D&&!F.equals(r,e.modelMatrix)?(e._mode=n,F.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===ne.SCENE3D||n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&Uj(e,i,i.length,t,r,!0)):n===ne.MORPHING?Uj(e,i,i.length,t,r,!0):(n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&Uj(e,o,e._pointPrimitivesToUpdateIndex,t,r,!1)}function Hqe(e,t,n){let o=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*e._maxPixelSize;n.radius+=o}var Gqe=[];jf.prototype.update=function(e){if(Gj(this),!this.show)return;this._maxTotalPointSize=Nt.maximumAliasedPointSize,zqe(this,e);let n=this._pointPrimitives.length,i=this._pointPrimitivesToUpdate,o=this._pointPrimitivesToUpdateIndex,r=this._propertiesChanged,s=this._createVertexArray,a,c=e.context,u=e.passes,f=u.pick;if(s||!f&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let v=0;v<Hj;++v)r[v]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=Vqe(c,n,this._buffersUsage),a=this._vaf.writers;for(let v=0;v<n;++v){let D=this._pointPrimitives[v];D._dirty=!1,Uqe(this,c,a,D)}this._vaf.commit()}this._pointPrimitivesToUpdateIndex=0}else if(o>0){let v=Gqe;v.length=0,(r[zj]||r[Fqe]||r[Bqe])&&v.push(Lue),(r[Pue]||r[Nqe])&&v.push(Nue),(r[Lqe]||r[Rue])&&v.push(Fue),r[Iue]&&v.push(Bue),(r[Oue]||r[kqe])&&v.push(kue);let D=v.length;if(a=this._vaf.writers,o/n>.1){for(let O=0;O<o;++O){let I=i[O];I._dirty=!1;for(let L=0;L<D;++L)v[L](this,c,a,I)}this._vaf.commit()}else{for(let O=0;O<o;++O){let I=i[O];I._dirty=!1;for(let L=0;L<D;++L)v[L](this,c,a,I);this._vaf.subCommit(I._index,1)}this._vaf.endSubCommits()}this._pointPrimitivesToUpdateIndex=0}if(o>n*1.5&&(i.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ae.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let d,p=F.IDENTITY;e.mode===ne.SCENE3D?(p=this.modelMatrix,d=ae.clone(this._baseVolumeWC,this._boundingVolume)):d=ae.clone(this._baseVolume2D,this._boundingVolume),Hqe(this,e,d);let g=this._blendOption!==this.blendOption;this._blendOption=this.blendOption,g&&(this._blendOption===Co.OPAQUE||this._blendOption===Co.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ve.fromCache({depthTest:{enabled:!0,func:ee.LEQUAL},depthMask:!0}):this._rsOpaque=void 0,this._blendOption===Co.TRANSLUCENT||this._blendOption===Co.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ve.fromCache({depthTest:{enabled:!0,func:ee.LEQUAL},depthMask:!1,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0),this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let m,x;(g||this._shaderScaleByDistance&&!this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance&&!this._compiledShaderTranslucencyByDistance||this._shaderDistanceDisplayCondition&&!this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance)&&(m=new ze({sources:[aL]}),this._shaderScaleByDistance&&m.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&m.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderDistanceDisplayCondition&&m.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&m.defines.push("DISABLE_DEPTH_DISTANCE"),this._blendOption===Co.OPAQUE_AND_TRANSLUCENT&&(x=new ze({defines:["OPAQUE"],sources:[ky]}),this._sp=$t.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:pc}),x=new ze({defines:["TRANSLUCENT"],sources:[ky]}),this._spTranslucent=$t.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:pc})),this._blendOption===Co.OPAQUE&&(x=new ze({sources:[ky]}),this._sp=$t.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:pc})),this._blendOption===Co.TRANSLUCENT&&(x=new ze({sources:[ky]}),this._spTranslucent=$t.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:pc})),this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance);let b,T,C,A,E=e.commandList;if(u.render||f){let v=this._colorCommands,D=this._blendOption===Co.OPAQUE,O=this._blendOption===Co.OPAQUE_AND_TRANSLUCENT;b=this._vaf.va,T=b.length,v.length=T;let I=O?T*2:T;for(A=0;A<I;++A){let L=D||O&&A%2===0;C=v[A],l(C)||(C=v[A]=new Ze),C.primitiveType=Le.POINTS,C.pass=L||!O?Ee.OPAQUE:Ee.TRANSLUCENT,C.owner=this;let N=O?Math.floor(A/2):A;C.boundingVolume=d,C.modelMatrix=p,C.shaderProgram=L?this._sp:this._spTranslucent,C.uniformMap=this._uniforms,C.vertexArray=b[N].va,C.renderState=L?this._rsOpaque:this._rsTranslucent,C.debugShowBoundingVolume=this.debugShowBoundingVolume,C.pickId="v_pickColor",E.push(C)}}};jf.prototype.isDestroyed=function(){return!1};jf.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),Mue(this._pointPrimitives),ue(this)};var bE=jf;var Vue=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],Wj=1,lL=8,fL=class e{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");let[n,i]=new Uint8Array(t,0,2);if(n!==219)throw new Error("Data does not appear to be in a KDBush format.");let o=i>>4;if(o!==Wj)throw new Error(`Got v${o} data when expected v${Wj}.`);let r=Vue[i&15];if(!r)throw new Error("Unrecognized array type.");let[s]=new Uint16Array(t,2,1),[a]=new Uint32Array(t,4,1);return new e(a,s,r,t)}constructor(t,n=64,i=Float64Array,o){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+n,2),65535),this.ArrayType=i,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;let r=Vue.indexOf(this.ArrayType),s=t*2*this.ArrayType.BYTES_PER_ELEMENT,a=t*this.IndexArrayType.BYTES_PER_ELEMENT,c=(8-a%8)%8;if(r<0)throw new Error(`Unexpected typed array class: ${i}.`);o&&o instanceof ArrayBuffer?(this.data=o,this.ids=new this.IndexArrayType(this.data,lL,t),this.coords=new this.ArrayType(this.data,lL+a+c,t*2),this._pos=t*2,this._finished=!0):(this.data=new ArrayBuffer(lL+s+a+c),this.ids=new this.IndexArrayType(this.data,lL,t),this.coords=new this.ArrayType(this.data,lL+a+c,t*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(Wj<<4)+r]),new Uint16Array(this.data,2,1)[0]=n,new Uint32Array(this.data,4,1)[0]=t)}add(t,n){let i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=t,this.coords[this._pos++]=n,i}finish(){let t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return qj(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,n,i,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:r,coords:s,nodeSize:a}=this,c=[0,r.length-1,0],u=[];for(;c.length;){let f=c.pop()||0,d=c.pop()||0,p=c.pop()||0;if(d-p<=a){for(let b=p;b<=d;b++){let T=s[2*b],C=s[2*b+1];T>=t&&T<=i&&C>=n&&C<=o&&u.push(r[b])}continue}let g=p+d>>1,m=s[2*g],x=s[2*g+1];m>=t&&m<=i&&x>=n&&x<=o&&u.push(r[g]),(f===0?t<=m:n<=x)&&(c.push(p),c.push(g-1),c.push(1-f)),(f===0?i>=m:o>=x)&&(c.push(g+1),c.push(d),c.push(1-f))}return u}within(t,n,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:o,coords:r,nodeSize:s}=this,a=[0,o.length-1,0],c=[],u=i*i;for(;a.length;){let f=a.pop()||0,d=a.pop()||0,p=a.pop()||0;if(d-p<=s){for(let b=p;b<=d;b++)Uue(r[2*b],r[2*b+1],t,n)<=u&&c.push(o[b]);continue}let g=p+d>>1,m=r[2*g],x=r[2*g+1];Uue(m,x,t,n)<=u&&c.push(o[g]),(f===0?t-i<=m:n-i<=x)&&(a.push(p),a.push(g-1),a.push(1-f)),(f===0?t+i>=m:n+i>=x)&&(a.push(g+1),a.push(d),a.push(1-f))}return c}};function qj(e,t,n,i,o,r){if(o-i<=n)return;let s=i+o>>1;zue(e,t,s,i,o,r),qj(e,t,n,i,s-1,1-r),qj(e,t,n,s+1,o,1-r)}function zue(e,t,n,i,o,r){for(;o>i;){if(o-i>600){let u=o-i+1,f=n-i+1,d=Math.log(u),p=.5*Math.exp(2*d/3),g=.5*Math.sqrt(d*p*(u-p)/u)*(f-u/2<0?-1:1),m=Math.max(i,Math.floor(n-f*p/u+g)),x=Math.min(o,Math.floor(n+(u-f)*p/u+g));zue(e,t,n,m,x,r)}let s=t[2*n+r],a=i,c=o;for(uL(e,t,i,n),t[2*o+r]>s&&uL(e,t,i,o);a<c;){for(uL(e,t,a,c),a++,c--;t[2*a+r]<s;)a++;for(;t[2*c+r]>s;)c--}t[2*i+r]===s?uL(e,t,i,c):(c++,uL(e,t,c,o)),c<=n&&(i=c+1),n<=c&&(o=c-1)}}function uL(e,t,n,i){jj(e,n,i),jj(t,2*n,2*i),jj(t,2*n+1,2*i+1)}function jj(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}function Uue(e,t,n,i){let o=e-n,r=t-i;return o*o+r*r}function sh(e){e=y(e,y.EMPTY_OBJECT),this._enabled=y(e.enabled,!1),this._pixelRange=y(e.pixelRange,80),this._minimumClusterSize=y(e.minimumClusterSize,2),this._clusterBillboards=y(e.clusterBillboards,!0),this._clusterLabels=y(e.clusterLabels,!0),this._clusterPoints=y(e.clusterPoints,!0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity={},this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._clusterDirty=!1,this._cluster=void 0,this._removeEventListener=void 0,this._clusterEvent=new pe,this.show=y(e.show,!0)}function Hue(e,t){e.x-=t,e.y-=t,e.width+=t*2,e.height+=t*2}var Wqe=new Ge;function Gue(e,t,n,i,o){if(l(e._labelCollection)&&i._clusterLabels?o=Sy.getScreenSpaceBoundingBox(e,t,o):l(e._billboardCollection)&&i._clusterBillboards?o=uo.getScreenSpaceBoundingBox(e,t,o):l(e._pointPrimitiveCollection)&&i._clusterPoints&&(o=Gs.getScreenSpaceBoundingBox(e,t,o)),Hue(o,n),i._clusterLabels&&!l(e._labelCollection)&&l(e.id)&&jue(i,e.id.id)&&l(e.id._label)){let r=i._collectionIndicesByEntity[e.id.id].labelIndex,s=i._labelCollection.get(r),a=Sy.getScreenSpaceBoundingBox(s,t,Wqe);Hue(a,n),o=Ge.union(o,a,o)}return o}function jqe(e,t){if(e.clusterShow=!0,!l(e._labelCollection)&&l(e.id)&&jue(t,e.id.id)&&l(e.id._label)){let n=t._collectionIndicesByEntity[e.id.id].labelIndex,i=t._labelCollection.get(n);i.clusterShow=!0}}function Wue(e,t,n,i){let o={billboard:i._clusterBillboardCollection.add(),label:i._clusterLabelCollection.add(),point:i._clusterPointCollection.add()};o.billboard.show=!1,o.point.show=!1,o.label.show=!0,o.label.text=t.toLocaleString(),o.label.id=n,o.billboard.position=o.label.position=o.point.position=e,i._clusterEvent.raiseEvent(n,o)}function jue(e,t){return l(e)&&l(e._collectionIndicesByEntity[t])&&l(e._collectionIndicesByEntity[t].labelIndex)}function Yj(e,t,n,i,o){if(!l(e))return;let r=e.length;for(let s=0;s<r;++s){let a=e.get(s);if(a.clusterShow=!1,!a.show||o._scene.mode===ne.SCENE3D&&!i.isPointVisible(a.position))continue;let c=o._clusterLabels&&l(a._labelCollection),u=o._clusterBillboards&&l(a.id._billboard),f=o._clusterPoints&&l(a.id._point);if(c&&(f||u))continue;let d=a.computeScreenSpacePosition(n);l(d)&&t.push({index:s,collection:e,clustered:!1,coord:d})}}var qqe=new Ge,Yqe=new Ge,Xqe=new Ge;function Kqe(e){return function(t){if(l(t)&&t<.05||!e.enabled)return;let n=e._scene,i=e._labelCollection,o=e._billboardCollection,r=e._pointCollection;if(!l(i)&&!l(o)&&!l(r)||!e._clusterBillboards&&!e._clusterLabels&&!e._clusterPoints)return;let s=e._clusterLabelCollection,a=e._clusterBillboardCollection,c=e._clusterPointCollection;l(s)?s.removeAll():s=e._clusterLabelCollection=new xm({scene:n}),l(a)?a.removeAll():a=e._clusterBillboardCollection=new Cu({scene:n}),l(c)?c.removeAll():c=e._clusterPointCollection=new bE;let u=e._pixelRange,f=e._minimumClusterSize,d=e._previousClusters,p=[],g=e._previousHeight,m=n.camera.positionCartographic.height,x=n.mapProjection.ellipsoid,b=n.camera.positionWC,T=new D_(x,b),C=[];e._clusterLabels&&Yj(i,C,n,T,e),e._clusterBillboards&&Yj(o,C,n,T,e),e._clusterPoints&&Yj(r,C,n,T,e);let A,E,v,D,O,I,L,N,_,S,w,P;if(C.length>0){let M=new fL(C.length,64,Uint32Array);for(let B=0;B<C.length;++B)M.add(C[B].coord.x,C[B].coord.y);if(M.finish(),m<g)for(v=d.length,A=0;A<v;++A){let B=d[A];if(!T.isPointVisible(B.position))continue;let U=uo._computeScreenSpacePosition(F.IDENTITY,B.position,h.ZERO,z.ZERO,n);if(!l(U))continue;let V=1-m/g,G=B.width=B.width*V,k=B.height=B.height*V;G=Math.max(G,B.minimumWidth),k=Math.max(k,B.minimumHeight);let Y=U.x-G*.5,W=U.y-k*.5,Q=U.x+G,j=U.y+k;for(O=M.range(Y,W,Q,j),I=O.length,S=0,_=[],E=0;E<I;++E)L=O[E],N=C[L],N.clustered||(++S,w=N.collection,P=N.index,_.push(w.get(P).id));if(S>=f)for(Wue(B.position,S,_,e),p.push(B),E=0;E<I;++E)C[O[E]].clustered=!0}for(v=C.length,A=0;A<v;++A){let B=C[A];if(B.clustered)continue;B.clustered=!0,w=B.collection,P=B.index;let U=w.get(P);D=Gue(U,B.coord,u,e,qqe);let V=Ge.clone(D,Yqe);O=M.range(D.x,D.y,D.x+D.width,D.y+D.height),I=O.length;let G=h.clone(U.position);for(S=1,_=[U.id],E=0;E<I;++E)if(L=O[E],N=C[L],!N.clustered){let k=N.collection.get(N.index),Y=Gue(k,N.coord,u,e,Xqe);h.add(k.position,G,G),Ge.union(V,Y,V),++S,_.push(k.id)}if(S>=f){let k=h.multiplyByScalar(G,1/S,G);for(Wue(k,S,_,e),p.push({position:k,width:V.width,height:V.height,minimumWidth:D.width,minimumHeight:D.height}),E=0;E<I;++E)C[O[E]].clustered=!0}else jqe(U,e)}}s.length===0&&(s.destroy(),e._clusterLabelCollection=void 0),a.length===0&&(a.destroy(),e._clusterBillboardCollection=void 0),c.length===0&&(c.destroy(),e._clusterPointCollection=void 0),e._previousClusters=p,e._previousHeight=m}}sh.prototype._initialize=function(e){this._scene=e;let t=Kqe(this);this._cluster=t,this._removeEventListener=e.camera.changed.addEventListener(t)};Object.defineProperties(sh.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabledDirty=e!==this._enabled,this._enabled=e}},pixelRange:{get:function(){return this._pixelRange},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._pixelRange,this._pixelRange=e}},minimumClusterSize:{get:function(){return this._minimumClusterSize},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._minimumClusterSize,this._minimumClusterSize=e}},clusterEvent:{get:function(){return this._clusterEvent}},clusterBillboards:{get:function(){return this._clusterBillboards},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterBillboards,this._clusterBillboards=e}},clusterLabels:{get:function(){return this._clusterLabels},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterLabels,this._clusterLabels=e}},clusterPoints:{get:function(){return this._clusterPoints},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterPoints,this._clusterPoints=e}}});function Kj(e,t,n,i){return function(o){let r=this[e];l(this._collectionIndicesByEntity)||(this._collectionIndicesByEntity={});let s=this._collectionIndicesByEntity[o.id];if(l(s)||(s=this._collectionIndicesByEntity[o.id]={billboardIndex:void 0,labelIndex:void 0,pointIndex:void 0}),l(r)&&l(s[i]))return r.get(s[i]);l(r)||(r=this[e]=new t({scene:this._scene}));let a,c,u=this[n];u.length>0?(a=u.shift(),c=r.get(a)):(c=r.add(),a=r.length-1),s[i]=a;let f=this;return Promise.resolve().then(function(){f._clusterDirty=!0}),c}}function Zj(e,t){let n=e._collectionIndicesByEntity[t];!l(n.billboardIndex)&&!l(n.labelIndex)&&!l(n.pointIndex)&&delete e._collectionIndicesByEntity[t]}sh.prototype.getLabel=Kj("_labelCollection",xm,"_unusedLabelIndices","labelIndex");sh.prototype.removeLabel=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._labelCollection)||!l(t)||!l(t.labelIndex))return;let n=t.labelIndex;t.labelIndex=void 0,Zj(this,e.id);let i=this._labelCollection.get(n);i.show=!1,i.text="",i.id=void 0,this._unusedLabelIndices.push(n),this._clusterDirty=!0};sh.prototype.getBillboard=Kj("_billboardCollection",Cu,"_unusedBillboardIndices","billboardIndex");sh.prototype.removeBillboard=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._billboardCollection)||!l(t)||!l(t.billboardIndex))return;let n=t.billboardIndex;t.billboardIndex=void 0,Zj(this,e.id);let i=this._billboardCollection.get(n);i.id=void 0,i.show=!1,i.image=void 0,this._unusedBillboardIndices.push(n),this._clusterDirty=!0};sh.prototype.getPoint=Kj("_pointCollection",bE,"_unusedPointIndices","pointIndex");sh.prototype.removePoint=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._pointCollection)||!l(t)||!l(t.pointIndex))return;let n=t.pointIndex;t.pointIndex=void 0,Zj(this,e.id);let i=this._pointCollection.get(n);i.show=!1,i.id=void 0,this._unusedPointIndices.push(n),this._clusterDirty=!0};function Xj(e){if(!l(e))return;let t=e.length;for(let n=0;n<t;++n)e.get(n).clusterShow=!0}function Zqe(e){e.enabled||(l(e._clusterLabelCollection)&&e._clusterLabelCollection.destroy(),l(e._clusterBillboardCollection)&&e._clusterBillboardCollection.destroy(),l(e._clusterPointCollection)&&e._clusterPointCollection.destroy(),e._clusterLabelCollection=void 0,e._clusterBillboardCollection=void 0,e._clusterPointCollection=void 0,Xj(e._labelCollection),Xj(e._billboardCollection),Xj(e._pointCollection))}sh.prototype.update=function(e){if(!this.show)return;let t;l(this._labelCollection)&&this._labelCollection.length>0&&this._labelCollection.get(0)._glyphs.length===0&&(t=e.commandList,e.commandList=[],this._labelCollection.update(e),e.commandList=t),l(this._billboardCollection)&&this._billboardCollection.length>0&&!l(this._billboardCollection.get(0).width)&&(t=e.commandList,e.commandList=[],this._billboardCollection.update(e),e.commandList=t),this._enabledDirty&&(this._enabledDirty=!1,Zqe(this),this._clusterDirty=!0),this._clusterDirty&&(this._clusterDirty=!1,this._cluster()),l(this._clusterLabelCollection)&&this._clusterLabelCollection.update(e),l(this._clusterBillboardCollection)&&this._clusterBillboardCollection.update(e),l(this._clusterPointCollection)&&this._clusterPointCollection.update(e),l(this._labelCollection)&&this._labelCollection.update(e),l(this._billboardCollection)&&this._billboardCollection.update(e),l(this._pointCollection)&&this._pointCollection.update(e)};sh.prototype.destroy=function(){this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._pointCollection=this._pointCollection&&this._pointCollection.destroy(),this._clusterLabelCollection=this._clusterLabelCollection&&this._clusterLabelCollection.destroy(),this._clusterBillboardCollection=this._clusterBillboardCollection&&this._clusterBillboardCollection.destroy(),this._clusterPointCollection=this._clusterPointCollection&&this._clusterPointCollection.destroy(),l(this._removeEventListener)&&(this._removeEventListener(),this._removeEventListener=void 0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity=void 0,this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._pixelRangeDirty=!1,this._minimumClusterSizeDirty=!1};var wu=sh;function $j(e){this._name=e,this._clock=void 0,this._changed=new pe,this._error=new pe,this._isLoading=!1,this._loading=new pe,this._entityCollection=new Hs(this),this._entityCluster=new wu}Object.defineProperties($j.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._changed.raiseEvent(this))}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading},set:function(e){Mr.setLoading(this,e)}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});$j.prototype.update=function(e){return!0};var dL=$j;var que={};que.computePositions=function(e,t,n,i,o){let r=e*.5,s=-r,a=i+i,c=o?2*a:a,u=new Float64Array(c*3),f,d=0,p=0,g=o?a*3:0,m=o?(a+i)*3:i*3;for(f=0;f<i;f++){let x=f/i*R.TWO_PI,b=Math.cos(x),T=Math.sin(x),C=b*n,A=T*n,E=b*t,v=T*t;u[p+g]=C,u[p+g+1]=A,u[p+g+2]=s,u[p+m]=E,u[p+m+1]=v,u[p+m+2]=r,p+=3,o&&(u[d++]=C,u[d++]=A,u[d++]=s,u[d++]=E,u[d++]=v,u[d++]=r)}return u};var Ub=que;var Qj=new z,$qe=new h,Qqe=new h,Jqe=new h,eYe=new h;function P_(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,o=y(e.vertexFormat,Ie.DEFAULT),r=y(e.slices,128);this._length=t,this._topRadius=n,this._bottomRadius=i,this._vertexFormat=Ie.clone(o),this._slices=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderGeometry"}P_.packedLength=Ie.packedLength+5;P_.pack=function(e,t,n){return n=y(n,0),Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n]=y(e._offsetAttribute,-1),t};var Yue=new Ie,TE={vertexFormat:Yue,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};P_.unpack=function(e,t,n){t=y(t,0);let i=Ie.unpack(e,t,Yue);t+=Ie.packedLength;let o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return l(n)?(n._vertexFormat=Ie.clone(i,n._vertexFormat),n._length=o,n._topRadius=r,n._bottomRadius=s,n._slices=a,n._offsetAttribute=c===-1?void 0:c,n):(TE.length=o,TE.topRadius=r,TE.bottomRadius=s,TE.slices=a,TE.offsetAttribute=c===-1?void 0:c,new P_(TE))};P_.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,o=e._vertexFormat,r=e._slices;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=r+r,a=r+s,c=s+s,u=Ub.computePositions(t,n,i,r,!0),f=o.st?new Float32Array(c*2):void 0,d=o.normal?new Float32Array(c*3):void 0,p=o.tangent?new Float32Array(c*3):void 0,g=o.bitangent?new Float32Array(c*3):void 0,m,x=o.normal||o.tangent||o.bitangent;if(x){let O=o.tangent||o.bitangent,I=0,L=0,N=0,_=Math.atan2(i-n,t),S=$qe;S.z=Math.sin(_);let w=Math.cos(_),P=Jqe,M=Qqe;for(m=0;m<r;m++){let B=m/r*R.TWO_PI,U=w*Math.cos(B),V=w*Math.sin(B);x&&(S.x=U,S.y=V,O&&(P=h.normalize(h.cross(h.UNIT_Z,S,P),P)),o.normal&&(d[I++]=S.x,d[I++]=S.y,d[I++]=S.z,d[I++]=S.x,d[I++]=S.y,d[I++]=S.z),o.tangent&&(p[L++]=P.x,p[L++]=P.y,p[L++]=P.z,p[L++]=P.x,p[L++]=P.y,p[L++]=P.z),o.bitangent&&(M=h.normalize(h.cross(S,P,M),M),g[N++]=M.x,g[N++]=M.y,g[N++]=M.z,g[N++]=M.x,g[N++]=M.y,g[N++]=M.z))}for(m=0;m<r;m++)o.normal&&(d[I++]=0,d[I++]=0,d[I++]=-1),o.tangent&&(p[L++]=1,p[L++]=0,p[L++]=0),o.bitangent&&(g[N++]=0,g[N++]=-1,g[N++]=0);for(m=0;m<r;m++)o.normal&&(d[I++]=0,d[I++]=0,d[I++]=1),o.tangent&&(p[L++]=1,p[L++]=0,p[L++]=0),o.bitangent&&(g[N++]=0,g[N++]=1,g[N++]=0)}let b=12*r-12,T=Ne.createTypedArray(c,b),C=0,A=0;for(m=0;m<r-1;m++)T[C++]=A,T[C++]=A+2,T[C++]=A+3,T[C++]=A,T[C++]=A+3,T[C++]=A+1,A+=2;for(T[C++]=s-2,T[C++]=0,T[C++]=1,T[C++]=s-2,T[C++]=1,T[C++]=s-1,m=1;m<r-1;m++)T[C++]=s+m+1,T[C++]=s+m,T[C++]=s;for(m=1;m<r-1;m++)T[C++]=a,T[C++]=a+m,T[C++]=a+m+1;let E=0;if(o.st){let O=Math.max(n,i);for(m=0;m<c;m++){let I=h.fromArray(u,m*3,eYe);f[E++]=(I.x+O)/(2*O),f[E++]=(I.y+O)/(2*O)}}let v=new fn;o.position&&(v.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})),o.normal&&(v.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:d})),o.tangent&&(v.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),o.bitangent&&(v.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),o.st&&(v.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),Qj.x=t*.5,Qj.y=Math.max(i,n);let D=new ae(h.ZERO,z.magnitude(Qj));if(l(e._offsetAttribute)){t=u.length;let O=e._offsetAttribute===an.NONE?0:1,I=new Uint8Array(t/3).fill(O);v.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:I})}return new st({attributes:v,indices:T,primitiveType:Le.TRIANGLES,boundingSphere:D,offsetAttribute:e._offsetAttribute})};var Jj;P_.getUnitCylinder=function(){return l(Jj)||(Jj=P_.createGeometry(new P_({topRadius:1,bottomRadius:1,length:1,vertexFormat:Ie.POSITION_ONLY}))),Jj};var hL=P_;var e7=new z;function AE(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,o=y(e.slices,128),r=Math.max(y(e.numberOfVerticalLines,16),0);this._length=t,this._topRadius=n,this._bottomRadius=i,this._slices=o,this._numberOfVerticalLines=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}AE.packedLength=6;AE.pack=function(e,t,n){return n=y(n,0),t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n++]=e._numberOfVerticalLines,t[n]=y(e._offsetAttribute,-1),t};var zb={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};AE.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return l(n)?(n._length=i,n._topRadius=o,n._bottomRadius=r,n._slices=s,n._numberOfVerticalLines=a,n._offsetAttribute=c===-1?void 0:c,n):(zb.length=i,zb.topRadius=o,zb.bottomRadius=r,zb.slices=s,zb.numberOfVerticalLines=a,zb.offsetAttribute=c===-1?void 0:c,new AE(zb))};AE.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,o=e._slices,r=e._numberOfVerticalLines;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=o*2,a=Ub.computePositions(t,n,i,o,!1),c=o*2,u;if(r>0){let x=Math.min(r,o);u=Math.round(o/x),c+=x}let f=Ne.createTypedArray(s,c*2),d=0,p;for(p=0;p<o-1;p++)f[d++]=p,f[d++]=p+1,f[d++]=p+o,f[d++]=p+1+o;if(f[d++]=o-1,f[d++]=0,f[d++]=o+o-1,f[d++]=o,r>0)for(p=0;p<o;p+=u)f[d++]=p,f[d++]=p+o;let g=new fn;g.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:a}),e7.x=t*.5,e7.y=Math.max(i,n);let m=new ae(h.ZERO,z.magnitude(e7));if(l(e._offsetAttribute)){t=a.length;let x=e._offsetAttribute===an.NONE?0:1,b=new Uint8Array(t/3).fill(x);g.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:b})}return new st({attributes:g,indices:f,primitiveType:Le.LINES,boundingSphere:m,offsetAttribute:e._offsetAttribute})};var mL=AE;var Xue=h.ZERO,Kue=new h,tYe=new h,Zue=new H;function nYe(e){this.id=e,this.vertexFormat=void 0,this.length=void 0,this.topRadius=void 0,this.bottomRadius=void 0,this.slices=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function Du(e,t){ni.call(this,{entity:e,scene:t,geometryOptions:new nYe(e),geometryPropertyName:"cylinder",observedPropertyNames:["availability","position","orientation","cylinder"]}),this._onEntityPropertyChanged(e,"cylinder",e.cylinder,void 0)}l(Object.create)&&(Du.prototype=Object.create(ni.prototype),Du.prototype.constructor=Du);Object.defineProperties(Du.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Du.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=kn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof kt){let a;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,Zue)),l(a)||(a=H.WHITE),s.color=zt.fromColor(a)}return l(this._options.offsetAttribute)&&(s.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Xue,Kue))),new xt({id:t,geometry:new hL(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.mapProjection.ellipsoid),attributes:s})};Du.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Zue),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:zt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Xue,Kue))),new xt({id:t,geometry:new mL(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.mapProjection.ellipsoid),attributes:r})};Du.prototype._computeCenter=function(e,t){return q.getValueOrUndefined(this._entity.position,e,t)};Du.prototype._isHidden=function(e,t){return!l(e.position)||!l(t.length)||!l(t.topRadius)||!l(t.bottomRadius)||ni.prototype._isHidden.call(this,e,t)};Du.prototype._isDynamic=function(e,t){return!e.position.isConstant||!q.isConstant(e.orientation)||!t.length.isConstant||!t.topRadius.isConstant||!t.bottomRadius.isConstant||!q.isConstant(t.slices)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.numberOfVerticalLines)};Du.prototype._setStaticOptions=function(e,t){let n=q.getValueOrDefault(t.heightReference,Ue.MINIMUM_VALUE,qe.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof kt?cn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,i.length=t.length.getValue(Ue.MINIMUM_VALUE),i.topRadius=t.topRadius.getValue(Ue.MINIMUM_VALUE),i.bottomRadius=t.bottomRadius.getValue(Ue.MINIMUM_VALUE),i.slices=q.getValueOrUndefined(t.slices,Ue.MINIMUM_VALUE),i.numberOfVerticalLines=q.getValueOrUndefined(t.numberOfVerticalLines,Ue.MINIMUM_VALUE),i.offsetAttribute=n!==qe.NONE?an.ALL:void 0};Du.prototype._onEntityPropertyChanged=Lp;Du.DynamicGeometryUpdater=CE;function CE(e,t,n){ti.call(this,e,t,n)}l(Object.create)&&(CE.prototype=Object.create(ti.prototype),CE.prototype.constructor=CE);CE.prototype._isHidden=function(e,t,n){let i=this._options,o=q.getValueOrUndefined(e.position,n,tYe);return!l(o)||!l(i.length)||!l(i.topRadius)||!l(i.bottomRadius)||ti.prototype._isHidden.call(this,e,t,n)};CE.prototype._setOptions=function(e,t,n){let i=q.getValueOrDefault(t.heightReference,n,qe.NONE),o=this._options;o.length=q.getValueOrUndefined(t.length,n),o.topRadius=q.getValueOrUndefined(t.topRadius,n),o.bottomRadius=q.getValueOrUndefined(t.bottomRadius,n),o.slices=q.getValueOrUndefined(t.slices,n),o.numberOfVerticalLines=q.getValueOrUndefined(t.numberOfVerticalLines,n),o.offsetAttribute=i!==qe.NONE?an.ALL:void 0};var pL=Du;var iYe={UNBOUNDED:0,CLAMPED:1,LOOP_STOP:2},Nr=Object.freeze(iYe);var oYe={TICK_DEPENDENT:0,SYSTEM_CLOCK_MULTIPLIER:1,SYSTEM_CLOCK:2},fo=Object.freeze(oYe);var rYe={NONE:0,HOLD:1,EXTRAPOLATE:2},Pu=Object.freeze(rYe);var $ue=wo(au(),1);function sYe(e){let t=new $ue.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),n}var I_=sYe;var aYe=R.factorial;function t7(e,t,n,i,o,r){let s=0,a,c,u;if(i>0){for(c=0;c<o;c++){for(a=!1,u=0;u<r.length&&!a;u++)c===r[u]&&(a=!0);a||(r.push(c),s+=t7(e,t,n,i-1,o,r),r.splice(r.length-1,1))}return s}for(s=1,c=0;c<o;c++){for(a=!1,u=0;u<r.length&&!a;u++)c===r[u]&&(a=!0);a||(s*=e-n[t[c]])}return s}var yz={type:"Hermite"};yz.getRequiredDataPoints=function(e,t){return t=y(t,0),Math.max(Math.floor((e+1)/(t+1)),2)};yz.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a,c,u,f,d=t.length,p=new Array(i);for(r=0;r<i;r++){o[r]=0;let b=new Array(d);for(p[r]=b,s=0;s<d;s++)b[s]=[]}let g=d,m=new Array(g);for(r=0;r<g;r++)m[r]=r;let x=d-1;for(c=0;c<i;c++){for(s=0;s<g;s++)f=m[s]*i+c,p[c][0].push(n[f]);for(r=1;r<g;r++){let b=!1;for(s=0;s<g-r;s++){let T=t[m[s]],C=t[m[s+r]],A;C-T<=0?(f=m[s]*i+i*r+c,A=n[f],p[c][r].push(A/aYe(r))):(A=p[c][r-1][s+1]-p[c][r-1][s],p[c][r].push(A/(C-T))),b=b||A!==0}b||(x=r-1)}}for(a=0,u=0;a<=u;a++)for(r=a;r<=x;r++){let b=t7(e,m,t,a,r,[]);for(c=0;c<i;c++){let T=p[c][r][0];o[c+a*i]+=T*b}}return o};var cYe=[];yz.interpolate=function(e,t,n,i,o,r,s){let a=i*(r+1);l(s)||(s=new Array(a));for(let T=0;T<a;T++)s[T]=0;let c=t.length,u=new Array(c*(o+1)),f;for(f=0;f<c;f++)for(let T=0;T<o+1;T++)u[f*(o+1)+T]=f;let d=u.length,p=cYe,g=lYe(p,u,t,n,i,o),m=[],x=d*(d+1)/2,b=Math.min(g,r);for(let T=0;T<=b;T++)for(f=T;f<=g;f++){m.length=0;let C=t7(e,u,t,T,f,m),A=Math.floor(f*(1-f)/2)+d*f;for(let E=0;E<i;E++){let v=Math.floor(E*x),D=p[v+A];s[E+T*i]+=D*C}}return s};function lYe(e,t,n,i,o,r){let s,a,c=-1,u=t.length,f=u*(u+1)/2;for(let d=0;d<o;d++){let p=Math.floor(d*f);for(s=0;s<u;s++)a=t[s]*o*(r+1)+d,e[p+s]=i[a];for(let g=1;g<u;g++){let m=0,x=Math.floor(g*(1-g)/2)+u*g,b=!1;for(s=0;s<u-g;s++){let T=n[t[s]],C=n[t[s+g]],A,E;if(C-T<=0)a=t[s]*o*(r+1)+o*g+d,A=i[a],E=A/R.factorial(g),e[p+x+m]=E,m++;else{let v=Math.floor((g-1)*(2-g)/2)+u*(g-1);A=e[p+v+s+1]-e[p+v+s],E=A/(C-T),e[p+x+m]=E,m++}b=b||A!==0}b&&(c=Math.max(c,g))}}return c}var _L=yz;var n7={type:"Lagrange"};n7.getRequiredDataPoints=function(e){return Math.max(e+1,2)};n7.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a=t.length;for(r=0;r<i;r++)o[r]=0;for(r=0;r<a;r++){let c=1;for(s=0;s<a;s++)if(s!==r){let u=t[r]-t[s];c*=(e-t[s])/u}for(s=0;s<i;s++)o[s]+=c*n[r*i+s]}return o};var gL=n7;var i7={type:"Linear"};i7.getRequiredDataPoints=function(e){return 2};i7.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a,c=t[0],u=t[1];for(r=0;r<i;r++)s=n[r],a=n[r+i],o[r]=((a-s)*e+u*s-c*a)/(u-c);return o};var Hb=i7;function _c(e,t,n){this.clock=y(e,0),this.cone=y(t,0),this.magnitude=y(n,1)}_c.fromCartesian3=function(e,t){let n=e.x,i=e.y,o=e.z,r=n*n+i*i;return l(t)||(t=new _c),t.clock=Math.atan2(i,n),t.cone=Math.atan2(Math.sqrt(r),o),t.magnitude=Math.sqrt(r+o*o),t};_c.clone=function(e,t){if(l(e))return l(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=e.magnitude,t):new _c(e.clock,e.cone,e.magnitude)};_c.normalize=function(e,t){return l(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=1,t):new _c(e.clock,e.cone,1)};_c.equals=function(e,t){return e===t||l(e)&&l(t)&&e.clock===t.clock&&e.cone===t.cone&&e.magnitude===t.magnitude};_c.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.clock-t.clock)<=n&&Math.abs(e.cone-t.cone)<=n&&Math.abs(e.magnitude-t.magnitude)<=n};_c.prototype.equals=function(e){return _c.equals(this,e)};_c.prototype.clone=function(e){return _c.clone(this,e)};_c.prototype.equalsEpsilon=function(e,t){return _c.equalsEpsilon(this,e,t)};_c.prototype.toString=function(){return`(${this.clock}, ${this.cone}, ${this.magnitude})`};var yL=_c;var CL=wo(au(),1);var o7;typeof performance<"u"&&typeof performance.now=="function"&&isFinite(performance.now())?o7=function(){return performance.now()}:o7=function(){return Date.now()};var pi=o7;function r7(e){e=y(e,y.EMPTY_OBJECT);let t=e.currentTime,n=e.startTime,i=e.stopTime;l(t)?t=J.clone(t):l(n)?t=J.clone(n):l(i)?t=J.addDays(i,-1,new J):t=J.now(),l(n)?n=J.clone(n):n=J.clone(t),l(i)?i=J.clone(i):i=J.addDays(n,1,new J),this.startTime=n,this.stopTime=i,this.clockRange=y(e.clockRange,Nr.UNBOUNDED),this.canAnimate=y(e.canAnimate,!0),this.onTick=new pe,this.onStop=new pe,this._currentTime=void 0,this._multiplier=void 0,this._clockStep=void 0,this._shouldAnimate=void 0,this._lastSystemTime=pi(),this.currentTime=t,this.multiplier=y(e.multiplier,1),this.shouldAnimate=y(e.shouldAnimate,!1),this.clockStep=y(e.clockStep,fo.SYSTEM_CLOCK_MULTIPLIER)}Object.defineProperties(r7.prototype,{currentTime:{get:function(){return this._currentTime},set:function(e){J.equals(this._currentTime,e)||(this._clockStep===fo.SYSTEM_CLOCK&&(this._clockStep=fo.SYSTEM_CLOCK_MULTIPLIER),this._currentTime=e)}},multiplier:{get:function(){return this._multiplier},set:function(e){this._multiplier!==e&&(this._clockStep===fo.SYSTEM_CLOCK&&(this._clockStep=fo.SYSTEM_CLOCK_MULTIPLIER),this._multiplier=e)}},clockStep:{get:function(){return this._clockStep},set:function(e){e===fo.SYSTEM_CLOCK&&(this._multiplier=1,this._shouldAnimate=!0,this._currentTime=J.now()),this._clockStep=e}},shouldAnimate:{get:function(){return this._shouldAnimate},set:function(e){this._shouldAnimate!==e&&(this._clockStep===fo.SYSTEM_CLOCK&&(this._clockStep=fo.SYSTEM_CLOCK_MULTIPLIER),this._shouldAnimate=e)}}});r7.prototype.tick=function(){let e=pi(),t=J.clone(this._currentTime);if(this.canAnimate&&this._shouldAnimate){let n=this._clockStep;if(n===fo.SYSTEM_CLOCK)t=J.now(t);else{let i=this._multiplier;if(n===fo.TICK_DEPENDENT)t=J.addSeconds(t,i,t);else{let a=e-this._lastSystemTime;t=J.addSeconds(t,i*(a/1e3),t)}let o=this.clockRange,r=this.startTime,s=this.stopTime;if(o===Nr.CLAMPED)J.lessThan(t,r)?t=J.clone(r,t):J.greaterThan(t,s)&&(t=J.clone(s,t),this.onStop.raiseEvent(this));else if(o===Nr.LOOP_STOP)for(J.lessThan(t,r)&&(t=J.clone(r,t));J.greaterThan(t,s);)t=J.addSeconds(r,J.secondsDifference(t,s),t),this.onStop.raiseEvent(this)}}return this._currentTime=t,this._lastSystemTime=e,this.onTick.raiseEvent(this),t};var ah=r7;function Gb(){this._definitionChanged=new pe,this._startTime=void 0,this._stopTime=void 0,this._currentTime=void 0,this._clockRange=void 0,this._clockStep=void 0,this._multiplier=void 0}Object.defineProperties(Gb.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},startTime:vl("startTime"),stopTime:vl("stopTime"),currentTime:vl("currentTime"),clockRange:vl("clockRange"),clockStep:vl("clockStep"),multiplier:vl("multiplier")});Gb.prototype.clone=function(e){return l(e)||(e=new Gb),e.startTime=this.startTime,e.stopTime=this.stopTime,e.currentTime=this.currentTime,e.clockRange=this.clockRange,e.clockStep=this.clockStep,e.multiplier=this.multiplier,e};Gb.prototype.equals=function(e){return this===e||l(e)&&J.equals(this.startTime,e.startTime)&&J.equals(this.stopTime,e.stopTime)&&J.equals(this.currentTime,e.currentTime)&&this.clockRange===e.clockRange&&this.clockStep===e.clockStep&&this.multiplier===e.multiplier};Gb.prototype.merge=function(e){this.startTime=y(this.startTime,e.startTime),this.stopTime=y(this.stopTime,e.stopTime),this.currentTime=y(this.currentTime,e.currentTime),this.clockRange=y(this.clockRange,e.clockRange),this.clockStep=y(this.clockStep,e.clockStep),this.multiplier=y(this.multiplier,e.multiplier)};Gb.prototype.getValue=function(e){return l(e)||(e=new ah),e.startTime=y(this.startTime,e.startTime),e.stopTime=y(this.stopTime,e.stopTime),e.currentTime=y(this.currentTime,e.currentTime),e.clockRange=y(this.clockRange,e.clockRange),e.multiplier=y(this.multiplier,e.multiplier),e.clockStep=y(this.clockStep,e.clockStep),e};var ch=Gb;var uYe=H.WHITE,fYe=.1,dYe=new z(8,8),hYe=new z(0,0),mYe=new z(1,1);function EE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this._cellAlpha=void 0,this._cellAlphaSubscription=void 0,this._lineCount=void 0,this._lineCountSubscription=void 0,this._lineThickness=void 0,this._lineThicknessSubscription=void 0,this._lineOffset=void 0,this._lineOffsetSubscription=void 0,this.color=e.color,this.cellAlpha=e.cellAlpha,this.lineCount=e.lineCount,this.lineThickness=e.lineThickness,this.lineOffset=e.lineOffset}Object.defineProperties(EE.prototype,{isConstant:{get:function(){return q.isConstant(this._color)&&q.isConstant(this._cellAlpha)&&q.isConstant(this._lineCount)&&q.isConstant(this._lineThickness)&&q.isConstant(this._lineOffset)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color"),cellAlpha:ce("cellAlpha"),lineCount:ce("lineCount"),lineThickness:ce("lineThickness"),lineOffset:ce("lineOffset")});EE.prototype.getType=function(e){return"Grid"};EE.prototype.getValue=function(e,t){return l(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,uYe,t.color),t.cellAlpha=q.getValueOrDefault(this._cellAlpha,e,fYe),t.lineCount=q.getValueOrClonedDefault(this._lineCount,e,dYe,t.lineCount),t.lineThickness=q.getValueOrClonedDefault(this._lineThickness,e,mYe,t.lineThickness),t.lineOffset=q.getValueOrClonedDefault(this._lineOffset,e,hYe,t.lineOffset),t};EE.prototype.equals=function(e){return this===e||e instanceof EE&&q.equals(this._color,e._color)&&q.equals(this._cellAlpha,e._cellAlpha)&&q.equals(this._lineCount,e._lineCount)&&q.equals(this._lineThickness,e._lineThickness)&&q.equals(this._lineOffset,e._lineOffset)};var SE=EE;function vE(e){this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(vE.prototype,{isConstant:{get:function(){return q.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color")});vE.prototype.getType=function(e){return"PolylineArrow"};vE.prototype.getValue=function(e,t){return l(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,H.WHITE,t.color),t};vE.prototype.equals=function(e){return this===e||e instanceof vE&&q.equals(this._color,e._color)};var wE=vE;var pYe=H.WHITE,_Ye=H.TRANSPARENT,gYe=16,yYe=255;function DE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this._gapColor=void 0,this._gapColorSubscription=void 0,this._dashLength=void 0,this._dashLengthSubscription=void 0,this._dashPattern=void 0,this._dashPatternSubscription=void 0,this.color=e.color,this.gapColor=e.gapColor,this.dashLength=e.dashLength,this.dashPattern=e.dashPattern}Object.defineProperties(DE.prototype,{isConstant:{get:function(){return q.isConstant(this._color)&&q.isConstant(this._gapColor)&&q.isConstant(this._dashLength)&&q.isConstant(this._dashPattern)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color"),gapColor:ce("gapColor"),dashLength:ce("dashLength"),dashPattern:ce("dashPattern")});DE.prototype.getType=function(e){return"PolylineDash"};DE.prototype.getValue=function(e,t){return l(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,pYe,t.color),t.gapColor=q.getValueOrClonedDefault(this._gapColor,e,_Ye,t.gapColor),t.dashLength=q.getValueOrDefault(this._dashLength,e,gYe,t.dashLength),t.dashPattern=q.getValueOrDefault(this._dashPattern,e,yYe,t.dashPattern),t};DE.prototype.equals=function(e){return this===e||e instanceof DE&&q.equals(this._color,e._color)&&q.equals(this._gapColor,e._gapColor)&&q.equals(this._dashLength,e._dashLength)&&q.equals(this._dashPattern,e._dashPattern)};var PE=DE;var xYe=H.WHITE,bYe=.25,TYe=1;function IE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this._glowPower=void 0,this._glowPowerSubscription=void 0,this._taperPower=void 0,this._taperPowerSubscription=void 0,this.color=e.color,this.glowPower=e.glowPower,this.taperPower=e.taperPower}Object.defineProperties(IE.prototype,{isConstant:{get:function(){return q.isConstant(this._color)&&q.isConstant(this._glow)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color"),glowPower:ce("glowPower"),taperPower:ce("taperPower")});IE.prototype.getType=function(e){return"PolylineGlow"};IE.prototype.getValue=function(e,t){return l(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,xYe,t.color),t.glowPower=q.getValueOrDefault(this._glowPower,e,bYe,t.glowPower),t.taperPower=q.getValueOrDefault(this._taperPower,e,TYe,t.taperPower),t};IE.prototype.equals=function(e){return this===e||e instanceof IE&&q.equals(this._color,e._color)&&q.equals(this._glowPower,e._glowPower)&&q.equals(this._taperPower,e._taperPower)};var RE=IE;var AYe=H.WHITE,CYe=H.BLACK,EYe=1;function OE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this.color=e.color,this.outlineColor=e.outlineColor,this.outlineWidth=e.outlineWidth}Object.defineProperties(OE.prototype,{isConstant:{get:function(){return q.isConstant(this._color)&&q.isConstant(this._outlineColor)&&q.isConstant(this._outlineWidth)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth")});OE.prototype.getType=function(e){return"PolylineOutline"};OE.prototype.getValue=function(e,t){return l(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,AYe,t.color),t.outlineColor=q.getValueOrClonedDefault(this._outlineColor,e,CYe,t.outlineColor),t.outlineWidth=q.getValueOrDefault(this._outlineWidth,e,EYe),t};OE.prototype.equals=function(e){return this===e||e instanceof OE&&q.equals(this._color,e._color)&&q.equals(this._outlineColor,e._outlineColor)&&q.equals(this._outlineWidth,e._outlineWidth)};var Vy=OE;function R_(e,t){this._value=void 0,this._definitionChanged=new pe,this._eventHelper=new Ir,this._referenceFrame=y(t,to.FIXED),this.setValue(e)}Object.defineProperties(R_.prototype,{isConstant:{get:function(){let e=this._value;if(!l(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!q.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});R_.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,to.FIXED,t)};R_.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._value;if(!l(i))return;let o=i.length;l(n)||(n=new Array(o));let r=0,s=0;for(;r<o;){let c=i[r].getValueInReferenceFrame(e,t,n[r]);l(c)&&(n[s]=c,s++),r++}return n.length=s,n};R_.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),l(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];l(o)&&t.add(o.definitionChanged,R_.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};R_.prototype.equals=function(e){return this===e||e instanceof R_&&this._referenceFrame===e._referenceFrame&&q.arrayEquals(this._value,e._value)};R_.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var O_=R_;function Uy(e){this._value=void 0,this._definitionChanged=new pe,this._eventHelper=new Ir,this.setValue(e)}Object.defineProperties(Uy.prototype,{isConstant:{get:function(){let e=this._value;if(!l(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!q.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});Uy.prototype.getValue=function(e,t){let n=this._value;if(!l(n))return;let i=n.length;l(t)||(t=new Array(i));let o=0,r=0;for(;o<i;){let a=this._value[o].getValue(e,t[o]);l(a)&&(t[r]=a,r++),o++}return t.length=r,t};Uy.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),l(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];l(o)&&t.add(o.definitionChanged,Uy.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};Uy.prototype.equals=function(e){return this===e||e instanceof Uy&&q.arrayEquals(this._value,e._value)};Uy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var ME=Uy;function Wb(e){let t=e._targetProperty;if(!l(t)){let n=e._targetEntity;if(!l(n)){if(n=e._targetCollection.getById(e._targetId),!l(n)){e._targetEntity=e._targetProperty=void 0;return}n.definitionChanged.addEventListener(Iu.prototype._onTargetEntityDefinitionChanged,e),e._targetEntity=n}let i=e._targetPropertyNames;t=e._targetEntity;for(let o=0,r=i.length;o<r&&l(t);++o)t=t[i[o]];e._targetProperty=t}return t}function Iu(e,t,n){this._targetCollection=e,this._targetId=t,this._targetPropertyNames=n,this._targetProperty=void 0,this._targetEntity=void 0,this._definitionChanged=new pe,e.collectionChanged.addEventListener(Iu.prototype._onCollectionChanged,this)}Object.defineProperties(Iu.prototype,{isConstant:{get:function(){return q.isConstant(Wb(this))}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){let e=Wb(this);return l(e)?e.referenceFrame:void 0}},targetId:{get:function(){return this._targetId}},targetCollection:{get:function(){return this._targetCollection}},targetPropertyNames:{get:function(){return this._targetPropertyNames}},resolvedProperty:{get:function(){return Wb(this)}}});Iu.fromString=function(e,t){let n,i=[],o=!0,r=!1,s="";for(let a=0;a<t.length;++a){let c=t.charAt(a);r?(s+=c,r=!1):c==="\\"?r=!0:o&&c==="#"?(n=s,o=!1,s=""):!o&&c==="."?(i.push(s),s=""):s+=c}return i.push(s),new Iu(e,n,i)};Iu.prototype.getValue=function(e,t){let n=Wb(this);return l(n)?n.getValue(e,t):void 0};Iu.prototype.getValueInReferenceFrame=function(e,t,n){let i=Wb(this);return l(i)?i.getValueInReferenceFrame(e,t,n):void 0};Iu.prototype.getType=function(e){let t=Wb(this);return l(t)?t.getType(e):void 0};Iu.prototype.equals=function(e){if(this===e)return!0;let t=this._targetPropertyNames,n=e._targetPropertyNames;if(this._targetCollection!==e._targetCollection||this._targetId!==e._targetId||t.length!==n.length)return!1;let i=this._targetPropertyNames.length;for(let o=0;o<i;o++)if(t[o]!==n[o])return!1;return!0};Iu.prototype._onTargetEntityDefinitionChanged=function(e,t,n,i){l(this._targetProperty)&&this._targetPropertyNames[0]===t&&(this._targetProperty=void 0,this._definitionChanged.raiseEvent(this))};Iu.prototype._onCollectionChanged=function(e,t,n){let i=this._targetEntity;l(i)&&n.indexOf(i)!==-1?(i.definitionChanged.removeEventListener(Iu.prototype._onTargetEntityDefinitionChanged,this),this._targetEntity=this._targetProperty=void 0):l(i)||(i=Wb(this),l(i)&&this._definitionChanged.raiseEvent(this))};var M_=Iu;var SYe={packedLength:1,pack:function(e,t,n){return n=y(n,0),t[n]=e,t},unpack:function(e,t,n){return t=y(t,0),e[t]},convertPackedArrayForInterpolation:function(e,t,n,i){l(i)||(i=[]),t=y(t,0),n=y(n,e.length);let o;for(let r=0,s=n-t+1;r<s;r++){let a=e[t+r];r===0||Math.abs(o-a)<Math.PI?i[r]=a:i[r]=a-R.TWO_PI,o=a}},unpackInterpolationResult:function(e,t,n,i,o){return o=e[0],o<0?o+R.TWO_PI:o}},qf=SYe;var Que={packedLength:1,pack:function(e,t,n){n=y(n,0),t[n]=e},unpack:function(e,t,n){return t=y(t,0),e[t]}};function Jue(e,t,n){let i,o=e.length,r=n.length,s=o+r;if(e.length=s,o!==t){let a=o-1;for(i=s-1;i>=t;i--)e[i]=e[a--]}for(i=0;i<r;i++)e[t++]=n[i]}function efe(e,t){return e instanceof J?e:typeof e=="string"?J.fromIso8601(e):J.addSeconds(t,e,new J)}var s7=[],a7=[];function xz(e,t,n,i,o){let r=0,s,a,c,u,f,d;for(;r<i.length;){f=efe(i[r],e),c=Do(t,f,J.compare);let p=0,g=0;if(c<0){for(c=~c,u=c*o,a=void 0,d=t[c];r<i.length&&(f=efe(i[r],e),!(l(a)&&J.compare(a,f)>=0||l(d)&&J.compare(f,d)>=0));){for(s7[p++]=f,r=r+1,s=0;s<o;s++)a7[g++]=i[r],r=r+1;a=f}p>0&&(a7.length=g,Jue(n,u,a7),s7.length=p,Jue(t,c,s7))}else{for(s=0;s<o;s++)r++,n[c*o+s]=i[r];r++}}}function lh(e,t){let n=e;n===Number&&(n=Que);let i=n.packedLength,o=y(n.packedInterpolationLength,i),r=0,s;if(l(t)){let a=t.length;s=new Array(a);for(let c=0;c<a;c++){let u=t[c];u===Number&&(u=Que);let f=u.packedLength;i+=f,o+=y(u.packedInterpolationLength,f),s[c]=u}r=a}this._type=e,this._innerType=n,this._interpolationDegree=1,this._interpolationAlgorithm=Hb,this._numberOfPoints=0,this._times=[],this._values=[],this._xTable=[],this._yTable=[],this._packedLength=i,this._packedInterpolationLength=o,this._updateTableLength=!0,this._interpolationResult=new Array(o),this._definitionChanged=new pe,this._derivativeTypes=t,this._innerDerivativeTypes=s,this._inputOrder=r,this._forwardExtrapolationType=Pu.NONE,this._forwardExtrapolationDuration=0,this._backwardExtrapolationType=Pu.NONE,this._backwardExtrapolationDuration=0}Object.defineProperties(lh.prototype,{isConstant:{get:function(){return this._values.length===0}},definitionChanged:{get:function(){return this._definitionChanged}},type:{get:function(){return this._type}},derivativeTypes:{get:function(){return this._derivativeTypes}},interpolationDegree:{get:function(){return this._interpolationDegree}},interpolationAlgorithm:{get:function(){return this._interpolationAlgorithm}},forwardExtrapolationType:{get:function(){return this._forwardExtrapolationType},set:function(e){this._forwardExtrapolationType!==e&&(this._forwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},forwardExtrapolationDuration:{get:function(){return this._forwardExtrapolationDuration},set:function(e){this._forwardExtrapolationDuration!==e&&(this._forwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationType:{get:function(){return this._backwardExtrapolationType},set:function(e){this._backwardExtrapolationType!==e&&(this._backwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationDuration:{get:function(){return this._backwardExtrapolationDuration},set:function(e){this._backwardExtrapolationDuration!==e&&(this._backwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}}});lh.prototype.getValue=function(e,t){let n=this._times,i=n.length;if(i===0)return;let o,r=this._innerType,s=this._values,a=Do(n,e,J.compare);if(a<0){if(a=~a,a===0){let E=n[a];if(o=this._backwardExtrapolationDuration,this._backwardExtrapolationType===Pu.NONE||o!==0&&J.secondsDifference(E,e)>o)return;if(this._backwardExtrapolationType===Pu.HOLD)return r.unpack(s,0,t)}if(a>=i){a=i-1;let E=n[a];if(o=this._forwardExtrapolationDuration,this._forwardExtrapolationType===Pu.NONE||o!==0&&J.secondsDifference(e,E)>o)return;if(this._forwardExtrapolationType===Pu.HOLD)return a=i-1,r.unpack(s,a*r.packedLength,t)}let c=this._xTable,u=this._yTable,f=this._interpolationAlgorithm,d=this._packedInterpolationLength,p=this._inputOrder;if(this._updateTableLength){this._updateTableLength=!1;let E=Math.min(f.getRequiredDataPoints(this._interpolationDegree,p),i);E!==this._numberOfPoints&&(this._numberOfPoints=E,c.length=E,u.length=E*d)}let g=this._numberOfPoints-1;if(g<1)return;let m=0,x=i-1;if(x-m+1>=g+1){let E=a-(g/2|0)-1;E<m&&(E=m);let v=E+g;v>x&&(v=x,E=v-g,E<m&&(E=m)),m=E,x=v}let T=x-m+1;for(let E=0;E<T;++E)c[E]=J.secondsDifference(n[m+E],n[x]);if(l(r.convertPackedArrayForInterpolation))r.convertPackedArrayForInterpolation(s,m,x,u);else{let E=0,v=this._packedLength,D=m*v,O=(x+1)*v;for(;D<O;)u[E]=s[D],D++,E++}let C=J.secondsDifference(e,n[x]),A;if(p===0||!l(f.interpolate))A=f.interpolateOrderZero(C,c,u,d,this._interpolationResult);else{let E=Math.floor(d/(p+1));A=f.interpolate(C,c,u,E,p,p,this._interpolationResult)}return l(r.unpackInterpolationResult)?r.unpackInterpolationResult(A,s,m,x,t):r.unpack(A,0,t)}return r.unpack(s,a*this._packedLength,t)};lh.prototype.setInterpolationOptions=function(e){if(!l(e))return;let t=!1,n=e.interpolationAlgorithm,i=e.interpolationDegree;l(n)&&this._interpolationAlgorithm!==n&&(this._interpolationAlgorithm=n,t=!0),l(i)&&this._interpolationDegree!==i&&(this._interpolationDegree=i,t=!0),t&&(this._updateTableLength=!0,this._definitionChanged.raiseEvent(this))};lh.prototype.addSample=function(e,t,n){let i=this._innerDerivativeTypes,o=l(i),r=this._innerType,s=[];if(s.push(e),r.pack(t,s,s.length),o){let a=i.length;for(let c=0;c<a;c++)i[c].pack(n[c],s,s.length)}xz(void 0,this._times,this._values,s,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};lh.prototype.addSamples=function(e,t,n){let i=this._innerDerivativeTypes,o=l(i),r=this._innerType,s=e.length,a=[];for(let c=0;c<s;c++)if(a.push(e[c]),r.pack(t[c],a,a.length),o){let u=n[c],f=i.length;for(let d=0;d<f;d++)i[d].pack(u[d],a,a.length)}xz(void 0,this._times,this._values,a,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};lh.prototype.addSamplesPackedArray=function(e,t){xz(t,this._times,this._values,e,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};lh.prototype.removeSample=function(e){let t=Do(this._times,e,J.compare);return t<0?!1:(tfe(this,t,1),!0)};function tfe(e,t,n){let i=e._packedLength;e._times.splice(t,n),e._values.splice(t*i,n*i),e._updateTableLength=!0,e._definitionChanged.raiseEvent(e)}lh.prototype.removeSamples=function(e){let t=this._times,n=Do(t,e.start,J.compare);n<0?n=~n:e.isStartIncluded||++n;let i=Do(t,e.stop,J.compare);i<0?i=~i:e.isStopIncluded&&++i,tfe(this,n,i-n)};lh.prototype.equals=function(e){if(this===e)return!0;if(!l(e)||this._type!==e._type||this._interpolationDegree!==e._interpolationDegree||this._interpolationAlgorithm!==e._interpolationAlgorithm)return!1;let t=this._derivativeTypes,n=l(t),i=e._derivativeTypes,o=l(i);if(n!==o)return!1;let r,s;if(n){if(s=t.length,s!==i.length)return!1;for(r=0;r<s;r++)if(t[r]!==i[r])return!1}let a=this._times,c=e._times;if(s=a.length,s!==c.length)return!1;for(r=0;r<s;r++)if(!J.equals(a[r],c[r]))return!1;let u=this._values,f=e._values;for(s=u.length,r=0;r<s;r++)if(u[r]!==f[r])return!1;return!0};lh._mergeNewSamples=xz;var Ru=lh;function Yf(e,t){t=y(t,0);let n;if(t>0){n=new Array(t);for(let i=0;i<t;i++)n[i]=h}this._numberOfDerivatives=t,this._property=new Ru(h,n),this._definitionChanged=new pe,this._referenceFrame=y(e,to.FIXED),this._property._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)}Object.defineProperties(Yf.prototype,{isConstant:{get:function(){return this._property.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}},interpolationDegree:{get:function(){return this._property.interpolationDegree}},interpolationAlgorithm:{get:function(){return this._property.interpolationAlgorithm}},numberOfDerivatives:{get:function(){return this._numberOfDerivatives}},forwardExtrapolationType:{get:function(){return this._property.forwardExtrapolationType},set:function(e){this._property.forwardExtrapolationType=e}},forwardExtrapolationDuration:{get:function(){return this._property.forwardExtrapolationDuration},set:function(e){this._property.forwardExtrapolationDuration=e}},backwardExtrapolationType:{get:function(){return this._property.backwardExtrapolationType},set:function(e){this._property.backwardExtrapolationType=e}},backwardExtrapolationDuration:{get:function(){return this._property.backwardExtrapolationDuration},set:function(e){this._property.backwardExtrapolationDuration=e}}});Yf.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,to.FIXED,t)};Yf.prototype.getValueInReferenceFrame=function(e,t,n){if(n=this._property.getValue(e,n),l(n))return Pp.convertToReferenceFrame(e,n,this._referenceFrame,t,n)};Yf.prototype.setInterpolationOptions=function(e){this._property.setInterpolationOptions(e)};Yf.prototype.addSample=function(e,t,n){let i=this._numberOfDerivatives;this._property.addSample(e,t,n)};Yf.prototype.addSamples=function(e,t,n){this._property.addSamples(e,t,n)};Yf.prototype.addSamplesPackedArray=function(e,t){this._property.addSamplesPackedArray(e,t)};Yf.prototype.removeSample=function(e){return this._property.removeSample(e)};Yf.prototype.removeSamples=function(e){this._property.removeSamples(e)};Yf.prototype.equals=function(e){return this===e||e instanceof Yf&&q.equals(this._property,e._property)&&this._referenceFrame===e._referenceFrame};var aa=Yf;var vYe={HORIZONTAL:0,VERTICAL:1},uh=Object.freeze(vYe);var wYe=uh.HORIZONTAL,DYe=H.WHITE,PYe=H.BLACK,IYe=0,RYe=1;function LE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new pe,this._orientation=void 0,this._orientationSubscription=void 0,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._offset=void 0,this._offsetSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.orientation=e.orientation,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.offset=e.offset,this.repeat=e.repeat}Object.defineProperties(LE.prototype,{isConstant:{get:function(){return q.isConstant(this._orientation)&&q.isConstant(this._evenColor)&&q.isConstant(this._oddColor)&&q.isConstant(this._offset)&&q.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},orientation:ce("orientation"),evenColor:ce("evenColor"),oddColor:ce("oddColor"),offset:ce("offset"),repeat:ce("repeat")});LE.prototype.getType=function(e){return"Stripe"};LE.prototype.getValue=function(e,t){return l(t)||(t={}),t.horizontal=q.getValueOrDefault(this._orientation,e,wYe)===uh.HORIZONTAL,t.evenColor=q.getValueOrClonedDefault(this._evenColor,e,DYe,t.evenColor),t.oddColor=q.getValueOrClonedDefault(this._oddColor,e,PYe,t.oddColor),t.offset=q.getValueOrDefault(this._offset,e,IYe),t.repeat=q.getValueOrDefault(this._repeat,e,RYe),t};LE.prototype.equals=function(e){return this===e||e instanceof LE&&q.equals(this._orientation,e._orientation)&&q.equals(this._evenColor,e._evenColor)&&q.equals(this._oddColor,e._oddColor)&&q.equals(this._offset,e._offset)&&q.equals(this._repeat,e._repeat)};var NE=LE;function zy(e){this._definitionChanged=new pe,this._intervals=new Or,this._intervals.changedEvent.addEventListener(zy.prototype._intervalsChanged,this),this._referenceFrame=y(e,to.FIXED)}Object.defineProperties(zy.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}},referenceFrame:{get:function(){return this._referenceFrame}}});zy.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,to.FIXED,t)};zy.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._intervals.findDataForIntervalContainingDate(e);if(l(i))return Pp.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};zy.prototype.equals=function(e){return this===e||e instanceof zy&&this._intervals.equals(e._intervals,q.equals)&&this._referenceFrame===e._referenceFrame};zy.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var L_=zy;function jb(){this._definitionChanged=new pe,this._intervals=new Or,this._intervals.changedEvent.addEventListener(jb.prototype._intervalsChanged,this)}Object.defineProperties(jb.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});jb.prototype.getValue=function(e,t){let n=this._intervals.findDataForIntervalContainingDate(e);return l(n)&&typeof n.clone=="function"?n.clone(t):n};jb.prototype.equals=function(e){return this===e||e instanceof jb&&this._intervals.equals(e._intervals,q.equals)};jb.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var N_=jb;function FE(e,t){this._position=void 0,this._subscription=void 0,this._definitionChanged=new pe,this._normalize=y(t,!0),this.position=e}Object.defineProperties(FE.prototype,{isConstant:{get:function(){return q.isConstant(this._position)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._position},set:function(e){let t=this._position;t!==e&&(l(t)&&this._subscription(),this._position=e,l(e)&&(this._subscription=e._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)),this._definitionChanged.raiseEvent(this))}},normalize:{get:function(){return this._normalize},set:function(e){this._normalize!==e&&(this._normalize=e,this._definitionChanged.raiseEvent(this))}}});var OYe=new h,nfe=new h,ife=new J,c7=1/60;FE.prototype.getValue=function(e,t){return this._getValue(e,t)};FE.prototype._getValue=function(e,t,n){l(t)||(t=new h);let i=this._position;if(q.isConstant(i))return this._normalize?void 0:h.clone(h.ZERO,t);let o=i.getValue(e,OYe),r=i.getValue(J.addSeconds(e,c7,ife),nfe);if(!l(o)||!l(r)&&(r=o,o=i.getValue(J.addSeconds(e,-c7,ife),nfe),!l(o)))return;if(h.equals(o,r))return this._normalize?void 0:h.clone(h.ZERO,t);l(n)&&o.clone(n);let s=h.subtract(r,o,t);return this._normalize?h.normalize(s,t):h.divideByScalar(s,c7,t)};FE.prototype.equals=function(e){return this===e||e instanceof FE&&q.equals(this._position,e._position)};var qb=FE;function xL(e,t){this._velocityVectorProperty=new qb(e,!0),this._subscription=void 0,this._ellipsoid=void 0,this._definitionChanged=new pe,this.ellipsoid=y(t,te.WGS84);let n=this;this._velocityVectorProperty.definitionChanged.addEventListener(function(){n._definitionChanged.raiseEvent(n)})}Object.defineProperties(xL.prototype,{isConstant:{get:function(){return q.isConstant(this._velocityVectorProperty)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._velocityVectorProperty.position},set:function(e){this._velocityVectorProperty.position=e}},ellipsoid:{get:function(){return this._ellipsoid},set:function(e){this._ellipsoid!==e&&(this._ellipsoid=e,this._definitionChanged.raiseEvent(this))}}});var ofe=new h,MYe=new h,rfe=new $;xL.prototype.getValue=function(e,t){let n=this._velocityVectorProperty._getValue(e,MYe,ofe);if(l(n))return wt.rotationMatrixFromPositionVelocity(ofe,n,this._ellipsoid,rfe),Me.fromRotationMatrix(rfe,t)};xL.prototype.equals=function(e){return this===e||e instanceof xL&&q.equals(this._velocityVectorProperty,e._velocityVectorProperty)&&(this._ellipsoid===e._ellipsoid||this._ellipsoid.equals(e._ellipsoid))};var bL=xL;var F_={COMPLETE:0,BELOW_ELLIPSOID_HORIZON:1,ABOVE_ELLIPSOID_HORIZON:2};F_.validate=function(e){return e===F_.COMPLETE||e===F_.BELOW_ELLIPSOID_HORIZON||e===F_.ABOVE_ELLIPSOID_HORIZON};F_.toString=function(e){switch(e){case F_.COMPLETE:return"COMPLETE";case F_.BELOW_ELLIPSOID_HORIZON:return"BELOW_ELLIPSOID_HORIZON";case F_.ABOVE_ELLIPSOID_HORIZON:return"ABOVE_ELLIPSOID_HORIZON";default:throw new de("SensorVolumePortionToDisplay value is not valid and cannot be converted to a String.")}};var BE=F_;function Hy(){}Hy.packedLength=h.packedLength;Hy.unpack=h.unpack;Hy.pack=h.pack;var l7;function TL(e,t){return t[0]==="#"&&(t=l7+t),M_.fromString(e,t)}function sfe(e,t,n){if(l(n.reference))return TL(t,n.reference);if(l(n.velocityReference)){let i=TL(t,n.velocityReference);switch(e){case h:case Hy:return new qb(i,e===Hy);case Me:return new bL(i)}}throw new le(`${JSON.stringify(n)} is not valid CZML.`)}function LYe(e,t){return new Od(function(n,i){return t(e.getValue(n,i))},e.isConstant)}var Bi=new h,il=new yL,gc=new fe,Yb=new Tn,bz=new Me;function NYe(e){let t=e.rgbaf;if(l(t))return t;let n=e.rgba;if(!l(n))return;let i=n.length;if(i===H.packedLength)return[H.byteToFloat(n[0]),H.byteToFloat(n[1]),H.byteToFloat(n[2]),H.byteToFloat(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=H.byteToFloat(n[o+1]),t[o+2]=H.byteToFloat(n[o+2]),t[o+3]=H.byteToFloat(n[o+3]),t[o+4]=H.byteToFloat(n[o+4]);return t}function afe(e,t){let n=y(e.uri,e);return l(t)?t.getDerivedResource({url:n}):De.createIfNeeded(n)}function FYe(e){let t=e.wsen;if(l(t))return t;let n=e.wsenDegrees;if(!l(n))return;let i=n.length;if(i===se.packedLength)return[R.toRadians(n[0]),R.toRadians(n[1]),R.toRadians(n[2]),R.toRadians(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=R.toRadians(n[o+1]),t[o+2]=R.toRadians(n[o+2]),t[o+3]=R.toRadians(n[o+3]),t[o+4]=R.toRadians(n[o+4]);return t}function BYe(e){let t=e.length;if(il.magnitude=1,t===2)return il.clock=e[0],il.cone=e[1],h.fromSpherical(il,Bi),[Bi.x,Bi.y,Bi.z];let n=new Array(t/3*4);for(let i=0,o=0;i<t;i+=3,o+=4)n[o]=e[i],il.clock=e[i+1],il.cone=e[i+2],h.fromSpherical(il,Bi),n[o+1]=Bi.x,n[o+2]=Bi.y,n[o+3]=Bi.z;return n}function kYe(e){let t=e.length;if(t===3)return il.clock=e[0],il.cone=e[1],il.magnitude=e[2],h.fromSpherical(il,Bi),[Bi.x,Bi.y,Bi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],il.clock=e[i+1],il.cone=e[i+2],il.magnitude=e[i+3],h.fromSpherical(il,Bi),n[i+1]=Bi.x,n[i+2]=Bi.y,n[i+3]=Bi.z;return n}function VYe(e){let t=e.length;if(t===3)return gc.longitude=e[0],gc.latitude=e[1],gc.height=e[2],te.WGS84.cartographicToCartesian(gc,Bi),[Bi.x,Bi.y,Bi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],gc.longitude=e[i+1],gc.latitude=e[i+2],gc.height=e[i+3],te.WGS84.cartographicToCartesian(gc,Bi),n[i+1]=Bi.x,n[i+2]=Bi.y,n[i+3]=Bi.z;return n}function UYe(e){let t=e.length;if(t===3)return gc.longitude=R.toRadians(e[0]),gc.latitude=R.toRadians(e[1]),gc.height=e[2],te.WGS84.cartographicToCartesian(gc,Bi),[Bi.x,Bi.y,Bi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],gc.longitude=R.toRadians(e[i+1]),gc.latitude=R.toRadians(e[i+2]),gc.height=e[i+3],te.WGS84.cartographicToCartesian(gc,Bi),n[i+1]=Bi.x,n[i+2]=Bi.y,n[i+3]=Bi.z;return n}function u7(e){let t=e.cartesian;if(l(t))return t;let n=e.cartesianVelocity;if(l(n))return n;let i=e.unitCartesian;if(l(i))return i;let o=e.unitSpherical;if(l(o))return BYe(o);let r=e.spherical;if(l(r))return kYe(r);let s=e.cartographicRadians;if(l(s))return VYe(s);let a=e.cartographicDegrees;if(l(a))return UYe(a);throw new le(`${JSON.stringify(e)} is not a valid CZML interval.`)}function cfe(e,t){h.unpack(e,t,Bi),h.normalize(Bi,Bi),h.pack(Bi,e,t)}function zYe(e){let t=u7(e);if(t.length===3)return cfe(t,0),t;for(let n=1;n<t.length;n+=4)cfe(t,n);return t}function lfe(e,t){Me.unpack(e,t,bz),Me.normalize(bz,bz),Me.pack(bz,e,t)}function HYe(e){let t=e.unitQuaternion;if(l(t)){if(t.length===4)return lfe(t,0),t;for(let n=1;n<t.length;n+=5)lfe(t,n)}return t}function ufe(e){return typeof e=="boolean"?Boolean:typeof e=="number"?Number:typeof e=="string"?String:e.hasOwnProperty("array")?Array:e.hasOwnProperty("boolean")?Boolean:e.hasOwnProperty("boundingRectangle")?Ge:e.hasOwnProperty("cartesian2")?z:e.hasOwnProperty("cartesian")||e.hasOwnProperty("spherical")||e.hasOwnProperty("cartographicRadians")||e.hasOwnProperty("cartographicDegrees")?h:e.hasOwnProperty("unitCartesian")||e.hasOwnProperty("unitSpherical")?Hy:e.hasOwnProperty("rgba")||e.hasOwnProperty("rgbaf")?H:e.hasOwnProperty("arcType")?Qt:e.hasOwnProperty("classificationType")?Vn:e.hasOwnProperty("colorBlendMode")?cc:e.hasOwnProperty("cornerType")?Di:e.hasOwnProperty("heightReference")?qe:e.hasOwnProperty("horizontalOrigin")?di:e.hasOwnProperty("date")?J:e.hasOwnProperty("labelStyle")?Uo:e.hasOwnProperty("number")?Number:e.hasOwnProperty("nearFarScalar")?Mt:e.hasOwnProperty("distanceDisplayCondition")?It:e.hasOwnProperty("object")||e.hasOwnProperty("value")?Object:e.hasOwnProperty("unitQuaternion")?Me:e.hasOwnProperty("shadowMode")?yn:e.hasOwnProperty("string")?String:e.hasOwnProperty("stripeOrientation")?uh:e.hasOwnProperty("wsen")||e.hasOwnProperty("wsenDegrees")?se:e.hasOwnProperty("uri")?CL.default:e.hasOwnProperty("verticalOrigin")?Rn:Object}function GYe(e,t,n){switch(e){case Qt:return Qt[y(t.arcType,t)];case Array:return t.array;case Boolean:return y(t.boolean,t);case Ge:return t.boundingRectangle;case z:return t.cartesian2;case h:return u7(t);case Hy:return zYe(t);case H:return NYe(t);case Vn:return Vn[y(t.classificationType,t)];case cc:return cc[y(t.colorBlendMode,t)];case Di:return Di[y(t.cornerType,t)];case qe:return qe[y(t.heightReference,t)];case di:return di[y(t.horizontalOrigin,t)];case Image:return afe(t,n);case J:return J.fromIso8601(y(t.date,t));case Uo:return Uo[y(t.labelStyle,t)];case Number:return y(t.number,t);case Mt:return t.nearFarScalar;case It:return t.distanceDisplayCondition;case Object:return y(y(t.object,t.value),t);case Me:return HYe(t);case qf:return y(t.number,t);case BE:return BE[y(t.portionToDisplay,t)];case yn:return yn[y(y(t.shadowMode,t.shadows),t)];case String:return y(t.string,t);case uh:return uh[y(t.stripeOrientation,t)];case se:return FYe(t);case CL.default:return afe(t,n);case Rn:return Rn[y(t.verticalOrigin,t)];default:throw new le(`Unknown CzmlDataSource interval type: ${e}`)}}var WYe={HERMITE:_L,LAGRANGE:gL,LINEAR:Hb};function Tz(e,t){let n=e.interpolationAlgorithm,i=e.interpolationDegree;(l(n)||l(i))&&t.setInterpolationOptions({interpolationAlgorithm:WYe[n],interpolationDegree:i});let o=e.forwardExtrapolationType;l(o)&&(t.forwardExtrapolationType=Pu[o]);let r=e.forwardExtrapolationDuration;l(r)&&(t.forwardExtrapolationDuration=r);let s=e.backwardExtrapolationType;l(s)&&(t.backwardExtrapolationType=Pu[s]);let a=e.backwardExtrapolationDuration;l(a)&&(t.backwardExtrapolationDuration=a)}var ffe={iso8601:void 0};function cr(e){if(l(e))return ffe.iso8601=e,Tn.fromIso8601(ffe)}function f7(e){let t=Ue.MAXIMUM_INTERVAL.clone();return t.data=e,t}function dfe(e){let t=new mc;return t.intervals.addInterval(f7(e)),t}function hfe(e){let t=new ra(e.referenceFrame);return t.intervals.addInterval(f7(e)),t}function Az(e,t,n,i,o,r,s){let a=cr(i.interval);l(o)&&(l(a)?a=Tn.intersect(a,o,Yb):a=o);let c,u,f,d=!l(i.reference)&&!l(i.velocityReference),p=l(a)&&!a.equals(Ue.MAXIMUM_INTERVAL);if(i.delete===!0){if(!p){t[n]=void 0;return}return Efe(t[n],a)}let g=!1;if(d){if(u=GYe(e,i,r),!l(u))return;c=y(e.packedLength,1),f=y(u.length,1),g=!l(i.array)&&typeof u!="string"&&f>c&&e!==Object}let m=typeof e.unpack=="function"&&e!==qf;if(!g&&!p){d?t[n]=new Zn(m?e.unpack(u,0):u):t[n]=sfe(e,s,i);return}let x=t[n],b,T=i.epoch;if(l(T)&&(b=J.fromIso8601(T)),g&&!p){x instanceof Ru||(t[n]=x=new Ru(e)),x.addSamplesPackedArray(u,b),Tz(i,x);return}let C;if(!g&&p){a=a.clone(),d?a.data=m?e.unpack(u,0):u:a.data=sfe(e,s,i),l(x)||(t[n]=x=d?new N_:new mc),d&&x instanceof N_?x.intervals.addInterval(a):x instanceof mc?(d&&(a.data=new Zn(a.data)),x.intervals.addInterval(a)):(t[n]=x=dfe(x),d&&(a.data=new Zn(a.data)),x.intervals.addInterval(a));return}l(x)||(t[n]=x=new mc),x instanceof mc||(t[n]=x=dfe(x));let A=x.intervals;C=A.findInterval(a),(!l(C)||!(C.data instanceof Ru))&&(C=a.clone(),C.data=new Ru(e),A.addInterval(C)),C.data.addSamplesPackedArray(u,b),Tz(i,C.data)}function Efe(e,t){if(e instanceof Ru){e.removeSamples(t);return}else if(e instanceof N_){e.intervals.removeInterval(t);return}else if(e instanceof mc){let n=e.intervals;for(let i=0;i<n.length;++i){let o=Tn.intersect(n.get(i),t,Yb);o.isEmpty||Efe(o.data,t)}n.removeInterval(t);return}}function ye(e,t,n,i,o,r,s){if(l(i))if(Array.isArray(i))for(let a=0,c=i.length;a<c;++a)Az(e,t,n,i[a],o,r,s);else Az(e,t,n,i,o,r,s)}function mfe(e,t,n,i,o,r){let s=cr(n.interval);l(i)&&(l(s)?s=Tn.intersect(s,i,Yb):s=i);let a=l(n.cartesianVelocity)?1:0,c=h.packedLength*(a+1),u,f,d=!l(n.reference),p=l(s)&&!s.equals(Ue.MAXIMUM_INTERVAL);if(n.delete===!0){if(!p){e[t]=void 0;return}return Sfe(e[t],s)}let g,m=!1;if(d&&(l(n.referenceFrame)&&(g=to[n.referenceFrame]),g=y(g,to.FIXED),u=u7(n),f=y(u.length,1),m=f>c),!m&&!p){d?e[t]=new zc(h.unpack(u),g):e[t]=TL(r,n.reference);return}let x=e[t],b,T=n.epoch;if(l(T)&&(b=J.fromIso8601(T)),m&&!p){(!(x instanceof aa)||l(g)&&x.referenceFrame!==g)&&(e[t]=x=new aa(g,a)),x.addSamplesPackedArray(u,b),Tz(n,x);return}let C;if(!m&&p){s=s.clone(),d?s.data=h.unpack(u):s.data=TL(r,n.reference),l(x)||(d?x=new L_(g):x=new ra(g),e[t]=x),d&&x instanceof L_&&l(g)&&x.referenceFrame===g?x.intervals.addInterval(s):x instanceof ra?(d&&(s.data=new zc(s.data,g)),x.intervals.addInterval(s)):(e[t]=x=hfe(x),d&&(s.data=new zc(s.data,g)),x.intervals.addInterval(s));return}l(x)?x instanceof ra||(e[t]=x=hfe(x)):e[t]=x=new ra(g);let A=x.intervals;C=A.findInterval(s),(!l(C)||!(C.data instanceof aa)||l(g)&&C.data.referenceFrame!==g)&&(C=s.clone(),C.data=new aa(g,a),A.addInterval(C)),C.data.addSamplesPackedArray(u,b),Tz(n,C.data)}function Sfe(e,t){if(e instanceof aa){e.removeSamples(t);return}else if(e instanceof L_){e.intervals.removeInterval(t);return}else if(e instanceof ra){let n=e.intervals;for(let i=0;i<n.length;++i){let o=Tn.intersect(n.get(i),t,Yb);o.isEmpty||Sfe(o.data,t)}n.removeInterval(t);return}}function vfe(e,t,n,i,o,r){if(l(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)mfe(e,t,n[s],i,o,r);else mfe(e,t,n,i,o,r)}function pfe(e,t,n,i){l(n.references)?Cz(e,t,n.references,n.interval,i,ME,mc):(l(n.cartesian2)?n.array=z.unpackArray(n.cartesian2):l(n.cartesian)&&(n.array=z.unpackArray(n.cartesian)),l(n.array)&&ye(Array,e,t,n,void 0,void 0,i))}function _fe(e,t,n,i,o,r){let s=cr(n.interval);l(i)&&(l(s)?s=Tn.intersect(s,i,Yb):s=i);let a=e[t],c,u;if(l(s)){a instanceof pE||(a=new pE,e[t]=a);let d=a.intervals;u=d.findInterval({start:s.start,stop:s.stop}),l(u)?c=u.data:(u=s.clone(),d.addInterval(u))}else c=a;let f;l(n.solidColor)?(c instanceof kt||(c=new kt),f=n.solidColor,ye(H,c,"color",f.color,void 0,void 0,r)):l(n.grid)?(c instanceof SE||(c=new SE),f=n.grid,ye(H,c,"color",f.color,void 0,o,r),ye(Number,c,"cellAlpha",f.cellAlpha,void 0,o,r),ye(z,c,"lineCount",f.lineCount,void 0,o,r),ye(z,c,"lineThickness",f.lineThickness,void 0,o,r),ye(z,c,"lineOffset",f.lineOffset,void 0,o,r)):l(n.image)?(c instanceof Vg||(c=new Vg),f=n.image,ye(Image,c,"image",f.image,void 0,o,r),ye(z,c,"repeat",f.repeat,void 0,o,r),ye(H,c,"color",f.color,void 0,o,r),ye(Boolean,c,"transparent",f.transparent,void 0,o,r)):l(n.stripe)?(c instanceof NE||(c=new NE),f=n.stripe,ye(uh,c,"orientation",f.orientation,void 0,o,r),ye(H,c,"evenColor",f.evenColor,void 0,o,r),ye(H,c,"oddColor",f.oddColor,void 0,o,r),ye(Number,c,"offset",f.offset,void 0,o,r),ye(Number,c,"repeat",f.repeat,void 0,o,r)):l(n.polylineOutline)?(c instanceof Vy||(c=new Vy),f=n.polylineOutline,ye(H,c,"color",f.color,void 0,o,r),ye(H,c,"outlineColor",f.outlineColor,void 0,o,r),ye(Number,c,"outlineWidth",f.outlineWidth,void 0,o,r)):l(n.polylineGlow)?(c instanceof RE||(c=new RE),f=n.polylineGlow,ye(H,c,"color",f.color,void 0,o,r),ye(Number,c,"glowPower",f.glowPower,void 0,o,r),ye(Number,c,"taperPower",f.taperPower,void 0,o,r)):l(n.polylineArrow)?(c instanceof wE||(c=new wE),f=n.polylineArrow,ye(H,c,"color",f.color,void 0,void 0,r)):l(n.polylineDash)?(c instanceof PE||(c=new PE),f=n.polylineDash,ye(H,c,"color",f.color,void 0,void 0,r),ye(H,c,"gapColor",f.gapColor,void 0,void 0,r),ye(Number,c,"dashLength",f.dashLength,void 0,o,r),ye(Number,c,"dashPattern",f.dashPattern,void 0,o,r)):l(n.checkerboard)&&(c instanceof hE||(c=new hE),f=n.checkerboard,ye(H,c,"evenColor",f.evenColor,void 0,o,r),ye(H,c,"oddColor",f.oddColor,void 0,o,r),ye(z,c,"repeat",f.repeat,void 0,o,r)),l(u)?u.data=c:e[t]=c}function Ou(e,t,n,i,o,r){if(l(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)_fe(e,t,n[s],i,o,r);else _fe(e,t,n,i,o,r)}function jYe(e,t,n,i){let o=t.name;l(o)&&(e.name=t.name)}function qYe(e,t,n,i){let o=t.description;l(o)&&ye(String,e,"description",o,void 0,i,n)}function YYe(e,t,n,i){let o=t.position;l(o)&&vfe(e,"position",o,void 0,i,n)}function XYe(e,t,n,i){let o=t.viewFrom;l(o)&&ye(h,e,"viewFrom",o,void 0,i,n)}function KYe(e,t,n,i){let o=t.orientation;l(o)&&ye(Me,e,"orientation",o,void 0,i,n)}function ZYe(e,t,n,i){let o=t.properties;if(l(o)){l(e.properties)||(e.properties=new wl);for(let r in o)if(o.hasOwnProperty(r)){e.properties.hasProperty(r)||e.properties.addProperty(r);let s=o[r];if(Array.isArray(s))for(let a=0,c=s.length;a<c;++a)Az(ufe(s[a]),e.properties,r,s[a],void 0,i,n);else Az(ufe(s),e.properties,r,s,void 0,i,n)}}}function Cz(e,t,n,i,o,r,s){let a=n.map(function(c){return TL(o,c)});if(l(i)){i=cr(i);let c=e[t];if(!(c instanceof s)){let u=new s;u.intervals.addInterval(f7(c)),e[t]=c=u}i.data=new r(a),c.intervals.addInterval(i)}else e[t]=new r(a)}function gfe(e,t,n,i){let o=n.references;l(o)?Cz(e,t,o,n.interval,i,ME,mc):ye(Array,e,t,n,void 0,void 0,i)}function yfe(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)gfe(e,t,n[o],i);else gfe(e,t,n,i)}function xfe(e,t,n,i){let o=n.references;l(o)?Cz(e,t,o,n.interval,i,O_,ra):(l(n.cartesian)?n.array=h.unpackArray(n.cartesian):l(n.cartographicRadians)?n.array=h.fromRadiansArrayHeights(n.cartographicRadians,te.WGS84):l(n.cartographicDegrees)&&(n.array=h.fromDegreesArrayHeights(n.cartographicDegrees,te.WGS84)),l(n.array)&&ye(Array,e,t,n,void 0,void 0,i))}function EL(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)xfe(e,t,n[o],i);else xfe(e,t,n,i)}function $Ye(e){return h.unpackArray(e)}function QYe(e){return h.fromRadiansArrayHeights(e,te.WGS84)}function JYe(e){return h.fromDegreesArrayHeights(e,te.WGS84)}function bfe(e,t,n,i){let o=n.references;if(l(o)){let r=o.map(function(s){let a={};return Cz(a,"positions",s,n.interval,i,O_,ra),a.positions});e[t]=new O_(r)}else l(n.cartesian)?n.array=n.cartesian.map($Ye):l(n.cartographicRadians)?n.array=n.cartographicRadians.map(QYe):l(n.cartographicDegrees)&&(n.array=n.cartographicDegrees.map(JYe)),l(n.array)&&ye(Array,e,t,n,void 0,void 0,i)}function eXe(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)bfe(e,t,n[o],i);else bfe(e,t,n,i)}function tXe(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;o++)pfe(e,t,n[o],i);else pfe(e,t,n,i)}function nXe(e,t,n,i){let o=t.availability;if(!l(o))return;let r;if(Array.isArray(o))for(let s=0,a=o.length;s<a;++s)l(r)||(r=new Or),r.addInterval(cr(o[s]));else r=new Or,r.addInterval(cr(o));e.availability=r}function iXe(e,t,n,i,o){l(t)&&ye(Hy,e,"alignedAxis",t,n,i,o)}function oXe(e,t,n,i){let o=t.billboard;if(!l(o))return;let r=cr(o.interval),s=e.billboard;l(s)||(e.billboard=s=new qa),ye(Boolean,s,"show",o.show,r,i,n),ye(Image,s,"image",o.image,r,i,n),ye(Number,s,"scale",o.scale,r,i,n),ye(z,s,"pixelOffset",o.pixelOffset,r,i,n),ye(h,s,"eyeOffset",o.eyeOffset,r,i,n),ye(di,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),ye(Rn,s,"verticalOrigin",o.verticalOrigin,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(H,s,"color",o.color,r,i,n),ye(qf,s,"rotation",o.rotation,r,i,n),iXe(s,o.alignedAxis,r,i,n),ye(Boolean,s,"sizeInMeters",o.sizeInMeters,r,i,n),ye(Number,s,"width",o.width,r,i,n),ye(Number,s,"height",o.height,r,i,n),ye(Mt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ye(Mt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ye(Mt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),ye(Ge,s,"imageSubRegion",o.imageSubRegion,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function rXe(e,t,n,i){let o=t.box;if(!l(o))return;let r=cr(o.interval),s=e.box;l(s)||(e.box=s=new Ex),ye(Boolean,s,"show",o.show,r,i,n),ye(h,s,"dimensions",o.dimensions,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),Ou(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(H,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(yn,s,"shadows",o.shadows,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function sXe(e,t,n,i){let o=t.corridor;if(!l(o))return;let r=cr(o.interval),s=e.corridor;l(s)||(e.corridor=s=new vx),ye(Boolean,s,"show",o.show,r,i,n),EL(s,"positions",o.positions,n),ye(Number,s,"width",o.width,r,i,n),ye(Number,s,"height",o.height,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ye(qe,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ye(Di,s,"cornerType",o.cornerType,r,i,n),ye(Number,s,"granularity",o.granularity,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),Ou(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(H,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(yn,s,"shadows",o.shadows,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(Vn,s,"classificationType",o.classificationType,r,i,n),ye(Number,s,"zIndex",o.zIndex,r,i,n)}function aXe(e,t,n,i){let o=t.cylinder;if(!l(o))return;let r=cr(o.interval),s=e.cylinder;l(s)||(e.cylinder=s=new wx),ye(Boolean,s,"show",o.show,r,i,n),ye(Number,s,"length",o.length,r,i,n),ye(Number,s,"topRadius",o.topRadius,r,i,n),ye(Number,s,"bottomRadius",o.bottomRadius,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),Ou(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(H,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),ye(Number,s,"slices",o.slices,r,i,n),ye(yn,s,"shadows",o.shadows,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function cXe(e,t){let n=e.version;if(l(n)&&typeof n=="string"){let r=n.split(".");if(r.length===2){if(r[0]!=="1")throw new le("Cesium only supports CZML version 1.");t._version=n}}if(!l(t._version))throw new le("CZML version information invalid. It is expected to be a property on the document object in the <Major>.<Minor> version format.");let i=t._documentPacket;l(e.name)&&(i.name=e.name);let o=e.clock;if(l(o)){let r=i.clock;l(r)?(r.interval=y(o.interval,r.interval),r.currentTime=y(o.currentTime,r.currentTime),r.range=y(o.range,r.range),r.step=y(o.step,r.step),r.multiplier=y(o.multiplier,r.multiplier)):i.clock={interval:o.interval,currentTime:o.currentTime,range:o.range,step:o.step,multiplier:o.multiplier}}}function lXe(e,t,n,i){let o=t.ellipse;if(!l(o))return;let r=cr(o.interval),s=e.ellipse;l(s)||(e.ellipse=s=new Dx),ye(Boolean,s,"show",o.show,r,i,n),ye(Number,s,"semiMajorAxis",o.semiMajorAxis,r,i,n),ye(Number,s,"semiMinorAxis",o.semiMinorAxis,r,i,n),ye(Number,s,"height",o.height,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ye(qe,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ye(qf,s,"rotation",o.rotation,r,i,n),ye(qf,s,"stRotation",o.stRotation,r,i,n),ye(Number,s,"granularity",o.granularity,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),Ou(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(H,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),ye(yn,s,"shadows",o.shadows,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(Vn,s,"classificationType",o.classificationType,r,i,n),ye(Number,s,"zIndex",o.zIndex,r,i,n)}function uXe(e,t,n,i){let o=t.ellipsoid;if(!l(o))return;let r=cr(o.interval),s=e.ellipsoid;l(s)||(e.ellipsoid=s=new Px),ye(Boolean,s,"show",o.show,r,i,n),ye(h,s,"radii",o.radii,r,i,n),ye(h,s,"innerRadii",o.innerRadii,r,i,n),ye(Number,s,"minimumClock",o.minimumClock,r,i,n),ye(Number,s,"maximumClock",o.maximumClock,r,i,n),ye(Number,s,"minimumCone",o.minimumCone,r,i,n),ye(Number,s,"maximumCone",o.maximumCone,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),Ou(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(H,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Number,s,"stackPartitions",o.stackPartitions,r,i,n),ye(Number,s,"slicePartitions",o.slicePartitions,r,i,n),ye(Number,s,"subdivisions",o.subdivisions,r,i,n),ye(yn,s,"shadows",o.shadows,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function fXe(e,t,n,i){let o=t.label;if(!l(o))return;let r=cr(o.interval),s=e.label;l(s)||(e.label=s=new Pd),ye(Boolean,s,"show",o.show,r,i,n),ye(String,s,"text",o.text,r,i,n),ye(String,s,"font",o.font,r,i,n),ye(Uo,s,"style",o.style,r,i,n),ye(Number,s,"scale",o.scale,r,i,n),ye(Boolean,s,"showBackground",o.showBackground,r,i,n),ye(H,s,"backgroundColor",o.backgroundColor,r,i,n),ye(z,s,"backgroundPadding",o.backgroundPadding,r,i,n),ye(z,s,"pixelOffset",o.pixelOffset,r,i,n),ye(h,s,"eyeOffset",o.eyeOffset,r,i,n),ye(di,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),ye(Rn,s,"verticalOrigin",o.verticalOrigin,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(H,s,"fillColor",o.fillColor,r,i,n),ye(H,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Mt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ye(Mt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),ye(Mt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function dXe(e,t,n,i){let o=t.model;if(!l(o))return;let r=cr(o.interval),s=e.model;l(s)||(e.model=s=new Rp),ye(Boolean,s,"show",o.show,r,i,n),ye(CL.default,s,"uri",o.gltf,r,i,n),ye(Number,s,"scale",o.scale,r,i,n),ye(Number,s,"minimumPixelSize",o.minimumPixelSize,r,i,n),ye(Number,s,"maximumScale",o.maximumScale,r,i,n),ye(Boolean,s,"incrementallyLoadTextures",o.incrementallyLoadTextures,r,i,n),ye(Boolean,s,"runAnimations",o.runAnimations,r,i,n),ye(Boolean,s,"clampAnimations",o.clampAnimations,r,i,n),ye(yn,s,"shadows",o.shadows,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(H,s,"silhouetteColor",o.silhouetteColor,r,i,n),ye(Number,s,"silhouetteSize",o.silhouetteSize,r,i,n),ye(H,s,"color",o.color,r,i,n),ye(cc,s,"colorBlendMode",o.colorBlendMode,r,i,n),ye(Number,s,"colorBlendAmount",o.colorBlendAmount,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n);let a,c,u=o.nodeTransformations;if(l(u))if(Array.isArray(u))for(a=0,c=u.length;a<c;++a)Tfe(s,u[a],r,i,n);else Tfe(s,u,r,i,n);let f=o.articulations;if(l(f))if(Array.isArray(f))for(a=0,c=f.length;a<c;++a)Afe(s,f[a],r,i,n);else Afe(s,f,r,i,n)}function Tfe(e,t,n,i,o){let r=cr(t.interval);l(n)&&(l(r)?r=Tn.intersect(r,n,Yb):r=n);let s=e.nodeTransformations,a=Object.keys(t);for(let c=0,u=a.length;c<u;++c){let f=a[c];if(f==="interval")continue;let d=t[f];if(!l(d))continue;l(s)||(e.nodeTransformations=s=new wl),s.hasProperty(f)||s.addProperty(f);let p=s[f];l(p)||(s[f]=p=new Ix),ye(h,p,"translation",d.translation,r,i,o),ye(Me,p,"rotation",d.rotation,r,i,o),ye(h,p,"scale",d.scale,r,i,o)}}function Afe(e,t,n,i,o){let r=cr(t.interval);l(n)&&(l(r)?r=Tn.intersect(r,n,Yb):r=n);let s=e.articulations,a=Object.keys(t);for(let c=0,u=a.length;c<u;++c){let f=a[c];if(f==="interval")continue;let d=t[f];l(d)&&(l(s)||(e.articulations=s=new wl),s.hasProperty(f)||s.addProperty(f),ye(Number,s,f,d,r,i,o))}}function hXe(e,t,n,i){let o=t.path;if(!l(o))return;let r=cr(o.interval),s=e.path;l(s)||(e.path=s=new Op),ye(Boolean,s,"show",o.show,r,i,n),ye(Number,s,"leadTime",o.leadTime,r,i,n),ye(Number,s,"trailTime",o.trailTime,r,i,n),ye(Number,s,"width",o.width,r,i,n),ye(Number,s,"resolution",o.resolution,r,i,n),Ou(s,"material",o.material,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function mXe(e,t,n,i){let o=t.point;if(!l(o))return;let r=cr(o.interval),s=e.point;l(s)||(e.point=s=new Ox),ye(Boolean,s,"show",o.show,r,i,n),ye(Number,s,"pixelSize",o.pixelSize,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(H,s,"color",o.color,r,i,n),ye(H,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Mt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ye(Mt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function AL(e){this.polygon=e,this._definitionChanged=new pe}Object.defineProperties(AL.prototype,{isConstant:{get:function(){let e=this.polygon._positions,t=this.polygon._holes;return(!l(e)||e.isConstant)&&(!l(t)||t.isConstant)}},definitionChanged:{get:function(){return this._definitionChanged}}});AL.prototype.getValue=function(e,t){let n;l(this.polygon._positions)&&(n=this.polygon._positions.getValue(e));let i;return l(this.polygon._holes)&&(i=this.polygon._holes.getValue(e),l(i)&&(i=i.map(function(o){return new Sa(o)}))),l(t)?(t.positions=n,t.holes=i,t):new Sa(n,i)};AL.prototype.equals=function(e){return this===e||e instanceof AL&&q.equals(this.polygon._positions,e.polygon._positions)&&q.equals(this.polygon._holes,e.polygon._holes)};function pXe(e,t,n,i){let o=t.polygon;if(!l(o))return;let r=cr(o.interval),s=e.polygon;l(s)||(e.polygon=s=new Id),ye(Boolean,s,"show",o.show,r,i,n),EL(s,"_positions",o.positions,n),eXe(s,"_holes",o.holes,n),(l(s._positions)||l(s._holes))&&(s.hierarchy=new AL(s)),ye(Number,s,"height",o.height,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ye(qe,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ye(qf,s,"stRotation",o.stRotation,r,i,n),ye(Number,s,"granularity",o.granularity,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),Ou(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(H,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Boolean,s,"perPositionHeight",o.perPositionHeight,r,i,n),ye(Boolean,s,"closeTop",o.closeTop,r,i,n),ye(Boolean,s,"closeBottom",o.closeBottom,r,i,n),ye(Qt,s,"arcType",o.arcType,r,i,n),ye(yn,s,"shadows",o.shadows,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(Vn,s,"classificationType",o.classificationType,r,i,n),ye(Number,s,"zIndex",o.zIndex,r,i,n)}function _Xe(e){return e?Qt.GEODESIC:Qt.NONE}function gXe(e,t,n,i){let o=t.polyline;if(!l(o))return;let r=cr(o.interval),s=e.polyline;if(l(s)||(e.polyline=s=new ic),ye(Boolean,s,"show",o.show,r,i,n),EL(s,"positions",o.positions,n),ye(Number,s,"width",o.width,r,i,n),ye(Number,s,"granularity",o.granularity,r,i,n),Ou(s,"material",o.material,r,i,n),Ou(s,"depthFailMaterial",o.depthFailMaterial,r,i,n),ye(Qt,s,"arcType",o.arcType,r,i,n),ye(Boolean,s,"clampToGround",o.clampToGround,r,i,n),ye(yn,s,"shadows",o.shadows,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(Vn,s,"classificationType",o.classificationType,r,i,n),ye(Number,s,"zIndex",o.zIndex,r,i,n),l(o.followSurface)&&!l(o.arcType)){let a={};ye(Boolean,a,"followSurface",o.followSurface,r,i,n),s.arcType=LYe(a.followSurface,_Xe)}}function yXe(e,t,n,i){let o=t.polylineVolume;if(!l(o))return;let r=cr(o.interval),s=e.polylineVolume;l(s)||(e.polylineVolume=s=new Mx),EL(s,"positions",o.positions,n),tXe(s,"shape",o.shape,n),ye(Boolean,s,"show",o.show,r,i,n),ye(Di,s,"cornerType",o.cornerType,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),Ou(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(H,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Number,s,"granularity",o.granularity,r,i,n),ye(yn,s,"shadows",o.shadows,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function xXe(e,t,n,i){let o=t.rectangle;if(!l(o))return;let r=cr(o.interval),s=e.rectangle;l(s)||(e.rectangle=s=new Rd),ye(Boolean,s,"show",o.show,r,i,n),ye(se,s,"coordinates",o.coordinates,r,i,n),ye(Number,s,"height",o.height,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ye(qe,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ye(qf,s,"rotation",o.rotation,r,i,n),ye(qf,s,"stRotation",o.stRotation,r,i,n),ye(Number,s,"granularity",o.granularity,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),Ou(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(H,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(yn,s,"shadows",o.shadows,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(Vn,s,"classificationType",o.classificationType,r,i,n),ye(Number,s,"zIndex",o.zIndex,r,i,n)}function bXe(e,t,n,i){let o=t.tileset;if(!l(o))return;let r=cr(o.interval),s=e.tileset;l(s)||(e.tileset=s=new Rx),ye(Boolean,s,"show",o.show,r,i,n),ye(CL.default,s,"uri",o.uri,r,i,n),ye(Number,s,"maximumScreenSpaceError",o.maximumScreenSpaceError,r,i,n)}function TXe(e,t,n,i){let o=t.wall;if(!l(o))return;let r=cr(o.interval),s=e.wall;l(s)||(e.wall=s=new Mp),ye(Boolean,s,"show",o.show,r,i,n),EL(s,"positions",o.positions,n),yfe(s,"minimumHeights",o.minimumHeights,n),yfe(s,"maximumHeights",o.maximumHeights,n),ye(Number,s,"granularity",o.granularity,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),Ou(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(H,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(yn,s,"shadows",o.shadows,r,i,n),ye(It,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function Cfe(e,t,n,i,o){let r=e.id;if(l(r)||(r=Hn()),l7=r,!l(o._version)&&r!=="document")throw new le("The first CZML packet is required to be the document object.");if(e.delete===!0)t.removeById(r);else if(r==="document")cXe(e,o);else{let s=t.getOrCreateEntity(r),a=e.parent;l(a)&&(s.parent=t.getOrCreateEntity(a));for(let c=n.length-1;c>-1;c--)n[c](s,e,t,i)}l7=void 0}function AXe(e){let t,n=e._documentPacket.clock;if(!l(n)){if(!l(e._clock)){let o=e._entityCollection.computeAvailability();if(!o.start.equals(Ue.MINIMUM_VALUE)){let r=o.start,s=o.stop,a=J.secondsDifference(s,r),c=Math.round(a/120);return t=new ch,t.startTime=J.clone(r),t.stopTime=J.clone(s),t.clockRange=Nr.LOOP_STOP,t.multiplier=c,t.currentTime=J.clone(r),t.clockStep=fo.SYSTEM_CLOCK_MULTIPLIER,e._clock=t,!0}}return!1}l(e._clock)?t=e._clock.clone():(t=new ch,t.startTime=Ue.MINIMUM_VALUE.clone(),t.stopTime=Ue.MAXIMUM_VALUE.clone(),t.currentTime=Ue.MINIMUM_VALUE.clone(),t.clockRange=Nr.LOOP_STOP,t.clockStep=fo.SYSTEM_CLOCK_MULTIPLIER,t.multiplier=1);let i=cr(n.interval);return l(i)&&(t.startTime=i.start,t.stopTime=i.stop),l(n.currentTime)&&(t.currentTime=J.fromIso8601(n.currentTime)),l(n.range)&&(t.clockRange=y(Nr[n.range],Nr.LOOP_STOP)),l(n.step)&&(t.clockStep=y(fo[n.step],fo.SYSTEM_CLOCK_MULTIPLIER)),l(n.multiplier)&&(t.multiplier=n.multiplier),t.equals(e._clock)?!1:(e._clock=t.clone(e._clock),!0)}function wfe(e,t,n,i){n=y(n,y.EMPTY_OBJECT);let o=t,r=n.sourceUri,s=n.credit;if(typeof s=="string"&&(s=new Tt(s)),e._credit=s,typeof t=="string"||t instanceof De){t=De.createIfNeeded(t),o=t.fetchJson(),r=y(r,t.clone());let a=e._resourceCredits,c=t.credits;if(l(c)){let u=c.length;for(let f=0;f<u;f++)a.push(c[f])}}return r=De.createIfNeeded(r),Mr.setLoading(e,!0),Promise.resolve(o).then(function(a){return CXe(e,a,r,i)}).catch(function(a){return Mr.setLoading(e,!1),e._error.raiseEvent(e,a),console.log(a),Promise.reject(a)})}function CXe(e,t,n,i){Mr.setLoading(e,!0);let o=e._entityCollection;i&&(e._version=void 0,e._documentPacket=new Dfe,o.removeAll()),us._processCzml(t,o,n,void 0,e);let r=AXe(e),s=e._documentPacket;return l(s.name)&&e._name!==s.name?(e._name=s.name,r=!0):!l(e._name)&&l(n)&&(e._name=I_(n.getUrlComponent()),r=!0),Mr.setLoading(e,!1),r&&e._changed.raiseEvent(e),e}function Dfe(){this.name=void 0,this.clock=void 0}function us(e){this._name=e,this._changed=new pe,this._error=new pe,this._isLoading=!1,this._loading=new pe,this._clock=void 0,this._documentPacket=new Dfe,this._version=void 0,this._entityCollection=new Hs(this),this._entityCluster=new wu,this._credit=void 0,this._resourceCredits=[]}us.load=function(e,t){return new us().load(e,t)};Object.defineProperties(us.prototype,{name:{get:function(){return this._name}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});us.updaters=[oXe,rXe,sXe,aXe,lXe,uXe,fXe,dXe,jYe,qYe,hXe,mXe,pXe,gXe,yXe,ZYe,xXe,YYe,bXe,XYe,TXe,KYe,nXe];us.registerUpdater=function(e){us.updaters.includes(e)||us.updaters.push(e)};us.unregisterUpdater=function(e){if(us.updaters.includes(e)){let t=us.updaters.indexOf(e);us.updaters.splice(t,1)}};us.prototype.process=function(e,t){return wfe(this,e,t,!1)};us.prototype.load=function(e,t){return wfe(this,e,t,!0)};us.prototype.update=function(e){return!0};us.processPacketData=ye;us.processPositionPacketData=vfe;us.processMaterialPacketData=Ou;us._processCzml=function(e,t,n,i,o){if(i=y(i,us.updaters),Array.isArray(e))for(let r=0,s=e.length;r<s;++r)Cfe(e[r],t,i,n,o);else Cfe(e,t,i,n,o)};var SL=us;function ol(){this._dataSources=[],this._dataSourceAdded=new pe,this._dataSourceRemoved=new pe,this._dataSourceMoved=new pe}Object.defineProperties(ol.prototype,{length:{get:function(){return this._dataSources.length}},dataSourceAdded:{get:function(){return this._dataSourceAdded}},dataSourceRemoved:{get:function(){return this._dataSourceRemoved}},dataSourceMoved:{get:function(){return this._dataSourceMoved}}});ol.prototype.add=function(e){let t=this,n=this._dataSources;return Promise.resolve(e).then(function(i){return n===t._dataSources&&(t._dataSources.push(i),t._dataSourceAdded.raiseEvent(t,i)),i})};ol.prototype.remove=function(e,t){t=y(t,!1);let n=this._dataSources.indexOf(e);return n!==-1?(this._dataSources.splice(n,1),this._dataSourceRemoved.raiseEvent(this,e),t&&typeof e.destroy=="function"&&e.destroy(),!0):!1};ol.prototype.removeAll=function(e){e=y(e,!1);let t=this._dataSources;for(let n=0,i=t.length;n<i;++n){let o=t[n];this._dataSourceRemoved.raiseEvent(this,o),e&&typeof o.destroy=="function"&&o.destroy()}this._dataSources=[]};ol.prototype.contains=function(e){return this.indexOf(e)!==-1};ol.prototype.indexOf=function(e){return this._dataSources.indexOf(e)};ol.prototype.get=function(e){return this._dataSources[e]};ol.prototype.getByName=function(e){return this._dataSources.filter(function(t){return t.name===e})};function Ez(e,t){return e.indexOf(t)}function Pfe(e,t,n){let i=e._dataSources,o=i.length-1;if(t=R.clamp(t,0,o),n=R.clamp(n,0,o),t===n)return;let r=i[t];i[t]=i[n],i[n]=r,e.dataSourceMoved.raiseEvent(r,n,t)}ol.prototype.raise=function(e){let t=Ez(this._dataSources,e);Pfe(this,t,t+1)};ol.prototype.lower=function(e){let t=Ez(this._dataSources,e);Pfe(this,t,t-1)};ol.prototype.raiseToTop=function(e){let t=Ez(this._dataSources,e);t!==this._dataSources.length-1&&(this._dataSources.splice(t,1),this._dataSources.push(e),this.dataSourceMoved.raiseEvent(e,this._dataSources.length-1,t))};ol.prototype.lowerToBottom=function(e){let t=Ez(this._dataSources,e);t!==0&&(this._dataSources.splice(t,1),this._dataSources.splice(0,0,e),this.dataSourceMoved.raiseEvent(e,0,t))};ol.prototype.isDestroyed=function(){return!1};ol.prototype.destroy=function(){return this.removeAll(!0),ue(this)};var vL=ol;function ca(e){e=y(e,y.EMPTY_OBJECT),this._primitives=[],this._guid=Hn(),this._primitiveAdded=new pe,this._primitiveRemoved=new pe,this._zIndex=void 0,this.show=y(e.show,!0),this.destroyPrimitives=y(e.destroyPrimitives,!0)}Object.defineProperties(ca.prototype,{length:{get:function(){return this._primitives.length}},primitiveAdded:{get:function(){return this._primitiveAdded}},primitiveRemoved:{get:function(){return this._primitiveRemoved}}});ca.prototype.add=function(e,t){let n=l(t),i=e._external=e._external||{},o=i._composites=i._composites||{};return o[this._guid]={collection:this},n?this._primitives.splice(t,0,e):this._primitives.push(e),this._primitiveAdded.raiseEvent(e),e};ca.prototype.remove=function(e){if(this.contains(e)){let t=this._primitives.indexOf(e);if(t!==-1)return this._primitives.splice(t,1),delete e._external._composites[this._guid],this.destroyPrimitives&&e.destroy(),this._primitiveRemoved.raiseEvent(e),!0}return!1};ca.prototype.removeAndDestroy=function(e){let t=this.remove(e);return t&&!this.destroyPrimitives&&e.destroy(),t};ca.prototype.removeAll=function(){let e=this._primitives,t=e.length;for(let n=0;n<t;++n)delete e[n]._external._composites[this._guid],this.destroyPrimitives&&e[n].destroy(),this._primitiveRemoved.raiseEvent(e[n]);this._primitives=[]};ca.prototype.contains=function(e){return!!(l(e)&&e._external&&e._external._composites&&e._external._composites[this._guid])};function Sz(e,t){return e._primitives.indexOf(t)}ca.prototype.raise=function(e){if(l(e)){let t=Sz(this,e),n=this._primitives;if(t!==n.length-1){let i=n[t];n[t]=n[t+1],n[t+1]=i}}};ca.prototype.raiseToTop=function(e){if(l(e)){let t=Sz(this,e),n=this._primitives;t!==n.length-1&&(n.splice(t,1),n.push(e))}};ca.prototype.lower=function(e){if(l(e)){let t=Sz(this,e),n=this._primitives;if(t!==0){let i=n[t];n[t]=n[t-1],n[t-1]=i}}};ca.prototype.lowerToBottom=function(e){if(l(e)){let t=Sz(this,e),n=this._primitives;t!==0&&(n.splice(t,1),n.unshift(e))}};ca.prototype.get=function(e){return this._primitives[e]};ca.prototype.update=function(e){if(!this.show)return;let t=this._primitives;for(let n=0;n<t.length;++n)t[n].update(e)};ca.prototype.prePassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];l(i.prePassesUpdate)&&i.prePassesUpdate(e)}};ca.prototype.updateForPass=function(e,t){let n=this._primitives;for(let i=0;i<n.length;++i){let o=n[i];l(o.updateForPass)&&o.updateForPass(e,t)}};ca.prototype.postPassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];l(i.postPassesUpdate)&&i.postPassesUpdate(e)}};ca.prototype.isDestroyed=function(){return!1};ca.prototype.destroy=function(){return this.removeAll(),ue(this)};var Wl=ca;function Sm(){this._length=0,this._collections={},this._collectionsArray=[],this.show=!0}Object.defineProperties(Sm.prototype,{length:{get:function(){return this._length}}});Sm.prototype.add=function(e,t){t=y(t,0);let n=this._collections[t];if(!l(n)){n=new Wl({destroyPrimitives:!1}),n._zIndex=t,this._collections[t]=n;let i=this._collectionsArray,o=0;for(;o<i.length&&i[o]._zIndex<t;)o++;i.splice(o,0,n)}return n.add(e),this._length++,e._zIndex=t,e};Sm.prototype.set=function(e,t){return t===e._zIndex||(this.remove(e,!0),this.add(e,t)),e};Sm.prototype.remove=function(e,t){if(this.contains(e)){let n=e._zIndex,i=this._collections[n],o;return t?o=i.remove(e):o=i.removeAndDestroy(e),o&&this._length--,i.length===0&&(this._collectionsArray.splice(this._collectionsArray.indexOf(i),1),this._collections[n]=void 0,i.destroy()),o}return!1};Sm.prototype.removeAll=function(){let e=this._collectionsArray;for(let t=0;t<e.length;t++){let n=e[t];n.destroyPrimitives=!0,n.destroy()}this._collections={},this._collectionsArray=[],this._length=0};Sm.prototype.contains=function(e){if(!l(e))return!1;let t=this._collections[e._zIndex];return l(t)&&t.contains(e)};Sm.prototype.update=function(e){if(!this.show)return;let t=this._collectionsArray;for(let n=0;n<t.length;n++)t[n].update(e)};Sm.prototype.isDestroyed=function(){return!1};Sm.prototype.destroy=function(){return this.removeAll(),ue(this)};var wL=Sm;function kE(e,t){this._primitives=e,this._orderedGroundPrimitives=t,this._dynamicUpdaters=new bt}kE.prototype.add=function(e,t){this._dynamicUpdaters.set(t.id,t.createDynamicUpdater(this._primitives,this._orderedGroundPrimitives))};kE.prototype.remove=function(e){let t=e.id,n=this._dynamicUpdaters.get(t);l(n)&&(this._dynamicUpdaters.remove(t),n.destroy())};kE.prototype.update=function(e){let t=this._dynamicUpdaters.values;for(let n=0,i=t.length;n<i;n++)t[n].update(e);return!0};kE.prototype.removeAllPrimitives=function(){let e=this._dynamicUpdaters.values;for(let t=0,n=e.length;t<n;t++)e[t].destroy();this._dynamicUpdaters.removeAll()};kE.prototype.getBoundingSphere=function(e,t){return e=this._dynamicUpdaters.get(e.id),l(e)&&l(e.getBoundingSphere)?e.getBoundingSphere(t):at.FAILED};var Xb=kE;var h7={},vz=new h,Ife=new h,Rfe=new Me,Ofe=new $;function VE(e,t,n,i,o,r,s,a,c,u){let f=e+t;h.multiplyByScalar(i,Math.cos(f),vz),h.multiplyByScalar(n,Math.sin(f),Ife),h.add(vz,Ife,vz);let d=Math.cos(e);d=d*d;let p=Math.sin(e);p=p*p;let m=r/Math.sqrt(s*d+o*p)/a;return Me.fromAxisAngle(vz,m,Rfe),$.fromQuaternion(Rfe,Ofe),$.multiplyByVector(Ofe,c,u),h.normalize(u,u),h.multiplyByScalar(u,a,u),u}var Mfe=new h,Lfe=new h,d7=new h,EXe=new h;h7.raisePositionsToHeight=function(e,t,n){let i=t.ellipsoid,o=t.height,r=t.extrudedHeight,s=n?e.length/3*2:e.length/3,a=new Float64Array(s*3),c=e.length,u=n?c:0;for(let f=0;f<c;f+=3){let d=f+1,p=f+2,g=h.fromArray(e,f,Mfe);i.scaleToGeodeticSurface(g,g);let m=h.clone(g,Lfe),x=i.geodeticSurfaceNormal(g,EXe),b=h.multiplyByScalar(x,o,d7);h.add(g,b,g),n&&(h.multiplyByScalar(x,r,b),h.add(m,b,m),a[f+u]=m.x,a[d+u]=m.y,a[p+u]=m.z),a[f]=g.x,a[d]=g.y,a[p]=g.z}return a};var SXe=new h,vXe=new h,wXe=new h;h7.computeEllipsePositions=function(e,t,n){let i=e.semiMinorAxis,o=e.semiMajorAxis,r=e.rotation,s=e.center,a=e.granularity*8,c=i*i,u=o*o,f=o*i,d=h.magnitude(s),p=h.normalize(s,SXe),g=h.cross(h.UNIT_Z,s,vXe);g=h.normalize(g,g);let m=h.cross(p,g,wXe),x=1+Math.ceil(R.PI_OVER_TWO/a),b=R.PI_OVER_TWO/(x-1),T=R.PI_OVER_TWO-x*b;T<0&&(x-=Math.ceil(Math.abs(T)/b));let C=2*(x*(x+2)),A=t?new Array(C*3):void 0,E=0,v=Mfe,D=Lfe,O=x*4*3,I=O-1,L=0,N=n?new Array(O):void 0,_,S,w,P,M;for(T=R.PI_OVER_TWO,v=VE(T,r,m,g,c,f,u,d,p,v),t&&(A[E++]=v.x,A[E++]=v.y,A[E++]=v.z),n&&(N[I--]=v.z,N[I--]=v.y,N[I--]=v.x),T=R.PI_OVER_TWO-b,_=1;_<x+1;++_){if(v=VE(T,r,m,g,c,f,u,d,p,v),D=VE(Math.PI-T,r,m,g,c,f,u,d,p,D),t){for(A[E++]=v.x,A[E++]=v.y,A[E++]=v.z,w=2*_+2,S=1;S<w-1;++S)P=S/(w-1),M=h.lerp(v,D,P,d7),A[E++]=M.x,A[E++]=M.y,A[E++]=M.z;A[E++]=D.x,A[E++]=D.y,A[E++]=D.z}n&&(N[I--]=v.z,N[I--]=v.y,N[I--]=v.x,N[L++]=D.x,N[L++]=D.y,N[L++]=D.z),T=R.PI_OVER_TWO-(_+1)*b}for(_=x;_>1;--_){if(T=R.PI_OVER_TWO-(_-1)*b,v=VE(-T,r,m,g,c,f,u,d,p,v),D=VE(T+Math.PI,r,m,g,c,f,u,d,p,D),t){for(A[E++]=v.x,A[E++]=v.y,A[E++]=v.z,w=2*(_-1)+2,S=1;S<w-1;++S)P=S/(w-1),M=h.lerp(v,D,P,d7),A[E++]=M.x,A[E++]=M.y,A[E++]=M.z;A[E++]=D.x,A[E++]=D.y,A[E++]=D.z}n&&(N[I--]=v.z,N[I--]=v.y,N[I--]=v.x,N[L++]=D.x,N[L++]=D.y,N[L++]=D.z)}T=R.PI_OVER_TWO,v=VE(-T,r,m,g,c,f,u,d,p,v);let B={};return t&&(A[E++]=v.x,A[E++]=v.y,A[E++]=v.z,B.positions=A,B.numPts=x),n&&(N[I--]=v.z,N[I--]=v.y,N[I--]=v.x,B.outerPositions=N),B};var jl=h7;var UE=new h,m7=new h,p7=new h,Nfe=new h,Ts=new z,Ffe=new $,DXe=new $,_7=new Me,Bfe=new h,kfe=new h,Vfe=new h,Pz=new fe,Ufe=new h,zfe=new z,Hfe=new z;function Gfe(e,t,n){let i=t.vertexFormat,o=t.center,r=t.semiMajorAxis,s=t.semiMinorAxis,a=t.ellipsoid,c=t.stRotation,u=n?e.length/3*2:e.length/3,f=t.shadowVolume,d=i.st?new Float32Array(u*2):void 0,p=i.normal?new Float32Array(u*3):void 0,g=i.tangent?new Float32Array(u*3):void 0,m=i.bitangent?new Float32Array(u*3):void 0,x=f?new Float32Array(u*3):void 0,b=0,T=Bfe,C=kfe,A=Vfe,E=new Ci(a),v=E.project(a.cartesianToCartographic(o,Pz),Ufe),D=a.scaleToGeodeticSurface(o,UE);a.geodeticSurfaceNormal(D,D);let O=Ffe,I=DXe;if(c!==0){let M=Me.fromAxisAngle(D,c,_7);O=$.fromQuaternion(M,O),M=Me.fromAxisAngle(D,-c,_7),I=$.fromQuaternion(M,I)}else O=$.clone($.IDENTITY,O),I=$.clone($.IDENTITY,I);let L=z.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,zfe),N=z.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Hfe),_=e.length,S=n?_:0,w=S/3*2;for(let M=0;M<_;M+=3){let B=M+1,U=M+2,V=h.fromArray(e,M,UE);if(i.st){let G=$.multiplyByVector(O,V,m7),k=E.project(a.cartesianToCartographic(G,Pz),p7);h.subtract(k,v,k),Ts.x=(k.x+r)/(2*r),Ts.y=(k.y+s)/(2*s),L.x=Math.min(Ts.x,L.x),L.y=Math.min(Ts.y,L.y),N.x=Math.max(Ts.x,N.x),N.y=Math.max(Ts.y,N.y),n&&(d[b+w]=Ts.x,d[b+1+w]=Ts.y),d[b++]=Ts.x,d[b++]=Ts.y}(i.normal||i.tangent||i.bitangent||f)&&(T=a.geodeticSurfaceNormal(V,T),f&&(x[M+S]=-T.x,x[B+S]=-T.y,x[U+S]=-T.z),(i.normal||i.tangent||i.bitangent)&&((i.tangent||i.bitangent)&&(C=h.normalize(h.cross(h.UNIT_Z,T,C),C),$.multiplyByVector(I,C,C)),i.normal&&(p[M]=T.x,p[B]=T.y,p[U]=T.z,n&&(p[M+S]=-T.x,p[B+S]=-T.y,p[U+S]=-T.z)),i.tangent&&(g[M]=C.x,g[B]=C.y,g[U]=C.z,n&&(g[M+S]=-C.x,g[B+S]=-C.y,g[U+S]=-C.z)),i.bitangent&&(A=h.normalize(h.cross(T,C,A),A),m[M]=A.x,m[B]=A.y,m[U]=A.z,n&&(m[M+S]=A.x,m[B+S]=A.y,m[U+S]=A.z))))}if(i.st){_=d.length;for(let M=0;M<_;M+=2)d[M]=(d[M]-L.x)/(N.x-L.x),d[M+1]=(d[M+1]-L.y)/(N.y-L.y)}let P=new fn;if(i.position){let M=jl.raisePositionsToHeight(e,t,n);P.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:M})}if(i.st&&(P.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:d})),i.normal&&(P.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),i.tangent&&(P.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),i.bitangent&&(P.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),f&&(P.extrudeDirection=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),n&&l(t.offsetAttribute)){let M=new Uint8Array(u);if(t.offsetAttribute===an.TOP)M=M.fill(1,0,u/2);else{let B=t.offsetAttribute===an.NONE?0:1;M=M.fill(B)}P.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:M})}return P}function Wfe(e){let t=new Array(12*(e*(e+1))-6),n=0,i,o,r,s,a;for(i=0,r=1,s=0;s<3;s++)t[n++]=r++,t[n++]=i,t[n++]=r;for(s=2;s<e+1;++s){for(r=s*(s+1)-1,i=(s-1)*s-1,t[n++]=r++,t[n++]=i,t[n++]=r,o=2*s,a=0;a<o-1;++a)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;t[n++]=r++,t[n++]=i,t[n++]=r}for(o=e*2,++r,++i,s=0;s<o-1;++s)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;for(t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i++,t[n++]=i,++i,s=e-1;s>1;--s){for(t[n++]=i++,t[n++]=i,t[n++]=r,o=2*s,a=0;a<o-1;++a)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;t[n++]=i++,t[n++]=i++,t[n++]=r++}for(s=0;s<3;s++)t[n++]=i++,t[n++]=i,t[n++]=r;return t}var Kb=new h;function PXe(e){let t=e.center;Kb=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,Kb),e.height,Kb),Kb=h.add(t,Kb,Kb);let n=new ae(Kb,e.semiMajorAxis),i=jl.computeEllipsePositions(e,!0,!1),o=i.positions,r=i.numPts,s=Gfe(o,e,!1),a=Wfe(r);return a=Ne.createTypedArray(o.length/3,a),{boundingSphere:n,attributes:s,indices:a}}function IXe(e,t){let n=t.vertexFormat,i=t.center,o=t.semiMajorAxis,r=t.semiMinorAxis,s=t.ellipsoid,a=t.height,c=t.extrudedHeight,u=t.stRotation,f=e.length/3*2,d=new Float64Array(f*3),p=n.st?new Float32Array(f*2):void 0,g=n.normal?new Float32Array(f*3):void 0,m=n.tangent?new Float32Array(f*3):void 0,x=n.bitangent?new Float32Array(f*3):void 0,b=t.shadowVolume,T=b?new Float32Array(f*3):void 0,C=0,A=Bfe,E=kfe,v=Vfe,D=new Ci(s),O=D.project(s.cartesianToCartographic(i,Pz),Ufe),I=s.scaleToGeodeticSurface(i,UE);s.geodeticSurfaceNormal(I,I);let L=Me.fromAxisAngle(I,u,_7),N=$.fromQuaternion(L,Ffe),_=z.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,zfe),S=z.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Hfe),w=e.length,P=w/3*2;for(let B=0;B<w;B+=3){let U=B+1,V=B+2,G=h.fromArray(e,B,UE),k;if(n.st){let W=$.multiplyByVector(N,G,m7),Q=D.project(s.cartesianToCartographic(W,Pz),p7);h.subtract(Q,O,Q),Ts.x=(Q.x+o)/(2*o),Ts.y=(Q.y+r)/(2*r),_.x=Math.min(Ts.x,_.x),_.y=Math.min(Ts.y,_.y),S.x=Math.max(Ts.x,S.x),S.y=Math.max(Ts.y,S.y),p[C+P]=Ts.x,p[C+1+P]=Ts.y,p[C++]=Ts.x,p[C++]=Ts.y}G=s.scaleToGeodeticSurface(G,G),k=h.clone(G,m7),A=s.geodeticSurfaceNormal(G,A),b&&(T[B+w]=-A.x,T[U+w]=-A.y,T[V+w]=-A.z);let Y=h.multiplyByScalar(A,a,Nfe);if(G=h.add(G,Y,G),Y=h.multiplyByScalar(A,c,Y),k=h.add(k,Y,k),n.position&&(d[B+w]=k.x,d[U+w]=k.y,d[V+w]=k.z,d[B]=G.x,d[U]=G.y,d[V]=G.z),n.normal||n.tangent||n.bitangent){v=h.clone(A,v);let W=h.fromArray(e,(B+3)%w,Nfe);h.subtract(W,G,W);let Q=h.subtract(k,G,p7);A=h.normalize(h.cross(Q,W,A),A),n.normal&&(g[B]=A.x,g[U]=A.y,g[V]=A.z,g[B+w]=A.x,g[U+w]=A.y,g[V+w]=A.z),n.tangent&&(E=h.normalize(h.cross(v,A,E),E),m[B]=E.x,m[U]=E.y,m[V]=E.z,m[B+w]=E.x,m[B+1+w]=E.y,m[B+2+w]=E.z),n.bitangent&&(x[B]=v.x,x[U]=v.y,x[V]=v.z,x[B+w]=v.x,x[U+w]=v.y,x[V+w]=v.z)}}if(n.st){w=p.length;for(let B=0;B<w;B+=2)p[B]=(p[B]-_.x)/(S.x-_.x),p[B+1]=(p[B+1]-_.y)/(S.y-_.y)}let M=new fn;if(n.position&&(M.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})),n.st&&(M.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:p})),n.normal&&(M.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),n.tangent&&(M.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),n.bitangent&&(M.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),b&&(M.extrudeDirection=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),l(t.offsetAttribute)){let B=new Uint8Array(f);if(t.offsetAttribute===an.TOP)B=B.fill(1,0,f/2);else{let U=t.offsetAttribute===an.NONE?0:1;B=B.fill(U)}M.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:B})}return M}function RXe(e){let t=e.length/3,n=Ne.createTypedArray(t,t*6),i=0;for(let o=0;o<t;o++){let r=o,s=o+t,a=(r+1)%t,c=a+t;n[i++]=r,n[i++]=s,n[i++]=a,n[i++]=a,n[i++]=s,n[i++]=c}return n}var wz=new ae,Dz=new ae;function OXe(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,UE),e.height,UE);wz.center=h.add(t,o,wz.center),wz.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),Dz.center=h.add(t,o,Dz.center),Dz.radius=i;let r=jl.computeEllipsePositions(e,!0,!0),s=r.positions,a=r.numPts,c=r.outerPositions,u=ae.union(wz,Dz),f=Gfe(s,e,!0),d=Wfe(a),p=d.length;d.length=p*2;let g=s.length/3;for(let E=0;E<p;E+=3)d[E+p]=d[E+2]+g,d[E+1+p]=d[E+1]+g,d[E+2+p]=d[E]+g;let m=Ne.createTypedArray(g*2/3,d),x=new st({attributes:f,indices:m,primitiveType:Le.TRIANGLES}),b=IXe(c,e);d=RXe(c);let T=Ne.createTypedArray(c.length*2/3,d),C=new st({attributes:b,indices:T,primitiveType:Le.TRIANGLES}),A=Nn.combineInstances([new xt({geometry:x}),new xt({geometry:C})]);return{boundingSphere:u,attributes:A[0].attributes,indices:A[0].indices}}function jfe(e,t,n,i,o,r,s){let c=jl.computeEllipsePositions({center:e,semiMajorAxis:t,semiMinorAxis:n,rotation:i,granularity:o},!1,!0).outerPositions,u=c.length/3,f=new Array(u);for(let p=0;p<u;++p)f[p]=h.fromArray(c,p*3);let d=se.fromCartesianArray(f,r,s);return d.width>R.PI&&(d.north=d.north>0?R.PI_OVER_TWO-R.EPSILON7:d.north,d.south=d.south<0?R.EPSILON7-R.PI_OVER_TWO:d.south,d.east=R.PI,d.west=-R.PI),d}function wm(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,te.WGS84),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,R.RADIANS_PER_DEGREE),s=y(e.vertexFormat,Ie.DEFAULT),a=y(e.height,0),c=y(e.extrudedHeight,a);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=te.clone(n),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._height=Math.max(c,a),this._granularity=r,this._vertexFormat=Ie.clone(s),this._extrudedHeight=Math.min(c,a),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}wm.packedLength=h.packedLength+te.packedLength+Ie.packedLength+9;wm.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,te.pack(e._ellipsoid,t,n),n+=te.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var qfe=new h,Yfe=new te,Xfe=new Ie,vm={center:qfe,ellipsoid:Yfe,vertexFormat:Xfe,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};wm.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,qfe);t+=h.packedLength;let o=te.unpack(e,t,Yfe);t+=te.packedLength;let r=Ie.unpack(e,t,Xfe);t+=Ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t++],g=e[t++]===1,m=e[t];return l(n)?(n._center=h.clone(i,n._center),n._ellipsoid=te.clone(o,n._ellipsoid),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._semiMajorAxis=s,n._semiMinorAxis=a,n._rotation=c,n._stRotation=u,n._height=f,n._granularity=d,n._extrudedHeight=p,n._shadowVolume=g,n._offsetAttribute=m===-1?void 0:m,n):(vm.height=f,vm.extrudedHeight=p,vm.granularity=d,vm.stRotation=u,vm.rotation=c,vm.semiMajorAxis=s,vm.semiMinorAxis=a,vm.shadowVolume=g,vm.offsetAttribute=m===-1?void 0:m,new wm(vm))};wm.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.center,i=y(e.ellipsoid,te.WGS84),o=e.semiMajorAxis,r=e.semiMinorAxis,s=y(e.granularity,R.RADIANS_PER_DEGREE),a=y(e.rotation,0);return jfe(n,o,r,a,s,i,t)};wm.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!R.equalsEpsilon(t,n,0,R.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,vertexFormat:e._vertexFormat,stRotation:e._stRotation},r;if(i)o.extrudedHeight=n,o.shadowVolume=e._shadowVolume,o.offsetAttribute=e._offsetAttribute,r=OXe(o);else if(r=PXe(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===an.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new st({attributes:r.attributes,indices:r.indices,primitiveType:Le.TRIANGLES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};wm.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new wm({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:o,rotation:e._rotation,stRotation:e._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0})};function MXe(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let i=jl.computeEllipsePositions({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,rotation:e._rotation,granularity:e._granularity},!1,!0).outerPositions,o=i.length/3,r=new Array(o);for(let c=0;c<o;++c)r[c]=h.fromArray(i,c*3);let s=e._ellipsoid,a=e.rectangle;return st._textureCoordinateRotationPoints(r,t,s,a)}Object.defineProperties(wm.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=jfe(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=MXe(this)),this._textureCoordinateRotationPoints}}});var rl=wm;var Kfe=new h,Zb=new h;function LXe(e){let t=e.center;Zb=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,Zb),e.height,Zb),Zb=h.add(t,Zb,Zb);let n=new ae(Zb,e.semiMajorAxis),i=jl.computeEllipsePositions(e,!1,!0).outerPositions,o=new fn({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:jl.raisePositionsToHeight(i,e,!1)})}),r=i.length/3,s=Ne.createTypedArray(r,r*2),a=0;for(let c=0;c<r;++c)s[a++]=c,s[a++]=(c+1)%r;return{boundingSphere:n,attributes:o,indices:s}}var Iz=new ae,Rz=new ae;function NXe(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,Kfe),e.height,Kfe);Iz.center=h.add(t,o,Iz.center),Iz.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),Rz.center=h.add(t,o,Rz.center),Rz.radius=i;let r=jl.computeEllipsePositions(e,!1,!0).outerPositions,s=new fn({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:jl.raisePositionsToHeight(r,e,!0)})});r=s.position.values;let a=ae.union(Iz,Rz),c=r.length/3;if(l(e.offsetAttribute)){let m=new Uint8Array(c);if(e.offsetAttribute===an.TOP)m=m.fill(1,0,c/2);else{let x=e.offsetAttribute===an.NONE?0:1;m=m.fill(x)}s.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:m})}let u=y(e.numberOfVerticalLines,16);u=R.clamp(u,0,c/2);let f=Ne.createTypedArray(c,c*2+u*2);c/=2;let d=0,p;for(p=0;p<c;++p)f[d++]=p,f[d++]=(p+1)%c,f[d++]=p+c,f[d++]=(p+1)%c+c;let g;if(u>0){let m=Math.min(u,c);g=Math.round(c/m);let x=Math.min(g*u,c);for(p=0;p<x;p+=g)f[d++]=p,f[d++]=p+c}return{boundingSphere:a,attributes:s,indices:f}}function zE(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,te.WGS84),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,R.RADIANS_PER_DEGREE),s=y(e.height,0),a=y(e.extrudedHeight,s);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=te.clone(n),this._rotation=y(e.rotation,0),this._height=Math.max(a,s),this._granularity=r,this._extrudedHeight=Math.min(a,s),this._numberOfVerticalLines=Math.max(y(e.numberOfVerticalLines,16),0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}zE.packedLength=h.packedLength+te.packedLength+8;zE.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,te.pack(e._ellipsoid,t,n),n+=te.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._numberOfVerticalLines,t[n]=y(e._offsetAttribute,-1),t};var Zfe=new h,$fe=new te,B_={center:Zfe,ellipsoid:$fe,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};zE.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,Zfe);t+=h.packedLength;let o=te.unpack(e,t,$fe);t+=te.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._center=h.clone(i,n._center),n._ellipsoid=te.clone(o,n._ellipsoid),n._semiMajorAxis=r,n._semiMinorAxis=s,n._rotation=a,n._height=c,n._granularity=u,n._extrudedHeight=f,n._numberOfVerticalLines=d,n._offsetAttribute=p===-1?void 0:p,n):(B_.height=c,B_.extrudedHeight=f,B_.granularity=u,B_.rotation=a,B_.semiMajorAxis=r,B_.semiMinorAxis=s,B_.numberOfVerticalLines=d,B_.offsetAttribute=p===-1?void 0:p,new zE(B_))};zE.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!R.equalsEpsilon(t,n,0,R.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,numberOfVerticalLines:e._numberOfVerticalLines},r;if(i)o.extrudedHeight=n,o.offsetAttribute=e._offsetAttribute,r=NXe(o);else if(r=LXe(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===an.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new st({attributes:r.attributes,indices:r.indices,primitiveType:Le.LINES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};var Mu=zE;var Qfe=new H,Jfe=h.ZERO,ede=new h,tde=new se;function FXe(e){this.id=e,this.vertexFormat=void 0,this.center=void 0,this.semiMajorAxis=void 0,this.semiMinorAxis=void 0,this.rotation=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function fh(e,t){Wn.call(this,{entity:e,scene:t,geometryOptions:new FXe(e),geometryPropertyName:"ellipse",observedPropertyNames:["availability","position","ellipse"]}),this._onEntityPropertyChanged(e,"ellipse",e.ellipse,void 0)}l(Object.create)&&(fh.prototype=Object.create(Wn.prototype),fh.prototype.constructor=fh);fh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof kt){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,Qfe)),l(o)||(o=H.WHITE),i.color=zt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Jfe,ede))),new xt({id:t,geometry:new rl(this._options),attributes:i})};fh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Qfe),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:zt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Jfe,ede))),new xt({id:t,geometry:new Mu(this._options),attributes:r})};fh.prototype._computeCenter=function(e,t){return q.getValueOrUndefined(this._entity.position,e,t)};fh.prototype._isHidden=function(e,t){let n=e.position;return!l(n)||!l(t.semiMajorAxis)||!l(t.semiMinorAxis)||ni.prototype._isHidden.call(this,e,t)};fh.prototype._isDynamic=function(e,t){return!e.position.isConstant||!t.semiMajorAxis.isConstant||!t.semiMinorAxis.isConstant||!q.isConstant(t.rotation)||!q.isConstant(t.height)||!q.isConstant(t.extrudedHeight)||!q.isConstant(t.granularity)||!q.isConstant(t.stRotation)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.numberOfVerticalLines)||!q.isConstant(t.zIndex)||this._onTerrain&&!q.isConstant(this._materialProperty)&&!(this._materialProperty instanceof kt)};fh.prototype._setStaticOptions=function(e,t){let n=q.getValueOrUndefined(t.height,Ue.MINIMUM_VALUE),i=q.getValueOrDefault(t.heightReference,Ue.MINIMUM_VALUE,qe.NONE),o=q.getValueOrUndefined(t.extrudedHeight,Ue.MINIMUM_VALUE),r=q.getValueOrDefault(t.extrudedHeightReference,Ue.MINIMUM_VALUE,qe.NONE);l(o)&&!l(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof kt?cn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,s.center=e.position.getValue(Ue.MINIMUM_VALUE,s.center),s.semiMajorAxis=t.semiMajorAxis.getValue(Ue.MINIMUM_VALUE,s.semiMajorAxis),s.semiMinorAxis=t.semiMinorAxis.getValue(Ue.MINIMUM_VALUE,s.semiMinorAxis),s.rotation=q.getValueOrUndefined(t.rotation,Ue.MINIMUM_VALUE),s.granularity=q.getValueOrUndefined(t.granularity,Ue.MINIMUM_VALUE),s.stRotation=q.getValueOrUndefined(t.stRotation,Ue.MINIMUM_VALUE),s.numberOfVerticalLines=q.getValueOrUndefined(t.numberOfVerticalLines,Ue.MINIMUM_VALUE),s.offsetAttribute=Wn.computeGeometryOffsetAttribute(n,i,o,r),s.height=Wn.getGeometryHeight(n,i),o=Wn.getGeometryExtrudedHeight(o,r),o===Wn.CLAMP_TO_GROUND&&(o=ci.getMinimumMaximumHeights(rl.computeRectangle(s,tde)).minimumTerrainHeight),s.extrudedHeight=o};fh.DynamicGeometryUpdater=HE;function HE(e,t,n){ti.call(this,e,t,n)}l(Object.create)&&(HE.prototype=Object.create(ti.prototype),HE.prototype.constructor=HE);HE.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.center)||!l(i.semiMajorAxis)||!l(i.semiMinorAxis)||ti.prototype._isHidden.call(this,e,t,n)};HE.prototype._setOptions=function(e,t,n){let i=this._options,o=q.getValueOrUndefined(t.height,n),r=q.getValueOrDefault(t.heightReference,n,qe.NONE),s=q.getValueOrUndefined(t.extrudedHeight,n),a=q.getValueOrDefault(t.extrudedHeightReference,n,qe.NONE);l(s)&&!l(o)&&(o=0),i.center=q.getValueOrUndefined(e.position,n,i.center),i.semiMajorAxis=q.getValueOrUndefined(t.semiMajorAxis,n),i.semiMinorAxis=q.getValueOrUndefined(t.semiMinorAxis,n),i.rotation=q.getValueOrUndefined(t.rotation,n),i.granularity=q.getValueOrUndefined(t.granularity,n),i.stRotation=q.getValueOrUndefined(t.stRotation,n),i.numberOfVerticalLines=q.getValueOrUndefined(t.numberOfVerticalLines,n),i.offsetAttribute=Wn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Wn.getGeometryHeight(o,r),s=Wn.getGeometryExtrudedHeight(s,a),s===Wn.CLAMP_TO_GROUND&&(s=ci.getMinimumMaximumHeights(rl.computeRectangle(i,tde)).minimumTerrainHeight),i.extrudedHeight=s};var DL=fh;var BXe=new h,kXe=new h,VXe=new h,UXe=new h,zXe=new h,HXe=new h(1,1,1),nde=Math.cos,ide=Math.sin;function k_(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,HXe),n=y(e.innerRadii,t),i=y(e.minimumClock,0),o=y(e.maximumClock,R.TWO_PI),r=y(e.minimumCone,0),s=y(e.maximumCone,R.PI),a=Math.round(y(e.stackPartitions,64)),c=Math.round(y(e.slicePartitions,64)),u=y(e.vertexFormat,Ie.DEFAULT);this._radii=h.clone(t),this._innerRadii=h.clone(n),this._minimumClock=i,this._maximumClock=o,this._minimumCone=r,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._vertexFormat=Ie.clone(u),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}k_.packedLength=2*h.packedLength+Ie.packedLength+7;k_.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),n+=h.packedLength,h.pack(e._innerRadii,t,n),n+=h.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n]=y(e._offsetAttribute,-1),t};var ode=new h,rde=new h,sde=new Ie,Gy={radii:ode,innerRadii:rde,vertexFormat:sde,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};k_.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,ode);t+=h.packedLength;let o=h.unpack(e,t,rde);t+=h.packedLength;let r=Ie.unpack(e,t,sde);t+=Ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(o,n._innerRadii),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._minimumClock=s,n._maximumClock=a,n._minimumCone=c,n._maximumCone=u,n._stackPartitions=f,n._slicePartitions=d,n._offsetAttribute=p===-1?void 0:p,n):(Gy.minimumClock=s,Gy.maximumClock=a,Gy.minimumCone=c,Gy.maximumCone=u,Gy.stackPartitions=f,Gy.slicePartitions=d,Gy.offsetAttribute=p===-1?void 0:p,new k_(Gy))};k_.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,o=e._maximumClock,r=e._minimumCone,s=e._maximumCone,a=e._vertexFormat,c=e._slicePartitions+1,u=e._stackPartitions+1;c=Math.round(c*Math.abs(o-i)/R.TWO_PI),u=Math.round(u*Math.abs(s-r)/R.PI),c<2&&(c=2),u<2&&(u=2);let f,d,p=0,g=[r],m=[i];for(f=0;f<u;f++)g.push(r+f*(s-r)/(u-1));for(g.push(s),d=0;d<c;d++)m.push(i+d*(o-i)/(c-1));m.push(o);let x=g.length,b=m.length,T=0,C=1,A=n.x!==t.x||n.y!==t.y||n.z!==t.z,E=!1,v=!1,D=!1;A&&(C=2,r>0&&(E=!0,T+=c-1),s<Math.PI&&(v=!0,T+=c-1),(o-i)%R.TWO_PI?(D=!0,T+=(u-1)*2+1):T+=1);let O=b*x*C,I=new Float64Array(O*3),L=new Array(O).fill(!1),N=new Array(O).fill(!1),_=c*u*C,S=6*(_+T+1-(c+u)*C),w=Ne.createTypedArray(_,S),P=a.normal?new Float32Array(O*3):void 0,M=a.tangent?new Float32Array(O*3):void 0,B=a.bitangent?new Float32Array(O*3):void 0,U=a.st?new Float32Array(O*2):void 0,V=new Array(x),G=new Array(x);for(f=0;f<x;f++)V[f]=ide(g[f]),G[f]=nde(g[f]);let k=new Array(b),Y=new Array(b);for(d=0;d<b;d++)Y[d]=nde(m[d]),k[d]=ide(m[d]);for(f=0;f<x;f++)for(d=0;d<b;d++)I[p++]=t.x*V[f]*Y[d],I[p++]=t.y*V[f]*k[d],I[p++]=t.z*G[f];let W=O/2;if(A)for(f=0;f<x;f++)for(d=0;d<b;d++)I[p++]=n.x*V[f]*Y[d],I[p++]=n.y*V[f]*k[d],I[p++]=n.z*G[f],L[W]=!0,f>0&&f!==x-1&&d!==0&&d!==b-1&&(N[W]=!0),W++;p=0;let Q,j;for(f=1;f<x-2;f++)for(Q=f*b,j=(f+1)*b,d=1;d<b-2;d++)w[p++]=j+d,w[p++]=j+d+1,w[p++]=Q+d+1,w[p++]=j+d,w[p++]=Q+d+1,w[p++]=Q+d;if(A){let At=x*b;for(f=1;f<x-2;f++)for(Q=At+f*b,j=At+(f+1)*b,d=1;d<b-2;d++)w[p++]=j+d,w[p++]=Q+d,w[p++]=Q+d+1,w[p++]=j+d,w[p++]=Q+d+1,w[p++]=j+d+1}let K,Z;if(A){if(E)for(Z=x*b,f=1;f<b-2;f++)w[p++]=f,w[p++]=f+1,w[p++]=Z+f+1,w[p++]=f,w[p++]=Z+f+1,w[p++]=Z+f;if(v)for(K=x*b-b,Z=x*b*C-b,f=1;f<b-2;f++)w[p++]=K+f+1,w[p++]=K+f,w[p++]=Z+f,w[p++]=K+f+1,w[p++]=Z+f,w[p++]=Z+f+1}if(D){for(f=1;f<x-2;f++)Z=b*x+b*f,K=b*f,w[p++]=Z,w[p++]=K+b,w[p++]=K,w[p++]=Z,w[p++]=Z+b,w[p++]=K+b;for(f=1;f<x-2;f++)Z=b*x+b*(f+1)-1,K=b*(f+1)-1,w[p++]=K+b,w[p++]=Z,w[p++]=K,w[p++]=K+b,w[p++]=Z+b,w[p++]=Z}let he=new fn;a.position&&(he.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:I}));let be=0,re=0,_e=0,xe=0,Ce=O/2,we,Oe=te.fromCartesian3(t),ke=te.fromCartesian3(n);if(a.st||a.normal||a.tangent||a.bitangent){for(f=0;f<O;f++){we=L[f]?ke:Oe;let At=h.fromArray(I,f*3,BXe),Bt=we.geodeticSurfaceNormal(At,kXe);if(N[f]&&h.negate(Bt,Bt),a.st){let rt=z.negate(Bt,zXe);U[be++]=Math.atan2(rt.y,rt.x)/R.TWO_PI+.5,U[be++]=Math.asin(Bt.z)/Math.PI+.5}if(a.normal&&(P[re++]=Bt.x,P[re++]=Bt.y,P[re++]=Bt.z),a.tangent||a.bitangent){let rt=VXe,Qe=0,Kt;if(L[f]&&(Qe=Ce),!E&&f>=Qe&&f<Qe+b*2?Kt=h.UNIT_X:Kt=h.UNIT_Z,h.cross(Kt,Bt,rt),h.normalize(rt,rt),a.tangent&&(M[_e++]=rt.x,M[_e++]=rt.y,M[_e++]=rt.z),a.bitangent){let ht=h.cross(Bt,rt,UXe);h.normalize(ht,ht),B[xe++]=ht.x,B[xe++]=ht.y,B[xe++]=ht.z}}}a.st&&(he.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:U})),a.normal&&(he.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:P})),a.tangent&&(he.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:M})),a.bitangent&&(he.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:B}))}if(l(e._offsetAttribute)){let At=I.length,Bt=e._offsetAttribute===an.NONE?0:1,rt=new Uint8Array(At/3).fill(Bt);he.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:rt})}return new st({attributes:he,indices:w,primitiveType:Le.TRIANGLES,boundingSphere:ae.fromEllipsoid(Oe),offsetAttribute:e._offsetAttribute})};var g7;k_.getUnitEllipsoid=function(){return l(g7)||(g7=k_.createGeometry(new k_({radii:new h(1,1,1),vertexFormat:Ie.POSITION_ONLY}))),g7};var Ws=k_;var GXe=new kt(H.WHITE),y7=h.ZERO,x7=new h,WXe=new h,jXe=new h,b7=new H,qXe=new h(1,1,1);function YXe(e){this.id=e,this.vertexFormat=void 0,this.radii=void 0,this.innerRadii=void 0,this.minimumClock=void 0,this.maximumClock=void 0,this.minimumCone=void 0,this.maximumCone=void 0,this.stackPartitions=void 0,this.slicePartitions=void 0,this.subdivisions=void 0,this.offsetAttribute=void 0}function Lu(e,t){ni.call(this,{entity:e,scene:t,geometryOptions:new YXe(e),geometryPropertyName:"ellipsoid",observedPropertyNames:["availability","position","orientation","ellipsoid"]}),this._onEntityPropertyChanged(e,"ellipsoid",e.ellipsoid,void 0)}l(Object.create)&&(Lu.prototype=Object.create(ni.prototype),Lu.prototype.constructor=Lu);Object.defineProperties(Lu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Lu.prototype.createFillGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r,s=new gn(o&&i.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),a=this._distanceDisplayConditionProperty.getValue(e),c=kn.fromDistanceDisplayCondition(a),u={show:s,distanceDisplayCondition:c,color:void 0,offset:void 0};if(this._materialProperty instanceof kt){let f;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||o)&&(f=this._materialProperty.color.getValue(e,b7)),l(f)||(f=H.WHITE),r=zt.fromColor(f),u.color=r}return l(this._options.offsetAttribute)&&(u.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,y7,x7))),new xt({id:i,geometry:new Ws(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.mapProjection.ellipsoid,n),attributes:u})};Lu.prototype.createOutlineGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,b7),s=this._distanceDisplayConditionProperty.getValue(e),a={show:new gn(o&&i.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:zt.fromColor(r),distanceDisplayCondition:kn.fromDistanceDisplayCondition(s),offset:void 0};return l(this._options.offsetAttribute)&&(a.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,y7,x7))),new xt({id:i,geometry:new Su(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.mapProjection.ellipsoid,n),attributes:a})};Lu.prototype._computeCenter=function(e,t){return q.getValueOrUndefined(this._entity.position,e,t)};Lu.prototype._isHidden=function(e,t){return!l(e.position)||!l(t.radii)||ni.prototype._isHidden.call(this,e,t)};Lu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!q.isConstant(e.orientation)||!t.radii.isConstant||!q.isConstant(t.innerRadii)||!q.isConstant(t.stackPartitions)||!q.isConstant(t.slicePartitions)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.minimumClock)||!q.isConstant(t.maximumClock)||!q.isConstant(t.minimumCone)||!q.isConstant(t.maximumCone)||!q.isConstant(t.subdivisions)};Lu.prototype._setStaticOptions=function(e,t){let n=q.getValueOrDefault(t.heightReference,Ue.MINIMUM_VALUE,qe.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof kt?cn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,i.radii=t.radii.getValue(Ue.MINIMUM_VALUE,i.radii),i.innerRadii=q.getValueOrUndefined(t.innerRadii,i.radii),i.minimumClock=q.getValueOrUndefined(t.minimumClock,Ue.MINIMUM_VALUE),i.maximumClock=q.getValueOrUndefined(t.maximumClock,Ue.MINIMUM_VALUE),i.minimumCone=q.getValueOrUndefined(t.minimumCone,Ue.MINIMUM_VALUE),i.maximumCone=q.getValueOrUndefined(t.maximumCone,Ue.MINIMUM_VALUE),i.stackPartitions=q.getValueOrUndefined(t.stackPartitions,Ue.MINIMUM_VALUE),i.slicePartitions=q.getValueOrUndefined(t.slicePartitions,Ue.MINIMUM_VALUE),i.subdivisions=q.getValueOrUndefined(t.subdivisions,Ue.MINIMUM_VALUE),i.offsetAttribute=n!==qe.NONE?an.ALL:void 0};Lu.prototype._onEntityPropertyChanged=Lp;Lu.DynamicGeometryUpdater=PL;function PL(e,t,n){ti.call(this,e,t,n),this._scene=e._scene,this._modelMatrix=new F,this._attributes=void 0,this._outlineAttributes=void 0,this._lastSceneMode=void 0,this._lastShow=void 0,this._lastOutlineShow=void 0,this._lastOutlineWidth=void 0,this._lastOutlineColor=void 0,this._lastOffset=new h,this._material={}}l(Object.create)&&(PL.prototype=Object.create(ti.prototype),PL.prototype.constructor=PL);PL.prototype.update=function(e){let t=this._entity,n=t.ellipsoid;if(!t.isShowing||!t.isAvailable(e)||!q.getValueOrDefault(n.show,e,!0)){l(this._primitive)&&(this._primitive.show=!1),l(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let i=q.getValueOrUndefined(n.radii,e,WXe),o=l(i)?t.computeModelMatrixForHeightReference(e,n.heightReference,i.z*.5,this._scene.mapProjection.ellipsoid,this._modelMatrix):void 0;if(!l(o)||!l(i)){l(this._primitive)&&(this._primitive.show=!1),l(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let r=q.getValueOrDefault(n.fill,e,!0),s=q.getValueOrDefault(n.outline,e,!1),a=q.getValueOrClonedDefault(n.outlineColor,e,H.BLACK,b7),c=Ko.getValue(e,y(n.material,GXe),this._material),u=q.getValueOrUndefined(n.innerRadii,e,jXe),f=q.getValueOrUndefined(n.minimumClock,e),d=q.getValueOrUndefined(n.maximumClock,e),p=q.getValueOrUndefined(n.minimumCone,e),g=q.getValueOrUndefined(n.maximumCone,e),m=q.getValueOrUndefined(n.stackPartitions,e),x=q.getValueOrUndefined(n.slicePartitions,e),b=q.getValueOrUndefined(n.subdivisions,e),T=q.getValueOrDefault(n.outlineWidth,e,1),C=q.getValueOrDefault(n.heightReference,e,qe.NONE),A=C!==qe.NONE?an.ALL:void 0,E=this._scene.mode,v=E===ne.SCENE3D&&C===qe.NONE,D=this._options,O=this._geometryUpdater.shadowsProperty.getValue(e),L=this._geometryUpdater.distanceDisplayConditionProperty.getValue(e),N=q.getValueOrDefault(this._geometryUpdater.terrainOffsetProperty,e,y7,x7);if(!v||this._lastSceneMode!==E||!l(this._primitive)||D.stackPartitions!==m||D.slicePartitions!==x||l(u)&&!h.equals(D.innerRadii!==u)||D.minimumClock!==f||D.maximumClock!==d||D.minimumCone!==p||D.maximumCone!==g||D.subdivisions!==b||this._lastOutlineWidth!==T||D.offsetAttribute!==A){let S=this._primitives;S.removeAndDestroy(this._primitive),S.removeAndDestroy(this._outlinePrimitive),this._primitive=void 0,this._outlinePrimitive=void 0,this._lastSceneMode=E,this._lastOutlineWidth=T,D.stackPartitions=m,D.slicePartitions=x,D.subdivisions=b,D.offsetAttribute=A,D.radii=h.clone(v?qXe:i,D.radii),l(u)?v?D.innerRadii=h.fromElements(u.x/i.x,u.y/i.y,u.z/i.z,D.innerRadii):D.innerRadii=h.clone(u,D.innerRadii):D.innerRadii=void 0,D.minimumClock=f,D.maximumClock=d,D.minimumCone=p,D.maximumCone=g;let w=new ro({material:c,translucent:c.isTranslucent(),closed:!0});D.vertexFormat=w.vertexFormat;let P=this._geometryUpdater.createFillGeometryInstance(e,v,this._modelMatrix);this._primitive=S.add(new vn({geometryInstances:P,appearance:w,asynchronous:!1,shadows:O}));let M=this._geometryUpdater.createOutlineGeometryInstance(e,v,this._modelMatrix);this._outlinePrimitive=S.add(new vn({geometryInstances:M,appearance:new cn({flat:!0,translucent:M.attributes.color.value[3]!==255,renderState:{lineWidth:this._geometryUpdater._scene.clampLineWidth(T)}}),asynchronous:!1,shadows:O})),this._lastShow=r,this._lastOutlineShow=s,this._lastOutlineColor=H.clone(a,this._lastOutlineColor),this._lastDistanceDisplayCondition=L,this._lastOffset=h.clone(N,this._lastOffset)}else if(this._primitive.ready){let S=this._primitive,w=this._outlinePrimitive;S.show=!0,w.show=!0,S.appearance.material=c;let P=this._attributes;l(P)||(P=S.getGeometryInstanceAttributes(t),this._attributes=P),r!==this._lastShow&&(P.show=gn.toValue(r,P.show),this._lastShow=r);let M=this._outlineAttributes;l(M)||(M=w.getGeometryInstanceAttributes(t),this._outlineAttributes=M),s!==this._lastOutlineShow&&(M.show=gn.toValue(s,M.show),this._lastOutlineShow=s),H.equals(a,this._lastOutlineColor)||(M.color=zt.toValue(a,M.color),H.clone(a,this._lastOutlineColor)),It.equals(L,this._lastDistanceDisplayCondition)||(P.distanceDisplayCondition=kn.toValue(L,P.distanceDisplayCondition),M.distanceDisplayCondition=kn.toValue(L,M.distanceDisplayCondition),It.clone(L,this._lastDistanceDisplayCondition)),h.equals(N,this._lastOffset)||(P.offset=Yi.toValue(N,P.offset),M.offset=Yi.toValue(N,P.offset),h.clone(N,this._lastOffset))}v&&(i.x=Math.max(i.x,.001),i.y=Math.max(i.y,.001),i.z=Math.max(i.z,.001),o=F.multiplyByScale(o,i,o),this._primitive.modelMatrix=o,this._outlinePrimitive.modelMatrix=o)};var IL=Lu;function GE(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.vertexFormat,Ie.DEFAULT);this._vertexFormat=t,this._workerName="createPlaneGeometry"}GE.packedLength=Ie.packedLength;GE.pack=function(e,t,n){return n=y(n,0),Ie.pack(e._vertexFormat,t,n),t};var ade=new Ie,XXe={vertexFormat:ade};GE.unpack=function(e,t,n){t=y(t,0);let i=Ie.unpack(e,t,ade);return l(n)?(n._vertexFormat=Ie.clone(i,n._vertexFormat),n):new GE(XXe)};var Oz=new h(-.5,-.5,0),Mz=new h(.5,.5,0);GE.createGeometry=function(e){let t=e._vertexFormat,n=new fn,i,o;if(t.position){if(o=new Float64Array(4*3),o[0]=Oz.x,o[1]=Oz.y,o[2]=0,o[3]=Mz.x,o[4]=Oz.y,o[5]=0,o[6]=Mz.x,o[7]=Mz.y,o[8]=0,o[9]=Oz.x,o[10]=Mz.y,o[11]=0,n.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:o}),t.normal){let r=new Float32Array(12);r[0]=0,r[1]=0,r[2]=1,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=1,r[9]=0,r[10]=0,r[11]=1,n.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}if(t.st){let r=new Float32Array(8);r[0]=0,r[1]=0,r[2]=1,r[3]=0,r[4]=1,r[5]=1,r[6]=0,r[7]=1,n.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:r})}if(t.tangent){let r=new Float32Array(12);r[0]=1,r[1]=0,r[2]=0,r[3]=1,r[4]=0,r[5]=0,r[6]=1,r[7]=0,r[8]=0,r[9]=1,r[10]=0,r[11]=0,n.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}if(t.bitangent){let r=new Float32Array(12);r[0]=0,r[1]=1,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=0,r[7]=1,r[8]=0,r[9]=0,r[10]=1,r[11]=0,n.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}i=new Uint16Array(2*3),i[0]=0,i[1]=1,i[2]=2,i[3]=0,i[4]=2,i[5]=3}return new st({attributes:n,indices:i,primitiveType:Le.TRIANGLES,boundingSphere:new ae(h.ZERO,Math.sqrt(2))})};var RL=GE;function WE(){this._workerName="createPlaneOutlineGeometry"}WE.packedLength=0;WE.pack=function(e,t){return t};WE.unpack=function(e,t,n){return l(n)?n:new WE};var Wy=new h(-.5,-.5,0),Lz=new h(.5,.5,0);WE.createGeometry=function(){let e=new fn,t=new Uint16Array(4*2),n=new Float64Array(4*3);return n[0]=Wy.x,n[1]=Wy.y,n[2]=Wy.z,n[3]=Lz.x,n[4]=Wy.y,n[5]=Wy.z,n[6]=Lz.x,n[7]=Lz.y,n[8]=Wy.z,n[9]=Wy.x,n[10]=Lz.y,n[11]=Wy.z,e.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n}),t[0]=0,t[1]=1,t[2]=1,t[3]=2,t[4]=2,t[5]=3,t[6]=3,t[7]=0,new st({attributes:e,indices:t,primitiveType:Le.LINES,boundingSphere:new ae(h.ZERO,Math.sqrt(2))})};var OL=WE;var KXe=new h,cde=new H;function ZXe(e){this.id=e,this.vertexFormat=void 0,this.plane=void 0,this.dimensions=void 0}function Xf(e,t){ni.call(this,{entity:e,scene:t,geometryOptions:new ZXe(e),geometryPropertyName:"plane",observedPropertyNames:["availability","position","orientation","plane"]}),this._onEntityPropertyChanged(e,"plane",e.plane,void 0)}l(Object.create)&&(Xf.prototype=Object.create(ni.prototype),Xf.prototype.constructor=Xf);Xf.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof kt){let g;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(g=this._materialProperty.color.getValue(e,cde)),l(g)||(g=H.WHITE),o=zt.fromColor(g),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};let c=t.plane,u=this._options,f=t.computeModelMatrix(e),d=q.getValueOrDefault(c.plane,e,u.plane),p=q.getValueOrUndefined(c.dimensions,e,u.dimensions);return u.plane=d,u.dimensions=p,f=T7(d,p,f,f),new xt({id:t,geometry:new RL(this._options),modelMatrix:f,attributes:i})};Xf.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,cde),o=this._distanceDisplayConditionProperty.getValue(e),r=t.plane,s=this._options,a=t.computeModelMatrix(e),c=q.getValueOrDefault(r.plane,e,s.plane),u=q.getValueOrUndefined(r.dimensions,e,s.dimensions);return s.plane=c,s.dimensions=u,a=T7(c,u,a,a),new xt({id:t,geometry:new OL,modelMatrix:a,attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:zt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};Xf.prototype._isHidden=function(e,t){return!l(t.plane)||!l(t.dimensions)||!l(e.position)||ni.prototype._isHidden.call(this,e,t)};Xf.prototype._getIsClosed=function(e){return!1};Xf.prototype._isDynamic=function(e,t){return!e.position.isConstant||!q.isConstant(e.orientation)||!t.plane.isConstant||!t.dimensions.isConstant||!q.isConstant(t.outlineWidth)};Xf.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof kt,i=this._options;i.vertexFormat=n?cn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,i.plane=t.plane.getValue(Ue.MINIMUM_VALUE,i.plane),i.dimensions=t.dimensions.getValue(Ue.MINIMUM_VALUE,i.dimensions)};Xf.DynamicGeometryUpdater=jE;function jE(e,t,n){ti.call(this,e,t,n)}l(Object.create)&&(jE.prototype=Object.create(ti.prototype),jE.prototype.constructor=jE);jE.prototype._isHidden=function(e,t,n){let i=this._options,o=q.getValueOrUndefined(e.position,n,KXe);return!l(o)||!l(i.plane)||!l(i.dimensions)||ti.prototype._isHidden.call(this,e,t,n)};jE.prototype._setOptions=function(e,t,n){let i=this._options;i.plane=q.getValueOrDefault(t.plane,n,i.plane),i.dimensions=q.getValueOrUndefined(t.dimensions,n,i.dimensions)};var $Xe=new h,QXe=new h,JXe=new h,eKe=new h,tKe=new $,nKe=new $,iKe=new F;function T7(e,t,n,i){let o=e.normal,r=e.distance,s=h.multiplyByScalar(o,-r,JXe),a=h.clone(h.UNIT_Z,QXe);R.equalsEpsilon(Math.abs(h.dot(a,o)),1,R.EPSILON8)&&(a=h.clone(h.UNIT_Y,a));let c=h.cross(a,o,$Xe);a=h.cross(o,c,a),h.normalize(c,c),h.normalize(a,a);let u=tKe;$.setColumn(u,0,c,u),$.setColumn(u,1,a,u),$.setColumn(u,2,o,u);let f=h.fromElements(t.x,t.y,1,eKe),d=$.multiplyByScale(u,f,nKe),p=F.fromRotationTranslation(d,s,iKe);return F.multiplyTransformation(n,p,i)}Xf.createPrimitiveMatrix=T7;var ML=Xf;var oKe=new h,rKe=new Ge,sKe=new z,aKe=new z,cKe=new h,lKe=new h,uKe=new h,LL=new h,fKe=new h,dKe=new h,lde=new Me,hKe=new $,mKe=new $,pKe=new h;function _Ke(e,t,n,i,o,r,s,a,c){let u=e.positions,f=si.triangulate(e.positions2D,e.holes);f.length<3&&(f=[0,1,2]);let d=Ne.createTypedArray(u.length,f.length);d.set(f);let p=hKe;if(i!==0){let _=Me.fromAxisAngle(s,i,lde);if(p=$.fromQuaternion(_,p),t.tangent||t.bitangent){_=Me.fromAxisAngle(s,-i,lde);let S=$.fromQuaternion(_,mKe);a=h.normalize($.multiplyByVector(S,a,a),a),t.bitangent&&(c=h.normalize(h.cross(s,a,c),c))}}else p=$.clone($.IDENTITY,p);let g=aKe;t.st&&(g.x=n.x,g.y=n.y);let m=u.length,x=m*3,b=new Float64Array(x),T=t.normal?new Float32Array(x):void 0,C=t.tangent?new Float32Array(x):void 0,A=t.bitangent?new Float32Array(x):void 0,E=t.st?new Float32Array(m*2):void 0,v=0,D=0,O=0,I=0,L=0;for(let _=0;_<m;_++){let S=u[_];if(b[v++]=S.x,b[v++]=S.y,b[v++]=S.z,t.st)if(l(o)&&o.positions.length===m)E[L++]=o.positions[_].x,E[L++]=o.positions[_].y;else{let w=$.multiplyByVector(p,S,oKe),P=r(w,sKe);z.subtract(P,g,P);let M=R.clamp(P.x/n.width,0,1),B=R.clamp(P.y/n.height,0,1);E[L++]=M,E[L++]=B}t.normal&&(T[D++]=s.x,T[D++]=s.y,T[D++]=s.z),t.tangent&&(C[I++]=a.x,C[I++]=a.y,C[I++]=a.z),t.bitangent&&(A[O++]=c.x,A[O++]=c.y,A[O++]=c.z)}let N=new fn;return t.position&&(N.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b})),t.normal&&(N.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),t.tangent&&(N.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.bitangent&&(N.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),t.st&&(N.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:E})),new st({attributes:N,indices:d,primitiveType:Le.TRIANGLES})}function $b(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy,n=e.textureCoordinates,i=y(e.vertexFormat,Ie.DEFAULT);this._vertexFormat=Ie.clone(i),this._polygonHierarchy=t,this._stRotation=y(e.stRotation,0),this._ellipsoid=te.clone(y(e.ellipsoid,te.WGS84)),this._workerName="createCoplanarPolygonGeometry",this._textureCoordinates=n,this.packedLength=zn.computeHierarchyPackedLength(t,h)+Ie.packedLength+te.packedLength+(l(n)?zn.computeHierarchyPackedLength(n,z):1)+2}$b.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,textureCoordinates:e.textureCoordinates};return new $b(t)};$b.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),te.pack(e._ellipsoid,t,n),n+=te.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._stRotation,l(e._textureCoordinates)?n=zn.packPolygonHierarchy(e._textureCoordinates,t,n,z):t[n++]=-1,t[n++]=e.packedLength,t};var gKe=te.clone(te.UNIT_SPHERE),yKe=new Ie,xKe={polygonHierarchy:{}};$b.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=te.unpack(e,t,gKe);t+=te.packedLength;let r=Ie.unpack(e,t,yKe);t+=Ie.packedLength;let s=e[t++],a=e[t]===-1?void 0:zn.unpackPolygonHierarchy(e,t,z);l(a)?(t=a.startingIndex,delete a.startingIndex):t++;let c=e[t++];return l(n)||(n=new $b(xKe)),n._polygonHierarchy=i,n._ellipsoid=te.clone(o,n._ellipsoid),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._stRotation=s,n._textureCoordinates=a,n.packedLength=c,n};$b.createGeometry=function(e){let t=e._vertexFormat,n=e._polygonHierarchy,i=e._stRotation,o=e._textureCoordinates,r=l(o),s=n.positions;if(s=xo(s,h.equalsEpsilon,!0),s.length<3)return;let a=cKe,c=lKe,u=uKe,f=fKe,d=dKe;if(!__.computeProjectTo2DArguments(s,LL,f,d))return;if(a=h.cross(f,d,a),a=h.normalize(a,a),!h.equalsEpsilon(LL,h.ZERO,R.EPSILON6)){let L=e._ellipsoid.geodeticSurfaceNormal(LL,pKe);h.dot(a,L)<0&&(a=h.negate(a,a),f=h.negate(f,f))}let g=__.createProjectPointsTo2DFunction(LL,f,d),m=__.createProjectPointTo2DFunction(LL,f,d);t.tangent&&(c=h.clone(f,c)),t.bitangent&&(u=h.clone(d,u));let x=zn.polygonsFromHierarchy(n,r,g,!1),b=x.hierarchy,T=x.polygons,C=function(L){return L},A=r?zn.polygonsFromHierarchy(o,!0,C,!1).polygons:void 0;if(b.length===0)return;s=b[0].outerRing;let E=ae.fromPoints(s),v=zn.computeBoundingRectangle(a,m,s,i,rKe),D=[];for(let L=0;L<T.length;L++){let N=new xt({geometry:_Ke(T[L],t,v,i,r?A[L]:void 0,m,a,c,u)});D.push(N)}let O=Nn.combineInstances(D)[0];O.attributes.position.values=new Float64Array(O.attributes.position.values),O.indices=Ne.createTypedArray(O.attributes.position.values.length/3,O.indices);let I=O.attributes;return t.position||delete I.position,new st({attributes:I,indices:O.indices,primitiveType:O.primitiveType,boundingSphere:E})};var NL=$b;var ude=[],Nz=[];function bKe(e,t,n,i,o){let s=Hr.fromPoints(t,e).projectPointsOntoPlane(t,ude);si.computeWindingOrder2D(s)===ss.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,u,f=t.length,d=0;if(i)for(c=new Float64Array(f*2*3),u=0;u<f;u++){let m=t[u],x=t[(u+1)%f];c[d++]=m.x,c[d++]=m.y,c[d++]=m.z,c[d++]=x.x,c[d++]=x.y,c[d++]=x.z}else{let m=0;if(o===Qt.GEODESIC)for(u=0;u<f;u++)m+=zn.subdivideLineCount(t[u],t[(u+1)%f],n);else if(o===Qt.RHUMB)for(u=0;u<f;u++)m+=zn.subdivideRhumbLineCount(e,t[u],t[(u+1)%f],n);for(c=new Float64Array(m*3),u=0;u<f;u++){let x;o===Qt.GEODESIC?x=zn.subdivideLine(t[u],t[(u+1)%f],n,Nz):o===Qt.RHUMB&&(x=zn.subdivideRhumbLine(e,t[u],t[(u+1)%f],n,Nz));let b=x.length;for(let T=0;T<b;++T)c[d++]=x[T]}}f=c.length/3;let p=f*2,g=Ne.createTypedArray(f,p);for(d=0,u=0;u<f-1;u++)g[d++]=u,g[d++]=u+1;return g[d++]=f-1,g[d++]=0,new xt({geometry:new st({attributes:new fn({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:g,primitiveType:Le.LINES})})}function TKe(e,t,n,i,o){let s=Hr.fromPoints(t,e).projectPointsOntoPlane(t,ude);si.computeWindingOrder2D(s)===ss.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,u,f=t.length,d=new Array(f),p=0;if(i)for(c=new Float64Array(f*2*3*2),u=0;u<f;++u){d[u]=p/3;let b=t[u],T=t[(u+1)%f];c[p++]=b.x,c[p++]=b.y,c[p++]=b.z,c[p++]=T.x,c[p++]=T.y,c[p++]=T.z}else{let b=0;if(o===Qt.GEODESIC)for(u=0;u<f;u++)b+=zn.subdivideLineCount(t[u],t[(u+1)%f],n);else if(o===Qt.RHUMB)for(u=0;u<f;u++)b+=zn.subdivideRhumbLineCount(e,t[u],t[(u+1)%f],n);for(c=new Float64Array(b*3*2),u=0;u<f;++u){d[u]=p/3;let T;o===Qt.GEODESIC?T=zn.subdivideLine(t[u],t[(u+1)%f],n,Nz):o===Qt.RHUMB&&(T=zn.subdivideRhumbLine(e,t[u],t[(u+1)%f],n,Nz));let C=T.length;for(let A=0;A<C;++A)c[p++]=T[A]}}f=c.length/(3*2);let g=d.length,m=(f*2+g)*2,x=Ne.createTypedArray(f+g,m);for(p=0,u=0;u<f;++u)x[p++]=u,x[p++]=(u+1)%f,x[p++]=u+f,x[p++]=(u+1)%f+f;for(u=0;u<g;u++){let b=d[u];x[p++]=b,x[p++]=b+f}return new xt({geometry:new st({attributes:new fn({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:x,primitiveType:Le.LINES})})}function Qb(e){let t=e.polygonHierarchy,n=y(e.ellipsoid,te.WGS84),i=y(e.granularity,R.RADIANS_PER_DEGREE),o=y(e.perPositionHeight,!1),r=o&&l(e.extrudedHeight),s=y(e.arcType,Qt.GEODESIC),a=y(e.height,0),c=y(e.extrudedHeight,a);if(!r){let u=Math.max(a,c);c=Math.min(a,c),a=u}this._ellipsoid=te.clone(n),this._granularity=i,this._height=a,this._extrudedHeight=c,this._arcType=s,this._polygonHierarchy=t,this._perPositionHeight=o,this._perPositionHeightExtrude=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=zn.computeHierarchyPackedLength(t,h)+te.packedLength+8}Qb.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),te.pack(e._ellipsoid,t,n),n+=te.packedLength,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._granularity,t[n++]=e._perPositionHeightExtrude?1:0,t[n++]=e._perPositionHeight?1:0,t[n++]=e._arcType,t[n++]=y(e._offsetAttribute,-1),t[n]=e.packedLength,t};var AKe=te.clone(te.UNIT_SPHERE),CKe={polygonHierarchy:{}};Qb.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=te.unpack(e,t,AKe);t+=te.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++]===1,u=e[t++]===1,f=e[t++],d=e[t++],p=e[t];return l(n)||(n=new Qb(CKe)),n._polygonHierarchy=i,n._ellipsoid=te.clone(o,n._ellipsoid),n._height=r,n._extrudedHeight=s,n._granularity=a,n._perPositionHeight=u,n._perPositionHeightExtrude=c,n._arcType=f,n._offsetAttribute=d===-1?void 0:d,n.packedLength=p,n};Qb.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,arcType:e.arcType,offsetAttribute:e.offsetAttribute};return new Qb(t)};Qb.createGeometry=function(e){let t=e._ellipsoid,n=e._granularity,i=e._polygonHierarchy,o=e._perPositionHeight,r=e._arcType,s=zn.polygonOutlinesFromHierarchy(i,!o,t);if(s.length===0)return;let a,c=[],u=R.chordLength(n,t.maximumRadius),f=e._height,d=e._extrudedHeight,p=e._perPositionHeightExtrude||!R.equalsEpsilon(f,d,0,R.EPSILON2),g,m;if(p)for(m=0;m<s.length;m++){if(a=TKe(t,s[m],u,o,r),a.geometry=zn.scaleToGeodeticHeightExtruded(a.geometry,f,d,t,o),l(e._offsetAttribute)){let T=a.geometry.attributes.position.values.length/3,C=new Uint8Array(T);e._offsetAttribute===an.TOP?C=C.fill(1,0,T/2):(g=e._offsetAttribute===an.NONE?0:1,C=C.fill(g)),a.geometry.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:C})}c.push(a)}else for(m=0;m<s.length;m++){if(a=bKe(t,s[m],u,o,r),a.geometry.attributes.position.values=si.scaleToGeodeticHeight(a.geometry.attributes.position.values,f,t,!o),l(e._offsetAttribute)){let T=a.geometry.attributes.position.values.length;g=e._offsetAttribute===an.NONE?0:1;let C=new Uint8Array(T/3).fill(g);a.geometry.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:C})}c.push(a)}let x=Nn.combineInstances(c)[0],b=ae.fromVertices(x.attributes.position.values);return new st({attributes:x.attributes,indices:x.indices,primitiveType:x.primitiveType,boundingSphere:b,offsetAttribute:e._offsetAttribute})};var FL=Qb;var fde="Entity polygons cannot have both height and perPositionHeight. height will be ignored",dde="heightReference is not supported for entity polygons with perPositionHeight. heightReference will be ignored",hde=new H,mde=h.ZERO,pde=new h,_de=new se,EKe=[],SKe=new z;function vKe(e){this.id=e,this.vertexFormat=void 0,this.polygonHierarchy=void 0,this.perPositionHeight=void 0,this.closeTop=void 0,this.closeBottom=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.offsetAttribute=void 0,this.arcType=void 0,this.textureCoordinates=void 0}function Nu(e,t){Wn.call(this,{entity:e,scene:t,geometryOptions:new vKe(e),geometryPropertyName:"polygon",observedPropertyNames:["availability","polygon"]}),this._onEntityPropertyChanged(e,"polygon",e.polygon,void 0)}l(Object.create)&&(Nu.prototype=Object.create(Wn.prototype),Nu.prototype.constructor=Nu);Nu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof kt){let s;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(s=this._materialProperty.color.getValue(e,hde)),l(s)||(s=H.WHITE),o.color=zt.fromColor(s)}l(i.offsetAttribute)&&(o.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,mde,pde)));let r;return i.perPositionHeight&&!l(i.extrudedHeight)?r=new NL(i):r=new Xp(i),new xt({id:t,geometry:r,attributes:o})};Nu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,hde),r=this._distanceDisplayConditionProperty.getValue(e),s={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:zt.fromColor(o),distanceDisplayCondition:kn.fromDistanceDisplayCondition(r),offset:void 0};l(i.offsetAttribute)&&(s.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,mde,pde)));let a;return i.perPositionHeight&&!l(i.extrudedHeight)?a=new Uf(i):a=new FL(i),new xt({id:t,geometry:a,attributes:s})};Nu.prototype._computeCenter=function(e,t){let n=q.getValueOrUndefined(this._entity.polygon.hierarchy,e);if(!l(n))return;let i=n.positions;if(i.length===0)return;let o=this._scene.mapProjection.ellipsoid,r=Hr.fromPoints(i,o),s=r.projectPointsOntoPlane(i,EKe),a=s.length,c=0,u=a-1,f=new z;for(let p=0;p<a;u=p++){let g=s[p],m=s[u],x=g.x*m.y-m.x*g.y,b=z.add(g,m,SKe);b=z.multiplyByScalar(b,x,b),f=z.add(f,b,f),c+=x}let d=1/(c*3);return f=z.multiplyByScalar(f,d,f),r.projectPointOntoEllipsoid(f,t)};Nu.prototype._isHidden=function(e,t){return!l(t.hierarchy)||ni.prototype._isHidden.call(this,e,t)};Nu.prototype._isOnTerrain=function(e,t){let n=Wn.prototype._isOnTerrain.call(this,e,t),i=t.perPositionHeight,o=l(i)&&(i.isConstant?i.getValue(Ue.MINIMUM_VALUE):!0);return n&&!o};Nu.prototype._isDynamic=function(e,t){return!t.hierarchy.isConstant||!q.isConstant(t.height)||!q.isConstant(t.extrudedHeight)||!q.isConstant(t.granularity)||!q.isConstant(t.stRotation)||!q.isConstant(t.textureCoordinates)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.perPositionHeight)||!q.isConstant(t.closeTop)||!q.isConstant(t.closeBottom)||!q.isConstant(t.zIndex)||!q.isConstant(t.arcType)||this._onTerrain&&!q.isConstant(this._materialProperty)&&!(this._materialProperty instanceof kt)};Nu.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof kt,i=this._options;i.vertexFormat=n?cn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat;let o=t.hierarchy.getValue(Ue.MINIMUM_VALUE),r=q.getValueOrUndefined(t.height,Ue.MINIMUM_VALUE),s=q.getValueOrDefault(t.heightReference,Ue.MINIMUM_VALUE,qe.NONE),a=q.getValueOrUndefined(t.extrudedHeight,Ue.MINIMUM_VALUE),c=q.getValueOrDefault(t.extrudedHeightReference,Ue.MINIMUM_VALUE,qe.NONE),u=q.getValueOrDefault(t.perPositionHeight,Ue.MINIMUM_VALUE,!1);r=Wn.getGeometryHeight(r,s);let f;if(u?(l(r)&&(r=void 0,Lt(fde)),s!==qe.NONE&&u&&(r=void 0,Lt(dde))):(l(a)&&!l(r)&&(r=0),f=Wn.computeGeometryOffsetAttribute(r,s,a,c)),i.polygonHierarchy=o,i.granularity=q.getValueOrUndefined(t.granularity,Ue.MINIMUM_VALUE),i.stRotation=q.getValueOrUndefined(t.stRotation,Ue.MINIMUM_VALUE),i.perPositionHeight=u,i.closeTop=q.getValueOrDefault(t.closeTop,Ue.MINIMUM_VALUE,!0),i.closeBottom=q.getValueOrDefault(t.closeBottom,Ue.MINIMUM_VALUE,!0),i.offsetAttribute=f,i.height=r,i.arcType=q.getValueOrDefault(t.arcType,Ue.MINIMUM_VALUE,Qt.GEODESIC),i.textureCoordinates=q.getValueOrUndefined(t.textureCoordinates,Ue.MINIMUM_VALUE),a=Wn.getGeometryExtrudedHeight(a,c),a===Wn.CLAMP_TO_GROUND){let d=Xp.computeRectangleFromPositions(i.polygonHierarchy.positions,i.ellipsoid,i.arcType,_de);a=ci.getMinimumMaximumHeights(d).minimumTerrainHeight}i.extrudedHeight=a};Nu.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight,i=l(n)&&n!==t;return!e.perPositionHeight&&(!i&&t===0||i&&e.closeTop&&e.closeBottom)};Nu.DynamicGeometryUpdater=qE;function qE(e,t,n){ti.call(this,e,t,n)}l(Object.create)&&(qE.prototype=Object.create(ti.prototype),qE.prototype.constructor=qE);qE.prototype._isHidden=function(e,t,n){return!l(this._options.polygonHierarchy)||ti.prototype._isHidden.call(this,e,t,n)};qE.prototype._setOptions=function(e,t,n){let i=this._options;i.polygonHierarchy=q.getValueOrUndefined(t.hierarchy,n);let o=q.getValueOrUndefined(t.height,n),r=q.getValueOrDefault(t.heightReference,n,qe.NONE),s=q.getValueOrDefault(t.extrudedHeightReference,n,qe.NONE),a=q.getValueOrUndefined(t.extrudedHeight,n),c=q.getValueOrUndefined(t.perPositionHeight,n);o=Wn.getGeometryHeight(o,s);let u;if(c?(l(o)&&(o=void 0,Lt(fde)),r!==qe.NONE&&c&&(o=void 0,Lt(dde))):(l(a)&&!l(o)&&(o=0),u=Wn.computeGeometryOffsetAttribute(o,r,a,s)),i.granularity=q.getValueOrUndefined(t.granularity,n),i.stRotation=q.getValueOrUndefined(t.stRotation,n),i.textureCoordinates=q.getValueOrUndefined(t.textureCoordinates,n),i.perPositionHeight=q.getValueOrUndefined(t.perPositionHeight,n),i.closeTop=q.getValueOrDefault(t.closeTop,n,!0),i.closeBottom=q.getValueOrDefault(t.closeBottom,n,!0),i.offsetAttribute=u,i.height=o,i.arcType=q.getValueOrDefault(t.arcType,n,Qt.GEODESIC),a=Wn.getGeometryExtrudedHeight(a,s),a===Wn.CLAMP_TO_GROUND){let f=Xp.computeRectangleFromPositions(i.polygonHierarchy.positions,i.ellipsoid,i.arcType,_de);a=ci.getMinimumMaximumHeights(f).minimumTerrainHeight}i.extrudedHeight=a};var BL=Nu;function wKe(e,t,n,i){let o=new fn;i.position&&(o.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e}));let r=t.length,s=e.length/3,a=(s-r*2)/(r*2),c=si.triangulate(t),u=(a-1)*r*6+c.length*2,f=Ne.createTypedArray(s,u),d,p,g,m,x,b,T=r*2,C=0;for(d=0;d<a-1;d++){for(p=0;p<r-1;p++)g=p*2+d*r*2,b=g+T,m=g+1,x=m+T,f[C++]=m,f[C++]=g,f[C++]=x,f[C++]=x,f[C++]=g,f[C++]=b;g=r*2-2+d*r*2,m=g+1,x=m+T,b=g+T,f[C++]=m,f[C++]=g,f[C++]=x,f[C++]=x,f[C++]=g,f[C++]=b}if(i.st||i.tangent||i.bitangent){let v=new Float32Array(s*2),D=1/(a-1),O=1/n.height,I=n.height/2,L,N,_=0;for(d=0;d<a;d++){for(L=d*D,N=O*(t[0].y+I),v[_++]=L,v[_++]=N,p=1;p<r;p++)N=O*(t[p].y+I),v[_++]=L,v[_++]=N,v[_++]=L,v[_++]=N;N=O*(t[0].y+I),v[_++]=L,v[_++]=N}for(p=0;p<r;p++)L=0,N=O*(t[p].y+I),v[_++]=L,v[_++]=N;for(p=0;p<r;p++)L=(a-1)*D,N=O*(t[p].y+I),v[_++]=L,v[_++]=N;o.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:new Float32Array(v)})}let A=s-r*2;for(d=0;d<c.length;d+=3){let v=c[d]+A,D=c[d+1]+A,O=c[d+2]+A;f[C++]=v,f[C++]=D,f[C++]=O,f[C++]=O+r,f[C++]=D+r,f[C++]=v+r}let E=new st({attributes:o,indices:f,boundingSphere:ae.fromVertices(e),primitiveType:Le.TRIANGLES});if(i.normal&&(E=Nn.computeNormal(E)),i.tangent||i.bitangent){try{E=Nn.computeTangentAndBitangent(E)}catch{Lt("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}i.tangent||(E.attributes.tangent=void 0),i.bitangent||(E.attributes.bitangent=void 0),i.st||(E.attributes.st=void 0)}return E}function VL(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=te.clone(y(e.ellipsoid,te.WGS84)),this._cornerType=y(e.cornerType,Di.ROUNDED),this._vertexFormat=Ie.clone(y(e.vertexFormat,Ie.DEFAULT)),this._granularity=y(e.granularity,R.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*z.packedLength,this.packedLength=i+te.packedLength+Ie.packedLength+2}VL.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._shape;for(r=s.length,t[n++]=r,i=0;i<r;++i,n+=z.packedLength)z.pack(s[i],t,n);return te.pack(e._ellipsoid,t,n),n+=te.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var gde=te.clone(te.UNIT_SPHERE),yde=new Ie,kL={polylinePositions:void 0,shapePositions:void 0,ellipsoid:gde,vertexFormat:yde,cornerType:void 0,granularity:void 0};VL.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=new Array(o);for(i=0;i<o;++i,t+=z.packedLength)s[i]=z.unpack(e,t);let a=te.unpack(e,t,gde);t+=te.packedLength;let c=Ie.unpack(e,t,yde);t+=Ie.packedLength;let u=e[t++],f=e[t];return l(n)?(n._positions=r,n._shape=s,n._ellipsoid=te.clone(a,n._ellipsoid),n._vertexFormat=Ie.clone(c,n._vertexFormat),n._cornerType=u,n._granularity=f,n):(kL.polylinePositions=r,kL.shapePositions=s,kL.cornerType=u,kL.granularity=f,new VL(kL))};var DKe=new Ge;VL.createGeometry=function(e){let t=e._positions,n=xo(t,h.equalsEpsilon),i=e._shape;if(i=ih.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;si.computeWindingOrder2D(i)===ss.CLOCKWISE&&i.reverse();let o=Ge.fromPoints(i,DKe),r=ih.computePositions(n,i,o,e,!0);return wKe(r,i,o,e._vertexFormat)};var UL=VL;function PKe(e,t){let n=new fn;n.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e});let i=t.length,o=n.position.values.length/3,s=e.length/3/i,a=Ne.createTypedArray(o,2*i*(s+1)),c,u,f=0;c=0;let d=c*i;for(u=0;u<i-1;u++)a[f++]=u+d,a[f++]=u+d+1;for(a[f++]=i-1+d,a[f++]=d,c=s-1,d=c*i,u=0;u<i-1;u++)a[f++]=u+d,a[f++]=u+d+1;for(a[f++]=i-1+d,a[f++]=d,c=0;c<s-1;c++){let g=i*c,m=g+i;for(u=0;u<i;u++)a[f++]=u+g,a[f++]=u+m}return new st({attributes:n,indices:Ne.createTypedArray(o,a),boundingSphere:ae.fromVertices(e),primitiveType:Le.LINES})}function HL(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=te.clone(y(e.ellipsoid,te.WGS84)),this._cornerType=y(e.cornerType,Di.ROUNDED),this._granularity=y(e.granularity,R.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeOutlineGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*z.packedLength,this.packedLength=i+te.packedLength+2}HL.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._shape;for(r=s.length,t[n++]=r,i=0;i<r;++i,n+=z.packedLength)z.pack(s[i],t,n);return te.pack(e._ellipsoid,t,n),n+=te.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var xde=te.clone(te.UNIT_SPHERE),zL={polylinePositions:void 0,shapePositions:void 0,ellipsoid:xde,height:void 0,cornerType:void 0,granularity:void 0};HL.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=new Array(o);for(i=0;i<o;++i,t+=z.packedLength)s[i]=z.unpack(e,t);let a=te.unpack(e,t,xde);t+=te.packedLength;let c=e[t++],u=e[t];return l(n)?(n._positions=r,n._shape=s,n._ellipsoid=te.clone(a,n._ellipsoid),n._cornerType=c,n._granularity=u,n):(zL.polylinePositions=r,zL.shapePositions=s,zL.cornerType=c,zL.granularity=u,new HL(zL))};var IKe=new Ge;HL.createGeometry=function(e){let t=e._positions,n=xo(t,h.equalsEpsilon),i=e._shape;if(i=ih.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;si.computeWindingOrder2D(i)===ss.CLOCKWISE&&i.reverse();let o=Ge.fromPoints(i,IKe),r=ih.computePositions(n,i,o,e,!1);return PKe(r,i)};var GL=HL;var bde=new H;function RKe(e){this.id=e,this.vertexFormat=void 0,this.polylinePositions=void 0,this.shapePositions=void 0,this.cornerType=void 0,this.granularity=void 0}function Dm(e,t){ni.call(this,{entity:e,scene:t,geometryOptions:new RKe(e),geometryPropertyName:"polylineVolume",observedPropertyNames:["availability","polylineVolume"]}),this._onEntityPropertyChanged(e,"polylineVolume",e.polylineVolume,void 0)}l(Object.create)&&(Dm.prototype=Object.create(ni.prototype),Dm.prototype.constructor=Dm);Dm.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof kt){let c;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,bde)),l(c)||(c=H.WHITE),o=zt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new xt({id:t,geometry:new UL(this._options),attributes:i})};Dm.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,bde),o=this._distanceDisplayConditionProperty.getValue(e);return new xt({id:t,geometry:new GL(this._options),attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:zt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};Dm.prototype._isHidden=function(e,t){return!l(t.positions)||!l(t.shape)||ni.prototype._isHidden.call(this,e,t)};Dm.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!t.shape.isConstant||!q.isConstant(t.granularity)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.cornerType)};Dm.prototype._setStaticOptions=function(e,t){let n=t.granularity,i=t.cornerType,o=this._options,r=this._materialProperty instanceof kt;o.vertexFormat=r?cn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,o.polylinePositions=t.positions.getValue(Ue.MINIMUM_VALUE,o.polylinePositions),o.shapePositions=t.shape.getValue(Ue.MINIMUM_VALUE,o.shape),o.granularity=l(n)?n.getValue(Ue.MINIMUM_VALUE):void 0,o.cornerType=l(i)?i.getValue(Ue.MINIMUM_VALUE):void 0};Dm.DynamicGeometryUpdater=YE;function YE(e,t,n){ti.call(this,e,t,n)}l(Object.create)&&(YE.prototype=Object.create(ti.prototype),YE.prototype.constructor=YE);YE.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.polylinePositions)||!l(i.shapePositions)||ti.prototype._isHidden.call(this,e,t,n)};YE.prototype._setOptions=function(e,t,n){let i=this._options;i.polylinePositions=q.getValueOrUndefined(t.positions,n,i.polylinePositions),i.shapePositions=q.getValueOrUndefined(t.shape,n),i.granularity=q.getValueOrUndefined(t.granularity,n),i.cornerType=q.getValueOrUndefined(t.cornerType,n)};var WL=Dm;var A7=new h,Cde=new h,Ede=new h,Sde=new h,vde=new se,OKe=new z,MKe=new ae,LKe=new ae;function wde(e,t){let n=new st({attributes:new fn,primitiveType:Le.TRIANGLES});return n.attributes.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:t.positions}),e.normal&&(n.attributes.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.normals})),e.tangent&&(n.attributes.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.tangents})),e.bitangent&&(n.attributes.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.bitangents})),n}function NKe(e,t,n,i){let o=e.length,r=t.normal?new Float32Array(o):void 0,s=t.tangent?new Float32Array(o):void 0,a=t.bitangent?new Float32Array(o):void 0,c=0,u=Sde,f=Ede,d=Cde;if(t.normal||t.tangent||t.bitangent)for(let p=0;p<o;p+=3){let g=h.fromArray(e,p,A7),m=c+1,x=c+2;d=n.geodeticSurfaceNormal(g,d),(t.tangent||t.bitangent)&&(h.cross(h.UNIT_Z,d,f),$.multiplyByVector(i,f,f),h.normalize(f,f),t.bitangent&&h.normalize(h.cross(d,f,u),u)),t.normal&&(r[c]=d.x,r[m]=d.y,r[x]=d.z),t.tangent&&(s[c]=f.x,s[m]=f.y,s[x]=f.z),t.bitangent&&(a[c]=u.x,a[m]=u.y,a[x]=u.z),c+=3}return wde(t,{positions:e,normals:r,tangents:s,bitangents:a})}var C7=new h,Dde=new h;function FKe(e,t,n){let i=e.length,o=t.normal?new Float32Array(i):void 0,r=t.tangent?new Float32Array(i):void 0,s=t.bitangent?new Float32Array(i):void 0,a=0,c=0,u=0,f=!0,d=Sde,p=Ede,g=Cde;if(t.normal||t.tangent||t.bitangent)for(let m=0;m<i;m+=6){let x=h.fromArray(e,m,A7),b=h.fromArray(e,(m+6)%i,C7);if(f){let T=h.fromArray(e,(m+3)%i,Dde);h.subtract(b,x,b),h.subtract(T,x,T),g=h.normalize(h.cross(T,b,g),g),f=!1}h.equalsEpsilon(b,x,R.EPSILON10)&&(f=!0),(t.tangent||t.bitangent)&&(d=n.geodeticSurfaceNormal(x,d),t.tangent&&(p=h.normalize(h.cross(d,g,p),p))),t.normal&&(o[a++]=g.x,o[a++]=g.y,o[a++]=g.z,o[a++]=g.x,o[a++]=g.y,o[a++]=g.z),t.tangent&&(r[c++]=p.x,r[c++]=p.y,r[c++]=p.z,r[c++]=p.x,r[c++]=p.y,r[c++]=p.z),t.bitangent&&(s[u++]=d.x,s[u++]=d.y,s[u++]=d.z,s[u++]=d.x,s[u++]=d.y,s[u++]=d.z)}return wde(t,{positions:e,normals:o,tangents:r,bitangents:s})}function Pde(e,t){let n=e._vertexFormat,i=e._ellipsoid,o=t.height,r=t.width,s=t.northCap,a=t.southCap,c=0,u=o,f=o,d=0;s&&(c=1,f-=1,d+=1),a&&(u-=1,f-=1,d+=1),d+=r*f;let p=n.position?new Float64Array(d*3):void 0,g=n.st?new Float32Array(d*2):void 0,m=0,x=0,b=A7,T=OKe,C=Number.MAX_VALUE,A=Number.MAX_VALUE,E=-Number.MAX_VALUE,v=-Number.MAX_VALUE;for(let S=c;S<u;++S)for(let w=0;w<r;++w)bs.computePosition(t,i,n.st,S,w,b,T),p[m++]=b.x,p[m++]=b.y,p[m++]=b.z,n.st&&(g[x++]=T.x,g[x++]=T.y,C=Math.min(C,T.x),A=Math.min(A,T.y),E=Math.max(E,T.x),v=Math.max(v,T.y));if(s&&(bs.computePosition(t,i,n.st,0,0,b,T),p[m++]=b.x,p[m++]=b.y,p[m++]=b.z,n.st&&(g[x++]=T.x,g[x++]=T.y,C=T.x,A=T.y,E=T.x,v=T.y)),a&&(bs.computePosition(t,i,n.st,o-1,0,b,T),p[m++]=b.x,p[m++]=b.y,p[m]=b.z,n.st&&(g[x++]=T.x,g[x]=T.y,C=Math.min(C,T.x),A=Math.min(A,T.y),E=Math.max(E,T.x),v=Math.max(v,T.y))),n.st&&(C<0||A<0||E>1||v>1))for(let S=0;S<g.length;S+=2)g[S]=(g[S]-C)/(E-C),g[S+1]=(g[S+1]-A)/(v-A);let D=NKe(p,n,i,t.tangentRotationMatrix),O=6*(r-1)*(f-1);s&&(O+=3*(r-1)),a&&(O+=3*(r-1));let I=Ne.createTypedArray(d,O),L=0,N=0,_;for(_=0;_<f-1;++_){for(let S=0;S<r-1;++S){let w=L,P=w+r,M=P+1,B=w+1;I[N++]=w,I[N++]=P,I[N++]=B,I[N++]=B,I[N++]=P,I[N++]=M,++L}++L}if(s||a){let S=d-1,w=d-1;s&&a&&(S=d-2);let P,M;if(L=0,s)for(_=0;_<r-1;_++)P=L,M=P+1,I[N++]=S,I[N++]=P,I[N++]=M,++L;if(a)for(L=(f-1)*r,_=0;_<r-1;_++)P=L,M=P+1,I[N++]=P,I[N++]=w,I[N++]=M,++L}return D.indices=I,n.st&&(D.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),D}function XE(e,t,n,i,o){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n+2],e[t++]=o[n],e[t++]=o[n+1],e[t]=o[n+2],e}function KE(e,t,n,i){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n],e[t]=i[n+1],e}var E7=new Ie;function BKe(e,t){let n=e._shadowVolume,i=e._offsetAttribute,o=e._vertexFormat,r=e._extrudedHeight,s=e._surfaceHeight,a=e._ellipsoid,c=t.height,u=t.width,f;if(n){let Qe=Ie.clone(o,E7);Qe.normal=!0,e._vertexFormat=Qe}let d=Pde(e,t);n&&(e._vertexFormat=o);let p=si.scaleToGeodeticHeight(d.attributes.position.values,s,a,!1);p=new Float64Array(p);let g=p.length,m=g*2,x=new Float64Array(m);x.set(p);let b=si.scaleToGeodeticHeight(d.attributes.position.values,r,a);x.set(b,g),d.attributes.position.values=x;let T=o.normal?new Float32Array(m):void 0,C=o.tangent?new Float32Array(m):void 0,A=o.bitangent?new Float32Array(m):void 0,E=o.st?new Float32Array(m/3*2):void 0,v,D;if(o.normal){for(D=d.attributes.normal.values,T.set(D),f=0;f<g;f++)D[f]=-D[f];T.set(D,g),d.attributes.normal.values=T}if(n){D=d.attributes.normal.values,o.normal||(d.attributes.normal=void 0);let Qe=new Float32Array(m);for(f=0;f<g;f++)D[f]=-D[f];Qe.set(D,g),d.attributes.extrudeDirection=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:Qe})}let O,I=l(i);if(I){let Qe=g/3*2,Kt=new Uint8Array(Qe);i===an.TOP?Kt=Kt.fill(1,0,Qe/2):(O=i===an.NONE?0:1,Kt=Kt.fill(O)),d.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:Kt})}if(o.tangent){let Qe=d.attributes.tangent.values;for(C.set(Qe),f=0;f<g;f++)Qe[f]=-Qe[f];C.set(Qe,g),d.attributes.tangent.values=C}if(o.bitangent){let Qe=d.attributes.bitangent.values;A.set(Qe),A.set(Qe,g),d.attributes.bitangent.values=A}o.st&&(v=d.attributes.st.values,E.set(v),E.set(v,g/3*2),d.attributes.st.values=E);let L=d.indices,N=L.length,_=g/3,S=Ne.createTypedArray(m/3,N*2);for(S.set(L),f=0;f<N;f+=3)S[f+N]=L[f+2]+_,S[f+1+N]=L[f+1]+_,S[f+2+N]=L[f]+_;d.indices=S;let w=t.northCap,P=t.southCap,M=c,B=2,U=0,V=4,G=4;w&&(B-=1,M-=1,U+=1,V-=2,G-=1),P&&(B-=1,M-=1,U+=1,V-=2,G-=1),U+=B*u+2*M-V;let k=(U+G)*2,Y=new Float64Array(k*3),W=n?new Float32Array(k*3):void 0,Q=I?new Uint8Array(k):void 0,j=o.st?new Float32Array(k*2):void 0,K=i===an.TOP;I&&!K&&(O=i===an.ALL?1:0,Q=Q.fill(O));let Z=0,he=0,be=0,re=0,_e=u*M,xe;for(f=0;f<_e;f+=u)xe=f*3,Y=XE(Y,Z,xe,p,b),Z+=6,o.st&&(j=KE(j,he,f*2,v),he+=4),n&&(be+=3,W[be++]=D[xe],W[be++]=D[xe+1],W[be++]=D[xe+2]),K&&(Q[re++]=1,re+=1);if(P){let Qe=w?_e+1:_e;for(xe=Qe*3,f=0;f<2;f++)Y=XE(Y,Z,xe,p,b),Z+=6,o.st&&(j=KE(j,he,Qe*2,v),he+=4),n&&(be+=3,W[be++]=D[xe],W[be++]=D[xe+1],W[be++]=D[xe+2]),K&&(Q[re++]=1,re+=1)}else for(f=_e-u;f<_e;f++)xe=f*3,Y=XE(Y,Z,xe,p,b),Z+=6,o.st&&(j=KE(j,he,f*2,v),he+=4),n&&(be+=3,W[be++]=D[xe],W[be++]=D[xe+1],W[be++]=D[xe+2]),K&&(Q[re++]=1,re+=1);for(f=_e-1;f>0;f-=u)xe=f*3,Y=XE(Y,Z,xe,p,b),Z+=6,o.st&&(j=KE(j,he,f*2,v),he+=4),n&&(be+=3,W[be++]=D[xe],W[be++]=D[xe+1],W[be++]=D[xe+2]),K&&(Q[re++]=1,re+=1);if(w){let Qe=_e;for(xe=Qe*3,f=0;f<2;f++)Y=XE(Y,Z,xe,p,b),Z+=6,o.st&&(j=KE(j,he,Qe*2,v),he+=4),n&&(be+=3,W[be++]=D[xe],W[be++]=D[xe+1],W[be++]=D[xe+2]),K&&(Q[re++]=1,re+=1)}else for(f=u-1;f>=0;f--)xe=f*3,Y=XE(Y,Z,xe,p,b),Z+=6,o.st&&(j=KE(j,he,f*2,v),he+=4),n&&(be+=3,W[be++]=D[xe],W[be++]=D[xe+1],W[be++]=D[xe+2]),K&&(Q[re++]=1,re+=1);let Ce=FKe(Y,o,a);o.st&&(Ce.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:j})),n&&(Ce.attributes.extrudeDirection=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:W})),I&&(Ce.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:Q}));let we=Ne.createTypedArray(k,U*6),Oe,ke,At,Bt;g=Y.length/3;let rt=0;for(f=0;f<g-1;f+=2){Oe=f,Bt=(Oe+2)%g;let Qe=h.fromArray(Y,Oe*3,C7),Kt=h.fromArray(Y,Bt*3,Dde);h.equalsEpsilon(Qe,Kt,R.EPSILON10)||(ke=(Oe+1)%g,At=(ke+2)%g,we[rt++]=Oe,we[rt++]=ke,we[rt++]=Bt,we[rt++]=Bt,we[rt++]=ke,we[rt++]=At)}return Ce.indices=we,Ce=Nn.combineInstances([new xt({geometry:d}),new xt({geometry:Ce})]),Ce[0]}var kKe=[new h,new h,new h,new h],Ide=new fe,VKe=new fe;function S7(e,t,n,i,o){if(n===0)return se.clone(e,o);let r=bs.computeOptions(e,t,n,0,vde,Ide),s=r.height,a=r.width,c=kKe;return bs.computePosition(r,i,!1,0,0,c[0]),bs.computePosition(r,i,!1,0,a-1,c[1]),bs.computePosition(r,i,!1,s-1,0,c[2]),bs.computePosition(r,i,!1,s-1,a-1,c[3]),se.fromCartesianArray(c,i,o)}function Pm(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.height,0),i=y(e.extrudedHeight,n);this._rectangle=se.clone(t),this._granularity=y(e.granularity,R.RADIANS_PER_DEGREE),this._ellipsoid=te.clone(y(e.ellipsoid,te.WGS84)),this._surfaceHeight=Math.max(n,i),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._vertexFormat=Ie.clone(y(e.vertexFormat,Ie.DEFAULT)),this._extrudedHeight=Math.min(n,i),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createRectangleGeometry",this._offsetAttribute=e.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}Pm.packedLength=se.packedLength+te.packedLength+Ie.packedLength+7;Pm.pack=function(e,t,n){return n=y(n,0),se.pack(e._rectangle,t,n),n+=se.packedLength,te.pack(e._ellipsoid,t,n),n+=te.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var Rde=new se,Ode=te.clone(te.UNIT_SPHERE),jy={rectangle:Rde,ellipsoid:Ode,vertexFormat:E7,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};Pm.unpack=function(e,t,n){t=y(t,0);let i=se.unpack(e,t,Rde);t+=se.packedLength;let o=te.unpack(e,t,Ode);t+=te.packedLength;let r=Ie.unpack(e,t,E7);t+=Ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++]===1,p=e[t];return l(n)?(n._rectangle=se.clone(i,n._rectangle),n._ellipsoid=te.clone(o,n._ellipsoid),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._granularity=s,n._surfaceHeight=a,n._rotation=c,n._stRotation=u,n._extrudedHeight=f,n._shadowVolume=d,n._offsetAttribute=p===-1?void 0:p,n):(jy.granularity=s,jy.height=a,jy.rotation=c,jy.stRotation=u,jy.extrudedHeight=f,jy.shadowVolume=d,jy.offsetAttribute=p===-1?void 0:p,new Pm(jy))};Pm.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.rectangle,i=y(e.granularity,R.RADIANS_PER_DEGREE),o=y(e.ellipsoid,te.WGS84),r=y(e.rotation,0);return S7(n,i,r,o,t)};var UKe=new $,Tde=new Me,zKe=new fe;Pm.createGeometry=function(e){if(R.equalsEpsilon(e._rectangle.north,e._rectangle.south,R.EPSILON10)||R.equalsEpsilon(e._rectangle.east,e._rectangle.west,R.EPSILON10))return;let t=e._rectangle,n=e._ellipsoid,i=e._rotation,o=e._stRotation,r=e._vertexFormat,s=bs.computeOptions(t,e._granularity,i,o,vde,Ide,VKe),a=UKe;if(o!==0||i!==0){let g=se.center(t,zKe),m=n.geodeticSurfaceNormalCartographic(g,C7);Me.fromAxisAngle(m,-o,Tde),$.fromQuaternion(Tde,a)}else $.clone($.IDENTITY,a);let c=e._surfaceHeight,u=e._extrudedHeight,f=!R.equalsEpsilon(c,u,0,R.EPSILON2);s.lonScalar=1/e._rectangle.width,s.latScalar=1/e._rectangle.height,s.tangentRotationMatrix=a;let d,p;if(t=e._rectangle,f){d=BKe(e,s);let g=ae.fromRectangle3D(t,n,c,LKe),m=ae.fromRectangle3D(t,n,u,MKe);p=ae.union(g,m)}else{if(d=Pde(e,s),d.attributes.position.values=si.scaleToGeodeticHeight(d.attributes.position.values,c,n,!1),l(e._offsetAttribute)){let g=d.attributes.position.values.length,m=e._offsetAttribute===an.NONE?0:1,x=new Uint8Array(g/3).fill(m);d.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}p=ae.fromRectangle3D(t,n,c)}return r.position||delete d.attributes.position,new st({attributes:d.attributes,indices:d.indices,primitiveType:d.primitiveType,boundingSphere:p,offsetAttribute:e._offsetAttribute})};Pm.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Pm({rectangle:e._rectangle,rotation:e._rotation,ellipsoid:o,stRotation:e._stRotation,granularity:i,extrudedHeight:s,height:r,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0})};var Ade=new se,HKe=[new z,new z,new z],GKe=new Qi,WKe=new fe;function jKe(e){if(e._stRotation===0)return[0,0,0,1,1,0];let t=se.clone(e._rectangle,Ade),n=e._granularity,i=e._ellipsoid,o=e._rotation-e._stRotation,r=S7(t,n,o,i,Ade),s=HKe;s[0].x=r.west,s[0].y=r.south,s[1].x=r.west,s[1].y=r.north,s[2].x=r.east,s[2].y=r.south;let a=e.rectangle,c=Qi.fromRotation(e._stRotation,GKe),u=se.center(a,WKe);for(let m=0;m<3;++m){let x=s[m];x.x-=u.longitude,x.y-=u.latitude,Qi.multiplyByVector(c,x,x),x.x+=u.longitude,x.y+=u.latitude,x.x=(x.x-a.west)/a.width,x.y=(x.y-a.south)/a.height}let f=s[0],d=s[1],p=s[2],g=new Array(6);return z.pack(f,g),z.pack(d,g,2),z.pack(p,g,4),g}Object.defineProperties(Pm.prototype,{rectangle:{get:function(){return l(this._rotatedRectangle)||(this._rotatedRectangle=S7(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=jKe(this)),this._textureCoordinateRotationPoints}}});var Jb=Pm;var Mde=new H,Lde=h.ZERO,Nde=new h,Fde=new se,qKe=new se,YKe=new fe;function XKe(e){this.id=e,this.vertexFormat=void 0,this.rectangle=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.rotation=void 0,this.offsetAttribute=void 0}function dh(e,t){Wn.call(this,{entity:e,scene:t,geometryOptions:new XKe(e),geometryPropertyName:"rectangle",observedPropertyNames:["availability","rectangle"]}),this._onEntityPropertyChanged(e,"rectangle",e.rectangle,void 0)}l(Object.create)&&(dh.prototype=Object.create(Wn.prototype),dh.prototype.constructor=dh);dh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof kt){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,Mde)),l(o)||(o=H.WHITE),i.color=zt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Lde,Nde))),new xt({id:t,geometry:new Jb(this._options),attributes:i})};dh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Mde),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:zt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Yi.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Lde,Nde))),new xt({id:t,geometry:new vb(this._options),attributes:r})};dh.prototype._computeCenter=function(e,t){let n=q.getValueOrUndefined(this._entity.rectangle.coordinates,e,qKe);if(!l(n))return;let i=se.center(n,YKe);return fe.toCartesian(i,te.WGS84,t)};dh.prototype._isHidden=function(e,t){return!l(t.coordinates)||ni.prototype._isHidden.call(this,e,t)};dh.prototype._isDynamic=function(e,t){return!t.coordinates.isConstant||!q.isConstant(t.height)||!q.isConstant(t.extrudedHeight)||!q.isConstant(t.granularity)||!q.isConstant(t.stRotation)||!q.isConstant(t.rotation)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.zIndex)||this._onTerrain&&!q.isConstant(this._materialProperty)&&!(this._materialProperty instanceof kt)};dh.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof kt,i=q.getValueOrUndefined(t.height,Ue.MINIMUM_VALUE),o=q.getValueOrDefault(t.heightReference,Ue.MINIMUM_VALUE,qe.NONE),r=q.getValueOrUndefined(t.extrudedHeight,Ue.MINIMUM_VALUE),s=q.getValueOrDefault(t.extrudedHeightReference,Ue.MINIMUM_VALUE,qe.NONE);l(r)&&!l(i)&&(i=0);let a=this._options;a.vertexFormat=n?cn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,a.rectangle=t.coordinates.getValue(Ue.MINIMUM_VALUE,a.rectangle),a.granularity=q.getValueOrUndefined(t.granularity,Ue.MINIMUM_VALUE),a.stRotation=q.getValueOrUndefined(t.stRotation,Ue.MINIMUM_VALUE),a.rotation=q.getValueOrUndefined(t.rotation,Ue.MINIMUM_VALUE),a.offsetAttribute=Wn.computeGeometryOffsetAttribute(i,o,r,s),a.height=Wn.getGeometryHeight(i,o),r=Wn.getGeometryExtrudedHeight(r,s),r===Wn.CLAMP_TO_GROUND&&(r=ci.getMinimumMaximumHeights(Jb.computeRectangle(a,Fde)).minimumTerrainHeight),a.extrudedHeight=r};dh.DynamicGeometryUpdater=ZE;function ZE(e,t,n){ti.call(this,e,t,n)}l(Object.create)&&(ZE.prototype=Object.create(ti.prototype),ZE.prototype.constructor=ZE);ZE.prototype._isHidden=function(e,t,n){return!l(this._options.rectangle)||ti.prototype._isHidden.call(this,e,t,n)};ZE.prototype._setOptions=function(e,t,n){let i=this._options,o=q.getValueOrUndefined(t.height,n),r=q.getValueOrDefault(t.heightReference,n,qe.NONE),s=q.getValueOrUndefined(t.extrudedHeight,n),a=q.getValueOrDefault(t.extrudedHeightReference,n,qe.NONE);l(s)&&!l(o)&&(o=0),i.rectangle=q.getValueOrUndefined(t.coordinates,n,i.rectangle),i.granularity=q.getValueOrUndefined(t.granularity,n),i.stRotation=q.getValueOrUndefined(t.stRotation,n),i.rotation=q.getValueOrUndefined(t.rotation,n),i.offsetAttribute=Wn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Wn.getGeometryHeight(o,r),s=Wn.getGeometryExtrudedHeight(s,a),s===Wn.CLAMP_TO_GROUND&&(s=ci.getMinimumMaximumHeights(Jb.computeRectangle(i,Fde)).minimumTerrainHeight),i.extrudedHeight=s};var jL=dh;var Bde={};function KKe(e,t){return R.equalsEpsilon(e.latitude,t.latitude,R.EPSILON10)&&R.equalsEpsilon(e.longitude,t.longitude,R.EPSILON10)}var ZKe=new fe,$Ke=new fe;function QKe(e,t,n,i){t=xo(t,h.equalsEpsilon);let o=t.length;if(o<2)return;let r=l(i),s=l(n),a=new Array(o),c=new Array(o),u=new Array(o),f=t[0];a[0]=f;let d=e.cartesianToCartographic(f,ZKe);s&&(d.height=n[0]),c[0]=d.height,r?u[0]=i[0]:u[0]=0;let p=c[0],g=u[0],m=p===g,x=1;for(let b=1;b<o;++b){let T=t[b],C=e.cartesianToCartographic(T,$Ke);s&&(C.height=n[b]),m=m&&C.height===0,KKe(d,C)?d.height<C.height&&(c[x-1]=C.height):(a[x]=T,c[x]=C.height,r?u[x]=i[b]:u[x]=0,m=m&&c[x]===u[x],fe.clone(C,d),++x)}if(!(m||x<2))return a.length=x,c.length=x,u.length=x,{positions:a,topHeights:c,bottomHeights:u}}var JKe=new Array(2),eZe=new Array(2),tZe={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};Bde.computePositions=function(e,t,n,i,o,r){let s=QKe(e,t,n,i);if(!l(s))return;t=s.positions,n=s.topHeights,i=s.bottomHeights;let a=t.length,c=a-2,u,f,d=R.chordLength(o,e.maximumRadius),p=tZe;if(p.minDistance=d,p.ellipsoid=e,r){let g=0,m;for(m=0;m<a-1;m++)g+=wi.numberOfPoints(t[m],t[m+1],d)+1;u=new Float64Array(g*3),f=new Float64Array(g*3);let x=JKe,b=eZe;p.positions=x,p.height=b;let T=0;for(m=0;m<a-1;m++){x[0]=t[m],x[1]=t[m+1],b[0]=n[m],b[1]=n[m+1];let C=wi.generateArc(p);u.set(C,T),b[0]=i[m],b[1]=i[m+1],f.set(wi.generateArc(p),T),T+=C.length}}else p.positions=t,p.height=n,u=new Float64Array(wi.generateArc(p)),p.height=i,f=new Float64Array(wi.generateArc(p));return{bottomPositions:f,topPositions:u,numCorners:c}};var eT=Bde;var v7=new h,Fz=new h,nZe=new h,kde=new h,iZe=new h,oZe=new h,rZe=new h;function tT(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=y(e.vertexFormat,Ie.DEFAULT),r=y(e.granularity,R.RADIANS_PER_DEGREE),s=y(e.ellipsoid,te.WGS84);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._vertexFormat=Ie.clone(o),this._granularity=r,this._ellipsoid=te.clone(s),this._workerName="createWallGeometry";let a=1+t.length*h.packedLength+2;l(i)&&(a+=i.length),l(n)&&(a+=n.length),this.packedLength=a+te.packedLength+Ie.packedLength+1}tT.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._minimumHeights;if(r=l(s)?s.length:0,t[n++]=r,l(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=l(a)?a.length:0,t[n++]=r,l(a))for(i=0;i<r;++i)t[n++]=a[i];return te.pack(e._ellipsoid,t,n),n+=te.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n]=e._granularity,t};var Vde=te.clone(te.UNIT_SPHERE),Ude=new Ie,qL={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:Vde,vertexFormat:Ude,granularity:void 0};tT.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s;if(o>0)for(s=new Array(o),i=0;i<o;++i)s[i]=e[t++];o=e[t++];let a;if(o>0)for(a=new Array(o),i=0;i<o;++i)a[i]=e[t++];let c=te.unpack(e,t,Vde);t+=te.packedLength;let u=Ie.unpack(e,t,Ude);t+=Ie.packedLength;let f=e[t];return l(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=te.clone(c,n._ellipsoid),n._vertexFormat=Ie.clone(u,n._vertexFormat),n._granularity=f,n):(qL.positions=r,qL.minimumHeights=s,qL.maximumHeights=a,qL.granularity=f,new tT(qL))};tT.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=l(o),a=l(r);if(s||a){let u=t.length;n=s?new Array(u):void 0,i=a?new Array(u):void 0;for(let f=0;f<u;++f)s&&(n[f]=o),a&&(i[f]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid,vertexFormat:e.vertexFormat};return new tT(c)};tT.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._vertexFormat,r=e._granularity,s=e._ellipsoid,a=eT.computePositions(s,t,i,n,r,!0);if(!l(a))return;let c=a.bottomPositions,u=a.topPositions,f=a.numCorners,d=u.length,p=d*2,g=o.position?new Float64Array(p):void 0,m=o.normal?new Float32Array(p):void 0,x=o.tangent?new Float32Array(p):void 0,b=o.bitangent?new Float32Array(p):void 0,T=o.st?new Float32Array(p/3*2):void 0,C=0,A=0,E=0,v=0,D=0,O=rZe,I=oZe,L=iZe,N=!0;d/=3;let _,S=0,w=1/(d-f-1);for(_=0;_<d;++_){let V=_*3,G=h.fromArray(u,V,v7),k=h.fromArray(c,V,Fz);if(o.position&&(g[C++]=k.x,g[C++]=k.y,g[C++]=k.z,g[C++]=G.x,g[C++]=G.y,g[C++]=G.z),o.st&&(T[D++]=S,T[D++]=0,T[D++]=S,T[D++]=1),o.normal||o.tangent||o.bitangent){let Y=h.clone(h.ZERO,kde),W=h.subtract(G,s.geodeticSurfaceNormal(G,Fz),Fz);if(_+1<d&&(Y=h.fromArray(u,V+3,kde)),N){let Q=h.subtract(Y,G,nZe),j=h.subtract(W,G,v7);O=h.normalize(h.cross(j,Q,O),O),N=!1}h.equalsEpsilon(G,Y,R.EPSILON10)?N=!0:(S+=w,o.tangent&&(I=h.normalize(h.subtract(Y,G,I),I)),o.bitangent&&(L=h.normalize(h.cross(O,I,L),L))),o.normal&&(m[A++]=O.x,m[A++]=O.y,m[A++]=O.z,m[A++]=O.x,m[A++]=O.y,m[A++]=O.z),o.tangent&&(x[v++]=I.x,x[v++]=I.y,x[v++]=I.z,x[v++]=I.x,x[v++]=I.y,x[v++]=I.z),o.bitangent&&(b[E++]=L.x,b[E++]=L.y,b[E++]=L.z,b[E++]=L.x,b[E++]=L.y,b[E++]=L.z)}}let P=new fn;o.position&&(P.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:g})),o.normal&&(P.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),o.tangent&&(P.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),o.bitangent&&(P.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:b})),o.st&&(P.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:T}));let M=p/3;p-=6*(f+1);let B=Ne.createTypedArray(M,p),U=0;for(_=0;_<M-2;_+=2){let V=_,G=_+2,k=h.fromArray(g,V*3,v7),Y=h.fromArray(g,G*3,Fz);if(h.equalsEpsilon(k,Y,R.EPSILON10))continue;let W=_+1,Q=_+3;B[U++]=W,B[U++]=V,B[U++]=Q,B[U++]=Q,B[U++]=V,B[U++]=G}return new st({attributes:P,indices:B,primitiveType:Le.TRIANGLES,boundingSphere:new ae.fromVertices(g)})};var YL=tT;var zde=new h,Hde=new h;function nT(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=y(e.granularity,R.RADIANS_PER_DEGREE),r=y(e.ellipsoid,te.WGS84);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._granularity=o,this._ellipsoid=te.clone(r),this._workerName="createWallOutlineGeometry";let s=1+t.length*h.packedLength+2;l(i)&&(s+=i.length),l(n)&&(s+=n.length),this.packedLength=s+te.packedLength+1}nT.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._minimumHeights;if(r=l(s)?s.length:0,t[n++]=r,l(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=l(a)?a.length:0,t[n++]=r,l(a))for(i=0;i<r;++i)t[n++]=a[i];return te.pack(e._ellipsoid,t,n),n+=te.packedLength,t[n]=e._granularity,t};var Gde=te.clone(te.UNIT_SPHERE),XL={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:Gde,granularity:void 0};nT.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s;if(o>0)for(s=new Array(o),i=0;i<o;++i)s[i]=e[t++];o=e[t++];let a;if(o>0)for(a=new Array(o),i=0;i<o;++i)a[i]=e[t++];let c=te.unpack(e,t,Gde);t+=te.packedLength;let u=e[t];return l(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=te.clone(c,n._ellipsoid),n._granularity=u,n):(XL.positions=r,XL.minimumHeights=s,XL.maximumHeights=a,XL.granularity=u,new nT(XL))};nT.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=l(o),a=l(r);if(s||a){let u=t.length;n=s?new Array(u):void 0,i=a?new Array(u):void 0;for(let f=0;f<u;++f)s&&(n[f]=o),a&&(i[f]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid};return new nT(c)};nT.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._granularity,r=e._ellipsoid,s=eT.computePositions(r,t,i,n,o,!1);if(!l(s))return;let a=s.bottomPositions,c=s.topPositions,u=c.length,f=u*2,d=new Float64Array(f),p=0;u/=3;let g;for(g=0;g<u;++g){let C=g*3,A=h.fromArray(c,C,zde),E=h.fromArray(a,C,Hde);d[p++]=E.x,d[p++]=E.y,d[p++]=E.z,d[p++]=A.x,d[p++]=A.y,d[p++]=A.z}let m=new fn({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})}),x=f/3;f=2*x-4+x;let b=Ne.createTypedArray(x,f),T=0;for(g=0;g<x-2;g+=2){let C=g,A=g+2,E=h.fromArray(d,C*3,zde),v=h.fromArray(d,A*3,Hde);if(h.equalsEpsilon(E,v,R.EPSILON10))continue;let D=g+1,O=g+3;b[T++]=D,b[T++]=C,b[T++]=D,b[T++]=O,b[T++]=C,b[T++]=A}return b[T++]=x-2,b[T++]=x-1,new st({attributes:m,indices:b,primitiveType:Le.LINES,boundingSphere:new ae.fromVertices(d)})};var KL=nT;var Wde=new H;function sZe(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.minimumHeights=void 0,this.maximumHeights=void 0,this.granularity=void 0}function hh(e,t){ni.call(this,{entity:e,scene:t,geometryOptions:new sZe(e),geometryPropertyName:"wall",observedPropertyNames:["availability","wall"]}),this._onEntityPropertyChanged(e,"wall",e.wall,void 0)}l(Object.create)&&(hh.prototype=Object.create(ni.prototype),hh.prototype.constructor=hh);hh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof kt){let c;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,Wde)),l(c)||(c=H.WHITE),o=zt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new xt({id:t,geometry:new YL(this._options),attributes:i})};hh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Wde),o=this._distanceDisplayConditionProperty.getValue(e);return new xt({id:t,geometry:new KL(this._options),attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:zt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};hh.prototype._isHidden=function(e,t){return!l(t.positions)||ni.prototype._isHidden.call(this,e,t)};hh.prototype._getIsClosed=function(e){return!1};hh.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!q.isConstant(t.minimumHeights)||!q.isConstant(t.maximumHeights)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.granularity)};hh.prototype._setStaticOptions=function(e,t){let n=t.minimumHeights,i=t.maximumHeights,o=t.granularity,r=this._materialProperty instanceof kt,s=this._options;s.vertexFormat=r?cn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(Ue.MINIMUM_VALUE,s.positions),s.minimumHeights=l(n)?n.getValue(Ue.MINIMUM_VALUE,s.minimumHeights):void 0,s.maximumHeights=l(i)?i.getValue(Ue.MINIMUM_VALUE,s.maximumHeights):void 0,s.granularity=l(o)?o.getValue(Ue.MINIMUM_VALUE):void 0};hh.DynamicGeometryUpdater=$E;function $E(e,t,n){ti.call(this,e,t,n)}l(Object.create)&&($E.prototype=Object.create(ti.prototype),$E.prototype.constructor=$E);$E.prototype._isHidden=function(e,t,n){return!l(this._options.positions)||ti.prototype._isHidden.call(this,e,t,n)};$E.prototype._setOptions=function(e,t,n){let i=this._options;i.positions=q.getValueOrUndefined(t.positions,n,i.positions),i.minimumHeights=q.getValueOrUndefined(t.minimumHeights,n,i.minimumHeights),i.maximumHeights=q.getValueOrUndefined(t.maximumHeights,n,i.maximumHeights),i.granularity=q.getValueOrUndefined(t.granularity,n)};var ZL=hh;var iT=[t1,pL,sL,DL,IL,ML,BL,WL,jL,ZL];function oT(e,t){this.entity=e,this.scene=t;let n=new Array(iT.length),i=new pe,o=new Ir;for(let r=0;r<n.length;r++){let s=new iT[r](e,t);o.add(s.geometryChanged,a=>{i.raiseEvent(a)}),n[r]=s}this.updaters=n,this.geometryChanged=i,this.eventHelper=o,this._removeEntitySubscription=e.definitionChanged.addEventListener(oT.prototype._onEntityPropertyChanged,this)}oT.prototype._onEntityPropertyChanged=function(e,t,n,i){let o=this.updaters;for(let r=0;r<o.length;r++)o[r]._onEntityPropertyChanged(e,t,n,i)};oT.prototype.forEach=function(e){let t=this.updaters;for(let n=0;n<t.length;n++)e(t[n])};oT.prototype.destroy=function(){this.eventHelper.removeAll();let e=this.updaters;for(let t=0;t<e.length;t++)e[t].destroy();this._removeEntitySubscription(),ue(this)};oT.registerUpdater=function(e){iT.includes(e)||iT.push(e)};oT.unregisterUpdater=function(e){if(iT.includes(e)){let t=iT.indexOf(e);iT.splice(t,1)}};var rT=oT;var jde=new H,aZe=new It,cZe=new It,lZe=h.ZERO,uZe=new h;function mh(e,t,n,i,o,r,s){this.translucent=t,this.appearanceType=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=o,this.depthFailMaterial=void 0,this.closed=r,this.shadows=s,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new bt,this.updaters=new bt,this.updatersWithAttributes=new bt,this.attributes=new bt,this.subscriptions=new bt,this.showsUpdated=new bt,this.itemsToRemove=[],this.invalidated=!1;let a;l(o)&&(a=o.definitionChanged.addEventListener(mh.prototype.onMaterialChanged,this)),this.removeMaterialSubscription=a}mh.prototype.onMaterialChanged=function(){this.invalidated=!0};mh.prototype.isMaterial=function(e){let t=this.depthFailMaterialProperty,n=e.depthFailMaterialProperty;return n===t?!0:l(t)?t.equals(n):!1};mh.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!q.isConstant(e.distanceDisplayConditionProperty)||!q.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};mh.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};mh.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0){l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i);let c;l(this.depthFailAppearanceType)&&(l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=Ko.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial)),c=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.translucent,closed:this.closed})),i=new vn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new this.appearanceType({translucent:this.translucent,closed:this.closed}),depthFailAppearance:c,shadows:this.shadows}),o.add(i),t=!1}else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0),l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof kt)&&(this.depthFailMaterial=Ko.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.fillMaterialProperty.isConstant||c){let b=u.fillMaterialProperty.color,T=q.getValueOrDefault(b,e,H.WHITE,jde);H.equals(d._lastColor,T)||(d._lastColor=H.clone(T,d._lastColor),d.color=zt.toValue(T,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=u))}if(l(this.depthFailAppearanceType)&&u.depthFailMaterialProperty instanceof kt&&(!u.depthFailMaterialProperty.isConstant||c)){let b=u.depthFailMaterialProperty.color,T=q.getValueOrDefault(b,e,H.WHITE,jde);H.equals(d._lastDepthFailColor,T)||(d._lastDepthFailColor=H.clone(T,d._lastDepthFailColor),d.depthFailColor=zt.toValue(T,d.depthFailColor))}let p=u.entity.isShowing&&(u.hasConstantFill||u.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=u.distanceDisplayConditionProperty;if(!q.isConstant(m)){let b=q.getValueOrDefault(m,e,cZe,aZe);It.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=It.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(b,d.distanceDisplayCondition))}let x=u.terrainOffsetProperty;if(!q.isConstant(x)){let b=q.getValueOrDefault(x,e,lZe,uZe);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Yi.toValue(b,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};mh.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=gn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};mh.prototype.contains=function(e){return this.updaters.contains(e.id)};mh.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return at.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?at.FAILED:(i.boundingSphere.clone(t),at.DONE)};mh.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),l(this.removeMaterialSubscription)&&this.removeMaterialSubscription()};function QE(e,t,n,i,o){this._solidItems=[],this._translucentItems=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}QE.prototype.add=function(e,t){let n,i,o=t.createFillGeometryInstance(e);o.attributes.color.value[3]===255?(n=this._solidItems,i=!1):(n=this._translucentItems,i=!0);let r=n.length;for(let a=0;a<r;a++){let c=n[a];if(c.isMaterial(t)){c.add(t,o);return}}let s=new mh(this._primitives,i,this._appearanceType,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);s.add(t,o),n.push(s)};function qde(e,t){let n=e.length;for(let i=n-1;i>=0;i--){let o=e[i];if(o.remove(t))return o.updaters.length===0&&(e.splice(i,1),o.destroy()),!0}return!1}QE.prototype.remove=function(e){qde(this._solidItems,e)||qde(this._translucentItems,e)};function Yde(e,t,n){let i=!1,o=t.length;for(let r=0;r<o;++r){let s=t[r],a=s.itemsToRemove,c=a.length;if(c>0)for(r=0;r<c;r++){let u=a[r];s.remove(u),e.add(n,u),i=!0}}return i}function Bz(e,t,n,i){let o=t.length,r;for(r=o-1;r>=0;r--){let s=t[r];if(s.invalidated){t.splice(r,1);let a=s.updaters.values,c=a.length;for(let u=0;u<c;u++)e.add(n,a[u]);s.destroy()}}for(o=t.length,r=0;r<o;++r)i=t[r].update(n)&&i;return i}QE.prototype.update=function(e){let t=Bz(this,this._solidItems,e,!0);t=Bz(this,this._translucentItems,e,t)&&t;let n=Yde(this,this._solidItems,e),i=Yde(this,this._translucentItems,e);return(n||i)&&(t=Bz(this,this._solidItems,e,t)&&t,t=Bz(this,this._translucentItems,e,t)&&t),t};function Xde(e,t,n){let i=e.length;for(let o=0;o<i;o++){let r=e[o];if(r.contains(t))return r.getBoundingSphere(t,n)}return at.FAILED}QE.prototype.getBoundingSphere=function(e,t){let n=Xde(this._solidItems,e,t);return n===at.FAILED?Xde(this._translucentItems,e,t):n};function Kde(e){let t=e.length;for(let n=0;n<t;n++)e[n].destroy();e.length=0}QE.prototype.removeAllPrimitives=function(){Kde(this._solidItems),Kde(this._translucentItems)};var Kf=QE;var fZe=new It,dZe=new It,hZe=h.ZERO,mZe=new h;function ph(e,t,n,i,o,r,s){this.primitives=e,this.appearanceType=t,this.materialProperty=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=o,this.closed=r,this.shadows=s,this.updaters=new bt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new bt,this.material=void 0,this.depthFailMaterial=void 0,this.updatersWithAttributes=new bt,this.attributes=new bt,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(ph.prototype.onMaterialChanged,this),this.subscriptions=new bt,this.showsUpdated=new bt}ph.prototype.onMaterialChanged=function(){this.invalidated=!0};ph.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty,i=this.depthFailMaterialProperty,o=e.depthFailMaterialProperty;if(n===t&&o===i)return!0;let r=l(t)&&t.equals(n);return r=(!l(i)&&!l(o)||l(i)&&i.equals(o))&&r,r};ph.prototype.add=function(e,t){let n=t.id;if(this.updaters.set(n,t),this.geometry.set(n,t.createFillGeometryInstance(e)),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!q.isConstant(t.distanceDisplayConditionProperty)||!q.isConstant(t.terrainOffsetProperty))this.updatersWithAttributes.set(n,t);else{let i=this;this.subscriptions.set(n,t.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};ph.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};var pZe=new H;ph.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0){l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=Ko.getValue(e,this.materialProperty,this.material);let a;l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=Ko.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),a=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.depthFailMaterial.isTranslucent(),closed:this.closed})),n=new vn({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material,translucent:this.material.isTranslucent(),closed:this.closed}),depthFailAppearance:a,shadows:this.shadows}),i.add(n),t=!1}else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=Ko.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material,l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof kt)&&(this.depthFailMaterial=Ko.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),l(this.depthFailAppearanceType)&&this.depthFailMaterialProperty instanceof kt&&!c.depthFailMaterialProperty.isConstant){let b=c.depthFailMaterialProperty.color,T=q.getValueOrDefault(b,e,H.WHITE,pZe);H.equals(d._lastDepthFailColor,T)||(d._lastDepthFailColor=H.clone(T,d._lastDepthFailColor),d.depthFailColor=zt.toValue(T,d.depthFailColor))}let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!q.isConstant(m)){let b=q.getValueOrDefault(m,e,dZe,fZe);It.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=It.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(b,d.distanceDisplayCondition))}let x=c.terrainOffsetProperty;if(!q.isConstant(x)){let b=q.getValueOrDefault(x,e,hZe,mZe);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Yi.toValue(b,d.offset))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};ph.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};ph.prototype.contains=function(e){return this.updaters.contains(e.id)};ph.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return at.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?at.FAILED:(i.boundingSphere.clone(t),at.DONE)};ph.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function JE(e,t,n,i,o){this._items=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}JE.prototype.add=function(e,t){let n=this._items,i=n.length;for(let r=0;r<i;r++){let s=n[r];if(s.isMaterial(t)){s.add(e,t);return}}let o=new ph(this._primitives,this._appearanceType,t.fillMaterialProperty,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);o.add(e,t),n.push(o)};JE.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};JE.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};JE.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return at.FAILED};JE.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var Zf=JE;var $de=wo(Zde(),1);function kz(){this._tree=new $de.default}function sT(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.id=""}sT.fromRectangleAndId=function(e,t,n){return n.minX=t.west,n.minY=t.south,n.maxX=t.east,n.maxY=t.north,n.id=e,n};kz.prototype.insert=function(e,t){let n=sT.fromRectangleAndId(e,t,new sT);this._tree.insert(n)};function _Ze(e,t){return e.id===t.id}var gZe=new sT;kz.prototype.remove=function(e,t){let n=sT.fromRectangleAndId(e,t,gZe);this._tree.remove(n,_Ze)};var yZe=new sT;kz.prototype.collides=function(e){let t=sT.fromRectangleAndId("",e,yZe);return this._tree.collides(t)};var aT=kz;var xZe=new H,bZe=new It,TZe=new It;function V_(e,t,n,i){this.primitives=e,this.zIndex=i,this.classificationType=t,this.color=n,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new bt,this.updaters=new bt,this.updatersWithAttributes=new bt,this.attributes=new bt,this.subscriptions=new bt,this.showsUpdated=new bt,this.itemsToRemove=[],this.isDirty=!1,this.rectangleCollisionCheck=new aT}V_.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};V_.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),this.rectangleCollisionCheck.insert(n,t.geometry.rectangle),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!q.isConstant(e.distanceDisplayConditionProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};V_.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return l(i)&&(i(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};V_.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new Vc({show:!1,asynchronous:!0,geometryInstances:s.slice(),classificationType:this.classificationType}),o.add(i,this.zIndex),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.fillMaterialProperty.isConstant||c){let x=u.fillMaterialProperty.color,b=q.getValueOrDefault(x,e,H.WHITE,xZe);H.equals(d._lastColor,b)||(d._lastColor=H.clone(b,d._lastColor),d.color=zt.toValue(b,d.color))}let p=u.entity.isShowing&&(u.hasConstantFill||u.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=u.distanceDisplayConditionProperty;if(!q.isConstant(m)){let x=q.getValueOrDefault(m,e,TZe,bZe);It.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=It.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};V_.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=gn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};V_.prototype.contains=function(e){return this.updaters.contains(e.id)};V_.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return at.PENDING;let i=n.getBoundingSphere(e.entity);return l(i)?(i.clone(t),at.DONE):at.FAILED};V_.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;l(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;l(n)&&(e.remove(n),this.oldPrimitive=void 0)};function eS(e,t){this._batches=[],this._primitives=e,this._classificationType=t}eS.prototype.add=function(e,t){let n=t.createFillGeometryInstance(e),i=this._batches,o=q.getValueOrDefault(t.zIndex,0),r,s=i.length;for(let a=0;a<s;++a){let c=i[a];if(c.zIndex===o&&!c.overlapping(n.geometry.rectangle)){r=c;break}}return l(r)||(r=new V_(this._primitives,this._classificationType,n.attributes.color.value,o),i.push(r)),r.add(t,n),r};eS.prototype.remove=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;++i)if(t[i].remove(e))return};eS.prototype.update=function(e){let t,n,i=!0,o=this._batches,r=o.length;for(t=0;t<r;++t)i=o[t].update(e)&&i;for(t=0;t<r;++t){let s=o[t],a=s.itemsToRemove,c=a.length;for(let u=0;u<c;u++){n=a[u],s.remove(n);let f=this.add(e,n);s.isDirty=!0,f.isDirty=!0}}for(t=r-1;t>=0;--t){let s=o[t];s.isDirty&&(i=o[t].update(e)&&i,s.isDirty=!1),s.geometry.length===0&&o.splice(t,1)}return i};eS.prototype.getBoundingSphere=function(e,t){let n=this._batches,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return at.FAILED};eS.prototype.removeAllPrimitives=function(){let e=this._batches,t=e.length;for(let n=0;n<t;++n)e[n].removeAllPrimitives()};var tS=eS;var AZe=new It,CZe=new It;function $f(e,t,n,i,o,r){this.primitives=e,this.classificationType=t,this.appearanceType=n,this.materialProperty=i,this.updaters=new bt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new bt,this.material=void 0,this.updatersWithAttributes=new bt,this.attributes=new bt,this.invalidated=!1,this.removeMaterialSubscription=i.definitionChanged.addEventListener($f.prototype.onMaterialChanged,this),this.subscriptions=new bt,this.showsUpdated=new bt,this.usingSphericalTextureCoordinates=o,this.zIndex=r,this.rectangleCollisionCheck=new aT}$f.prototype.onMaterialChanged=function(){this.invalidated=!0};$f.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};$f.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof kt&&t instanceof kt?!0:l(t)&&t.equals(n)};$f.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),this.rectangleCollisionCheck.insert(i,n.geometry.rectangle),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!q.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};$f.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return l(i)&&(i(),this.subscriptions.remove(t)),!0}return!1};$f.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=Ko.getValue(e,this.materialProperty,this.material),n=new Vc({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material}),classificationType:this.classificationType}),i.add(n,this.zIndex),t=!1;else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=Ko.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material;let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d));let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!q.isConstant(m)){let x=q.getValueOrDefault(m,e,CZe,AZe);It.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=It.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};$f.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};$f.prototype.contains=function(e){return this.updaters.contains(e.id)};$f.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return at.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?at.FAILED:(i.boundingSphere.clone(t),at.DONE)};$f.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function nS(e,t,n){this._items=[],this._primitives=e,this._classificationType=t,this._appearanceType=n}nS.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=du.shouldUseSphericalCoordinates(o.geometry.rectangle),s=q.getValueOrDefault(t.zIndex,0);for(let c=0;c<i;++c){let u=n[c];if(u.isMaterial(t)&&u.usingSphericalTextureCoordinates===r&&u.zIndex===s&&!u.overlapping(o.geometry.rectangle)){u.add(e,t,o);return}}let a=new $f(this._primitives,this._classificationType,this._appearanceType,t.fillMaterialProperty,r,s);a.add(e,t,o),n.push(a)};nS.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};nS.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};nS.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return at.FAILED};nS.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var $L=nS;var EZe=new H,SZe=new It,vZe=new It,wZe=h.ZERO,DZe=new h;function U_(e,t,n,i){this.translucent=t,this.width=n,this.shadows=i,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new bt,this.updaters=new bt,this.updatersWithAttributes=new bt,this.attributes=new bt,this.itemsToRemove=[],this.subscriptions=new bt,this.showsUpdated=new bt}U_.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantOutline||!e.outlineColorProperty.isConstant||!q.isConstant(e.distanceDisplayConditionProperty)||!q.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};U_.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};U_.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new vn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new cn({flat:!0,translucent:this.translucent,renderState:{lineWidth:this.width}}),shadows:this.shadows}),o.add(i),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.outlineColorProperty.isConstant||c){let b=u.outlineColorProperty,T=q.getValueOrDefault(b,e,H.WHITE,EZe);H.equals(d._lastColor,T)||(d._lastColor=H.clone(T,d._lastColor),d.color=zt.toValue(T,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=u))}let p=u.entity.isShowing&&(u.hasConstantOutline||u.isOutlineVisible(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=u.distanceDisplayConditionProperty;if(!q.isConstant(m)){let b=q.getValueOrDefault(m,e,vZe,SZe);It.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=It.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(b,d.distanceDisplayCondition))}let x=u.terrainOffsetProperty;if(!q.isConstant(x)){let b=q.getValueOrDefault(x,e,wZe,DZe);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Yi.toValue(b,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};U_.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=gn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};U_.prototype.contains=function(e){return this.updaters.contains(e.id)};U_.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return at.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?at.FAILED:(i.boundingSphere.clone(t),at.DONE)};U_.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;l(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;l(n)&&(e.remove(n),this.oldPrimitive=void 0)};function iS(e,t,n){this._primitives=e,this._scene=t,this._shadows=n,this._solidBatches=new bt,this._translucentBatches=new bt}iS.prototype.add=function(e,t){let n=t.createOutlineGeometryInstance(e),i=this._scene.clampLineWidth(t.outlineWidth),o,r;n.attributes.color.value[3]===255?(o=this._solidBatches,r=o.get(i),l(r)||(r=new U_(this._primitives,!1,i,this._shadows),o.set(i,r)),r.add(t,n)):(o=this._translucentBatches,r=o.get(i),l(r)||(r=new U_(this._primitives,!0,i,this._shadows),o.set(i,r)),r.add(t,n))};iS.prototype.remove=function(e){let t,n=this._solidBatches.values,i=n.length;for(t=0;t<i;t++)if(n[t].remove(e))return;let o=this._translucentBatches.values,r=o.length;for(t=0;t<r;t++)if(o[t].remove(e))return};iS.prototype.update=function(e){let t,n,i,o,r=this._solidBatches.values,s=r.length,a=this._translucentBatches.values,c=a.length,u,f=!0,d=!1;do{for(d=!1,n=0;n<s;n++){o=r[n],f=o.update(e),u=o.itemsToRemove;let p=u.length;if(p>0)for(d=!0,t=0;t<p;t++)i=u[t],o.remove(i),this.add(e,i)}for(n=0;n<c;n++){o=a[n],f=o.update(e),u=o.itemsToRemove;let p=u.length;if(p>0)for(d=!0,t=0;t<p;t++)i=u[t],o.remove(i),this.add(e,i)}}while(d);return f};iS.prototype.getBoundingSphere=function(e,t){let n,i=this._solidBatches.values,o=i.length;for(n=0;n<o;n++){let a=i[n];if(a.contains(e))return a.getBoundingSphere(e,t)}let r=this._translucentBatches.values,s=r.length;for(n=0;n<s;n++){let a=r[n];if(a.contains(e))return a.getBoundingSphere(e,t)}return at.FAILED};iS.prototype.removeAllPrimitives=function(){let e,t=this._solidBatches.values,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._translucentBatches.values,o=i.length;for(e=0;e<o;e++)i[e].removeAllPrimitives()};var oS=iS;var PZe=[];function ql(e,t,n,i){n=y(n,e.primitives),i=y(i,e.groundPrimitives),this._scene=e,this._primitives=n,this._groundPrimitives=i,this._entityCollection=void 0,this._addedObjects=new bt,this._removedObjects=new bt,this._changedObjects=new bt;let o=yn.NUMBER_OF_SHADOW_MODES;this._outlineBatches=new Array(o*2),this._closedColorBatches=new Array(o*2),this._closedMaterialBatches=new Array(o*2),this._openColorBatches=new Array(o*2),this._openMaterialBatches=new Array(o*2);let r=Zo.supportsMaterialsforEntitiesOnTerrain(e);this._supportsMaterialsforEntitiesOnTerrain=r;let s;for(s=0;s<o;++s)this._outlineBatches[s]=new oS(n,e,s,!1),this._outlineBatches[o+s]=new oS(n,e,s,!0),this._closedColorBatches[s]=new Kf(n,cn,void 0,!0,s,!0),this._closedColorBatches[o+s]=new Kf(n,cn,void 0,!0,s,!1),this._closedMaterialBatches[s]=new Zf(n,ro,void 0,!0,s,!0),this._closedMaterialBatches[o+s]=new Zf(n,ro,void 0,!0,s,!1),this._openColorBatches[s]=new Kf(n,cn,void 0,!1,s,!0),this._openColorBatches[o+s]=new Kf(n,cn,void 0,!1,s,!1),this._openMaterialBatches[s]=new Zf(n,ro,void 0,!1,s,!0),this._openMaterialBatches[o+s]=new Zf(n,ro,void 0,!1,s,!1);let a=Vn.NUMBER_OF_CLASSIFICATION_TYPES,c=new Array(a),u=[];if(r)for(s=0;s<a;++s)u.push(new $L(i,s,ro)),c[s]=new tS(i,s);else for(s=0;s<a;++s)c[s]=new tS(i,s);this._groundColorBatches=c,this._groundMaterialBatches=u,this._dynamicBatch=new Xb(n,i),this._batches=this._outlineBatches.concat(this._closedColorBatches,this._closedMaterialBatches,this._openColorBatches,this._openMaterialBatches,this._groundColorBatches,this._groundMaterialBatches,this._dynamicBatch),this._subscriptions=new bt,this._updaterSets=new bt,this._entityCollection=t,t.collectionChanged.addEventListener(ql.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,PZe)}ql.registerUpdater=function(e){rT.registerUpdater(e)};ql.unregisterUpdater=function(e){rT.unregisterUpdater(e)};ql.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,o=i.values,r=this._changedObjects,s=r.values,a,c,u,f,d=this;for(a=s.length-1;a>-1;a--)c=s[a],u=c.id,f=this._updaterSets.get(u),f.entity===c?f.forEach(function(x){d._removeUpdater(x),d._insertUpdaterIntoBatch(e,x)}):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],u=c.id,f=this._updaterSets.get(u),f.forEach(this._removeUpdater.bind(this)),f.destroy(),this._updaterSets.remove(u),this._subscriptions.get(u)(),this._subscriptions.remove(u);for(a=n.length-1;a>-1;a--)c=n[a],u=c.id,f=new rT(c,this._scene),this._updaterSets.set(u,f),f.forEach(function(x){d._insertUpdaterIntoBatch(e,x)}),this._subscriptions.set(u,f.geometryChanged.addEventListener(ql._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let p=!0,g=this._batches,m=g.length;for(a=0;a<m;a++)p=g[a].update(e)&&p;return p};var IZe=[],RZe=new ae;ql.prototype.getBoundingSphere=function(e,t){let n=IZe,i=RZe,o=0,r=at.DONE,s=this._batches,a=s.length,c=e.id,u=this._updaterSets.get(c).updaters;for(let f=0;f<u.length;f++){let d=u[f];for(let p=0;p<a;p++){if(r=s[p].getBoundingSphere(d,i),r===at.PENDING)return at.PENDING;r===at.DONE&&(n[o]=ae.clone(i,n[o]),o++)}}return o===0?at.FAILED:(n.length=o,ae.fromBoundingSpheres(n,t),at.DONE)};ql.prototype.isDestroyed=function(){return!1};ql.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(ql.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();this._subscriptions.removeAll();let o=this._updaterSets.values;for(n=o.length,e=0;e<n;e++)o[e].destroy();return this._updaterSets.removeAll(),ue(this)};ql.prototype._removeUpdater=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;i++)t[i].remove(e)};ql.prototype._insertUpdaterIntoBatch=function(e,t){if(t.isDynamic){this._dynamicBatch.add(e,t);return}let n;(t.outlineEnabled||t.fillEnabled)&&(n=t.shadowsProperty.getValue(e));let i=yn.NUMBER_OF_SHADOW_MODES;if(t.outlineEnabled&&(l(t.terrainOffsetProperty)?this._outlineBatches[i+n].add(e,t):this._outlineBatches[n].add(e,t)),t.fillEnabled)if(t.onTerrain){let o=t.classificationTypeProperty.getValue(e);t.fillMaterialProperty instanceof kt?this._groundColorBatches[o].add(e,t):this._groundMaterialBatches[o].add(e,t)}else t.isClosed?t.fillMaterialProperty instanceof kt?l(t.terrainOffsetProperty)?this._closedColorBatches[i+n].add(e,t):this._closedColorBatches[n].add(e,t):l(t.terrainOffsetProperty)?this._closedMaterialBatches[i+n].add(e,t):this._closedMaterialBatches[n].add(e,t):t.fillMaterialProperty instanceof kt?l(t.terrainOffsetProperty)?this._openColorBatches[i+n].add(e,t):this._openColorBatches[n].add(e,t):l(t.terrainOffsetProperty)?this._openMaterialBatches[i+n].add(e,t):this._openMaterialBatches[n].add(e,t)};ql._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!l(t.get(o))&&!l(n.get(o))&&n.set(o,i)};ql.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,o=this._removedObjects,r=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var QL=ql;var OZe=1,MZe="30px sans-serif",LZe=Uo.FILL,NZe=H.WHITE,FZe=H.BLACK,BZe=1,kZe=!1,VZe=new H(.165,.165,.165,.8),UZe=new z(7,5),zZe=z.ZERO,HZe=h.ZERO,GZe=qe.NONE,WZe=di.CENTER,jZe=Rn.CENTER,qZe=new h,YZe=new H,XZe=new H,KZe=new H,ZZe=new z,$Ze=new h,QZe=new z,JZe=new Mt,e$e=new Mt,t$e=new Mt,n$e=new It;function Qde(e){this.entity=e,this.label=void 0,this.index=void 0}function qy(e,t){t.collectionChanged.addEventListener(qy.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new bt,this._onCollectionChanged(t,t.values,[],[])}qy.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._label,c,u=r.label,f=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),d;if(f&&(d=q.getValueOrUndefined(s._position,e,qZe),c=q.getValueOrUndefined(a._text,e),f=l(d)&&l(c)),!f){P7(r,s,n);continue}q.isConstant(s._position)||(n._clusterDirty=!0);let p=!1,g=q.getValueOrDefault(a._heightReference,e,GZe);l(u)||(u=n.getLabel(s),u.id=s,r.label=u,p=h.equals(u.position,d)&&u.heightReference===g),u.show=!0,u.position=d,u.text=c,u.scale=q.getValueOrDefault(a._scale,e,OZe),u.font=q.getValueOrDefault(a._font,e,MZe),u.style=q.getValueOrDefault(a._style,e,LZe),u.fillColor=q.getValueOrDefault(a._fillColor,e,NZe,YZe),u.outlineColor=q.getValueOrDefault(a._outlineColor,e,FZe,XZe),u.outlineWidth=q.getValueOrDefault(a._outlineWidth,e,BZe),u.showBackground=q.getValueOrDefault(a._showBackground,e,kZe),u.backgroundColor=q.getValueOrDefault(a._backgroundColor,e,VZe,KZe),u.backgroundPadding=q.getValueOrDefault(a._backgroundPadding,e,UZe,ZZe),u.pixelOffset=q.getValueOrDefault(a._pixelOffset,e,zZe,QZe),u.eyeOffset=q.getValueOrDefault(a._eyeOffset,e,HZe,$Ze),u.heightReference=g,u.horizontalOrigin=q.getValueOrDefault(a._horizontalOrigin,e,WZe),u.verticalOrigin=q.getValueOrDefault(a._verticalOrigin,e,jZe),u.translucencyByDistance=q.getValueOrUndefined(a._translucencyByDistance,e,JZe),u.pixelOffsetScaleByDistance=q.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,e$e),u.scaleByDistance=q.getValueOrUndefined(a._scaleByDistance,e,t$e),u.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e,n$e),u.disableDepthTestDistance=q.getValueOrUndefined(a._disableDepthTestDistance,e),p&&u._updateClamping()}return!0};qy.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!l(n.label))return at.FAILED;let i=n.label;return t.center=h.clone(y(i._clampedPosition,i.position),t.center),t.radius=0,at.DONE};qy.prototype.isDestroyed=function(){return!1};qy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(qy.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeLabel(e[t]);return ue(this)};qy.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._label)&&l(r._position)&&s.set(r.id,new Qde(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._label)&&l(r._position)?s.contains(r.id)||s.set(r.id,new Qde(r)):(P7(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],P7(s.get(r.id),r,a),s.remove(r.id)};function P7(e,t,n){l(e)&&(e.label=void 0,n.removeLabel(t))}var JL=qy;var i$e=1,o$e=0,r$e=!0,s$e=!0,a$e=yn.ENABLED,c$e=qe.NONE,l$e=H.RED,u$e=0,f$e=H.WHITE,d$e=cc.HIGHLIGHT,h$e=.5,m$e=new z(1,1),p$e=new F,_$e=new F,Jde=new H,ehe=new Array(4),g$e=new h;function Yy(e,t){t.collectionChanged.addEventListener(Yy.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._modelHash={},this._entitiesToVisualize=new bt,this._onCollectionChanged(t,t.values,[],[])}async function y$e(e,t,n,i){let o=e._primitives,r=e._modelHash;try{let s=await Zd.fromGltfAsync({url:n,incrementallyLoadTextures:i,scene:e._scene});if(e.isDestroyed()||!l(r[t.id]))return;s.id=t,o.add(s),r[t.id].modelPrimitive=s,s.errorEvent.addEventListener(a=>{l(r[t.id])&&(console.log(a),a.name!=="TextureError"&&s.incrementallyLoadTextures&&(r[t.id].loadFailed=!0))})}catch(s){if(e.isDestroyed()||!l(r[t.id]))return;console.log(s),r[t.id].loadFailed=!0}}Yy.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._modelHash,i=this._primitives;for(let o=0,r=t.length;o<r;o++){let s=t[o],a=s._model,c,u=n[s.id],f=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),d;if(f&&(d=s.computeModelMatrix(e,p$e),c=De.createIfNeeded(q.getValueOrUndefined(a._uri,e)),f=l(d)&&l(c)),!f){l(u)&&u.modelPrimitive&&(u.modelPrimitive.show=!1);continue}if(!l(u)||c.url!==u.url){l(u?.modelPrimitive)&&(i.removeAndDestroy(u.modelPrimitive),delete n[s.id]),u={modelPrimitive:void 0,url:c.url,animationsRunning:!1,nodeTransformationsScratch:{},articulationsScratch:{},loadFailed:!1,modelUpdated:!1},n[s.id]=u;let m=q.getValueOrDefault(a._incrementallyLoadTextures,e,r$e);y$e(this,s,c,m)}let p=u.modelPrimitive;if(!l(p))continue;p.show=!0,p.scale=q.getValueOrDefault(a._scale,e,i$e),p.minimumPixelSize=q.getValueOrDefault(a._minimumPixelSize,e,o$e),p.maximumScale=q.getValueOrUndefined(a._maximumScale,e),p.modelMatrix=F.clone(d,p.modelMatrix),p.shadows=q.getValueOrDefault(a._shadows,e,a$e),p.heightReference=q.getValueOrDefault(a._heightReference,e,c$e),p.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e),p.silhouetteColor=q.getValueOrDefault(a._silhouetteColor,e,l$e,Jde),p.silhouetteSize=q.getValueOrDefault(a._silhouetteSize,e,u$e),p.color=q.getValueOrDefault(a._color,e,f$e,Jde),p.colorBlendMode=q.getValueOrDefault(a._colorBlendMode,e,d$e),p.colorBlendAmount=q.getValueOrDefault(a._colorBlendAmount,e,h$e),p.clippingPlanes=q.getValueOrUndefined(a._clippingPlanes,e),p.clampAnimations=q.getValueOrDefault(a._clampAnimations,e,s$e),p.imageBasedLighting.imageBasedLightingFactor=q.getValueOrDefault(a._imageBasedLightingFactor,e,m$e);let g=q.getValueOrUndefined(a._lightColor,e);if(l(g)&&(H.pack(g,ehe,0),g=h.unpack(ehe,0,g$e)),p.lightColor=g,p.customShader=q.getValueOrUndefined(a._customShader,e),n[s.id].modelUpdated=!0,p.ready){let m=q.getValueOrDefault(a._runAnimations,e,!0);u.animationsRunning!==m&&(m?p.activeAnimations.addAll({loop:Bl.REPEAT}):p.activeAnimations.removeAll(),u.animationsRunning=m);let x=q.getValueOrUndefined(a._nodeTransformations,e,u.nodeTransformationsScratch);if(l(x)){let C=Object.keys(x);for(let A=0,E=C.length;A<E;++A){let v=C[A],D=x[v];if(!l(D))continue;let O=p.getNode(v);if(!l(O))continue;let I=F.fromTranslationRotationScale(D,_$e);O.matrix=F.multiply(O.originalMatrix,I,I)}}let b=!1,T=q.getValueOrUndefined(a._articulations,e,u.articulationsScratch);if(l(T)){let C=Object.keys(T);for(let A=0,E=C.length;A<E;++A){let v=C[A],D=T[v];l(D)&&(b=!0,p.setArticulationStage(v,D))}}b&&p.applyArticulations()}}return!0};Yy.prototype.isDestroyed=function(){return!1};Yy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Yy.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._modelHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)I7(this,e[i],t,n);return ue(this)};var Vz=new h,x$e=new fe;Yy.prototype.getBoundingSphere=function(e,t){let n=this._modelHash[e.id];if(!l(n))return at.FAILED;if(n.loadFailed)return at.FAILED;let i=n.modelPrimitive;if(!l(i)||!i.show)return at.PENDING;if(!i.ready||!n.modelUpdated)return at.PENDING;let o=this._scene,r=o.globe,s=y(r?.ellipsoid,te.WGS84);if(i.heightReference!==qe.NONE){let c=i.modelMatrix;Vz.x=c[12],Vz.y=c[13],Vz.z=c[14];let u=s.cartesianToCartographic(Vz,x$e),f=o.getHeight(u,i.heightReference);return l(f)&&(ff(i.heightReference)?u.height=f:u.height+=f),ae.clone(i.boundingSphere,t),t.center=s.cartographicToCartesian(u),at.DONE}return ae.clone(i.boundingSphere,t),at.DONE};Yy.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._modelHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._model)&&l(r._position)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._model)&&l(r._position)?(b$e(r,a),s.set(r.id,r)):(I7(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],I7(this,r,a,c),s.remove(r.id)};function I7(e,t,n,i){let o=n[t.id];l(o)&&(i.removeAndDestroy(o.modelPrimitive),delete n[t.id])}function b$e(e,t){let n=t[e.id];l(n)&&(n.nodeTransformationsScratch={},n.articulationsScratch={})}var eN=Yy;function Xy(e){this._definitionChanged=new pe,this._value=void 0,this._removeSubscription=void 0,this.setValue(e)}Object.defineProperties(Xy.prototype,{isConstant:{get:function(){return q.isConstant(this._value)}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return l(this._value)?this._value.referenceFrame:to.FIXED}}});Xy.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,to.FIXED,t)};Xy.prototype.setValue=function(e){this._value!==e&&(this._value=e,l(this._removeSubscription)&&(this._removeSubscription(),this._removeSubscription=void 0),l(e)&&(this._removeSubscription=e.definitionChanged.addEventListener(this._raiseDefinitionChanged,this)),this._definitionChanged.raiseEvent(this))};Xy.prototype.getValueInReferenceFrame=function(e,t,n){if(l(this._value))return n=this._value.getValueInReferenceFrame(e,t,n),l(n)?te.WGS84.scaleToGeodeticSurface(n,n):void 0};Xy.prototype.equals=function(e){return this===e||e instanceof Xy&&this._value===e._value};Xy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var Im=Xy;var T$e=60,A$e=1,ihe=new Tn,R7=new Tn,O7=new Tn;function the(e){this.entity=e,this.polyline=void 0,this.index=void 0,this.updater=void 0}function C$e(e,t,n,i,o,r,s,a,c){let u=a,f;f=e.getValueInReferenceFrame(t,r,c[u]),l(f)&&(c[u++]=f);let d=!l(o)||J.lessThanOrEquals(o,t)||J.greaterThanOrEquals(o,n),p=0,g=i.length,m=i[p],x=n,b=!1,T,C,A;for(;p<g;){if(!d&&J.greaterThanOrEquals(m,o)&&(f=e.getValueInReferenceFrame(o,r,c[u]),l(f)&&(c[u++]=f),d=!0),J.greaterThan(m,t)&&J.lessThan(m,x)&&!m.equals(o)&&(f=e.getValueInReferenceFrame(m,r,c[u]),l(f)&&(c[u++]=f)),p<g-1){if(s>0&&!b){let E=i[p+1],v=J.secondsDifference(E,m);b=v>s,b&&(T=Math.ceil(v/s),C=0,A=v/Math.max(T,2),T=Math.max(T-1,1))}if(b&&C<T){m=J.addSeconds(m,A,new J),C++;continue}}b=!1,p++,m=i[p]}return f=e.getValueInReferenceFrame(n,r,c[u]),l(f)&&(c[u++]=f),u}function E$e(e,t,n,i,o,r,s,a){let c,u=0,f=s,d=t,p=Math.max(r,60),g=!l(i)||J.lessThanOrEquals(i,t)||J.greaterThanOrEquals(i,n);for(;J.lessThan(d,n);)!g&&J.greaterThanOrEquals(d,i)&&(g=!0,c=e.getValueInReferenceFrame(i,o,a[f]),l(c)&&(a[f]=c,f++)),c=e.getValueInReferenceFrame(d,o,a[f]),l(c)&&(a[f]=c,f++),u++,d=J.addSeconds(t,p*u,new J);return c=e.getValueInReferenceFrame(n,o,a[f]),l(c)&&(a[f]=c,f++),f}function S$e(e,t,n,i,o,r,s,a){O7.start=t,O7.stop=n;let c=s,u=e.intervals;for(let f=0;f<u.length;f++){let d=u.get(f);if(!Tn.intersect(d,O7,ihe).isEmpty){let p=d.start;d.isStartIncluded||(d.isStopIncluded?p=d.stop:p=J.addSeconds(d.start,J.secondsDifference(d.stop,d.start)/2,new J));let g=e.getValueInReferenceFrame(p,o,a[c]);l(g)&&(a[c]=g,c++)}}return c}function v$e(e,t,n,i,o,r,s,a){let c=e.getValueInReferenceFrame(t,o,a[s]);return l(c)&&(a[s++]=c),s}function w$e(e,t,n,i,o,r,s,a){R7.start=t,R7.stop=n;let c=s,u=e.intervals;for(let f=0;f<u.length;f++){let d=u.get(f);if(!Tn.intersect(d,R7,ihe).isEmpty){let p=d.start,g=d.stop,m=t;J.greaterThan(p,m)&&(m=p);let x=n;J.lessThan(g,x)&&(x=g),c=ohe(d.data,m,x,i,o,r,c,a)}}return c}function ohe(e,t,n,i,o,r,s,a){for(;e instanceof M_;)e=e.resolvedProperty;if(e instanceof aa){let c=e._property._times;s=C$e(e,t,n,c,i,o,r,s,a)}else e instanceof ra?s=w$e(e,t,n,i,o,r,s,a):e instanceof L_?s=S$e(e,t,n,i,o,r,s,a):e instanceof zc||e instanceof Im&&q.isConstant(e)?s=v$e(e,t,n,i,o,r,s,a):s=E$e(e,t,n,i,o,r,s,a);return s}function rhe(e,t,n,i,o,r,s){l(s)||(s=[]);let a=ohe(e,t,n,i,o,r,0,s);return s.length=a,s}var nhe=new $;function tN(e,t){this._unusedIndexes=[],this._polylineCollection=new Qd,this._scene=e,this._referenceFrame=t,e.primitives.add(this._polylineCollection)}tN.prototype.update=function(e){if(this._referenceFrame===to.INERTIAL){let t=wt.computeIcrfToFixedMatrix(e,nhe);l(t)||(t=wt.computeTemeToPseudoFixedMatrix(e,nhe)),F.fromRotationTranslation(t,h.ZERO,this._polylineCollection.modelMatrix)}};tN.prototype.updateObject=function(e,t){let n=t.entity,i=n._path,o=n._position,r,s,a=i._show,c=t.polyline,u=n.isShowing&&n.isAvailable(e)&&(!l(a)||a.getValue(e));if(u){let d=q.getValueOrUndefined(i._leadTime,e),p=q.getValueOrUndefined(i._trailTime,e),g=n._availability,m=l(g),x=l(d),b=l(p);if(u=m||x&&b,u){if(b&&(r=J.addSeconds(e,-p,new J)),x&&(s=J.addSeconds(e,d,new J)),m){let T=g.start,C=g.stop;(!b||J.greaterThan(T,r))&&(r=T),(!x||J.lessThan(C,s))&&(s=C)}u=J.lessThan(r,s)}}if(!u){l(c)&&(this._unusedIndexes.push(t.index),t.polyline=void 0,c.show=!1,t.index=void 0);return}if(!l(c)){let d=this._unusedIndexes;if(d.length>0){let g=d.pop();c=this._polylineCollection.get(g),t.index=g}else t.index=this._polylineCollection.length,c=this._polylineCollection.add();c.id=n,t.polyline=c}let f=q.getValueOrDefault(i._resolution,e,T$e);c.show=!0,c.positions=rhe(o,r,s,e,this._referenceFrame,f,c.positions.slice()),c.material=Ko.getValue(e,i._material,c.material),c.width=q.getValueOrDefault(i._width,e,A$e),c.distanceDisplayCondition=q.getValueOrUndefined(i._distanceDisplayCondition,e,c.distanceDisplayCondition)};tN.prototype.removeObject=function(e){let t=e.polyline;l(t)&&(this._unusedIndexes.push(e.index),e.polyline=void 0,t.show=!1,t.id=void 0,e.index=void 0)};tN.prototype.destroy=function(){return this._scene.primitives.remove(this._polylineCollection),ue(this)};function Ky(e,t){t.collectionChanged.addEventListener(Ky.prototype._onCollectionChanged,this),this._scene=e,this._updaters={},this._entityCollection=t,this._items=new bt,this._onCollectionChanged(t,t.values,[],[])}Ky.prototype.update=function(e){let t=this._updaters;for(let i in t)t.hasOwnProperty(i)&&t[i].update(e);let n=this._items.values;if(n.length===0&&l(this._updaters)&&Object.keys(this._updaters).length>0){for(let i in t)t.hasOwnProperty(i)&&t[i].destroy();this._updaters={}}for(let i=0,o=n.length;i<o;i++){let r=n[i],a=r.entity._position,c=r.updater,u=to.FIXED;this._scene.mode===ne.SCENE3D&&(u=a.referenceFrame);let f=this._updaters[u];if(c===f&&l(f)){f.updateObject(e,r);continue}l(c)&&c.removeObject(r),l(f)||(f=new tN(this._scene,u),f.update(e),this._updaters[u]=f),r.updater=f,l(f)&&f.updateObject(e,r)}return!0};Ky.prototype.isDestroyed=function(){return!1};Ky.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Ky.prototype._onCollectionChanged,this);let e=this._updaters;for(let t in e)e.hasOwnProperty(t)&&e[t].destroy();return ue(this)};Ky.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s,a=this._items;for(o=t.length-1;o>-1;o--)r=t[o],l(r._path)&&l(r._position)&&a.set(r.id,new the(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._path)&&l(r._position)?a.contains(r.id)||a.set(r.id,new the(r)):(s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id)));for(o=n.length-1;o>-1;o--)r=n[o],s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id))};Ky._subSample=rhe;var nN=Ky;var she=H.WHITE,ahe=H.BLACK,che=0,lhe=1,uhe=0,fhe=new H,D$e=new h,dhe=new H,hhe=new Mt,mhe=new Mt,phe=new It;function _he(e){this.entity=e,this.pointPrimitive=void 0,this.billboard=void 0,this.color=void 0,this.outlineColor=void 0,this.pixelSize=void 0,this.outlineWidth=void 0}function Zy(e,t){t.collectionChanged.addEventListener(Zy.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new bt,this._onCollectionChanged(t,t.values,[],[])}Zy.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._point,c=r.pointPrimitive,u=r.billboard,f=q.getValueOrDefault(a._heightReference,e,qe.NONE),d=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),p;if(d&&(p=q.getValueOrUndefined(s._position,e,D$e),d=l(p)),!d){iN(r,s,n);continue}q.isConstant(s._position)||(n._clusterDirty=!0);let g=!1,m=!1;if(f!==qe.NONE&&!l(u)?(l(c)&&(iN(r,s,n),c=void 0),u=n.getBillboard(s),u.id=s,u.image=void 0,r.billboard=u,g=!0,m=h.equals(u.position,p)&&u.heightReference===f):f===qe.NONE&&!l(c)&&(l(u)&&(iN(r,s,n),u=void 0),c=n.getPoint(s),c.id=s,r.pointPrimitive=c),l(c))c.show=!0,c.position=p,c.scaleByDistance=q.getValueOrUndefined(a._scaleByDistance,e,hhe),c.translucencyByDistance=q.getValueOrUndefined(a._translucencyByDistance,e,mhe),c.color=q.getValueOrDefault(a._color,e,she,fhe),c.outlineColor=q.getValueOrDefault(a._outlineColor,e,ahe,dhe),c.outlineWidth=q.getValueOrDefault(a._outlineWidth,e,che),c.pixelSize=q.getValueOrDefault(a._pixelSize,e,lhe),c.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e,phe),c.disableDepthTestDistance=q.getValueOrDefault(a._disableDepthTestDistance,e,uhe);else if(l(u)){u.show=!0,u.position=p,u.scaleByDistance=q.getValueOrUndefined(a._scaleByDistance,e,hhe),u.translucencyByDistance=q.getValueOrUndefined(a._translucencyByDistance,e,mhe),u.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e,phe),u.disableDepthTestDistance=q.getValueOrDefault(a._disableDepthTestDistance,e,uhe),u.heightReference=f;let x=q.getValueOrDefault(a._color,e,she,fhe),b=q.getValueOrDefault(a._outlineColor,e,ahe,dhe),T=Math.round(q.getValueOrDefault(a._outlineWidth,e,che)),C=Math.max(1,Math.round(q.getValueOrDefault(a._pixelSize,e,lhe)));if(T>0?(u.scale=1,g=g||T!==r.outlineWidth||C!==r.pixelSize||!H.equals(x,r.color)||!H.equals(b,r.outlineColor)):(u.scale=C/50,C=50,g=g||T!==r.outlineWidth||!H.equals(x,r.color)||!H.equals(b,r.outlineColor)),g){r.color=H.clone(x,r.color),r.outlineColor=H.clone(b,r.outlineColor),r.pixelSize=C,r.outlineWidth=T;let A=x.alpha,E=x.toCssColorString(),v=b.toCssColorString(),D=JSON.stringify([E,C,v,T]);u.setImage(D,yb(A,E,v,T,C))}m&&u._updateClamping()}}return!0};Zy.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!(l(n.pointPrimitive)||l(n.billboard)))return at.FAILED;if(l(n.pointPrimitive))t.center=h.clone(n.pointPrimitive.position,t.center);else{let i=n.billboard;if(!l(i._clampedPosition))return at.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,at.DONE};Zy.prototype.isDestroyed=function(){return!1};Zy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Zy.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removePoint(e[t]);return ue(this)};Zy.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._point)&&l(r._position)&&s.set(r.id,new _he(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._point)&&l(r._position)?s.contains(r.id)||s.set(r.id,new _he(r)):(iN(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],iN(s.get(r.id),r,a),s.remove(r.id)};function iN(e,t,n){if(l(e)){let i=e.pointPrimitive;if(l(i)){e.pointPrimitive=void 0,n.removePoint(t);return}let o=e.billboard;l(o)&&(e.billboard=void 0,n.removeBillboard(t))}}var oN=Zy;var The=[];function P$e(e,t,n,i,o){let r=The;r.length=o;let s,a=n.red,c=n.green,u=n.blue,f=n.alpha,d=i.red,p=i.green,g=i.blue,m=i.alpha;if(H.equals(n,i)){for(s=0;s<o;s++)r[s]=H.clone(n);return r}let x=(d-a)/o,b=(p-c)/o,T=(g-u)/o,C=(m-f)/o;for(s=0;s<o;s++)r[s]=new H(a+s*x,c+s*b,u+s*T,f+s*C);return r}function rN(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.width,1),o=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._width=i,this._colorsPerVertex=o,this._vertexFormat=Ie.clone(y(e.vertexFormat,Ie.DEFAULT)),this._arcType=y(e.arcType,Qt.GEODESIC),this._granularity=y(e.granularity,R.RADIANS_PER_DEGREE),this._ellipsoid=te.clone(y(e.ellipsoid,te.WGS84)),this._workerName="createPolylineGeometry";let r=1+t.length*h.packedLength;r+=l(n)?1+n.length*H.packedLength:1,this.packedLength=r+te.packedLength+Ie.packedLength+4}rN.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._colors;for(r=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=H.packedLength)H.pack(s[i],t,n);return te.pack(e._ellipsoid,t,n),n+=te.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._width,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};var Ahe=te.clone(te.UNIT_SPHERE),Che=new Ie,cT={positions:void 0,colors:void 0,ellipsoid:Ahe,vertexFormat:Che,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};rN.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=H.packedLength)s[i]=H.unpack(e,t);let a=te.unpack(e,t,Ahe);t+=te.packedLength;let c=Ie.unpack(e,t,Che);t+=Ie.packedLength;let u=e[t++],f=e[t++]===1,d=e[t++],p=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=te.clone(a,n._ellipsoid),n._vertexFormat=Ie.clone(c,n._vertexFormat),n._width=u,n._colorsPerVertex=f,n._arcType=d,n._granularity=p,n):(cT.positions=r,cT.colors=s,cT.width=u,cT.colorsPerVertex=f,cT.arcType=d,cT.granularity=p,new rN(cT))};var ghe=new h,yhe=new h,xhe=new h,bhe=new h;rN.createGeometry=function(e){let t=e._width,n=e._vertexFormat,i=e._colors,o=e._colorsPerVertex,r=e._arcType,s=e._granularity,a=e._ellipsoid,c,u,f,d=[],p=xo(e._positions,h.equalsEpsilon,!1,d);if(l(i)&&d.length>0){let M=0,B=d[0];i=i.filter(function(U,V){let G=!1;return o?G=V===B||V===0&&B===1:G=V+1===B,G?(M++,B=d[M],!1):!0})}let g=p.length;if(g<2||t<=0)return;if(r===Qt.GEODESIC||r===Qt.RHUMB){let M,B;r===Qt.GEODESIC?(M=R.chordLength(s,a.maximumRadius),B=wi.numberOfPoints):(M=s,B=wi.numberOfPointsRhumbLine);let U=wi.extractHeights(p,a);if(l(i)){let V=1;for(c=0;c<g-1;++c)V+=B(p[c],p[c+1],M);let G=new Array(V),k=0;for(c=0;c<g-1;++c){let Y=p[c],W=p[c+1],Q=i[c],j=B(Y,W,M);if(o&&c<V){let K=i[c+1],Z=P$e(Y,W,Q,K,j),he=Z.length;for(u=0;u<he;++u)G[k++]=Z[u]}else for(u=0;u<j;++u)G[k++]=H.clone(Q)}G[k]=H.clone(i[i.length-1]),i=G,The.length=0}r===Qt.GEODESIC?p=wi.generateCartesianArc({positions:p,minDistance:M,ellipsoid:a,height:U}):p=wi.generateCartesianRhumbArc({positions:p,granularity:M,ellipsoid:a,height:U})}g=p.length;let m=g*4-4,x=new Float64Array(m*3),b=new Float64Array(m*3),T=new Float64Array(m*3),C=new Float32Array(m*2),A=n.st?new Float32Array(m*2):void 0,E=l(i)?new Uint8Array(m*4):void 0,v=0,D=0,O=0,I=0,L;for(u=0;u<g;++u){u===0?(L=ghe,h.subtract(p[0],p[1],L),h.add(p[0],L,L)):L=p[u-1],h.clone(L,xhe),h.clone(p[u],yhe),u===g-1?(L=ghe,h.subtract(p[g-1],p[g-2],L),h.add(p[g-1],L,L)):L=p[u+1],h.clone(L,bhe);let M,B;l(E)&&(u!==0&&!o?M=i[u-1]:M=i[u],u!==g-1&&(B=i[u]));let U=u===0?2:0,V=u===g-1?2:4;for(f=U;f<V;++f){h.pack(yhe,x,v),h.pack(xhe,b,v),h.pack(bhe,T,v),v+=3;let G=f-2<0?-1:1;if(C[D++]=2*(f%2)-1,C[D++]=G*t,n.st&&(A[O++]=u/(g-1),A[O++]=Math.max(C[D-2],0)),l(E)){let k=f<2?M:B;E[I++]=H.floatToByte(k.red),E[I++]=H.floatToByte(k.green),E[I++]=H.floatToByte(k.blue),E[I++]=H.floatToByte(k.alpha)}}}let N=new fn;N.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:x}),N.prevPosition=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b}),N.nextPosition=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T}),N.expandAndWidth=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:C}),n.st&&(N.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:A})),l(E)&&(N.color=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:E,normalize:!0}));let _=Ne.createTypedArray(m,g*6-6),S=0,w=0,P=g-1;for(u=0;u<P;++u)_[w++]=S,_[w++]=S+2,_[w++]=S+1,_[w++]=S+1,_[w++]=S+2,_[w++]=S+3,S+=4;return new st({attributes:N,indices:_,primitiveType:Le.TRIANGLES,boundingSphere:ae.fromPoints(p),geometryType:df.POLYLINES})};var z_=rN;var I$e=new Zn(0),Uz={},Ehe=new H,R$e=new kt(H.WHITE),O$e=new Zn(!0),M$e=new Zn(yn.DISABLED),L$e=new Zn(new It),N$e=new Zn(Vn.BOTH);function F$e(){this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function B$e(){this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function _h(e,t){this._entity=e,this._scene=t,this._entitySubscription=e.definitionChanged.addEventListener(_h.prototype._onEntityPropertyChanged,this),this._fillEnabled=!1,this._dynamic=!1,this._geometryChanged=new pe,this._showProperty=void 0,this._materialProperty=void 0,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._depthFailMaterialProperty=void 0,this._geometryOptions=new F$e,this._groundGeometryOptions=new B$e,this._id=`polyline-${e.id}`,this._clampToGround=!1,this._supportsPolylinesOnTerrain=Zo.supportsPolylinesOnTerrain(t),this._zIndex=0,this._onEntityPropertyChanged(e,"polyline",e.polyline,void 0)}Object.defineProperties(_h.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!l(this._entity.availability)&&q.isConstant(this._showProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},depthFailMaterialProperty:{get:function(){return this._depthFailMaterialProperty}},outlineEnabled:{value:!1},hasConstantOutline:{value:!0},outlineColorProperty:{value:void 0},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{value:!1},geometryChanged:{get:function(){return this._geometryChanged}},arcType:{get:function(){return this._arcType}},clampToGround:{get:function(){return this._clampToGround&&this._supportsPolylinesOnTerrain}},zIndex:{get:function(){return this._zIndex}}});_h.prototype.isOutlineVisible=function(e){return!1};_h.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e);return y(n,!1)};_h.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(n&&t.isShowing&&this._showProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=kn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r},a;return this._materialProperty instanceof kt&&(l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,Ehe)),l(a)||(a=H.WHITE),s.color=zt.fromColor(a)),this.clampToGround?new xt({id:t,geometry:new bx(this._groundGeometryOptions),attributes:s}):(l(this._depthFailMaterialProperty)&&this._depthFailMaterialProperty instanceof kt&&(l(this._depthFailMaterialProperty.color)&&(this._depthFailMaterialProperty.color.isConstant||n)&&(a=this._depthFailMaterialProperty.color.getValue(e,Ehe)),l(a)||(a=H.WHITE),s.depthFailColor=zt.fromColor(a)),new xt({id:t,geometry:new z_(this._geometryOptions),attributes:s}))};_h.prototype.createOutlineGeometryInstance=function(e){};_h.prototype.isDestroyed=function(){return!1};_h.prototype.destroy=function(){this._entitySubscription(),ue(this)};_h.prototype._onEntityPropertyChanged=function(e,t,n,i){if(!(t==="availability"||t==="polyline"))return;let o=this._entity.polyline;if(!l(o)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.positions,s=o.show;if(l(s)&&s.isConstant&&!s.getValue(Ue.MINIMUM_VALUE)||!l(r)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let a=o.zIndex,c=y(o.material,R$e),u=c instanceof kt;this._materialProperty=c,this._depthFailMaterialProperty=o.depthFailMaterial,this._showProperty=y(s,O$e),this._shadowsProperty=y(o.shadows,M$e),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,L$e),this._classificationTypeProperty=y(o.classificationType,N$e),this._fillEnabled=!0,this._zIndex=y(a,I$e);let f=o.width,d=o.arcType,p=o.clampToGround,g=o.granularity;if(!r.isConstant||!q.isConstant(f)||!q.isConstant(d)||!q.isConstant(g)||!q.isConstant(p)||!q.isConstant(a))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{let m=this._geometryOptions,x=r.getValue(Ue.MINIMUM_VALUE,m.positions);if(!l(x)||x.length<2){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let b;u&&(!l(this._depthFailMaterialProperty)||this._depthFailMaterialProperty instanceof kt)?b=Gr.VERTEX_FORMAT:b=Qs.VERTEX_FORMAT,m.vertexFormat=b,m.positions=x,m.width=l(f)?f.getValue(Ue.MINIMUM_VALUE):void 0,m.arcType=l(d)?d.getValue(Ue.MINIMUM_VALUE):void 0,m.granularity=l(g)?g.getValue(Ue.MINIMUM_VALUE):void 0;let T=this._groundGeometryOptions;T.positions=x,T.width=m.width,T.arcType=m.arcType,T.granularity=m.granularity,this._clampToGround=l(p)?p.getValue(Ue.MINIMUM_VALUE):!1,!this._clampToGround&&l(a)&&Lt("Entity polylines must have clampToGround: true when using zIndex. zIndex will be ignored."),this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};_h.prototype.createDynamicUpdater=function(e,t){return new sN(e,t,this)};var rS={positions:void 0,granularity:void 0,height:void 0,ellipsoid:void 0};function sN(e,t,n){this._line=void 0,this._primitives=e,this._groundPrimitives=t,this._groundPolylinePrimitive=void 0,this._material=void 0,this._geometryUpdater=n,this._positions=[]}function She(e){if(l(e._line))return e._line;let t=e._primitives,n=e._geometryUpdater._scene.id+t._guid,i=Uz[n];!l(i)||i.isDestroyed()?(i=new Qd,Uz[n]=i,t.add(i)):t.contains(i)||t.add(i);let o=i.add();return o.id=e._geometryUpdater._entity,e._line=o,o}sN.prototype.update=function(e){let t=this._geometryUpdater,n=t._entity,i=n.polyline,o=i.positions,r=q.getValueOrUndefined(o,e,this._positions);t._clampToGround=q.getValueOrDefault(i._clampToGround,e,!1),t._groundGeometryOptions.positions=r,t._groundGeometryOptions.width=q.getValueOrDefault(i._width,e,1),t._groundGeometryOptions.arcType=q.getValueOrDefault(i._arcType,e,Qt.GEODESIC),t._groundGeometryOptions.granularity=q.getValueOrDefault(i._granularity,e,9999);let s=this._groundPrimitives;if(l(this._groundPolylinePrimitive)&&(s.remove(this._groundPolylinePrimitive),this._groundPolylinePrimitive=void 0),t.clampToGround){if(!n.isShowing||!n.isAvailable(e)||!q.getValueOrDefault(i._show,e,!0)||!l(r)||r.length<2)return;let f=t.fillMaterialProperty,d;if(f instanceof kt)d=new Gr;else{let p=Ko.getValue(e,f,this._material);d=new Qs({material:p,translucent:p.isTranslucent()}),this._material=p}this._groundPolylinePrimitive=s.add(new Dd({geometryInstances:t.createFillGeometryInstance(e),appearance:d,classificationType:t.classificationTypeProperty.getValue(e),asynchronous:!1}),q.getValueOrUndefined(t.zIndex,e)),l(this._line)&&(this._line.show=!1);return}let a=She(this);if(!n.isShowing||!n.isAvailable(e)||!q.getValueOrDefault(i._show,e,!0)){a.show=!1;return}if(!l(r)||r.length<2){a.show=!1;return}let c=Qt.GEODESIC;c=q.getValueOrDefault(i._arcType,e,c);let u=t._scene.globe;c!==Qt.NONE&&l(u)&&(rS.ellipsoid=u.ellipsoid,rS.positions=r,rS.granularity=q.getValueOrUndefined(i._granularity,e),rS.height=wi.extractHeights(r,u.ellipsoid),c===Qt.GEODESIC?r=wi.generateCartesianArc(rS):r=wi.generateCartesianRhumbArc(rS)),a.show=!0,a.positions=r.slice(),a.material=Ko.getValue(e,t.fillMaterialProperty,a.material),a.width=q.getValueOrDefault(i._width,e,1),a.distanceDisplayCondition=q.getValueOrUndefined(i._distanceDisplayCondition,e,a.distanceDisplayCondition)};sN.prototype.getBoundingSphere=function(e){if(this._geometryUpdater.clampToGround){let t=this._groundPolylinePrimitive;if(l(t)&&t.show&&t.ready){let n=t.getGeometryInstanceAttributes(this._geometryUpdater._entity);if(l(n)&&l(n.boundingSphere))return ae.clone(n.boundingSphere,e),at.DONE}return l(t)&&!t.ready?at.PENDING:at.DONE}else{let t=She(this);if(t.show&&t.positions.length>0)return ae.fromPoints(t.positions,e),at.DONE}return at.FAILED};sN.prototype.isDestroyed=function(){return!1};sN.prototype.destroy=function(){let t=this._geometryUpdater._scene.id+this._primitives._guid,n=Uz[t];l(n)&&(n.remove(this._line),n.length===0&&(this._primitives.removeAndDestroy(n),delete Uz[t])),l(this._groundPolylinePrimitive)&&this._groundPrimitives.remove(this._groundPolylinePrimitive),ue(this)};var aN=_h;var k$e=new H,V$e=new It,U$e=new It;function gh(e,t,n,i,o){let r;n instanceof kt?r=Gr:r=Qs,this.orderedGroundPrimitives=e,this.classificationType=t,this.appearanceType=r,this.materialProperty=n,this.updaters=new bt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new bt,this.material=void 0,this.updatersWithAttributes=new bt,this.attributes=new bt,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(gh.prototype.onMaterialChanged,this),this.subscriptions=new bt,this.showsUpdated=new bt,this.zIndex=i,this._asynchronous=o}gh.prototype.onMaterialChanged=function(){this.invalidated=!0};gh.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof kt&&t instanceof kt?!0:l(t)&&t.equals(n)};gh.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!q.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};gh.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t)),!0}return!1};gh.prototype.update=function(e){let t=!0,n=this.primitive,i=this.orderedGroundPrimitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),n=new Dd({show:!1,asynchronous:this._asynchronous,geometryInstances:o.slice(),appearance:new this.appearanceType,classificationType:this.classificationType}),this.appearanceType===Qs&&(this.material=Ko.getValue(e,this.materialProperty,this.material),n.appearance.material=this.material),i.add(n,this.zIndex),t=!1;else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.appearanceType===Qs&&(this.material=Ko.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!c.fillMaterialProperty.isConstant){let x=c.fillMaterialProperty.color,b=q.getValueOrDefault(x,e,H.WHITE,k$e);H.equals(d._lastColor,b)||(d._lastColor=H.clone(b,d._lastColor),d.color=zt.toValue(b,d.color))}let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!q.isConstant(m)){let x=q.getValueOrDefault(m,e,U$e,V$e);It.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=It.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};gh.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};gh.prototype.contains=function(e){return this.updaters.contains(e.id)};gh.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return at.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?at.FAILED:(i.boundingSphere.clone(t),at.DONE)};gh.prototype.destroy=function(){let e=this.primitive,t=this.orderedGroundPrimitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function sS(e,t,n){this._items=[],this._orderedGroundPrimitives=e,this._classificationType=t,this._asynchronous=y(n,!0)}sS.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=q.getValueOrDefault(t.zIndex,0);for(let a=0;a<i;++a){let c=n[a];if(c.isMaterial(t)&&c.zIndex===r){c.add(e,t,o);return}}let s=new gh(this._orderedGroundPrimitives,this._classificationType,t.fillMaterialProperty,r,this._asynchronous);s.add(e,t,o),n.push(s)};sS.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};sS.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};sS.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return at.FAILED};sS.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var cN=sS;var z$e=[];function vhe(e,t){let n=e._batches,i=n.length;for(let o=0;o<i;o++)n[o].remove(t)}function whe(e,t,n){if(n.isDynamic){e._dynamicBatch.add(t,n);return}if(n.clampToGround&&n.fillEnabled){let s=n.classificationTypeProperty.getValue(t);e._groundBatches[s].add(t,n);return}let i;n.fillEnabled&&(i=n.shadowsProperty.getValue(t));let o=0;l(n.depthFailMaterialProperty)&&(o=n.depthFailMaterialProperty instanceof kt?1:2);let r;l(i)&&(r=i+o*yn.NUMBER_OF_SHADOW_MODES),n.fillEnabled&&(n.fillMaterialProperty instanceof kt?e._colorBatches[r].add(t,n):e._materialBatches[r].add(t,n))}function Rm(e,t,n,i){i=y(i,e.groundPrimitives),n=y(n,e.primitives),this._scene=e,this._primitives=n,this._entityCollection=void 0,this._addedObjects=new bt,this._removedObjects=new bt,this._changedObjects=new bt;let o,r=yn.NUMBER_OF_SHADOW_MODES;for(this._colorBatches=new Array(r*3),this._materialBatches=new Array(r*3),o=0;o<r;++o)this._colorBatches[o]=new Kf(n,Gr,void 0,!1,o),this._materialBatches[o]=new Zf(n,Qs,void 0,!1,o),this._colorBatches[o+r]=new Kf(n,Gr,Gr,!1,o),this._materialBatches[o+r]=new Zf(n,Qs,Gr,!1,o),this._colorBatches[o+r*2]=new Kf(n,Gr,Qs,!1,o),this._materialBatches[o+r*2]=new Zf(n,Qs,Qs,!1,o);this._dynamicBatch=new Xb(n,i);let s=Vn.NUMBER_OF_CLASSIFICATION_TYPES;for(this._groundBatches=new Array(s),o=0;o<s;++o)this._groundBatches[o]=new cN(i,o);this._batches=this._colorBatches.concat(this._materialBatches,this._dynamicBatch,this._groundBatches),this._subscriptions=new bt,this._updaters=new bt,this._entityCollection=t,t.collectionChanged.addEventListener(Rm.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,z$e)}Rm.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,o=i.values,r=this._changedObjects,s=r.values,a,c,u,f;for(a=s.length-1;a>-1;a--)c=s[a],u=c.id,f=this._updaters.get(u),f.entity===c?(vhe(this,f),whe(this,e,f)):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],u=c.id,f=this._updaters.get(u),vhe(this,f),f.destroy(),this._updaters.remove(u),this._subscriptions.get(u)(),this._subscriptions.remove(u);for(a=n.length-1;a>-1;a--)c=n[a],u=c.id,f=new aN(c,this._scene),this._updaters.set(u,f),whe(this,e,f),this._subscriptions.set(u,f.geometryChanged.addEventListener(Rm._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let d=!0,p=this._batches,g=p.length;for(a=0;a<g;a++)d=p[a].update(e)&&d;return d};var H$e=[],G$e=new ae;Rm.prototype.getBoundingSphere=function(e,t){let n=H$e,i=G$e,o=0,r=at.DONE,s=this._batches,a=s.length,c=this._updaters.get(e.id);for(let u=0;u<a;u++){if(r=s[u].getBoundingSphere(c,i),r===at.PENDING)return at.PENDING;r===at.DONE&&(n[o]=ae.clone(i,n[o]),o++)}return o===0?at.FAILED:(n.length=o,ae.fromBoundingSpheres(n,t),at.DONE)};Rm.prototype.isDestroyed=function(){return!1};Rm.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Rm.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();return this._subscriptions.removeAll(),ue(this)};Rm._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!l(t.get(o))&&!l(n.get(o))&&n.set(o,i)};Rm.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,o=this._removedObjects,r=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var lN=Rm;function Yl(e){Vc.initializeTerrainHeights(),Dd.initializeTerrainHeights();let t=e.scene,n=e.dataSourceCollection;this._eventHelper=new Ir,this._eventHelper.add(n.dataSourceAdded,this._onDataSourceAdded,this),this._eventHelper.add(n.dataSourceRemoved,this._onDataSourceRemoved,this),this._eventHelper.add(n.dataSourceMoved,this._onDataSourceMoved,this),this._eventHelper.add(t.postRender,this._postRender,this),this._dataSourceCollection=n,this._scene=t,this._visualizersCallback=y(e.visualizersCallback,Yl.defaultVisualizersCallback);let i=!1,o=new Wl,r=new Wl;n.length>0&&(t.primitives.add(o),t.groundPrimitives.add(r),i=!0),this._primitives=o,this._groundPrimitives=r;for(let u=0,f=n.length;u<f;u++)this._onDataSourceAdded(n,n.get(u));let s=new dL;this._onDataSourceAdded(void 0,s),this._defaultDataSource=s;let a,c;if(!i){let u=this,f=function(){t.primitives.add(o),t.groundPrimitives.add(r),a(),c(),u._removeDefaultDataSourceListener=void 0,u._removeDataSourceCollectionListener=void 0};a=s.entities.collectionChanged.addEventListener(f),c=n.dataSourceAdded.addEventListener(f)}this._removeDefaultDataSourceListener=a,this._removeDataSourceCollectionListener=c,this._ready=!1}var aS=[];Yl.registerVisualizer=function(e){aS.includes(e)||aS.push(e)};Yl.unregisterVisualizer=function(e){if(aS.includes(e)){let t=aS.indexOf(e);aS.splice(t,1)}};Yl.defaultVisualizersCallback=function(e,t,n){let i=n.entities;return[new tw(t,i),new QL(e,i,n._primitives,n._groundPrimitives),new JL(t,i),new eN(e,i),new $M(e,i),new oN(t,i),new nN(e,i),new lN(e,i,n._primitives,n._groundPrimitives),...aS.map(o=>new o(e,i))]};Object.defineProperties(Yl.prototype,{scene:{get:function(){return this._scene}},dataSources:{get:function(){return this._dataSourceCollection}},defaultDataSource:{get:function(){return this._defaultDataSource}},ready:{get:function(){return this._ready}}});Yl.prototype.isDestroyed=function(){return!1};Yl.prototype.destroy=function(){this._eventHelper.removeAll();let e=this._dataSourceCollection;for(let t=0,n=e.length;t<n;++t)this._onDataSourceRemoved(this._dataSourceCollection,e.get(t));return this._onDataSourceRemoved(void 0,this._defaultDataSource),l(this._removeDefaultDataSourceListener)?(this._removeDefaultDataSourceListener(),this._removeDataSourceCollectionListener()):(this._scene.primitives.remove(this._primitives),this._scene.groundPrimitives.remove(this._groundPrimitives)),ue(this)};Yl.prototype.update=function(e){if(!ci.initialized)return this._ready=!1,!1;let t=!0,n,i,o,r,s=this._dataSourceCollection,a=s.length;for(n=0;n<a;n++){let c=s.get(n);for(l(c.update)&&(t=c.update(e)&&t),o=c._visualizers,r=o.length,i=0;i<r;i++)t=o[i].update(e)&&t}for(o=this._defaultDataSource._visualizers,r=o.length,i=0;i<r;i++)t=o[i].update(e)&&t;return!this._ready&&t&&this._scene.requestRender(),this._ready=t,t};Yl.prototype._postRender=function(){let e=this._scene.frameState,t=this._dataSourceCollection,n=t.length;for(let i=0;i<n;i++){let o=t.get(i),r=o.credit;l(r)&&e.creditDisplay.addCreditToNextFrame(r);let s=o._resourceCredits;if(l(s)){let a=s.length;for(let c=0;c<a;c++)e.creditDisplay.addCreditToNextFrame(s[c])}}};var W$e=[],j$e=new ae;Yl.prototype.getBoundingSphere=function(e,t,n){if(!this._ready)return at.PENDING;let i,o,r=this._defaultDataSource;if(!r.entities.contains(e)){r=void 0;let p=this._dataSourceCollection;for(o=p.length,i=0;i<o;i++){let g=p.get(i);if(g.entities.contains(e)){r=g;break}}}if(!l(r))return at.FAILED;let s=W$e,a=j$e,c=0,u=at.DONE,f=r._visualizers,d=f.length;for(i=0;i<d;i++){let p=f[i];if(l(p.getBoundingSphere)){if(u=f[i].getBoundingSphere(e,a),!t&&u===at.PENDING)return at.PENDING;u===at.DONE&&(s[c]=ae.clone(a,s[c]),c++)}}return c===0?at.FAILED:(s.length=c,ae.fromBoundingSpheres(s,n),at.DONE)};Yl.prototype._onDataSourceAdded=function(e,t){let n=this._scene,i=this._primitives,o=this._groundPrimitives,r=i.add(new Wl),s=o.add(new wL);t._primitives=r,t._groundPrimitives=s;let a=t.clustering;a._initialize(n),r.add(a),t._visualizers=this._visualizersCallback(n,a,t)};Yl.prototype._onDataSourceRemoved=function(e,t){let n=this._primitives,i=this._groundPrimitives,o=t._primitives,r=t._groundPrimitives,s=t.clustering;o.remove(s);let a=t._visualizers,c=a.length;for(let u=0;u<c;u++)a[u].destroy();n.remove(o),i.remove(r),t._visualizers=void 0};Yl.prototype._onDataSourceMoved=function(e,t,n){let i=this._primitives,o=this._groundPrimitives,r=e._primitives,s=e._groundPrimitives;t===n+1?(i.raise(r),o.raise(s)):t===n-1?(i.lower(r),o.lower(s)):t===0?(i.lowerToBottom(r),o.lowerToBottom(s),i.raise(r),o.raise(s)):(i.raiseToTop(r),o.raiseToTop(s))};var uN=Yl;function M7(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.range=y(n,0)}M7.clone=function(e,t){if(l(e))return l(t)||(t=new M7),t.heading=e.heading,t.pitch=e.pitch,t.range=e.range,t};var Qf=M7;var Dhe=new $,Phe=new $,Ihe=new $,q$e=new F,zz=new h,Rhe=new h,L7=new h,N7=new h,Ohe=new h,Mhe=new h,cS=new J,Y$e=1.25;function X$e(e,t,n,i,o,r,s){let a=e.scene.mode,c=o.getValue(r,e._lastCartesian);if(l(c)){let u=!1,f=!1,d,p,g;if(a===ne.SCENE3D){J.addSeconds(r,.001,cS);let C=o.getValue(cS,zz);if(l(C)||(J.addSeconds(r,-.001,cS),C=o.getValue(cS,zz),f=!0),l(C)){let A=wt.computeFixedToIcrfMatrix(r,Dhe),E=wt.computeFixedToIcrfMatrix(cS,Phe),v;!l(A)||!l(E)?(v=wt.computeTemeToPseudoFixedMatrix(r,Ihe),A=$.transpose(v,Dhe),E=wt.computeTemeToPseudoFixedMatrix(cS,Phe),$.transpose(E,E)):v=$.transpose(A,Ihe);let D=$.multiplyByVector(A,c,Ohe),O=$.multiplyByVector(E,C,Mhe);h.subtract(D,O,N7);let I=h.magnitude(N7)*1e3,L=R.GRAVITATIONALPARAMETER,N=-L/(I*I-2*L/h.magnitude(D));N<0||N>Y$e*s.maximumRadius?(d=Rhe,h.normalize(c,d),h.negate(d,d),g=h.clone(h.UNIT_Z,L7),p=h.cross(g,d,zz),h.magnitude(p)>R.EPSILON7&&(h.normalize(d,d),h.normalize(p,p),g=h.cross(d,p,L7),h.normalize(g,g),u=!0)):h.equalsEpsilon(c,C,R.EPSILON7)||(g=Rhe,h.normalize(D,g),h.normalize(O,O),p=h.cross(g,O,L7),f&&(p=h.multiplyByScalar(p,-1,p)),h.equalsEpsilon(p,h.ZERO,R.EPSILON7)||(d=h.cross(p,g,zz),$.multiplyByVector(v,d,d),$.multiplyByVector(v,p,p),$.multiplyByVector(v,g,g),h.normalize(d,d),h.normalize(p,p),h.normalize(g,g),u=!0))}}l(e.boundingSphere)&&(c=e.boundingSphere.center);let m,x,b;i&&(m=h.clone(t.position,N7),x=h.clone(t.direction,Ohe),b=h.clone(t.up,Mhe));let T=q$e;u?(T[0]=d.x,T[1]=d.y,T[2]=d.z,T[3]=0,T[4]=p.x,T[5]=p.y,T[6]=p.z,T[7]=0,T[8]=g.x,T[9]=g.y,T[10]=g.z,T[11]=0,T[12]=c.x,T[13]=c.y,T[14]=c.z,T[15]=0):wt.eastNorthUpToFixedFrame(c,s,T),t._setTransform(T),i&&(h.clone(m,t.position),h.clone(x,t.direction),h.clone(b,t.up),h.cross(x,b,t.right))}if(n){let u=a===ne.SCENE2D||h.equals(e._offset3D,h.ZERO)?void 0:e._offset3D;t.lookAtTransform(t.transform,u)}}function fN(e,t,n){this.entity=e,this.scene=t,this.ellipsoid=y(n,te.WGS84),this.boundingSphere=void 0,this._lastEntity=void 0,this._mode=void 0,this._lastCartesian=new h,this._defaultOffset3D=void 0,this._offset3D=new h}Object.defineProperties(fN,{defaultOffset3D:{get:function(){return this._defaultOffset3D},set:function(e){this._defaultOffset3D=h.clone(e,new h)}}});fN.defaultOffset3D=new h(-14e3,3500,3500);var Hz=new Qf,K$e=new h;fN.prototype.update=function(e,t){let n=this.scene,i=this.ellipsoid,o=n.mode;if(o===ne.MORPHING)return;let r=this.entity,s=r.position;if(!l(s))return;let a=r!==this._lastEntity,c=o!==this._mode,u=n.camera,f=a||c,d=!0;if(a){let p=r.viewFrom,g=l(p);if(!g&&l(t)){Hz.pitch=-R.PI_OVER_FOUR,Hz.range=0;let m=s.getValue(e,K$e);if(l(m)){let x=2-1/Math.max(1,h.magnitude(m)/i.maximumRadius);Hz.pitch*=x}u.viewBoundingSphere(t,Hz),this.boundingSphere=t,f=!1,d=!1}else(!g||!l(p.getValue(e,this._offset3D)))&&h.clone(fN._defaultOffset3D,this._offset3D)}else!c&&this._mode!==ne.SCENE2D&&h.clone(u.position,this._offset3D);this._lastEntity=r,this._mode=o,X$e(this,u,f,d,s,e,i)};var dN=fN;function mN(){this._cache={}}mN.prototype.fromColor=function(e,t){return Gz(void 0,void 0,e,t,this._cache)};mN.prototype.fromUrl=function(e,t,n){return Gz(e,void 0,t,n,this._cache)};mN.prototype.fromMakiIconId=function(e,t,n){return Gz(en(`Assets/Textures/maki/${encodeURIComponent(e)}.png`),void 0,t,n,this._cache)};mN.prototype.fromText=function(e,t,n){return Gz(void 0,e,t,n,this._cache)};var Z$e=new H;function $$e(e,t,n){e.save(),e.scale(n/24,n/24),e.fillStyle=t.toCssColorString(),e.strokeStyle=t.brighten(.6,Z$e).toCssColorString(),e.lineWidth=.846,e.beginPath(),e.moveTo(6.72,.422),e.lineTo(17.28,.422),e.bezierCurveTo(18.553,.422,19.577,1.758,19.577,3.415),e.lineTo(19.577,10.973),e.bezierCurveTo(19.577,12.63,18.553,13.966,17.282,13.966),e.lineTo(14.386,14.008),e.lineTo(11.826,23.578),e.lineTo(9.614,14.008),e.lineTo(6.719,13.965),e.bezierCurveTo(5.446,13.983,4.422,12.629,4.422,10.972),e.lineTo(4.422,3.416),e.bezierCurveTo(4.423,1.76,5.447,.423,6.718,.423),e.closePath(),e.fill(),e.stroke(),e.restore()}function Lhe(e,t,n){let i=n/2.5,o=i,r=i;t.width>t.height?r=i*(t.height/t.width):t.width<t.height&&(o=i*(t.width/t.height));let s=Math.round((n-o)/2),a=Math.round(7/24*n-r/2);e.globalCompositeOperation="destination-out",e.drawImage(t,s-1,a,o,r),e.drawImage(t,s,a-1,o,r),e.drawImage(t,s+1,a,o,r),e.drawImage(t,s,a+1,o,r),e.globalCompositeOperation="destination-over",e.fillStyle=H.BLACK.toCssColorString(),e.fillRect(s-1,a-1,o+2,r+2),e.globalCompositeOperation="destination-out",e.drawImage(t,s,a,o,r),e.globalCompositeOperation="destination-over",e.fillStyle=H.WHITE.toCssColorString(),e.fillRect(s-1,a-2,o+2,r+2)}var hN=new Array(4);function Gz(e,t,n,i,o){hN[0]=e,hN[1]=t,hN[2]=n,hN[3]=i;let r=JSON.stringify(hN),s=o[r];if(l(s))return s;let a=document.createElement("canvas");a.width=i,a.height=i;let c=a.getContext("2d");if($$e(c,n,i),l(e)){let f=De.createIfNeeded(e).fetchImage().then(function(d){return Lhe(c,d,i),o[r]=a,a});return o[r]=f,f}else if(l(t)){let u=bb(t,{font:`bold ${i}px sans-serif`});Lhe(c,u,i)}return o[r]=a,a}var H_=mN;var Bhe=wo(Fhe(),1);function jz(e){return h.fromDegrees(e[0],e[1],e[2])}var F7={"urn:ogc:def:crs:OGC:1.3:CRS84":jz,"EPSG:4326":jz,"urn:ogc:def:crs:EPSG::4326":jz},khe={},Vhe={},B7=48,k7,V7=H.ROYALBLUE,U7=H.YELLOW,z7=2,H7=H.fromBytes(255,255,0,100),G7=!1,Q$e={small:24,medium:48,large:64},J$e=["title","description","marker-size","marker-symbol","marker-color","stroke","stroke-opacity","stroke-width","fill","fill-opacity"];function Uhe(e,t){let n="";for(let i in e)if(e.hasOwnProperty(i)){if(i===t||J$e.indexOf(i)!==-1)continue;let o=e[i];l(o)&&(typeof o=="object"?n+=`<tr><th>${i}</th><td>${Uhe(o)}</td></tr>`:n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}return n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function eQe(e,t,n){let i;return function(o,r){return l(i)||(i=e(t,n)),i}}function tQe(e,t){return new Od(eQe(Uhe,e,t),!0)}function qz(e,t,n){let i=e.id;if(!l(i)||e.type!=="Feature")i=Hn();else{let s=2,a=i;for(;l(t.getById(a));)a=`${i}_${s}`,s++;i=a}let o=t.getOrCreateEntity(i),r=e.properties;if(l(r)){o.properties=r;let s,a=r.title;if(l(a))o.name=a,s="title";else{let u=Number.MAX_VALUE;for(let f in r)if(r.hasOwnProperty(f)&&r[f]){let d=f.toLowerCase();if(u>1&&d==="title"){u=1,s=f;break}else u>2&&d==="name"?(u=2,s=f):u>3&&/title/i.test(f)?(u=3,s=f):u>4&&/name/i.test(f)&&(u=4,s=f)}l(s)&&(o.name=r[s])}let c=r.description;c!==null&&(o.description=l(c)?new Zn(c):n(r,s))}return o}function W7(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++)n[i]=t(e[i]);return n}var zhe={Feature:Ghe,FeatureCollection:nQe,GeometryCollection:Whe,LineString:Khe,MultiLineString:Zhe,MultiPoint:Yhe,MultiPolygon:Jhe,Point:qhe,Polygon:Qhe,Topology:eme},Hhe={GeometryCollection:Whe,LineString:Khe,MultiLineString:Zhe,MultiPoint:Yhe,MultiPolygon:Jhe,Point:qhe,Polygon:Qhe,Topology:eme};function Ghe(e,t,n,i,o){if(t.geometry===null){qz(t,e._entityCollection,o.describe);return}if(!l(t.geometry))throw new le("feature.geometry is required.");let r=t.geometry.type,s=Hhe[r];if(!l(s))throw new le(`Unknown geometry type: ${r}`);s(e,t,t.geometry,i,o)}function nQe(e,t,n,i,o){let r=t.features;for(let s=0,a=r.length;s<a;s++)Ghe(e,r[s],void 0,i,o)}function Whe(e,t,n,i,o){let r=n.geometries;for(let s=0,a=r.length;s<a;s++){let c=r[s],u=c.type,f=Hhe[u];if(!l(f))throw new le(`Unknown geometry type: ${u}`);f(e,t,c,i,o)}}function jhe(e,t,n,i,o){let r=o.markerSymbol,s=o.markerColor,a=o.markerSize,c=t.properties;if(l(c)){let g=c["marker-color"];l(g)&&(s=H.fromCssColorString(g)),a=y(Q$e[c["marker-size"]],a);let m=c["marker-symbol"];l(m)&&(r=m)}let u;l(r)?r.length===1?u=e._pinBuilder.fromText(r.toUpperCase(),s,a):u=e._pinBuilder.fromMakiIconId(r,s,a):u=e._pinBuilder.fromColor(s,a);let f=new qa;f.verticalOrigin=new Zn(Rn.BOTTOM),i.length===2&&o.clampToGround&&(f.heightReference=qe.CLAMP_TO_GROUND);let d=qz(t,e._entityCollection,o.describe);d.billboard=f,d.position=new zc(n(i));let p=Promise.resolve(u).then(function(g){f.image=new Zn(g)}).catch(function(){f.image=new Zn(e._pinBuilder.fromColor(s,a))});e._promises.push(p)}function qhe(e,t,n,i,o){jhe(e,t,i,n.coordinates,o)}function Yhe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)jhe(e,t,i,r[s],o)}function Xhe(e,t,n,i,o){let r=o.strokeMaterialProperty,s=o.strokeWidthProperty,a=t.properties;if(l(a)){let f=a["stroke-width"];l(f)&&(s=new Zn(f));let d,p=a.stroke;l(p)&&(d=H.fromCssColorString(p));let g=a["stroke-opacity"];l(g)&&g!==1&&(l(d)||(d=r.color.getValue().clone()),d.alpha=g),l(d)&&(r=new kt(d))}let c=qz(t,e._entityCollection,o.describe),u=new ic;c.polyline=u,u.clampToGround=o.clampToGround,u.material=r,u.width=s,u.positions=new Zn(W7(i,n)),u.arcType=Qt.RHUMB}function Khe(e,t,n,i,o){Xhe(e,t,i,n.coordinates,o)}function Zhe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)Xhe(e,t,i,r[s],o)}function $he(e,t,n,i,o){if(i.length===0||i[0].length===0)return;let r=o.strokeMaterialProperty.color,s=o.fillMaterialProperty,a=o.strokeWidthProperty,c=t.properties;if(l(c)){let g=c["stroke-width"];l(g)&&(a=new Zn(g));let m,x=c.stroke;l(x)&&(m=H.fromCssColorString(x));let b=c["stroke-opacity"];l(b)&&b!==1&&(l(m)||(m=r.getValue().clone()),m.alpha=b),l(m)&&(r=new Zn(m));let T,C=c.fill,A=s.color.getValue();l(C)&&(T=H.fromCssColorString(C),T.alpha=A.alpha),b=c["fill-opacity"],l(b)&&b!==A.alpha&&(l(T)||(T=A.clone()),T.alpha=b),l(T)&&(s=new kt(T))}let u=new Id;u.outline=new Zn(!0),u.outlineColor=r,u.outlineWidth=a,u.material=s,u.arcType=Qt.RHUMB;let f=[];for(let g=1,m=i.length;g<m;g++)f.push(new Sa(W7(i[g],n)));let d=i[0];u.hierarchy=new Zn(new Sa(W7(d,n),f)),d[0].length>2?u.perPositionHeight=new Zn(!0):o.clampToGround||(u.height=0);let p=qz(t,e._entityCollection,o.describe);p.polygon=u}function Qhe(e,t,n,i,o){$he(e,t,i,n.coordinates,o)}function Jhe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)$he(e,t,i,r[s],o)}function eme(e,t,n,i,o){for(let r in n.objects)if(n.objects.hasOwnProperty(r)){let s=Bhe.feature(n,n.objects[r]),a=zhe[s.type];a(e,s,s,i,o)}}function $y(e){this._name=e,this._changed=new pe,this._error=new pe,this._isLoading=!1,this._loading=new pe,this._entityCollection=new Hs(this),this._promises=[],this._pinBuilder=new H_,this._entityCluster=new wu,this._credit=void 0,this._resourceCredits=[]}$y.load=function(e,t){return new $y().load(e,t)};Object.defineProperties($y,{markerSize:{get:function(){return B7},set:function(e){B7=e}},markerSymbol:{get:function(){return k7},set:function(e){k7=e}},markerColor:{get:function(){return V7},set:function(e){V7=e}},stroke:{get:function(){return U7},set:function(e){U7=e}},strokeWidth:{get:function(){return z7},set:function(e){z7=e}},fill:{get:function(){return H7},set:function(e){H7=e}},clampToGround:{get:function(){return G7},set:function(e){G7=e}},crsNames:{get:function(){return F7}},crsLinkHrefs:{get:function(){return khe}},crsLinkTypes:{get:function(){return Vhe}}});Object.defineProperties($y.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{value:void 0,writable:!1},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});$y.prototype.load=function(e,t){return tme(this,e,t,!0)};$y.prototype.process=function(e,t){return tme(this,e,t,!1)};function tme(e,t,n,i){Mr.setLoading(e,!0),n=y(n,y.EMPTY_OBJECT);let o=n.credit;typeof o=="string"&&(o=new Tt(o)),e._credit=o;let r=t,s=n.sourceUri;if(typeof t=="string"||t instanceof De){t=De.createIfNeeded(t),r=t.fetchJson(),s=y(s,t.getUrlComponent());let a=e._resourceCredits,c=t.credits;if(l(c)){let u=c.length;for(let f=0;f<u;f++)a.push(c[f])}}return n={describe:y(n.describe,tQe),markerSize:y(n.markerSize,B7),markerSymbol:y(n.markerSymbol,k7),markerColor:y(n.markerColor,V7),strokeWidthProperty:new Zn(y(n.strokeWidth,z7)),strokeMaterialProperty:new kt(y(n.stroke,U7)),fillMaterialProperty:new kt(y(n.fill,H7)),clampToGround:y(n.clampToGround,G7)},Promise.resolve(r).then(function(a){return iQe(e,a,n,s,i)}).catch(function(a){throw Mr.setLoading(e,!1),e._error.raiseEvent(e,a),a})}$y.prototype.update=function(e){return!0};function iQe(e,t,n,i,o){let r;l(i)&&(r=I_(i)),l(r)&&e._name!==r&&(e._name=r,e._changed.raiseEvent(e));let s=zhe[t.type];if(!l(s))throw new le(`Unsupported GeoJSON object type: ${t.type}`);let a=t.crs,c=a!==null?jz:null;if(l(a)){if(!l(a.properties))throw new le("crs.properties is undefined.");let u=a.properties;if(a.type==="name"){if(c=F7[u.name],!l(c))throw new le(`Unknown crs name: ${u.name}`)}else if(a.type==="link"){let f=khe[u.href];if(l(f)||(f=Vhe[u.type]),!l(f))throw new le(`Unable to resolve crs link: ${JSON.stringify(u)}`);c=f(u)}else if(a.type==="EPSG"){if(c=F7[`EPSG:${u.code}`],!l(c))throw new le(`Unknown crs EPSG code: ${u.code}`)}else throw new le(`Unknown crs type: ${a.type}`)}return Promise.resolve(c).then(function(u){return o&&e._entityCollection.removeAll(),u!==null&&s(e,t,t,u,n),Promise.all(e._promises).then(function(){return e._promises.length=0,Mr.setLoading(e,!1),e})})}var pN=$y;var Jme=wo(lq(),1);var epe;typeof DOMParser<"u"&&(epe=new DOMParser);var tet=new Jme.default({stripPrefix:!1,email:!1,replaceFn:function(e,t){return t.urlMatchType==="scheme"||t.urlMatchType==="www"}}),h4=32,jme=2414016,qme=1,Yme=16093e3,Xme=.1,net=[null,void 0,"http://www.topografix.com/GPX/1/1"],So={gpx:net};function iet(e){return new Promise((t,n)=>{let i=new FileReader;i.addEventListener("load",function(){t(i.result)}),i.addEventListener("error",function(){n(i.error)}),i.readAsText(e)})}function uq(e,t){let n=yN(e,"id");return n=l(n)?n:Hn(),t.getOrCreateEntity(n)}function fq(e){let t=Kme(e,"lon"),n=Kme(e,"lat"),i=_N(e,"ele",So.gpx);return h.fromDegrees(t,n,i)}function Kme(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function yN(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function t0(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r<o;r++){let s=i[r];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function dq(e,t,n){if(!l(e))return;let i=[],o=e.getElementsByTagName(t),r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function _N(e,t,n){let i=t0(e,t,n);if(l(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function Xl(e,t,n){let i=t0(e,t,n);if(l(i))return i.textContent.trim()}function tpe(e){let t=new qa;return t.width=h4,t.height=h4,t.scaleByDistance=new Mt(jme,qme,Yme,Xme),t.pixelOffsetScaleByDistance=new Mt(jme,qme,Yme,Xme),t.verticalOrigin=new Zn(Rn.BOTTOM),t.image=e,t}function oet(){let e=new Pd;return e.translucencyByDistance=new Mt(3e6,1,5e6,0),e.pixelOffset=new z(17,0),e.horizontalOrigin=di.LEFT,e.font="16px sans-serif",e.style=Uo.FILL_AND_OUTLINE,e}function npe(e){let t=new ic;return t.width=4,t.material=new Vy,t.material.color=l(e)?e:H.RED,t.material.outlineWidth=2,t.material.outlineColor=H.BLACK,t}var Zme={time:{text:"Time",tag:"time"},comment:{text:"Comment",tag:"cmt"},description:{text:"Description",tag:"desc"},source:{text:"Source",tag:"src"},number:{text:"GPS track/route number",tag:"number"},type:{text:"Type",tag:"type"}},gN;typeof document<"u"&&(gN=document.createElement("div"));function hq(e,t){let n,i="",o=Object.keys(Zme),r=o.length;for(n=0;n<r;n++){let f=o[n],d=Zme[f];d.value=y(Xl(e,d.tag,So.gpx),""),l(d.value)&&d.value!==""&&(i=`${i}<p>${d.text}: ${d.value}</p>`)}if(!l(i)||i==="")return;i=tet.link(i),gN.innerHTML=i;let s=gN.querySelectorAll("a");for(n=0;n<s.length;n++)s[n].setAttribute("target","_blank");let a=H.WHITE,c=H.BLACK,u='<div class="cesium-infoBox-description-lighter" style="';return u+="overflow:auto;",u+="word-wrap:break-word;",u+=`background-color:${a.toCssColorString()};`,u+=`color:${c.toCssColorString()};`,u+='">',u+=`${gN.innerHTML}</div>`,gN.innerHTML="",u}function ipe(e,t,n,i){let o=fq(t),r=uq(t,n);r.position=o;let s=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",H.RED,h4);r.billboard=tpe(s);let a=Xl(t,"name",So.gpx);r.name=a,r.label=oet(),r.label.text=a,r.description=hq(t,r),i.clampToGround&&(r.billboard.heightReference=qe.CLAMP_TO_GROUND,r.label.heightReference=qe.CLAMP_TO_GROUND)}function ret(e,t,n,i){let o=uq(t,n);o.description=hq(t,o);let r=dq(t,"rtept",So.gpx),s=new Array(r.length);for(let a=0;a<r.length;a++)ipe(e,r[a],n,i),s[a]=fq(r[a]);o.polyline=npe(i.routeColor),i.clampToGround&&(o.polyline.clampToGround=!0),o.polyline.positions=s}function set(e,t,n,i){let o=uq(t,n);o.description=hq(t,o);let r=dq(t,"trkseg",So.gpx),s=[],a=[],c,u=!0,f=new aa;for(let d=0;d<r.length;d++)c=aet(r[d]),s=s.concat(c.positions),c.times.length>0?(a=a.concat(c.times),f.addSamples(a,s),u=u&&!0):u=!1;if(u){let d=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",H.RED,h4);o.billboard=tpe(d),o.position=f,i.clampToGround&&(o.billboard.heightReference=qe.CLAMP_TO_GROUND),o.availability=new Or,o.availability.addInterval(new Tn({start:a[0],stop:a[a.length-1]}))}o.polyline=npe(i.trackColor),o.polyline.positions=s,i.clampToGround&&(o.polyline.clampToGround=!0)}function aet(e){let t={positions:[],times:[]},n=dq(e,"trkpt",So.gpx),i;for(let o=0;o<n.length;o++){let r=fq(n[o]);t.positions.push(r),i=Xl(n[o],"time",So.gpx),l(i)&&t.times.push(J.fromIso8601(i))}return t}function cet(e){let t=t0(e,"metadata",So.gpx);if(l(t)){let n={name:Xl(t,"name",So.gpx),desc:Xl(t,"desc",So.gpx),author:uet(t),copyright:det(t),link:ope(t),time:Xl(t,"time",So.gpx),keywords:Xl(t,"keywords",So.gpx),bounds:het(t)};if(l(n.name)||l(n.desc)||l(n.author)||l(n.copyright)||l(n.link)||l(n.time)||l(n.keywords)||l(n.bounds))return n}}function uet(e){let t=t0(e,"author",So.gpx);if(l(t)){let n={name:Xl(t,"name",So.gpx),email:fet(t),link:ope(t)};if(l(n.name)||l(n.email)||l(n.link))return n}}function fet(e){let t=t0(e,"email",So.gpx);if(l(t)){let n=Xl(t,"id",So.gpx),i=Xl(t,"domain",So.gpx);return`${n}@${i}`}}function ope(e){let t=t0(e,"link",So.gpx);if(l(t)){let n={href:yN(t,"href"),text:Xl(t,"text",So.gpx),mimeType:Xl(t,"type",So.gpx)};if(l(n.href)||l(n.text)||l(n.mimeType))return n}}function det(e){let t=t0(e,"copyright",So.gpx);if(l(t)){let n={author:yN(t,"author"),year:Xl(t,"year",So.gpx),license:Xl(t,"license",So.gpx)};if(l(n.author)||l(n.year)||l(n.license))return n}}function het(e){let t=t0(e,"bounds",So.gpx);if(l(t)){let n={minLat:_N(t,"minlat",So.gpx),maxLat:_N(t,"maxlat",So.gpx),minLon:_N(t,"minlon",So.gpx),maxLon:_N(t,"maxlon",So.gpx)};if(l(n.minLat)||l(n.maxLat)||l(n.minLon)||l(n.maxLon))return n}}var $me={wpt:ipe,rte:ret,trk:set};function met(e,t,n,i){let o=Object.keys($me),r=o.length;for(let s=0;s<r;s++){let a=o[s],c=$me[a],u=t.childNodes,f=u.length;for(let d=0;d<f;d++){let p=u[d];p.localName===a&&So.gpx.indexOf(p.namespaceURI)!==-1&&c(e,p,n,i)}}}function Qme(e,t,n){let i=e._entityCollection;i.removeAll();let o=t.documentElement,r=yN(o,"version"),s=yN(o,"creator"),a,c=cet(o);l(c)&&(a=c.name),o.localName==="gpx"?met(e,o,i,n):console.log(`GPX - Unsupported node: ${o.localName}`);let u,f=i.computeAvailability(),d=f.start,p=f.stop,g=J.equals(d,Ue.MINIMUM_VALUE),m=J.equals(p,Ue.MAXIMUM_VALUE);if(!g||!m){let b;g&&(b=new Date,b.setHours(0,0,0,0),d=J.fromDate(b)),m&&(b=new Date,b.setHours(24,0,0,0),p=J.fromDate(b)),u=new ch,u.startTime=d,u.stopTime=p,u.currentTime=J.clone(d),u.clockRange=Nr.LOOP_STOP,u.clockStep=fo.SYSTEM_CLOCK_MULTIPLIER,u.multiplier=Math.round(Math.min(Math.max(J.secondsDifference(p,d)/60,1),31556900))}let x=!1;return e._name!==a&&(e._name=a,x=!0),e._creator!==s&&(e._creator=s,x=!0),pet(e._metadata,c)&&(e._metadata=c,x=!0),e._version!==r&&(e._version=r,x=!0),u!==e._clock&&(x=!0,e._clock=u),x&&e._changed.raiseEvent(e),Mr.setLoading(e,!1),e}function pet(e,t){return!l(e)&&!l(t)?!1:l(e)&&l(t)?e.name!==t.name||e.dec!==t.desc||e.src!==t.src||e.author!==t.author||e.copyright!==t.copyright||e.link!==t.link||e.time!==t.time||e.bounds!==t.bounds:!0}function _et(e,t,n,i){i=y(i,y.EMPTY_OBJECT);let o=n;if(typeof n=="string"||n instanceof De){n=De.createIfNeeded(n),o=n.fetchBlob();let r=e._resourceCredits,s=n.credits;if(l(s)){let a=s.length;for(let c=0;c<a;c++)r.push(s[c])}}return Promise.resolve(o).then(function(r){return r instanceof Blob?iet(r).then(function(s){let a,c;try{a=epe.parseFromString(s,"application/xml")}catch(u){c=u.toString()}if(l(c)||a.body||a.documentElement.tagName==="parsererror"){let u=l(c)?c:a.documentElement.firstChild.nodeValue;throw u||(u=a.body.innerText),new le(u)}return Qme(e,a,i)}):Qme(e,r,i)}).catch(function(r){return e._error.raiseEvent(e,r),console.log(r),Promise.reject(r)})}function pS(){this._changed=new pe,this._error=new pe,this._loading=new pe,this._clock=void 0,this._entityCollection=new Hs(this),this._entityCluster=new wu,this._name=void 0,this._version=void 0,this._creator=void 0,this._metadata=void 0,this._isLoading=!1,this._pinBuilder=new H_}pS.load=function(e,t){return new pS().load(e,t)};Object.defineProperties(pS.prototype,{name:{get:function(){return this._name}},version:{get:function(){return this._version}},creator:{get:function(){return this._creator}},metadata:{get:function(){return this._metadata}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});pS.prototype.update=function(e){return!0};pS.prototype.load=function(e,t){if(!l(e))throw new de("data is required.");t=y(t,y.EMPTY_OBJECT),Mr.setLoading(this,!0);let n=this._name,i=this;return _et(this,this._entityCollection,e,t).then(function(){let o,r=i._entityCollection.computeAvailability(),s=r.start,a=r.stop,c=J.equals(s,Ue.MINIMUM_VALUE),u=J.equals(a,Ue.MAXIMUM_VALUE);if(!c||!u){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=J.fromDate(d)),u&&(d=new Date,d.setHours(24,0,0,0),a=J.fromDate(d)),o=new ch,o.startTime=s,o.stopTime=a,o.currentTime=J.clone(s),o.clockRange=Nr.LOOP_STOP,o.clockStep=fo.SYSTEM_CLOCK_MULTIPLIER,o.multiplier=Math.round(Math.min(Math.max(J.secondsDifference(a,s)/60,1),31556900))}let f=!1;return o!==i._clock&&(i._clock=o,f=!0),n!==i._name&&(f=!0),f&&i._changed.raiseEvent(i),Mr.setLoading(i,!1),i}).catch(function(o){return Mr.setLoading(i,!1),i._error.raiseEvent(i,o),console.log(o),Promise.reject(o)})};var xN=pS;function get(e,t){this.position=e,this.headingPitchRoll=t}var bN=get;var V_e=wo(lq(),1),WN=wo(au(),1);function b4(e){return T4(e.map(([t,n])=>new Array(t).fill(n,0,t)))}function T4(e){return e.reduce((t,n)=>t.concat(Array.isArray(n)?T4(n):n),[])}var rpe=[0,1,2,3].concat(...b4([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function ur(){let e=this;function t(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,u=e.stat_desc.max_length,f,d,p,g,m,x,b=0;for(g=0;g<=15;g++)o.bl_count[g]=0;for(r[o.heap[o.heap_max]*2+1]=0,f=o.heap_max+1;f<573;f++)d=o.heap[f],g=r[r[d*2+1]*2+1]+1,g>u&&(g=u,b++),r[d*2+1]=g,!(d>e.max_code)&&(o.bl_count[g]++,m=0,d>=c&&(m=a[d-c]),x=r[d*2],o.opt_len+=x*(g+m),s&&(o.static_len+=x*(s[d*2+1]+m)));if(b!==0){do{for(g=u-1;o.bl_count[g]===0;)g--;o.bl_count[g]--,o.bl_count[g+1]+=2,o.bl_count[u]--,b-=2}while(b>0);for(g=u;g!==0;g--)for(d=o.bl_count[g];d!==0;)p=o.heap[--f],!(p>e.max_code)&&(r[p*2+1]!=g&&(o.opt_len+=(g-r[p*2+1])*r[p*2],r[p*2+1]=g),d--)}}function n(o,r){let s=0;do s|=o&1,o>>>=1,s<<=1;while(--r>0);return s>>>1}function i(o,r,s){let a=[],c=0,u,f,d;for(u=1;u<=15;u++)a[u]=c=c+s[u-1]<<1;for(f=0;f<=r;f++)d=o[f*2+1],d!==0&&(o[f*2]=n(a[d]++,d))}e.build_tree=function(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.elems,c,u,f=-1,d;for(o.heap_len=0,o.heap_max=573,c=0;c<a;c++)r[c*2]!==0?(o.heap[++o.heap_len]=f=c,o.depth[c]=0):r[c*2+1]=0;for(;o.heap_len<2;)d=o.heap[++o.heap_len]=f<2?++f:0,r[d*2]=1,o.depth[d]=0,o.opt_len--,s&&(o.static_len-=s[d*2+1]);for(e.max_code=f,c=Math.floor(o.heap_len/2);c>=1;c--)o.pqdownheap(r,c);d=a;do c=o.heap[1],o.heap[1]=o.heap[o.heap_len--],o.pqdownheap(r,1),u=o.heap[1],o.heap[--o.heap_max]=c,o.heap[--o.heap_max]=u,r[d*2]=r[c*2]+r[u*2],o.depth[d]=Math.max(o.depth[c],o.depth[u])+1,r[c*2+1]=r[u*2+1]=d,o.heap[1]=d++,o.pqdownheap(r,1);while(o.heap_len>=2);o.heap[--o.heap_max]=o.heap[1],t(o),i(r,e.max_code,o.bl_count)}}ur._length_code=[0,1,2,3,4,5,6,7].concat(...b4([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]]));ur.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0];ur.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576];ur.d_code=function(e){return e<256?rpe[e]:rpe[256+(e>>>7)]};ur.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];ur.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];ur.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];ur.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Oa(e,t,n,i,o){let r=this;r.static_tree=e,r.extra_bits=t,r.extra_base=n,r.elems=i,r.max_length=o}var yet=[12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227],xet=b4([[144,8],[112,9],[24,7],[8,8]]);Oa.static_ltree=T4(yet.map((e,t)=>[e,xet[t]]));var bet=[0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23],Tet=b4([[30,5]]);Oa.static_dtree=T4(bet.map((e,t)=>[e,Tet[t]]));Oa.static_l_desc=new Oa(Oa.static_ltree,ur.extra_lbits,257,286,15);Oa.static_d_desc=new Oa(Oa.static_dtree,ur.extra_dbits,0,30,15);Oa.static_bl_desc=new Oa(null,ur.extra_blbits,0,19,7);var Aet=9,Cet=8;function Fm(e,t,n,i,o){let r=this;r.good_length=e,r.max_lazy=t,r.nice_length=n,r.max_chain=i,r.func=o}var ape=0,y4=1,mT=2,xh=[new Fm(0,0,0,0,ape),new Fm(4,4,8,4,y4),new Fm(4,5,16,8,y4),new Fm(4,6,32,32,y4),new Fm(4,4,16,16,mT),new Fm(8,16,32,32,mT),new Fm(8,16,128,128,mT),new Fm(8,32,128,256,mT),new Fm(32,128,258,1024,mT),new Fm(32,258,258,4096,mT)],m4=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Jf=0,p4=1,TN=2,_4=3,Eet=32,mq=42,g4=113,AN=666,pq=8,vet=0,_q=1,wet=2,xr=3,x4=258,Fu=x4+xr+1;function spe(e,t,n,i){let o=e[t*2],r=e[n*2];return o<r||o==r&&i[t]<=i[n]}function Det(){let e=this,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x,b,T,C,A,E,v,D,O,I,L,N,_,S,w,P,M,B,U,V=new ur,G=new ur,k=new ur;e.depth=[];let Y,W,Q,j,K,Z;e.bl_count=[],e.heap=[],M=[],B=[],U=[];function he(){u=2*r,d[g-1]=0;for(let Be=0;Be<g-1;Be++)d[Be]=0;N=xh[_].max_lazy,w=xh[_].good_length,P=xh[_].nice_length,L=xh[_].max_chain,v=0,T=0,O=0,C=I=xr-1,E=0,p=0}function be(){let Be;for(Be=0;Be<286;Be++)M[Be*2]=0;for(Be=0;Be<30;Be++)B[Be*2]=0;for(Be=0;Be<19;Be++)U[Be*2]=0;M[256*2]=1,e.opt_len=e.static_len=0,W=Q=0}function re(){V.dyn_tree=M,V.stat_desc=Oa.static_l_desc,G.dyn_tree=B,G.stat_desc=Oa.static_d_desc,k.dyn_tree=U,k.stat_desc=Oa.static_bl_desc,K=0,Z=0,j=8,be()}e.pqdownheap=function(Be,Ke){let Xe=e.heap,Ye=Xe[Ke],ft=Ke<<1;for(;ft<=e.heap_len&&(ft<e.heap_len&&spe(Be,Xe[ft+1],Xe[ft],e.depth)&&ft++,!spe(Be,Ye,Xe[ft],e.depth));)Xe[Ke]=Xe[ft],Ke=ft,ft<<=1;Xe[Ke]=Ye};function _e(Be,Ke){let Xe=-1,Ye,ft=Be[0*2+1],Wt=0,wn=7,qn=4;ft===0&&(wn=138,qn=3),Be[(Ke+1)*2+1]=65535;for(let _o=0;_o<=Ke;_o++)Ye=ft,ft=Be[(_o+1)*2+1],!(++Wt<wn&&Ye==ft)&&(Wt<qn?U[Ye*2]+=Wt:Ye!==0?(Ye!=Xe&&U[Ye*2]++,U[16*2]++):Wt<=10?U[17*2]++:U[18*2]++,Wt=0,Xe=Ye,ft===0?(wn=138,qn=3):Ye==ft?(wn=6,qn=3):(wn=7,qn=4))}function xe(){let Be;for(_e(M,V.max_code),_e(B,G.max_code),k.build_tree(e),Be=18;Be>=3&&U[ur.bl_order[Be]*2+1]===0;Be--);return e.opt_len+=3*(Be+1)+5+5+4,Be}function Ce(Be){e.pending_buf[e.pending++]=Be}function we(Be){Ce(Be&255),Ce(Be>>>8&255)}function Oe(Be){Ce(Be>>8&255),Ce(Be&255&255)}function ke(Be,Ke){let Xe,Ye=Ke;Z>16-Ye?(Xe=Be,K|=Xe<<Z&65535,we(K),K=Xe>>>16-Z,Z+=Ye-16):(K|=Be<<Z&65535,Z+=Ye)}function At(Be,Ke){let Xe=Be*2;ke(Ke[Xe]&65535,Ke[Xe+1]&65535)}function Bt(Be,Ke){let Xe,Ye=-1,ft,Wt=Be[0*2+1],wn=0,qn=7,_o=4;for(Wt===0&&(qn=138,_o=3),Xe=0;Xe<=Ke;Xe++)if(ft=Wt,Wt=Be[(Xe+1)*2+1],!(++wn<qn&&ft==Wt)){if(wn<_o)do At(ft,U);while(--wn!==0);else ft!==0?(ft!=Ye&&(At(ft,U),wn--),At(16,U),ke(wn-3,2)):wn<=10?(At(17,U),ke(wn-3,3)):(At(18,U),ke(wn-11,7));wn=0,Ye=ft,Wt===0?(qn=138,_o=3):ft==Wt?(qn=6,_o=3):(qn=7,_o=4)}}function rt(Be,Ke,Xe){let Ye;for(ke(Be-257,5),ke(Ke-1,5),ke(Xe-4,4),Ye=0;Ye<Xe;Ye++)ke(U[ur.bl_order[Ye]*2+1],3);Bt(M,Be-1),Bt(B,Ke-1)}function Qe(){Z==16?(we(K),K=0,Z=0):Z>=8&&(Ce(K&255),K>>>=8,Z-=8)}function Kt(){ke(_q<<1,3),At(256,Oa.static_ltree),Qe(),1+j+10-Z<9&&(ke(_q<<1,3),At(256,Oa.static_ltree),Qe()),j=7}function ht(Be,Ke){let Xe,Ye,ft;if(e.dist_buf[W]=Be,e.lc_buf[W]=Ke&255,W++,Be===0?M[Ke*2]++:(Q++,Be--,M[(ur._length_code[Ke]+256+1)*2]++,B[ur.d_code(Be)*2]++),!(W&8191)&&_>2){for(Xe=W*8,Ye=v-T,ft=0;ft<30;ft++)Xe+=B[ft*2]*(5+ur.extra_dbits[ft]);if(Xe>>>=3,Q<Math.floor(W/2)&&Xe<Math.floor(Ye/2))return!0}return W==Y-1}function mt(Be,Ke){let Xe,Ye,ft=0,Wt,wn;if(W!==0)do Xe=e.dist_buf[ft],Ye=e.lc_buf[ft],ft++,Xe===0?At(Ye,Be):(Wt=ur._length_code[Ye],At(Wt+256+1,Be),wn=ur.extra_lbits[Wt],wn!==0&&(Ye-=ur.base_length[Wt],ke(Ye,wn)),Xe--,Wt=ur.d_code(Xe),At(Wt,Ke),wn=ur.extra_dbits[Wt],wn!==0&&(Xe-=ur.base_dist[Wt],ke(Xe,wn)));while(ft<W);At(256,Be),j=Be[256*2+1]}function Zt(){Z>8?we(K):Z>0&&Ce(K&255),K=0,Z=0}function me(Be,Ke,Xe){Zt(),j=8,Xe&&(we(Ke),we(~Ke)),e.pending_buf.set(c.subarray(Be,Be+Ke),e.pending),e.pending+=Ke}function Ae(Be,Ke,Xe){ke((vet<<1)+(Xe?1:0),3),me(Be,Ke,!0)}function Ut(Be,Ke,Xe){let Ye,ft,Wt=0;_>0?(V.build_tree(e),G.build_tree(e),Wt=xe(),Ye=e.opt_len+3+7>>>3,ft=e.static_len+3+7>>>3,ft<=Ye&&(Ye=ft)):Ye=ft=Ke+5,Ke+4<=Ye&&Be!=-1?Ae(Be,Ke,Xe):ft==Ye?(ke((_q<<1)+(Xe?1:0),3),mt(Oa.static_ltree,Oa.static_dtree)):(ke((wet<<1)+(Xe?1:0),3),rt(V.max_code+1,G.max_code+1,Wt+1),mt(M,B)),be(),Xe&&Zt()}function ut(Be){Ut(T>=0?T:-1,v-T,Be),T=v,t.flush_pending()}function Ai(){let Be,Ke,Xe,Ye;do{if(Ye=u-O-v,Ye===0&&v===0&&O===0)Ye=r;else if(Ye==-1)Ye--;else if(v>=r+r-Fu){c.set(c.subarray(r,r+r),0),D-=r,v-=r,T-=r,Be=g,Xe=Be;do Ke=d[--Xe]&65535,d[Xe]=Ke>=r?Ke-r:0;while(--Be!==0);Be=r,Xe=Be;do Ke=f[--Xe]&65535,f[Xe]=Ke>=r?Ke-r:0;while(--Be!==0);Ye+=r}if(t.avail_in===0)return;Be=t.read_buf(c,v+O,Ye),O+=Be,O>=xr&&(p=c[v]&255,p=(p<<b^c[v+1]&255)&x)}while(O<Fu&&t.avail_in!==0)}function po(Be){let Ke=65535,Xe;for(Ke>i-5&&(Ke=i-5);;){if(O<=1){if(Ai(),O===0&&Be==0)return Jf;if(O===0)break}if(v+=O,O=0,Xe=T+Ke,(v===0||v>=Xe)&&(O=v-Xe,v=Xe,ut(!1),t.avail_out===0)||v-T>=r-Fu&&(ut(!1),t.avail_out===0))return Jf}return ut(Be==4),t.avail_out===0?Be==4?TN:Jf:Be==4?_4:p4}function hs(Be){let Ke=L,Xe=v,Ye,ft,Wt=I,wn=v>r-Fu?v-(r-Fu):0,qn=P,_o=a,za=v+x4,ya=c[Xe+Wt-1],or=c[Xe+Wt];I>=w&&(Ke>>=2),qn>O&&(qn=O);do if(Ye=Be,!(c[Ye+Wt]!=or||c[Ye+Wt-1]!=ya||c[Ye]!=c[Xe]||c[++Ye]!=c[Xe+1])){Xe+=2,Ye++;do;while(c[++Xe]==c[++Ye]&&c[++Xe]==c[++Ye]&&c[++Xe]==c[++Ye]&&c[++Xe]==c[++Ye]&&c[++Xe]==c[++Ye]&&c[++Xe]==c[++Ye]&&c[++Xe]==c[++Ye]&&c[++Xe]==c[++Ye]&&Xe<za);if(ft=x4-(za-Xe),Xe=za-x4,ft>Wt){if(D=Be,Wt=ft,ft>=qn)break;ya=c[Xe+Wt-1],or=c[Xe+Wt]}}while((Be=f[Be&_o]&65535)>wn&&--Ke!==0);return Wt<=O?Wt:O}function es(Be){let Ke=0,Xe;for(;;){if(O<Fu){if(Ai(),O<Fu&&Be==0)return Jf;if(O===0)break}if(O>=xr&&(p=(p<<b^c[v+(xr-1)]&255)&x,Ke=d[p]&65535,f[v&a]=d[p],d[p]=v),Ke!==0&&(v-Ke&65535)<=r-Fu&&S!=2&&(C=hs(Ke)),C>=xr)if(Xe=ht(v-D,C-xr),O-=C,C<=N&&O>=xr){C--;do v++,p=(p<<b^c[v+(xr-1)]&255)&x,Ke=d[p]&65535,f[v&a]=d[p],d[p]=v;while(--C!==0);v++}else v+=C,C=0,p=c[v]&255,p=(p<<b^c[v+1]&255)&x;else Xe=ht(0,c[v]&255),O--,v++;if(Xe&&(ut(!1),t.avail_out===0))return Jf}return ut(Be==4),t.avail_out===0?Be==4?TN:Jf:Be==4?_4:p4}function Ur(Be){let Ke=0,Xe,Ye;for(;;){if(O<Fu){if(Ai(),O<Fu&&Be==0)return Jf;if(O===0)break}if(O>=xr&&(p=(p<<b^c[v+(xr-1)]&255)&x,Ke=d[p]&65535,f[v&a]=d[p],d[p]=v),I=C,A=D,C=xr-1,Ke!==0&&I<N&&(v-Ke&65535)<=r-Fu&&(S!=2&&(C=hs(Ke)),C<=5&&(S==1||C==xr&&v-D>4096)&&(C=xr-1)),I>=xr&&C<=I){Ye=v+O-xr,Xe=ht(v-1-A,I-xr),O-=I-1,I-=2;do++v<=Ye&&(p=(p<<b^c[v+(xr-1)]&255)&x,Ke=d[p]&65535,f[v&a]=d[p],d[p]=v);while(--I!==0);if(E=0,C=xr-1,v++,Xe&&(ut(!1),t.avail_out===0))return Jf}else if(E!==0){if(Xe=ht(0,c[v-1]&255),Xe&&ut(!1),v++,O--,t.avail_out===0)return Jf}else E=1,v++,O--}return E!==0&&(Xe=ht(0,c[v-1]&255),E=0),ut(Be==4),t.avail_out===0?Be==4?TN:Jf:Be==4?_4:p4}function Wo(Be){return Be.total_in=Be.total_out=0,Be.msg=null,e.pending=0,e.pending_out=0,n=g4,o=0,re(),he(),0}e.deflateInit=function(Be,Ke,Xe,Ye,ft,Wt){return Ye||(Ye=pq),ft||(ft=Cet),Wt||(Wt=0),Be.msg=null,Ke==-1&&(Ke=6),ft<1||ft>Aet||Ye!=pq||Xe<9||Xe>15||Ke<0||Ke>9||Wt<0||Wt>2?-2:(Be.dstate=e,s=Xe,r=1<<s,a=r-1,m=ft+7,g=1<<m,x=g-1,b=Math.floor((m+xr-1)/xr),c=new Uint8Array(r*2),f=[],d=[],Y=1<<ft+6,e.pending_buf=new Uint8Array(Y*4),i=Y*4,e.dist_buf=new Uint16Array(Y),e.lc_buf=new Uint8Array(Y),_=Ke,S=Wt,Wo(Be))},e.deflateEnd=function(){return n!=mq&&n!=g4&&n!=AN?-2:(e.lc_buf=null,e.dist_buf=null,e.pending_buf=null,d=null,f=null,c=null,e.dstate=null,n==g4?-3:0)},e.deflateParams=function(Be,Ke,Xe){let Ye=0;return Ke==-1&&(Ke=6),Ke<0||Ke>9||Xe<0||Xe>2?-2:(xh[_].func!=xh[Ke].func&&Be.total_in!==0&&(Ye=Be.deflate(1)),_!=Ke&&(_=Ke,N=xh[_].max_lazy,w=xh[_].good_length,P=xh[_].nice_length,L=xh[_].max_chain),S=Xe,Ye)},e.deflateSetDictionary=function(Be,Ke,Xe){let Ye=Xe,ft,Wt=0;if(!Ke||n!=mq)return-2;if(Ye<xr)return 0;for(Ye>r-Fu&&(Ye=r-Fu,Wt=Xe-Ye),c.set(Ke.subarray(Wt,Wt+Ye),0),v=Ye,T=Ye,p=c[0]&255,p=(p<<b^c[1]&255)&x,ft=0;ft<=Ye-xr;ft++)p=(p<<b^c[ft+(xr-1)]&255)&x,f[ft&a]=d[p],d[p]=ft;return 0},e.deflate=function(Be,Ke){let Xe,Ye,ft,Wt,wn;if(Ke>4||Ke<0)return-2;if(!Be.next_out||!Be.next_in&&Be.avail_in!==0||n==AN&&Ke!=4)return Be.msg=m4[4],-2;if(Be.avail_out===0)return Be.msg=m4[7],-5;if(t=Be,Wt=o,o=Ke,n==mq&&(Ye=pq+(s-8<<4)<<8,ft=(_-1&255)>>1,ft>3&&(ft=3),Ye|=ft<<6,v!==0&&(Ye|=Eet),Ye+=31-Ye%31,n=g4,Oe(Ye)),e.pending!==0){if(t.flush_pending(),t.avail_out===0)return o=-1,0}else if(t.avail_in===0&&Ke<=Wt&&Ke!=4)return t.msg=m4[7],-5;if(n==AN&&t.avail_in!==0)return Be.msg=m4[7],-5;if(t.avail_in!==0||O!==0||Ke!=0&&n!=AN){switch(wn=-1,xh[_].func){case ape:wn=po(Ke);break;case y4:wn=es(Ke);break;case mT:wn=Ur(Ke);break;default:}if((wn==TN||wn==_4)&&(n=AN),wn==Jf||wn==TN)return t.avail_out===0&&(o=-1),0;if(wn==p4){if(Ke==1)Kt();else if(Ae(0,0,!1),Ke==3)for(Xe=0;Xe<g;Xe++)d[Xe]=0;if(t.flush_pending(),t.avail_out===0)return o=-1,0}}return Ke!=4?0:1}}function cpe(){let e=this;e.next_in_index=0,e.next_out_index=0,e.avail_in=0,e.total_in=0,e.avail_out=0,e.total_out=0}cpe.prototype={deflateInit(e,t){let n=this;return n.dstate=new Det,t||(t=15),n.dstate.deflateInit(n,e,t)},deflate(e){let t=this;return t.dstate?t.dstate.deflate(t,e):-2},deflateEnd(){let e=this;if(!e.dstate)return-2;let t=e.dstate.deflateEnd();return e.dstate=null,t},deflateParams(e,t){let n=this;return n.dstate?n.dstate.deflateParams(n,e,t):-2},deflateSetDictionary(e,t){let n=this;return n.dstate?n.dstate.deflateSetDictionary(n,e,t):-2},read_buf(e,t,n){let i=this,o=i.avail_in;return o>n&&(o=n),o===0?0:(i.avail_in-=o,e.set(i.next_in.subarray(i.next_in_index,i.next_in_index+o),t),i.next_in_index+=o,i.total_in+=o,o)},flush_pending(){let e=this,t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,e.dstate.pending===0&&(e.dstate.pending_out=0))}};function lpe(e){let t=this,n=new cpe,i=Pet(e&&e.chunkSize?e.chunkSize:64*1024),o=0,r=new Uint8Array(i),s=e?e.level:-1;typeof s>"u"&&(s=-1),n.deflateInit(s),n.next_out=r,t.append=function(a,c){let u,f,d=0,p=0,g=0,m=[];if(a.length){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,u=n.deflate(o),u!=0)throw new Error("deflating: "+n.msg);n.next_out_index&&(n.next_out_index==i?m.push(new Uint8Array(r)):m.push(r.subarray(0,n.next_out_index))),g+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=d&&(c(n.next_in_index),d=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return m.length>1?(f=new Uint8Array(g),m.forEach(function(x){f.set(x,p),p+=x.length})):f=m[0]?new Uint8Array(m[0]):new Uint8Array,f}},t.flush=function(){let a,c,u=0,f=0,d=[];do{if(n.next_out_index=0,n.avail_out=i,a=n.deflate(4),a!=1&&a!=0)throw new Error("deflating: "+n.msg);i-n.avail_out>0&&d.push(r.slice(0,n.next_out_index)),f+=n.next_out_index}while(n.avail_in>0||n.avail_out===0);return n.deflateEnd(),c=new Uint8Array(f),d.forEach(function(p){c.set(p,u),u+=p.length}),c}}function Pet(e){return e+5*(Math.floor(e/16383)+1)}var Bu=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Ppe=1440,Iet=0,Ret=4,Oet=9,Met=5,Let=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],Net=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],Fet=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Bet=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],ket=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Vet=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],n0=15;function bq(){let e=this,t,n,i,o,r,s;function a(u,f,d,p,g,m,x,b,T,C,A){let E,v,D,O,I,L,N,_,S,w,P,M,B,U,V;w=0,I=d;do i[u[f+w]]++,w++,I--;while(I!==0);if(i[0]==d)return x[0]=-1,b[0]=0,0;for(_=b[0],L=1;L<=n0&&i[L]===0;L++);for(N=L,_<L&&(_=L),I=n0;I!==0&&i[I]===0;I--);for(D=I,_>I&&(_=I),b[0]=_,U=1<<L;L<I;L++,U<<=1)if((U-=i[L])<0)return-3;if((U-=i[I])<0)return-3;for(i[I]+=U,s[1]=L=0,w=1,B=2;--I!==0;)s[B]=L+=i[w],B++,w++;I=0,w=0;do(L=u[f+w])!==0&&(A[s[L]++]=I),w++;while(++I<d);for(d=s[D],s[0]=I=0,w=0,O=-1,M=-_,r[0]=0,P=0,V=0;N<=D;N++)for(E=i[N];E--!==0;){for(;N>M+_;){if(O++,M+=_,V=D-M,V=V>_?_:V,(v=1<<(L=N-M))>E+1&&(v-=E+1,B=N,L<V))for(;++L<V&&!((v<<=1)<=i[++B]);)v-=i[B];if(V=1<<L,C[0]+V>Ppe)return-3;r[O]=P=C[0],C[0]+=V,O!==0?(s[O]=I,o[0]=L,o[1]=_,L=I>>>M-_,o[2]=P-r[O-1]-L,T.set(o,(r[O-1]+L)*3)):x[0]=P}for(o[1]=N-M,w>=d?o[0]=192:A[w]<p?(o[0]=A[w]<256?0:96,o[2]=A[w++]):(o[0]=m[A[w]-p]+16+64,o[2]=g[A[w++]-p]),v=1<<N-M,L=I>>>M;L<V;L+=v)T.set(o,(P+L)*3);for(L=1<<N-1;I&L;L>>>=1)I^=L;for(I^=L,S=(1<<M)-1;(I&S)!=s[O];)O--,M-=_,S=(1<<M)-1}return U!==0&&D!=1?-5:0}function c(u){let f;for(t||(t=[],n=[],i=new Int32Array(n0+1),o=[],r=new Int32Array(n0),s=new Int32Array(n0+1)),n.length<u&&(n=[]),f=0;f<u;f++)n[f]=0;for(f=0;f<n0+1;f++)i[f]=0;for(f=0;f<3;f++)o[f]=0;r.set(i.subarray(0,n0),0),s.set(i.subarray(0,n0+1),0)}e.inflate_trees_bits=function(u,f,d,p,g){let m;return c(19),t[0]=0,m=a(u,0,19,19,null,null,d,f,p,t,n),m==-3?g.msg="oversubscribed dynamic bit lengths tree":(m==-5||f[0]===0)&&(g.msg="incomplete dynamic bit lengths tree",m=-3),m},e.inflate_trees_dynamic=function(u,f,d,p,g,m,x,b,T){let C;return c(288),t[0]=0,C=a(d,0,u,257,Fet,Bet,m,p,b,t,n),C!=0||p[0]===0?(C==-3?T.msg="oversubscribed literal/length tree":C!=-4&&(T.msg="incomplete literal/length tree",C=-3),C):(c(288),C=a(d,u,f,0,ket,Vet,x,g,b,t,n),C!=0||g[0]===0&&u>257?(C==-3?T.msg="oversubscribed distance tree":C==-5?(T.msg="incomplete distance tree",C=-3):C!=-4&&(T.msg="empty distance tree with lengths",C=-3),C):0)}}bq.inflate_trees_fixed=function(e,t,n,i){return e[0]=Oet,t[0]=Met,n[0]=Let,i[0]=Net,0};var A4=0,upe=1,fpe=2,dpe=3,hpe=4,mpe=5,ppe=6,gq=7,_pe=8,C4=9;function Uet(){let e=this,t,n=0,i,o=0,r=0,s=0,a=0,c=0,u=0,f=0,d,p=0,g,m=0;function x(b,T,C,A,E,v,D,O){let I,L,N,_,S,w,P,M,B,U,V,G,k,Y,W,Q;P=O.next_in_index,M=O.avail_in,S=D.bitb,w=D.bitk,B=D.write,U=B<D.read?D.read-B-1:D.end-B,V=Bu[b],G=Bu[T];do{for(;w<20;)M--,S|=(O.read_byte(P++)&255)<<w,w+=8;if(I=S&V,L=C,N=A,Q=(N+I)*3,(_=L[Q])===0){S>>=L[Q+1],w-=L[Q+1],D.win[B++]=L[Q+2],U--;continue}do{if(S>>=L[Q+1],w-=L[Q+1],_&16){for(_&=15,k=L[Q+2]+(S&Bu[_]),S>>=_,w-=_;w<15;)M--,S|=(O.read_byte(P++)&255)<<w,w+=8;I=S&G,L=E,N=v,Q=(N+I)*3,_=L[Q];do if(S>>=L[Q+1],w-=L[Q+1],_&16){for(_&=15;w<_;)M--,S|=(O.read_byte(P++)&255)<<w,w+=8;if(Y=L[Q+2]+(S&Bu[_]),S>>=_,w-=_,U-=k,B>=Y)W=B-Y,B-W>0&&2>B-W?(D.win[B++]=D.win[W++],D.win[B++]=D.win[W++],k-=2):(D.win.set(D.win.subarray(W,W+2),B),B+=2,W+=2,k-=2);else{W=B-Y;do W+=D.end;while(W<0);if(_=D.end-W,k>_){if(k-=_,B-W>0&&_>B-W)do D.win[B++]=D.win[W++];while(--_!==0);else D.win.set(D.win.subarray(W,W+_),B),B+=_,W+=_,_=0;W=0}}if(B-W>0&&k>B-W)do D.win[B++]=D.win[W++];while(--k!==0);else D.win.set(D.win.subarray(W,W+k),B),B+=k,W+=k,k=0;break}else if(!(_&64))I+=L[Q+2],I+=S&Bu[_],Q=(N+I)*3,_=L[Q];else return O.msg="invalid distance code",k=O.avail_in-M,k=w>>3<k?w>>3:k,M+=k,P-=k,w-=k<<3,D.bitb=S,D.bitk=w,O.avail_in=M,O.total_in+=P-O.next_in_index,O.next_in_index=P,D.write=B,-3;while(!0);break}if(_&64)return _&32?(k=O.avail_in-M,k=w>>3<k?w>>3:k,M+=k,P-=k,w-=k<<3,D.bitb=S,D.bitk=w,O.avail_in=M,O.total_in+=P-O.next_in_index,O.next_in_index=P,D.write=B,1):(O.msg="invalid literal/length code",k=O.avail_in-M,k=w>>3<k?w>>3:k,M+=k,P-=k,w-=k<<3,D.bitb=S,D.bitk=w,O.avail_in=M,O.total_in+=P-O.next_in_index,O.next_in_index=P,D.write=B,-3);if(I+=L[Q+2],I+=S&Bu[_],Q=(N+I)*3,(_=L[Q])===0){S>>=L[Q+1],w-=L[Q+1],D.win[B++]=L[Q+2],U--;break}}while(!0)}while(U>=258&&M>=10);return k=O.avail_in-M,k=w>>3<k?w>>3:k,M+=k,P-=k,w-=k<<3,D.bitb=S,D.bitk=w,O.avail_in=M,O.total_in+=P-O.next_in_index,O.next_in_index=P,D.write=B,0}e.init=function(b,T,C,A,E,v){t=A4,u=b,f=T,d=C,p=A,g=E,m=v,i=null},e.proc=function(b,T,C){let A,E,v,D=0,O=0,I=0,L,N,_,S;for(I=T.next_in_index,L=T.avail_in,D=b.bitb,O=b.bitk,N=b.write,_=N<b.read?b.read-N-1:b.end-N;;)switch(t){case A4:if(_>=258&&L>=10&&(b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=I-T.next_in_index,T.next_in_index=I,b.write=N,C=x(u,f,d,p,g,m,b,T),I=T.next_in_index,L=T.avail_in,D=b.bitb,O=b.bitk,N=b.write,_=N<b.read?b.read-N-1:b.end-N,C!=0)){t=C==1?gq:C4;break}r=u,i=d,o=p,t=upe;case upe:for(A=r;O<A;){if(L!==0)C=0;else return b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=I-T.next_in_index,T.next_in_index=I,b.write=N,b.inflate_flush(T,C);L--,D|=(T.read_byte(I++)&255)<<O,O+=8}if(E=(o+(D&Bu[A]))*3,D>>>=i[E+1],O-=i[E+1],v=i[E],v===0){s=i[E+2],t=ppe;break}if(v&16){a=v&15,n=i[E+2],t=fpe;break}if(!(v&64)){r=v,o=E/3+i[E+2];break}if(v&32){t=gq;break}return t=C4,T.msg="invalid literal/length code",C=-3,b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=I-T.next_in_index,T.next_in_index=I,b.write=N,b.inflate_flush(T,C);case fpe:for(A=a;O<A;){if(L!==0)C=0;else return b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=I-T.next_in_index,T.next_in_index=I,b.write=N,b.inflate_flush(T,C);L--,D|=(T.read_byte(I++)&255)<<O,O+=8}n+=D&Bu[A],D>>=A,O-=A,r=f,i=g,o=m,t=dpe;case dpe:for(A=r;O<A;){if(L!==0)C=0;else return b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=I-T.next_in_index,T.next_in_index=I,b.write=N,b.inflate_flush(T,C);L--,D|=(T.read_byte(I++)&255)<<O,O+=8}if(E=(o+(D&Bu[A]))*3,D>>=i[E+1],O-=i[E+1],v=i[E],v&16){a=v&15,c=i[E+2],t=hpe;break}if(!(v&64)){r=v,o=E/3+i[E+2];break}return t=C4,T.msg="invalid distance code",C=-3,b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=I-T.next_in_index,T.next_in_index=I,b.write=N,b.inflate_flush(T,C);case hpe:for(A=a;O<A;){if(L!==0)C=0;else return b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=I-T.next_in_index,T.next_in_index=I,b.write=N,b.inflate_flush(T,C);L--,D|=(T.read_byte(I++)&255)<<O,O+=8}c+=D&Bu[A],D>>=A,O-=A,t=mpe;case mpe:for(S=N-c;S<0;)S+=b.end;for(;n!==0;){if(_===0&&(N==b.end&&b.read!==0&&(N=0,_=N<b.read?b.read-N-1:b.end-N),_===0&&(b.write=N,C=b.inflate_flush(T,C),N=b.write,_=N<b.read?b.read-N-1:b.end-N,N==b.end&&b.read!==0&&(N=0,_=N<b.read?b.read-N-1:b.end-N),_===0)))return b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=I-T.next_in_index,T.next_in_index=I,b.write=N,b.inflate_flush(T,C);b.win[N++]=b.win[S++],_--,S==b.end&&(S=0),n--}t=A4;break;case ppe:if(_===0&&(N==b.end&&b.read!==0&&(N=0,_=N<b.read?b.read-N-1:b.end-N),_===0&&(b.write=N,C=b.inflate_flush(T,C),N=b.write,_=N<b.read?b.read-N-1:b.end-N,N==b.end&&b.read!==0&&(N=0,_=N<b.read?b.read-N-1:b.end-N),_===0)))return b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=I-T.next_in_index,T.next_in_index=I,b.write=N,b.inflate_flush(T,C);C=0,b.win[N++]=s,_--,t=A4;break;case gq:if(O>7&&(O-=8,L++,I--),b.write=N,C=b.inflate_flush(T,C),N=b.write,_=N<b.read?b.read-N-1:b.end-N,b.read!=b.write)return b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=I-T.next_in_index,T.next_in_index=I,b.write=N,b.inflate_flush(T,C);t=_pe;case _pe:return C=1,b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=I-T.next_in_index,T.next_in_index=I,b.write=N,b.inflate_flush(T,C);case C4:return C=-3,b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=I-T.next_in_index,T.next_in_index=I,b.write=N,b.inflate_flush(T,C);default:return C=-2,b.bitb=D,b.bitk=O,T.avail_in=L,T.total_in+=I-T.next_in_index,T.next_in_index=I,b.write=N,b.inflate_flush(T,C)}},e.free=function(){}}var gpe=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],_S=0,yq=1,ype=2,xpe=3,bpe=4,Tpe=5,E4=6,S4=7,Ape=8,pT=9;function zet(e,t){let n=this,i=_S,o=0,r=0,s=0,a,c=[0],u=[0],f=new Uet,d=0,p=new Int32Array(Ppe*3),g=0,m=new bq;n.bitk=0,n.bitb=0,n.win=new Uint8Array(t),n.end=t,n.read=0,n.write=0,n.reset=function(x,b){b&&(b[0]=g),i==E4&&f.free(x),i=_S,n.bitk=0,n.bitb=0,n.read=n.write=0},n.reset(e,null),n.inflate_flush=function(x,b){let T,C,A;return C=x.next_out_index,A=n.read,T=(A<=n.write?n.write:n.end)-A,T>x.avail_out&&(T=x.avail_out),T!==0&&b==-5&&(b=0),x.avail_out-=T,x.total_out+=T,x.next_out.set(n.win.subarray(A,A+T),C),C+=T,A+=T,A==n.end&&(A=0,n.write==n.end&&(n.write=0),T=n.write-A,T>x.avail_out&&(T=x.avail_out),T!==0&&b==-5&&(b=0),x.avail_out-=T,x.total_out+=T,x.next_out.set(n.win.subarray(A,A+T),C),C+=T,A+=T),x.next_out_index=C,n.read=A,b},n.proc=function(x,b){let T,C,A,E,v,D,O,I;for(E=x.next_in_index,v=x.avail_in,C=n.bitb,A=n.bitk,D=n.write,O=D<n.read?n.read-D-1:n.end-D;;){let L,N,_,S,w,P,M,B;switch(i){case _S:for(;A<3;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}switch(T=C&7,d=T&1,T>>>1){case 0:C>>>=3,A-=3,T=A&7,C>>>=T,A-=T,i=yq;break;case 1:L=[],N=[],_=[[]],S=[[]],bq.inflate_trees_fixed(L,N,_,S),f.init(L[0],N[0],_[0],0,S[0],0),C>>>=3,A-=3,i=E4;break;case 2:C>>>=3,A-=3,i=xpe;break;case 3:return C>>>=3,A-=3,i=pT,x.msg="invalid block type",b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b)}break;case yq:for(;A<32;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}if((~C>>>16&65535)!=(C&65535))return i=pT,x.msg="invalid stored block lengths",b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);o=C&65535,C=A=0,i=o!==0?ype:d!==0?S4:_S;break;case ype:if(v===0||O===0&&(D==n.end&&n.read!==0&&(D=0,O=D<n.read?n.read-D-1:n.end-D),O===0&&(n.write=D,b=n.inflate_flush(x,b),D=n.write,O=D<n.read?n.read-D-1:n.end-D,D==n.end&&n.read!==0&&(D=0,O=D<n.read?n.read-D-1:n.end-D),O===0)))return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);if(b=0,T=o,T>v&&(T=v),T>O&&(T=O),n.win.set(x.read_buf(E,T),D),E+=T,v-=T,D+=T,O-=T,(o-=T)!==0)break;i=d!==0?S4:_S;break;case xpe:for(;A<14;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}if(r=T=C&16383,(T&31)>29||(T>>5&31)>29)return i=pT,x.msg="too many length or distance symbols",b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);if(T=258+(T&31)+(T>>5&31),!a||a.length<T)a=[];else for(I=0;I<T;I++)a[I]=0;C>>>=14,A-=14,s=0,i=bpe;case bpe:for(;s<4+(r>>>10);){for(;A<3;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}a[gpe[s++]]=C&7,C>>>=3,A-=3}for(;s<19;)a[gpe[s++]]=0;if(c[0]=7,T=m.inflate_trees_bits(a,c,u,p,x),T!=0)return b=T,b==-3&&(a=null,i=pT),n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);s=0,i=Tpe;case Tpe:for(;T=r,!(s>=258+(T&31)+(T>>5&31));){let U,V;for(T=c[0];A<T;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}if(T=p[(u[0]+(C&Bu[T]))*3+1],V=p[(u[0]+(C&Bu[T]))*3+2],V<16)C>>>=T,A-=T,a[s++]=V;else{for(I=V==18?7:V-14,U=V==18?11:3;A<T+I;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}if(C>>>=T,A-=T,U+=C&Bu[I],C>>>=I,A-=I,I=s,T=r,I+U>258+(T&31)+(T>>5&31)||V==16&&I<1)return a=null,i=pT,x.msg="invalid bit length repeat",b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);V=V==16?a[I-1]:0;do a[I++]=V;while(--U!==0);s=I}}if(u[0]=-1,w=[],P=[],M=[],B=[],w[0]=9,P[0]=6,T=r,T=m.inflate_trees_dynamic(257+(T&31),1+(T>>5&31),a,w,P,M,B,p,x),T!=0)return T==-3&&(a=null,i=pT),b=T,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);f.init(w[0],P[0],p,M[0],p,B[0]),i=E4;case E4:if(n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,(b=f.proc(n,x,b))!=1)return n.inflate_flush(x,b);if(b=0,f.free(x),E=x.next_in_index,v=x.avail_in,C=n.bitb,A=n.bitk,D=n.write,O=D<n.read?n.read-D-1:n.end-D,d===0){i=_S;break}i=S4;case S4:if(n.write=D,b=n.inflate_flush(x,b),D=n.write,O=D<n.read?n.read-D-1:n.end-D,n.read!=n.write)return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);i=Ape;case Ape:return b=1,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);case pT:return b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);default:return b=-2,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b)}}},n.free=function(x){n.reset(x,null),n.win=null,p=null},n.set_dictionary=function(x,b,T){n.win.set(x.subarray(b,b+T),0),n.read=n.write=T},n.sync_point=function(){return i==yq?1:0}}var Het=32,Get=8,Wet=0,Cpe=1,Epe=2,Spe=3,vpe=4,wpe=5,xq=6,CN=7,Dpe=12,i0=13,jet=[0,0,255,255];function qet(){let e=this;e.mode=0,e.method=0,e.was=[0],e.need=0,e.marker=0,e.wbits=0;function t(n){return!n||!n.istate?-2:(n.total_in=n.total_out=0,n.msg=null,n.istate.mode=CN,n.istate.blocks.reset(n,null),0)}e.inflateEnd=function(n){return e.blocks&&e.blocks.free(n),e.blocks=null,0},e.inflateInit=function(n,i){return n.msg=null,e.blocks=null,i<8||i>15?(e.inflateEnd(n),-2):(e.wbits=i,n.istate.blocks=new zet(n,1<<i),t(n),0)},e.inflate=function(n,i){let o,r;if(!n||!n.istate||!n.next_in)return-2;let s=n.istate;for(i=i==Ret?-5:0,o=-5;;)switch(s.mode){case Wet:if(n.avail_in===0)return o;if(o=i,n.avail_in--,n.total_in++,((s.method=n.read_byte(n.next_in_index++))&15)!=Get){s.mode=i0,n.msg="unknown compression method",s.marker=5;break}if((s.method>>4)+8>s.wbits){s.mode=i0,n.msg="invalid win size",s.marker=5;break}s.mode=Cpe;case Cpe:if(n.avail_in===0)return o;if(o=i,n.avail_in--,n.total_in++,r=n.read_byte(n.next_in_index++)&255,((s.method<<8)+r)%31!==0){s.mode=i0,n.msg="incorrect header check",s.marker=5;break}if(!(r&Het)){s.mode=CN;break}s.mode=Epe;case Epe:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need=(n.read_byte(n.next_in_index++)&255)<<24&4278190080,s.mode=Spe;case Spe:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<16&16711680,s.mode=vpe;case vpe:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<8&65280,s.mode=wpe;case wpe:return n.avail_in===0?o:(o=i,n.avail_in--,n.total_in++,s.need+=n.read_byte(n.next_in_index++)&255,s.mode=xq,2);case xq:return s.mode=i0,n.msg="need dictionary",s.marker=0,-2;case CN:if(o=s.blocks.proc(n,o),o==-3){s.mode=i0,s.marker=0;break}if(o==0&&(o=i),o!=1)return o;o=i,s.blocks.reset(n,s.was),s.mode=Dpe;case Dpe:return n.avail_in=0,1;case i0:return-3;default:return-2}},e.inflateSetDictionary=function(n,i,o){let r=0,s=o;if(!n||!n.istate||n.istate.mode!=xq)return-2;let a=n.istate;return s>=1<<a.wbits&&(s=(1<<a.wbits)-1,r=o-s),a.blocks.set_dictionary(i,r,s),a.mode=CN,0},e.inflateSync=function(n){let i,o,r,s,a;if(!n||!n.istate)return-2;let c=n.istate;if(c.mode!=i0&&(c.mode=i0,c.marker=0),(i=n.avail_in)===0)return-5;for(o=n.next_in_index,r=c.marker;i!==0&&r<4;)n.read_byte(o)==jet[r]?r++:n.read_byte(o)!==0?r=0:r=4-r,o++,i--;return n.total_in+=o-n.next_in_index,n.next_in_index=o,n.avail_in=i,c.marker=r,r!=4?-3:(s=n.total_in,a=n.total_out,t(n),n.total_in=s,n.total_out=a,c.mode=CN,0)},e.inflateSyncPoint=function(n){return!n||!n.istate||!n.istate.blocks?-2:n.istate.blocks.sync_point()}}function Ipe(){}Ipe.prototype={inflateInit(e){let t=this;return t.istate=new qet,e||(e=15),t.istate.inflateInit(t,e)},inflate(e){let t=this;return t.istate?t.istate.inflate(t,e):-2},inflateEnd(){let e=this;if(!e.istate)return-2;let t=e.istate.inflateEnd(e);return e.istate=null,t},inflateSync(){let e=this;return e.istate?e.istate.inflateSync(e):-2},inflateSetDictionary(e,t){let n=this;return n.istate?n.istate.inflateSetDictionary(n,e,t):-2},read_byte(e){return this.next_in[e]},read_buf(e,t){return this.next_in.subarray(e,e+t)}};function Rpe(e){let t=this,n=new Ipe,i=e&&e.chunkSize?Math.floor(e.chunkSize*2):128*1024,o=Iet,r=new Uint8Array(i),s=!1;n.inflateInit(),n.next_out=r,t.append=function(a,c){let u=[],f,d,p=0,g=0,m=0;if(a.length!==0){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,n.avail_in===0&&!s&&(n.next_in_index=0,s=!0),f=n.inflate(o),s&&f===-5){if(n.avail_in!==0)throw new Error("inflating: bad input")}else if(f!==0&&f!==1)throw new Error("inflating: "+n.msg);if((s||f===1)&&n.avail_in===a.length)throw new Error("inflating: bad input");n.next_out_index&&(n.next_out_index===i?u.push(new Uint8Array(r)):u.push(r.subarray(0,n.next_out_index))),m+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=p&&(c(n.next_in_index),p=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return u.length>1?(d=new Uint8Array(m),u.forEach(function(x){d.set(x,g),g+=x.length})):d=u[0]?new Uint8Array(u[0]):new Uint8Array,d}},t.flush=function(){n.inflateEnd()}}var gS="/",Tq=new Date(2107,11,31),Aq=new Date(1980,0,1),Xi=void 0,ku="undefined",W_="function";var EN=class{constructor(t){return class extends null{constructor(n,i){let o=new t(i);super({transform(r,s){s.enqueue(o.append(r))},flush(r){let s=o.flush();s&&r.enqueue(s)}})}}}};var Yet=64,Ope=2;try{typeof navigator!=ku&&navigator.hardwareConcurrency&&(Ope=navigator.hardwareConcurrency)}catch{}var Xet={chunkSize:512*1024,maxWorkers:Ope,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:Xi,CompressionStreamNative:typeof CompressionStream!=ku&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=ku&&DecompressionStream},r0=Object.assign({},Xet);function SN(){return r0}function v4(e){return Math.max(e.chunkSize,Yet)}function yS(e){let{baseURL:t,chunkSize:n,maxWorkers:i,terminateWorkerTimeout:o,useCompressionStream:r,useWebWorkers:s,Deflate:a,Inflate:c,CompressionStream:u,DecompressionStream:f,workerScripts:d}=e;if(o0("baseURL",t),o0("chunkSize",n),o0("maxWorkers",i),o0("terminateWorkerTimeout",o),o0("useCompressionStream",r),o0("useWebWorkers",s),a&&(r0.CompressionStream=new EN(a)),c&&(r0.DecompressionStream=new EN(c)),o0("CompressionStream",u),o0("DecompressionStream",f),d!==Xi){let{deflate:p,inflate:g}=d;if((p||g)&&(r0.workerScripts||(r0.workerScripts={})),p){if(!Array.isArray(p))throw new Error("workerScripts.deflate must be an array");r0.workerScripts.deflate=p}if(g){if(!Array.isArray(g))throw new Error("workerScripts.inflate must be an array");r0.workerScripts.inflate=g}}}function o0(e,t){t!==Xi&&(r0[e]=t)}var Mpe=[];for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t&1?t=t>>>1^3988292384:t=t>>>1;Mpe[e]=t}var j_=class{constructor(t){this.crc=t||-1}append(t){let n=this.crc|0;for(let i=0,o=t.length|0;i<o;i++)n=n>>>8^Mpe[(n^t[i])&255];this.crc=n}get(){return~this.crc}};var vN=class extends null{constructor(){let t,n=new j_;super({transform(i,o){n.append(i),o.enqueue(i)},flush(){let i=new Uint8Array(4);new DataView(i.buffer).setUint32(0,n.get()),t.value=i}}),t=this}};function xS(e){if(typeof TextEncoder==ku){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}else return new TextEncoder().encode(e)}var al={concat(e,t){if(e.length===0||t.length===0)return e.concat(t);let n=e[e.length-1],i=al.getPartial(n);return i===32?e.concat(t):al._shiftRight(t,i,n|0,e.slice(0,e.length-1))},bitLength(e){let t=e.length;if(t===0)return 0;let n=e[t-1];return(t-1)*32+al.getPartial(n)},clamp(e,t){if(e.length*32<t)return e;e=e.slice(0,Math.ceil(t/32));let n=e.length;return t=t&31,n>0&&t&&(e[n-1]=al.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial(e,t,n){return e===32?t:(n?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,n,i){for(i===void 0&&(i=[]);t>=32;t-=32)i.push(n),n=0;if(t===0)return i.concat(e);for(let s=0;s<e.length;s++)i.push(n|e[s]>>>t),n=e[s]<<32-t;let o=e.length?e[e.length-1]:0,r=al.getPartial(o);return i.push(al.partial(t+r&31,t+r>32?n:i.pop(),1)),i}},wN={bytes:{fromBits(e){let n=al.bitLength(e)/8,i=new Uint8Array(n),o;for(let r=0;r<n;r++)r&3||(o=e[r/4]),i[r]=o>>>24,o<<=8;return i},toBits(e){let t=[],n,i=0;for(n=0;n<e.length;n++)i=i<<8|e[n],(n&3)===3&&(t.push(i),i=0);return n&3&&t.push(al.partial(8*(n&3),i)),t}}},Lpe={};Lpe.sha1=class{constructor(e){let t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){let e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){let t=this;typeof e=="string"&&(e=wN.utf8String.toBits(e));let n=t._buffer=al.concat(t._buffer,e),i=t._length,o=t._length=i+al.bitLength(e);if(o>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");let r=new Uint32Array(n),s=0;for(let a=t.blockSize+i-(t.blockSize+i&t.blockSize-1);a<=o;a+=t.blockSize)t._block(r.subarray(16*s,16*(s+1))),s+=1;return n.splice(0,16*s),t}finalize(){let e=this,t=e._buffer,n=e._h;t=al.concat(t,[al.partial(1,1)]);for(let i=t.length+2;i&15;i++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,i){if(e<=19)return t&n|~t&i;if(e<=39)return t^n^i;if(e<=59)return t&n|t&i|n&i;if(e<=79)return t^n^i}_S(e,t){return t<<e|t>>>32-e}_block(e){let t=this,n=t._h,i=Array(80);for(let u=0;u<16;u++)i[u]=e[u];let o=n[0],r=n[1],s=n[2],a=n[3],c=n[4];for(let u=0;u<=79;u++){u>=16&&(i[u]=t._S(1,i[u-3]^i[u-8]^i[u-14]^i[u-16]));let f=t._S(5,o)+t._f(u,r,s,a)+c+i[u]+t._key[Math.floor(u/20)]|0;c=a,a=s,s=t._S(30,r),r=o,o=f}n[0]=n[0]+o|0,n[1]=n[1]+r|0,n[2]=n[2]+s|0,n[3]=n[3]+a|0,n[4]=n[4]+c|0}};var Cq={};Cq.aes=class{constructor(e){let t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();let n=t._tables[0][4],i=t._tables[1],o=e.length,r,s,a,c=1;if(o!==4&&o!==6&&o!==8)throw new Error("invalid aes key size");for(t._key=[s=e.slice(0),a=[]],r=o;r<4*o+28;r++){let u=s[r-1];(r%o===0||o===8&&r%o===4)&&(u=n[u>>>24]<<24^n[u>>16&255]<<16^n[u>>8&255]<<8^n[u&255],r%o===0&&(u=u<<8^u>>>24^c<<24,c=c<<1^(c>>7)*283)),s[r]=s[r-o]^u}for(let u=0;r;u++,r--){let f=s[u&3?r:r-4];r<=4||u<4?a[u]=f:a[u]=i[0][n[f>>>24]]^i[1][n[f>>16&255]]^i[2][n[f>>8&255]]^i[3][n[f&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){let e=this._tables[0],t=this._tables[1],n=e[4],i=t[4],o=[],r=[],s,a,c,u;for(let f=0;f<256;f++)r[(o[f]=f<<1^(f>>7)*283)^f]=f;for(let f=s=0;!n[f];f^=a||1,s=r[s]||1){let d=s^s<<1^s<<2^s<<3^s<<4;d=d>>8^d&255^99,n[f]=d,i[d]=f,u=o[c=o[a=o[f]]];let p=u*16843009^c*65537^a*257^f*16843008,g=o[d]*257^d*16843008;for(let m=0;m<4;m++)e[m][f]=g=g<<24^g>>>8,t[m][d]=p=p<<24^p>>>8}for(let f=0;f<5;f++)e[f]=e[f].slice(0),t[f]=t[f].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");let n=this._key[t],i=n.length/4-2,o=[0,0,0,0],r=this._tables[t],s=r[0],a=r[1],c=r[2],u=r[3],f=r[4],d=e[0]^n[0],p=e[t?3:1]^n[1],g=e[2]^n[2],m=e[t?1:3]^n[3],x=4,b,T,C;for(let A=0;A<i;A++)b=s[d>>>24]^a[p>>16&255]^c[g>>8&255]^u[m&255]^n[x],T=s[p>>>24]^a[g>>16&255]^c[m>>8&255]^u[d&255]^n[x+1],C=s[g>>>24]^a[m>>16&255]^c[d>>8&255]^u[p&255]^n[x+2],m=s[m>>>24]^a[d>>16&255]^c[p>>8&255]^u[g&255]^n[x+3],x+=4,d=b,p=T,g=C;for(let A=0;A<4;A++)o[t?3&-A:A]=f[d>>>24]<<24^f[p>>16&255]<<16^f[g>>8&255]<<8^f[m&255]^n[x++],b=d,d=p,p=g,g=m,m=b;return o}};var Npe={getRandomValues(e){let t=new Uint32Array(e.buffer),n=i=>{let o=987654321,r=4294967295;return function(){return o=36969*(o&65535)+(o>>16)&r,i=18e3*(i&65535)+(i>>16)&r,(((o<<16)+i&r)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let i=0,o;i<e.length;i+=4){let r=n((o||Math.random())*4294967296);o=r()*987654071,t[i/4]=r()*4294967296|0}return e}},Eq={};Eq.ctrGladman=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if((e>>24&255)===255){let t=e>>16&255,n=e>>8&255,i=e&255;t===255?(t=0,n===255?(n=0,i===255?i=0:++i):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=i}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let i;if(!(i=t.length))return[];let o=al.bitLength(t);for(let r=0;r<i;r+=4){this.incCounter(n);let s=e.encrypt(n);t[r]^=s[0],t[r+1]^=s[1],t[r+2]^=s[2],t[r+3]^=s[3]}return al.clamp(t,o)}};var s0={importKey(e){return new s0.hmacSha1(wN.bytes.toBits(e))},pbkdf2(e,t,n,i){if(n=n||1e4,i<0||n<0)throw new Error("invalid params to pbkdf2");let o=(i>>5)+1<<2,r,s,a,c,u,f=new ArrayBuffer(o),d=new DataView(f),p=0,g=al;for(t=wN.bytes.toBits(t),u=1;p<(o||1);u++){for(r=s=e.encrypt(g.concat(t,[u])),a=1;a<n;a++)for(s=e.encrypt(s),c=0;c<s.length;c++)r[c]^=s[c];for(a=0;p<(o||1)&&a<r.length;a++)d.setInt32(p,r[a]),p+=4}return f.slice(0,i/8)}};s0.hmacSha1=class{constructor(e){let t=this,n=t._hash=Lpe.sha1,i=[[],[]];t._baseHash=[new n,new n];let o=t._baseHash[0].blockSize/32;e.length>o&&(e=new n().update(e).finalize());for(let r=0;r<o;r++)i[0][r]=e[r]^909522486,i[1][r]=e[r]^1549556828;t._baseHash[0].update(i[0]),t._baseHash[1].update(i[1]),t._resultHash=new n(t._baseHash[0])}reset(){let e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){let t=this;t._updated=!0,t._resultHash.update(e)}digest(){let e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}};var Ket=typeof crypto!=ku&&typeof crypto.getRandomValues==W_,a0="Invalid password",_T="Invalid signature",q_="zipjs-abort-check-password";function w4(e){return Ket?crypto.getRandomValues(e):Npe.getRandomValues(e)}var bS=16,Zet="raw",kpe={name:"PBKDF2"},$et={name:"HMAC"},Qet="SHA-1",Jet=Object.assign({hash:$et},kpe),Sq=Object.assign({iterations:1e3,hash:{name:Qet}},kpe),ett=["deriveBits"],PN=[8,12,16],DN=[16,24,32],c0=10,ttt=[0,0,0,0],I4=typeof crypto!=ku,ON=I4&&crypto.subtle,Vpe=I4&&typeof ON!=ku,Bm=wN.bytes,ntt=Cq.aes,itt=Eq.ctrGladman,ott=s0.hmacSha1,Fpe=I4&&Vpe&&typeof ON.importKey==W_,Bpe=I4&&Vpe&&typeof ON.deriveBits==W_,D4=class extends null{constructor({password:t,rawPassword:n,signed:i,encryptionStrength:o,checkPasswordOnly:r}){super({start(){Object.assign(this,{ready:new Promise(s=>this.resolveReady=s),password:Hpe(t,n),signed:i,strength:o-1,pending:new Uint8Array})},async transform(s,a){let c=this,{password:u,strength:f,resolveReady:d,ready:p}=c;u?(await rtt(c,f,u,ed(s,0,PN[f]+2)),s=ed(s,PN[f]+2),r?a.error(new Error(q_)):d()):await p;let g=new Uint8Array(s.length-c0-(s.length-c0)%bS);a.enqueue(Upe(c,s,g,0,c0,!0))},async flush(s){let{signed:a,ctr:c,hmac:u,pending:f,ready:d}=this;if(u&&c){await d;let p=ed(f,0,f.length-c0),g=ed(f,f.length-c0),m=new Uint8Array;if(p.length){let x=RN(Bm,p);u.update(x);let b=c.update(x);m=IN(Bm,b)}if(a){let x=ed(IN(Bm,u.digest()),0,c0);for(let b=0;b<c0;b++)if(x[b]!=g[b])throw new Error(_T)}s.enqueue(m)}}})}},P4=class extends null{constructor({password:t,rawPassword:n,encryptionStrength:i}){let o;super({start(){Object.assign(this,{ready:new Promise(r=>this.resolveReady=r),password:Hpe(t,n),strength:i-1,pending:new Uint8Array})},async transform(r,s){let a=this,{password:c,strength:u,resolveReady:f,ready:d}=a,p=new Uint8Array;c?(p=await stt(a,u,c),f()):await d;let g=new Uint8Array(p.length+r.length-r.length%bS);g.set(p,0),s.enqueue(Upe(a,r,g,p.length,0))},async flush(r){let{ctr:s,hmac:a,pending:c,ready:u}=this;if(a&&s){await u;let f=new Uint8Array;if(c.length){let d=s.update(RN(Bm,c));a.update(d),f=IN(Bm,d)}o.signature=IN(Bm,a.digest()).slice(0,c0),r.enqueue(vq(f,o.signature))}}}),o=this}};function Upe(e,t,n,i,o,r){let{ctr:s,hmac:a,pending:c}=e,u=t.length-o;c.length&&(t=vq(c,t),n=ltt(n,u-u%bS));let f;for(f=0;f<=u-bS;f+=bS){let d=RN(Bm,ed(t,f,f+bS));r&&a.update(d);let p=s.update(d);r||a.update(p),n.set(IN(Bm,p),f+i)}return e.pending=ed(t,f),n}async function rtt(e,t,n,i){let o=await zpe(e,t,n,ed(i,0,PN[t])),r=ed(i,PN[t]);if(o[0]!=r[0]||o[1]!=r[1])throw new Error(a0)}async function stt(e,t,n){let i=w4(new Uint8Array(PN[t])),o=await zpe(e,t,n,i);return vq(i,o)}async function zpe(e,t,n,i){e.password=null;let o=await att(Zet,n,Jet,!1,ett),r=await ctt(Object.assign({salt:i},Sq),o,8*(DN[t]*2+2)),s=new Uint8Array(r),a=RN(Bm,ed(s,0,DN[t])),c=RN(Bm,ed(s,DN[t],DN[t]*2)),u=ed(s,DN[t]*2);return Object.assign(e,{keys:{key:a,authentication:c,passwordVerification:u},ctr:new itt(new ntt(a),Array.from(ttt)),hmac:new ott(c)}),u}async function att(e,t,n,i,o){if(Fpe)try{return await ON.importKey(e,t,n,i,o)}catch{return Fpe=!1,s0.importKey(t)}else return s0.importKey(t)}async function ctt(e,t,n){if(Bpe)try{return await ON.deriveBits(e,t,n)}catch{return Bpe=!1,s0.pbkdf2(t,e.salt,Sq.iterations,n)}else return s0.pbkdf2(t,e.salt,Sq.iterations,n)}function Hpe(e,t){return t===Xi?xS(e):t}function vq(e,t){let n=e;return e.length+t.length&&(n=new Uint8Array(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function ltt(e,t){if(t&&t>e.length){let n=e;e=new Uint8Array(t),e.set(n,0)}return e}function ed(e,t,n){return e.subarray(t,n)}function IN(e,t){return e.fromBits(t)}function RN(e,t){return e.toBits(t)}var TS=12,R4=class extends null{constructor({password:t,passwordVerification:n,checkPasswordOnly:i}){super({start(){Object.assign(this,{password:t,passwordVerification:n}),qpe(this,t)},transform(o,r){let s=this;if(s.password){let a=Gpe(s,o.subarray(0,TS));if(s.password=null,a[TS-1]!=s.passwordVerification)throw new Error(a0);o=o.subarray(TS)}i?r.error(new Error(q_)):r.enqueue(Gpe(s,o))}})}},O4=class extends null{constructor({password:t,passwordVerification:n}){super({start(){Object.assign(this,{password:t,passwordVerification:n}),qpe(this,t)},transform(i,o){let r=this,s,a;if(r.password){r.password=null;let c=w4(new Uint8Array(TS));c[TS-1]=r.passwordVerification,s=new Uint8Array(i.length+c.length),s.set(Wpe(r,c),0),a=TS}else s=new Uint8Array(i.length),a=0;s.set(Wpe(r,i),a),o.enqueue(s)}})}};function Gpe(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=Ype(e)^t[i],wq(e,n[i]);return n}function Wpe(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=Ype(e)^t[i],wq(e,t[i]);return n}function qpe(e,t){let n=[305419896,591751049,878082192];Object.assign(e,{keys:n,crcKey0:new j_(n[0]),crcKey2:new j_(n[2])});for(let i=0;i<t.length;i++)wq(e,t.charCodeAt(i))}function wq(e,t){let[n,i,o]=e.keys;e.crcKey0.append([t]),n=~e.crcKey0.get(),i=jpe(Math.imul(jpe(i+Xpe(n)),134775813)+1),e.crcKey2.append([i>>>24]),o=~e.crcKey2.get(),e.keys=[n,i,o]}function Ype(e){let t=e.keys[2]|2;return Xpe(Math.imul(t,t^1)>>>8)}function Xpe(e){return e&255}function jpe(e){return e&4294967295}var Kpe="deflate-raw",M4=class extends null{constructor(t,{chunkSize:n,CompressionStream:i,CompressionStreamNative:o}){super({});let{compressed:r,encrypted:s,useCompressionStream:a,zipCrypto:c,signed:u,level:f}=t,d=this,p,g,m=Zpe(super.readable);(!s||c)&&u&&(p=new vN,m=km(m,p)),r&&(m=Qpe(m,a,{level:f,chunkSize:n},o,i)),s&&(c?m=km(m,new O4(t)):(g=new P4(t),m=km(m,g))),$pe(d,m,()=>{let x;s&&!c&&(x=g.signature),(!s||c)&&u&&(x=new DataView(p.value.buffer).getUint32(0)),d.signature=x})}},L4=class extends null{constructor(t,{chunkSize:n,DecompressionStream:i,DecompressionStreamNative:o}){super({});let{zipCrypto:r,encrypted:s,signed:a,signature:c,compressed:u,useCompressionStream:f}=t,d,p,g=Zpe(super.readable);s&&(r?g=km(g,new R4(t)):(p=new D4(t),g=km(g,p))),u&&(g=Qpe(g,f,{chunkSize:n},o,i)),(!s||r)&&a&&(d=new vN,g=km(g,d)),$pe(this,g,()=>{if((!s||r)&&a){let m=new DataView(d.value.buffer);if(c!=m.getUint32(0,!1))throw new Error(_T)}})}};function Zpe(e){return km(e,new null({transform(t,n){t&&t.length&&n.enqueue(t)}}))}function $pe(e,t,n){t=km(t,new null({flush:n})),Object.defineProperty(e,"readable",{get(){return t}})}function Qpe(e,t,n,i,o){try{let r=t&&i?i:o;e=km(e,new r(Kpe,n))}catch{if(t)try{e=km(e,new o(Kpe,n))}catch{return e}else return e}return e}function km(e,t){return e.pipeThrough(t)}var Jpe="message",e_e="start",t_e="pull",Dq="data",n_e="ack",Pq="close",B4="deflate",k4="inflate";var N4=class extends null{constructor(t,n){super({});let i=this,{codecType:o}=t,r;o.startsWith(B4)?r=M4:o.startsWith(k4)&&(r=L4);let s=0,a=0,c=new r(t,n),u=super.readable,f=new null({transform(p,g){p&&p.length&&(a+=p.length,g.enqueue(p))},flush(){Object.assign(i,{inputSize:a})}}),d=new null({transform(p,g){p&&p.length&&(s+=p.length,g.enqueue(p))},flush(){let{signature:p}=c;Object.assign(i,{signature:p,outputSize:s,inputSize:a})}});Object.defineProperty(i,"readable",{get(){return u.pipeThrough(f).pipeThrough(c).pipeThrough(d)}})}},F4=class extends null{constructor(t){let n;super({transform:i,flush(o){n&&n.length&&o.enqueue(n)}});function i(o,r){if(n){let s=new Uint8Array(n.length+o.length);s.set(n),s.set(o,n.length),o=s,n=null}o.length>t?(r.enqueue(o.slice(0,t)),i(o.slice(t),r)):n=o}}};var r_e=typeof Worker!=ku;var AS=class{constructor(t,{readable:n,writable:i},{options:o,config:r,streamOptions:s,useWebWorkers:a,transferStreams:c,scripts:u},f){let{signal:d}=s;return Object.assign(t,{busy:!0,readable:n.pipeThrough(new F4(r.chunkSize)).pipeThrough(new Rq(n,s),{signal:d}),writable:i,options:Object.assign({},o),scripts:u,transferStreams:c,terminate(){return new Promise(p=>{let{worker:g,busy:m}=t;g?(m?t.resolveTerminated=p:(g.terminate(),p()),t.interface=null):p()})},onTaskFinished(){let{resolveTerminated:p}=t;p&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),p()),t.busy=!1,f(t)}}),(a&&r_e?utt:s_e)(t,r)}},Rq=class extends null{constructor(t,{onstart:n,onprogress:i,size:o,onend:r}){let s=0;super({async start(){n&&await Iq(n,o)},async transform(a,c){s+=a.length,i&&await Iq(i,s,o),c.enqueue(a)},async flush(){t.size=s,r&&await Iq(r,s)}})}};async function Iq(e,...t){try{await e(...t)}catch{}}function s_e(e,t){return{run:()=>ftt(e,t)}}function utt(e,t){let{baseURL:n,chunkSize:i}=t;if(!e.interface){let o;try{o=mtt(e.scripts[0],n,e)}catch{return r_e=!1,s_e(e,t)}Object.assign(e,{worker:o,interface:{run:()=>dtt(e,{chunkSize:i})}})}return e.interface}async function ftt({options:e,readable:t,writable:n,onTaskFinished:i},o){try{let r=new N4(e,o);await t.pipeThrough(r).pipeTo(n,{preventClose:!0,preventAbort:!0});let{signature:s,inputSize:a,outputSize:c}=r;return{signature:s,inputSize:a,outputSize:c}}finally{i()}}async function dtt(e,t){let n,i,o=new Promise((p,g)=>{n=p,i=g});Object.assign(e,{reader:null,writer:null,resolveResult:n,rejectResult:i,result:o});let{readable:r,options:s,scripts:a}=e,{writable:c,closed:u}=htt(e.writable),f=V4({type:e_e,scripts:a.slice(1),options:s,config:t,readable:r,writable:c},e);f||Object.assign(e,{reader:r.getReader(),writer:c.getWriter()});let d=await o;return f||await c.getWriter().close(),await u,d}function htt(e){let t,n=new Promise(o=>t=o);return{writable:new WritableStream({async write(o){let r=e.getWriter();await r.ready,await r.write(o),r.releaseLock()},close(){t()},abort(o){return e.getWriter().abort(o)}}),closed:n}}var i_e=!0,o_e=!0;function mtt(e,t,n){let i={type:"module"},o,r;typeof e==W_&&(e=e());try{o=new URL(e,t)}catch{o=e}if(i_e)try{r=new Worker(o)}catch{i_e=!1,r=new Worker(o,i)}else r=new Worker(o,i);return r.addEventListener(Jpe,s=>ptt(s,n)),r}function V4(e,{worker:t,writer:n,onTaskFinished:i,transferStreams:o}){try{let{value:r,readable:s,writable:a}=e,c=[];if(r&&(r.byteLength<r.buffer.byteLength?e.value=r.buffer.slice(0,r.byteLength):e.value=r.buffer,c.push(e.value)),o&&o_e?(s&&c.push(s),a&&c.push(a)):e.readable=e.writable=null,c.length)try{return t.postMessage(e,c),!0}catch{o_e=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(r){throw n&&n.releaseLock(),i(),r}}async function ptt({data:e},t){let{type:n,value:i,messageId:o,result:r,error:s}=e,{reader:a,writer:c,resolveResult:u,rejectResult:f,onTaskFinished:d}=t;try{if(s){let{message:g,stack:m,code:x,name:b}=s,T=new Error(g);Object.assign(T,{stack:m,code:x,name:b}),p(T)}else{if(n==t_e){let{value:g,done:m}=await a.read();V4({type:Dq,value:g,done:m,messageId:o},t)}n==Dq&&(await c.ready,await c.write(new Uint8Array(i)),V4({type:n_e,messageId:o},t)),n==Pq&&p(null,r)}}catch(g){V4({type:Pq,messageId:o},t),p(g)}function p(g,m){g?f(g):u(m),c&&c.releaseLock(),d()}}var gT=[],Oq=[];var a_e=0;async function U4(e,t){let{options:n,config:i}=t,{transferStreams:o,useWebWorkers:r,useCompressionStream:s,codecType:a,compressed:c,signed:u,encrypted:f}=n,{workerScripts:d,maxWorkers:p}=i;t.transferStreams=o||o===Xi;let g=!c&&!u&&!f&&!t.transferStreams;return t.useWebWorkers=!g&&(r||r===Xi&&i.useWebWorkers),t.scripts=t.useWebWorkers&&d?d[a]:[],n.useCompressionStream=s||s===Xi&&i.useCompressionStream,(await m()).run();async function m(){let b=gT.find(T=>!T.busy);if(b)return c_e(b),new AS(b,e,t,x);if(gT.length<p){let T={indexWorker:a_e};return a_e++,gT.push(T),new AS(T,e,t,x)}else return new Promise(T=>Oq.push({resolve:T,stream:e,workerOptions:t}))}function x(b){if(Oq.length){let[{resolve:T,stream:C,workerOptions:A}]=Oq.splice(0,1);T(new AS(b,C,A,x))}else b.worker?(c_e(b),_tt(b,t)):gT=gT.filter(T=>T!=b)}}function _tt(e,t){let{config:n}=t,{terminateWorkerTimeout:i}=n;Number.isFinite(i)&&i>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{gT=gT.filter(o=>o!=e);try{await e.terminate()}catch{}},i))}function c_e(e){let{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}var gtt="Writer iterator completed too soon",ytt="text/plain";var xtt="Content-Type";var btt=64*1024,Nq="writable",CS=class{constructor(){this.size=0}init(){this.initialized=!0}},z4=class extends CS{get readable(){let t=this,{chunkSize:n=btt}=t,i=new ReadableStream({start(){this.chunkOffset=0},async pull(o){let{offset:r=0,size:s,diskNumberStart:a}=i,{chunkOffset:c}=this;o.enqueue(await Ma(t,r+c,Math.min(n,s-c),a)),c+n>s?o.close():this.chunkOffset+=n}});return i}},Mq=class extends CS{constructor(){super();let t=this,n=new WritableStream({write(i){return t.writeUint8Array(i)}});Object.defineProperty(t,Nq,{get(){return n}})}writeUint8Array(){}};var H4=class extends Mq{constructor(t){super(),Object.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){let n=this,i=0,o=n.pending,r=n.pending.length;for(n.pending="",i=0;i<Math.floor((r+t.length)/3)*3-r;i++)o+=String.fromCharCode(t[i]);for(;i<t.length;i++)n.pending+=String.fromCharCode(t[i]);o.length>2?n.data+=btoa(o):n.pending=o}getData(){return this.data+btoa(this.pending)}},Y_=class extends z4{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,n){let i=this,o=t+n,s=await(t||o<i.size?i.blob.slice(t,o):i.blob).arrayBuffer();return s.byteLength>n&&(s=s.slice(t,o)),new Uint8Array(s)}},MN=class extends CS{constructor(t){super();let n=this,i=new null,o=[];t&&o.push([xtt,t]),Object.defineProperty(n,Nq,{get(){return i.writable}}),n.blob=new Response(i.readable,{headers:o}).blob()}getData(){return this.blob}},G4=class extends Y_{constructor(t){super(new Blob([t],{type:ytt}))}},W4=class extends MN{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){let{encoding:t,utf8:n}=this,i=await super.getData();if(i.text&&n)return i.text();{let o=new FileReader;return new Promise((r,s)=>{Object.assign(o,{onload:({target:a})=>r(a.result),onerror:()=>s(o.error)}),o.readAsText(i,t)})}}};var Lq=class extends z4{constructor(t){super(),this.readers=t}async init(){let t=this,{readers:n}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(n.map(async(i,o)=>{await i.init(),o!=n.length-1&&(t.lastDiskOffset+=i.size),t.size+=i.size})),super.init()}async readUint8Array(t,n,i=0){let o=this,{readers:r}=this,s,a=i;a==-1&&(a=r.length-1);let c=t;for(;c>=r[a].size;)c-=r[a].size,a++;let u=r[a],f=u.size;if(c+n<=f)s=await Ma(u,c,n);else{let d=f-c;s=new Uint8Array(n),s.set(await Ma(u,c,d)),s.set(await o.readUint8Array(t+d,n-d,i),d)}return o.lastDiskNumber=Math.max(a,o.lastDiskNumber),s}},j4=class extends CS{constructor(t,n=4294967295){super();let i=this;Object.assign(i,{diskNumber:0,diskOffset:0,size:0,maxSize:n,availableSize:n});let o,r,s,a=new WritableStream({async write(f){let{availableSize:d}=i;if(s)f.length>=d?(await c(f.slice(0,d)),await u(),i.diskOffset+=o.size,i.diskNumber++,s=null,await this.write(f.slice(d))):await c(f);else{let{value:p,done:g}=await t.next();if(g&&!p)throw new Error(gtt);o=p,o.size=0,o.maxSize&&(i.maxSize=o.maxSize),i.availableSize=i.maxSize,await Um(o),r=p.writable,s=r.getWriter(),await this.write(f)}},async close(){await s.ready,await u()}});Object.defineProperty(i,Nq,{get(){return a}});async function c(f){let d=f.length;d&&(await s.ready,await s.write(f),o.size+=d,i.size+=d,i.availableSize-=d)}async function u(){r.size=o.size,await s.close()}}};async function Um(e,t){if(e.init&&!e.initialized)await e.init(t);else return Promise.resolve()}function q4(e){return Array.isArray(e)&&(e=new Lq(e)),e instanceof ReadableStream&&(e={readable:e}),e}function Y4(e){e.writable===Xi&&typeof e.next==W_&&(e=new j4(e)),e instanceof WritableStream&&(e={writable:e});let{writable:t}=e;return t.size===Xi&&(t.size=0),e instanceof j4||Object.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}function Ma(e,t,n,i){return e.readUint8Array(t,n,i)}var l_e="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),Ttt=l_e.length==256;function u_e(e){if(Ttt){let t="";for(let n=0;n<e.length;n++)t+=l_e[e[n]];return t}else return new TextDecoder().decode(e)}function LN(e,t){return t&&t.trim().toLowerCase()=="cp437"?u_e(e):new TextDecoder(t).decode(e)}var Fq="filename",Bq="rawFilename",kq="comment",Vq="rawComment",Uq="uncompressedSize",zq="compressedSize",Hq="offset",X4="diskNumberStart",ES="lastModDate",K4="rawLastModDate",NN="lastAccessDate",f_e="rawLastAccessDate",FN="creationDate",d_e="rawCreationDate",Gq="internalFileAttribute",Wq="externalFileAttribute",jq="msDosCompatible",qq="zip64",Att=[Fq,Bq,zq,Uq,ES,K4,kq,Vq,NN,FN,Hq,X4,X4,Gq,Wq,jq,qq,"directory","bitFlag","encrypted","signature","filenameUTF8","commentUTF8","compressionMethod","version","versionMadeBy","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"],l0=class{constructor(t){Att.forEach(n=>this[n]=t[n])}};var Yq="File format is not recognized",vtt="End of central directory not found",wtt="End of Zip64 central directory locator not found",Dtt="Central directory header not found",Ptt="Local file header not found",Itt="Zip64 extra field not found",Rtt="File contains encrypted entry",Ott="Encryption method not supported",h_e="Compression method not supported",m_e="Split zip file",p_e="utf-8",__e="cp437",Mtt=[[Uq,4294967295],[zq,4294967295],[Hq,4294967295],[X4,65535]],Ltt={[65535]:{getValue:fs,bytes:4},[4294967295]:{getValue:Z4,bytes:8}},i8=class{constructor(t,n={}){Object.assign(this,{reader:q4(t),options:n,config:SN()})}async*getEntriesGenerator(t={}){let n=this,{reader:i}=n,{config:o}=n;if(await Um(i),(i.size===Xi||!i.readUint8Array)&&(i=new Y_(await new Response(i.readable).blob()),await Um(i)),i.size<22)throw new Error(Yq);i.chunkSize=v4(o);let r=await Vtt(i,101010256,i.size,22,65535*16);if(!r){let N=await Ma(i,0,4),_=ua(N);throw fs(_)==134695760?new Error(m_e):new Error(vtt)}let s=ua(r),a=fs(s,12),c=fs(s,16),u=r.offset,f=la(s,20),d=u+22+f,p=la(s,4),g=i.lastDiskNumber||0,m=la(s,6),x=la(s,8),b=0,T=0;if(c==4294967295||a==4294967295||x==65535||m==65535){let N=await Ma(i,r.offset-20,20),_=ua(N);if(fs(_,0)==117853008){c=Z4(_,8);let S=await Ma(i,c,56,-1),w=ua(S),P=r.offset-20-56;if(fs(w,0)!=101075792&&c!=P){let M=c;c=P,b=c-M,S=await Ma(i,c,56,-1),w=ua(S)}if(fs(w,0)!=101075792)throw new Error(wtt);p==65535&&(p=fs(w,16)),m==65535&&(m=fs(w,20)),x==65535&&(x=Z4(w,32)),a==4294967295&&(a=Z4(w,40)),c-=a}}if(c>=i.size&&(b=i.size-c-a-22,c=i.size-a-22),g!=p)throw new Error(m_e);if(c<0)throw new Error(Yq);let C=0,A=await Ma(i,c,a,m),E=ua(A);if(a){let N=r.offset-a;if(fs(E,C)!=33639248&&c!=N){let _=c;c=N,b+=c-_,A=await Ma(i,c,a,m),E=ua(A)}}let v=r.offset-c-(i.lastDiskOffset||0);if(a!=v&&v>=0&&(a=v,A=await Ma(i,c,a,m),E=ua(A)),c<0||c>=i.size)throw new Error(Yq);let D=Kl(n,t,"filenameEncoding"),O=Kl(n,t,"commentEncoding");for(let N=0;N<x;N++){let _=new Kq(i,o,n.options);if(fs(E,C)!=33639248)throw new Error(Dtt);y_e(_,E,C+6);let S=!!_.bitFlag.languageEncodingFlag,w=C+46,P=w+_.filenameLength,M=P+_.extraFieldLength,B=la(E,C+4),U=(B&0)==0,V=A.subarray(w,P),G=la(E,C+32),k=M+G,Y=A.subarray(M,k),W=S,Q=S,j=U&&(SS(E,C+38)&16)==16,K=fs(E,C+42)+b;Object.assign(_,{versionMadeBy:B,msDosCompatible:U,compressedSize:0,uncompressedSize:0,commentLength:G,directory:j,offset:K,diskNumberStart:la(E,C+34),internalFileAttribute:la(E,C+36),externalFileAttribute:fs(E,C+38),rawFilename:V,filenameUTF8:W,commentUTF8:Q,rawExtraField:A.subarray(P,M)});let Z=Kl(n,t,"decodeText")||LN,he=W?p_e:D||__e,be=Q?p_e:O||__e,re=Z(V,he);re===Xi&&(re=LN(V,he));let _e=Z(Y,be);_e===Xi&&(_e=LN(Y,be)),Object.assign(_,{rawComment:Y,filename:re,comment:_e,directory:j||re.endsWith(gS)}),T=Math.max(K,T),await x_e(_,_,E,C+6);let xe=new l0(_);xe.getData=(we,Oe)=>_.getData(we,xe,Oe),C=k;let{onprogress:Ce}=t;if(Ce)try{await Ce(N+1,x,new l0(_))}catch{}yield xe}let I=Kl(n,t,"extractPrependedData"),L=Kl(n,t,"extractAppendedData");return I&&(n.prependedData=T>0?await Ma(i,0,T):new Uint8Array),n.comment=f?await Ma(i,u+22,f):new Uint8Array,L&&(n.appendedData=d<i.size?await Ma(i,d,i.size-d):new Uint8Array),!0}async getEntries(t={}){let n=[];for await(let i of this.getEntriesGenerator(t))n.push(i);return n}async close(){}};var Kq=class{constructor(t,n,i){Object.assign(this,{reader:t,config:n,options:i})}async getData(t,n,i={}){let o=this,{reader:r,offset:s,diskNumberStart:a,extraFieldAES:c,compressionMethod:u,config:f,bitFlag:d,signature:p,rawLastModDate:g,uncompressedSize:m,compressedSize:x}=o,b=n.localDirectory={},T=await Ma(r,s,30,a),C=ua(T),A=Kl(o,i,"password"),E=Kl(o,i,"rawPassword");if(A=A&&A.length&&A,E=E&&E.length&&E,c&&c.originalCompressionMethod!=99)throw new Error(h_e);if(u!=0&&u!=8)throw new Error(h_e);if(fs(C,0)!=67324752)throw new Error(Ptt);y_e(b,C,4),b.rawExtraField=b.extraFieldLength?await Ma(r,s+30+b.filenameLength,b.extraFieldLength,a):new Uint8Array,await x_e(o,b,C,4,!0),Object.assign(n,{lastAccessDate:b.lastAccessDate,creationDate:b.creationDate});let v=o.encrypted&&b.encrypted,D=v&&!c;if(v){if(!D&&c.strength===Xi)throw new Error(Ott);if(!A&&!E)throw new Error(Rtt)}let O=s+30+b.filenameLength+b.extraFieldLength,I=x,L=r.readable;Object.assign(L,{diskNumberStart:a,offset:O,size:I});let N=Kl(o,i,"signal"),_=Kl(o,i,"checkPasswordOnly");_&&(t=new WritableStream),t=Y4(t),await Um(t,m);let{writable:S}=t,{onstart:w,onprogress:P,onend:M}=i,B={options:{codecType:k4,password:A,rawPassword:E,zipCrypto:D,encryptionStrength:c&&c.strength,signed:Kl(o,i,"checkSignature"),passwordVerification:D&&(d.dataDescriptor?g>>>8&255:p>>>24&255),signature:p,compressed:u!=0,encrypted:v,useWebWorkers:Kl(o,i,"useWebWorkers"),useCompressionStream:Kl(o,i,"useCompressionStream"),transferStreams:Kl(o,i,"transferStreams"),checkPasswordOnly:_},config:f,streamOptions:{signal:N,size:I,onstart:w,onprogress:P,onend:M}},U=0;try{({outputSize:U}=await U4({readable:L,writable:S},B))}catch(V){if(!_||V.message!=q_)throw V}finally{let V=Kl(o,i,"preventClose");S.size+=U,!V&&!S.locked&&await S.getWriter().close()}return _?Xi:t.getData?t.getData():S}};function y_e(e,t,n){let i=e.rawBitFlag=la(t,n+2),o=(i&1)==1,r=fs(t,n+6);Object.assign(e,{encrypted:o,version:la(t,n),bitFlag:{level:(i&6)>>1,dataDescriptor:(i&8)==8,languageEncodingFlag:(i&2048)==2048},rawLastModDate:r,lastModDate:Utt(r),filenameLength:la(t,n+22),extraFieldLength:la(t,n+24)})}async function x_e(e,t,n,i,o){let{rawExtraField:r}=t,s=t.extraField=new Map,a=ua(new Uint8Array(r)),c=0;try{for(;c<r.length;){let T=la(a,c),C=la(a,c+2);s.set(T,{type:T,data:r.slice(c+4,c+4+C)}),c+=4+C}}catch{}let u=la(n,i+4);Object.assign(t,{signature:fs(n,i+10),uncompressedSize:fs(n,i+18),compressedSize:fs(n,i+14)});let f=s.get(1);f&&(Ntt(f,t),t.extraFieldZip64=f);let d=s.get(28789);d&&(await g_e(d,Fq,Bq,t,e),t.extraFieldUnicodePath=d);let p=s.get(25461);p&&(await g_e(p,kq,Vq,t,e),t.extraFieldUnicodeComment=p);let g=s.get(39169);g?(Ftt(g,t,u),t.extraFieldAES=g):t.compressionMethod=u;let m=s.get(10);m&&(Btt(m,t),t.extraFieldNTFS=m);let x=s.get(21589);x&&(ktt(x,t,o),t.extraFieldExtendedTimestamp=x);let b=s.get(6534);b&&(t.extraFieldUSDZ=b)}function Ntt(e,t){t.zip64=!0;let n=ua(e.data),i=Mtt.filter(([o,r])=>t[o]==r);for(let o=0,r=0;o<i.length;o++){let[s,a]=i[o];if(t[s]==a){let c=Ltt[a];t[s]=e[s]=c.getValue(n,r),r+=c.bytes}else if(e[s])throw new Error(Itt)}}async function g_e(e,t,n,i,o){let r=ua(e.data),s=new j_;s.append(o[n]);let a=ua(new Uint8Array(4));a.setUint32(0,s.get(),!0);let c=fs(r,1);Object.assign(e,{version:SS(r,0),[t]:LN(e.data.subarray(5)),valid:!o.bitFlag.languageEncodingFlag&&c==fs(a,0)}),e.valid&&(i[t]=e[t],i[t+"UTF8"]=!0)}function Ftt(e,t,n){let i=ua(e.data),o=SS(i,4);Object.assign(e,{vendorVersion:SS(i,0),vendorId:SS(i,2),strength:o,originalCompressionMethod:n,compressionMethod:la(i,5)}),t.compressionMethod=e.compressionMethod}function Btt(e,t){let n=ua(e.data),i=4,o;try{for(;i<e.data.length&&!o;){let r=la(n,i),s=la(n,i+2);r==1&&(o=e.data.slice(i+4,i+4+s)),i+=4+s}}catch{}try{if(o&&o.length==24){let r=ua(o),s=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),c=r.getBigUint64(16,!0);Object.assign(e,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:c});let u=Xq(s),f=Xq(a),d=Xq(c),p={lastModDate:u,lastAccessDate:f,creationDate:d};Object.assign(e,p),Object.assign(t,p)}}catch{}}function ktt(e,t,n){let i=ua(e.data),o=SS(i,0),r=[],s=[];n?((o&1)==1&&(r.push(ES),s.push(K4)),(o&2)==2&&(r.push(NN),s.push(f_e)),(o&4)==4&&(r.push(FN),s.push(d_e))):e.data.length>=5&&(r.push(ES),s.push(K4));let a=1;r.forEach((c,u)=>{if(e.data.length>=a+4){let f=fs(i,a);t[c]=e[c]=new Date(f*1e3);let d=s[u];e[d]=f}a+=4})}async function Vtt(e,t,n,i,o){let r=new Uint8Array(4),s=ua(r);ztt(s,0,t);let a=i+o;return await c(i)||await c(Math.min(a,n));async function c(u){let f=n-u,d=await Ma(e,f,u);for(let p=d.length-i;p>=0;p--)if(d[p]==r[0]&&d[p+1]==r[1]&&d[p+2]==r[2]&&d[p+3]==r[3])return{offset:f+p,buffer:d.slice(p,p+i).buffer}}}function Kl(e,t,n){return t[n]===Xi?e.options[n]:t[n]}function Utt(e){let t=(e&4294901760)>>16,n=e&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(n&63488)>>11,(n&2016)>>5,(n&31)*2,0)}catch{}}function Xq(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function SS(e,t){return e.getUint8(t)}function la(e,t){return e.getUint16(t,!0)}function fs(e,t){return e.getUint32(t,!0)}function Z4(e,t){return Number(e.getBigUint64(t,!0))}function ztt(e,t,n){e.setUint32(t,n,!0)}function ua(e){return new DataView(e.buffer)}var jtt="File already exists",qtt="Zip file comment exceeds 64KB",Ytt="File entry comment exceeds 64KB",Xtt="File entry name exceeds 64KB",A_e="Version exceeds 65535",Ktt="The strength must equal 1, 2, or 3",Ztt="Extra field type exceeds 65535",$tt="Extra field data exceeds 64KB",lY="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",C_e=new Uint8Array([7,0,2,0,65,69,3,0,0]),aY=0,E_e=[],s8=class{constructor(t,n={}){t=Y4(t);let i=t.availableSize!==Xi&&t.availableSize>0&&t.availableSize!==1/0&&t.maxSize!==Xi&&t.maxSize>0&&t.maxSize!==1/0;Object.assign(this,{writer:t,addSplitZipSignature:i,options:n,config:SN(),files:new Map,filenames:new Set,offset:t.writable.size,pendingEntriesSize:0,pendingAddFileCalls:new Set,bufferedWrites:0})}async add(t="",n,i={}){let o=this,{pendingAddFileCalls:r,config:s}=o;aY<s.maxWorkers?aY++:await new Promise(c=>E_e.push(c));let a;try{if(t=t.trim(),o.filenames.has(t))throw new Error(jtt);return o.filenames.add(t),a=Qtt(o,t,n,i),r.add(a),await a}catch(c){throw o.filenames.delete(t),c}finally{r.delete(a);let c=E_e.shift();c?c():aY--}}async close(t=new Uint8Array,n={}){let i=this,{pendingAddFileCalls:o,writer:r}=this,{writable:s}=r;for(;o.size;)await Promise.allSettled(Array.from(o));return await ant(this,t,n),Go(i,n,"preventClose")||await s.getWriter().close(),r.getData?r.getData():s}};async function Qtt(e,t,n,i){t=t.trim(),i.directory&&!t.endsWith(gS)?t+=gS:i.directory=t.endsWith(gS);let o=Go(e,i,"encodeText",xS),r=o(t);if(r===Xi&&(r=xS(t)),Wi(r)>65535)throw new Error(Xtt);let s=i.comment||"",a=o(s);if(a===Xi&&(a=xS(s)),Wi(a)>65535)throw new Error(Ytt);let c=Go(e,i,"version",20);if(c>65535)throw new Error(A_e);let u=Go(e,i,"versionMadeBy",20);if(u>65535)throw new Error(A_e);let f=Go(e,i,ES,new Date),d=Go(e,i,NN),p=Go(e,i,FN),g=Go(e,i,jq,!0),m=Go(e,i,Gq,0),x=Go(e,i,Wq,0),b=Go(e,i,"password"),T=Go(e,i,"rawPassword"),C=Go(e,i,"encryptionStrength",3),A=Go(e,i,"zipCrypto"),E=Go(e,i,"extendedTimestamp",!0),v=Go(e,i,"keepOrder",!0),D=Go(e,i,"level"),O=Go(e,i,"useWebWorkers"),I=Go(e,i,"bufferedWrite"),L=Go(e,i,"dataDescriptorSignature",!1),N=Go(e,i,"signal"),_=Go(e,i,"useCompressionStream"),S=Go(e,i,"dataDescriptor",!0),w=Go(e,i,qq);if(b!==Xi&&C!==Xi&&(C<1||C>3))throw new Error(Ktt);let P=new Uint8Array,{extraField:M}=i;if(M){let Ce=0,we=0;M.forEach(Oe=>Ce+=4+Wi(Oe)),P=new Uint8Array(Ce),M.forEach((Oe,ke)=>{if(ke>65535)throw new Error(Ztt);if(Wi(Oe)>65535)throw new Error($tt);Cs(P,new Uint16Array([ke]),we),Cs(P,new Uint16Array([Wi(Oe)]),we+2),Cs(P,Oe,we+4),we+=4+Wi(Oe)})}let B=0,U=0,V=0,G=w===!0;n&&(n=q4(n),await Um(n),n.size===Xi?(S=!0,(w||w===Xi)&&(w=!0,V=B=4294967296)):(V=n.size,B=cnt(V)));let{diskOffset:k,diskNumber:Y,maxSize:W}=e.writer,Q=G||V>4294967295,j=G||B>4294967295,K=G||e.offset+e.pendingEntriesSize-k>4294967295,he=Go(e,i,"supportZip64SplitFile",!0)&&G||Y+Math.ceil(e.pendingEntriesSize/W)>65535;if(K||Q||j||he){if(w===!1||!v)throw new Error(lY);w=!0}w=w||!1,i=Object.assign({},i,{rawFilename:r,rawComment:a,version:c,versionMadeBy:u,lastModDate:f,lastAccessDate:d,creationDate:p,rawExtraField:P,zip64:w,zip64UncompressedSize:Q,zip64CompressedSize:j,zip64Offset:K,zip64DiskNumberStart:he,password:b,rawPassword:T,level:!_&&e.config.CompressionStream===Xi&&e.config.CompressionStreamNative===Xi?0:D,useWebWorkers:O,encryptionStrength:C,extendedTimestamp:E,zipCrypto:A,bufferedWrite:I,keepOrder:v,dataDescriptor:S,dataDescriptorSignature:L,signal:N,msDosCompatible:g,internalFileAttribute:m,externalFileAttribute:x,useCompressionStream:_});let be=tnt(i),re=int(i),_e=Wi(be.localHeaderArray,re.dataDescriptorArray);U=_e+B,e.options.usdz&&(U+=U+64),e.pendingEntriesSize+=U;let xe;try{xe=await Jtt(e,t,n,{headerInfo:be,dataDescriptorInfo:re,metadataSize:_e},i)}finally{e.pendingEntriesSize-=U}return Object.assign(xe,{name:t,comment:s,extraField:M}),new l0(xe)}async function Jtt(e,t,n,i,o){let{files:r,writer:s}=e,{keepOrder:a,dataDescriptor:c,signal:u}=o,{headerInfo:f}=i,{usdz:d}=e.options,p=Array.from(r.values()).pop(),g={},m,x,b,T,C,A,E;r.set(t,g);try{let I;a&&(I=p&&p.lock,v()),(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&a||!c)&&!d?(A=new null,E=new Response(A.readable).blob(),A.writable.size=0,m=!0,e.bufferedWrites++,await Um(s)):(A=s,await D()),await Um(A);let{writable:L}=s,{diskOffset:N}=s;if(e.addSplitZipSignature){delete e.addSplitZipSignature;let S=new Uint8Array(4),w=La(S);Gi(w,0,134695760),await zm(L,S),e.offset+=4}d&&nnt(i,e.offset-N),m||(await I,await O(L));let{diskNumber:_}=s;if(C=!0,g.diskNumberStart=_,g=await ent(n,A,g,i,e.config,o),C=!1,r.set(t,g),g.filename=t,m){await A.writable.getWriter().close();let S=await E;await I,await D(),T=!0,c||(S=await rnt(g,S,L,o)),await O(L),g.diskNumberStart=s.diskNumber,N=s.diskOffset,await S.stream().pipeTo(L,{preventClose:!0,preventAbort:!0,signal:u}),L.size+=S.size,T=!1}if(g.offset=e.offset-N,g.zip64)snt(g,o);else if(g.offset>4294967295)throw new Error(lY);return e.offset+=g.size,g}catch(I){if(m&&T||!m&&C){if(e.hasCorruptedEntries=!0,I)try{I.corruptedEntry=!0}catch{}m?e.offset+=A.writable.size:e.offset=A.writable.size}throw r.delete(t),I}finally{m&&e.bufferedWrites--,b&&b(),x&&x()}function v(){g.lock=new Promise(I=>b=I)}async function D(){e.writerLocked=!0;let{lockWriter:I}=e;e.lockWriter=new Promise(L=>x=()=>{e.writerLocked=!1,L()}),await I}async function O(I){Wi(f.localHeaderArray)>s.availableSize&&(s.availableSize=0,await zm(I,new Uint8Array))}}async function ent(e,t,{diskNumberStart:n,lock:i},o,r,s){let{headerInfo:a,dataDescriptorInfo:c,metadataSize:u}=o,{localHeaderArray:f,headerArray:d,lastModDate:p,rawLastModDate:g,encrypted:m,compressed:x,version:b,compressionMethod:T,rawExtraFieldExtendedTimestamp:C,extraFieldExtendedTimestampFlag:A,rawExtraFieldNTFS:E,rawExtraFieldAES:v}=a,{dataDescriptorArray:D}=c,{rawFilename:O,lastAccessDate:I,creationDate:L,password:N,rawPassword:_,level:S,zip64:w,zip64UncompressedSize:P,zip64CompressedSize:M,zip64Offset:B,zip64DiskNumberStart:U,zipCrypto:V,dataDescriptor:G,directory:k,versionMadeBy:Y,rawComment:W,rawExtraField:Q,useWebWorkers:j,onstart:K,onprogress:Z,onend:he,signal:be,encryptionStrength:re,extendedTimestamp:_e,msDosCompatible:xe,internalFileAttribute:Ce,externalFileAttribute:we,useCompressionStream:Oe}=s,ke={lock:i,versionMadeBy:Y,zip64:w,directory:!!k,filenameUTF8:!0,rawFilename:O,commentUTF8:!0,rawComment:W,rawExtraFieldExtendedTimestamp:C,rawExtraFieldNTFS:E,rawExtraFieldAES:v,rawExtraField:Q,extendedTimestamp:_e,msDosCompatible:xe,internalFileAttribute:Ce,externalFileAttribute:we,diskNumberStart:n},At=0,Bt=0,rt,{writable:Qe}=t;if(e){e.chunkSize=v4(r),await zm(Qe,f);let ht=e.readable,mt=ht.size=e.size,Zt={options:{codecType:B4,level:S,rawPassword:_,password:N,encryptionStrength:re,zipCrypto:m&&V,passwordVerification:m&&V&&g>>8&255,signed:!0,compressed:x,encrypted:m,useWebWorkers:j,useCompressionStream:Oe,transferStreams:!1},config:r,streamOptions:{signal:be,size:mt,onstart:K,onprogress:Z,onend:he}},me=await U4({readable:ht,writable:Qe},Zt);Bt=me.inputSize,At=me.outputSize,rt=me.signature,Qe.size+=Bt}else await zm(Qe,f);let Kt;if(w){let ht=4;P&&(ht+=8),M&&(ht+=8),B&&(ht+=8),U&&(ht+=4),Kt=new Uint8Array(ht)}else Kt=new Uint8Array;return ont({signature:rt,rawExtraFieldZip64:Kt,compressedSize:At,uncompressedSize:Bt,headerInfo:a,dataDescriptorInfo:c},s),G&&await zm(Qe,D),Object.assign(ke,{uncompressedSize:Bt,compressedSize:At,lastModDate:p,rawLastModDate:g,creationDate:L,lastAccessDate:I,encrypted:m,size:u+At,compressionMethod:T,version:b,headerArray:d,signature:rt,rawExtraFieldZip64:Kt,extraFieldExtendedTimestampFlag:A,zip64UncompressedSize:P,zip64CompressedSize:M,zip64Offset:B,zip64DiskNumberStart:U}),ke}function tnt(e){let{rawFilename:t,lastModDate:n,lastAccessDate:i,creationDate:o,rawPassword:r,password:s,level:a,zip64:c,zipCrypto:u,dataDescriptor:f,directory:d,rawExtraField:p,encryptionStrength:g,extendedTimestamp:m}=e,x=a!==0&&!d,b=!!(s&&Wi(s)||r&&Wi(r)),T=e.version,C;if(b&&!u){C=new Uint8Array(Wi(C_e)+2);let U=La(C);oo(U,0,39169),Cs(C,C_e,2),a8(U,8,g)}else C=new Uint8Array;let A,E,v;if(m){E=new Uint8Array(9+(i?4:0)+(o?4:0));let U=La(E);oo(U,0,21589),oo(U,2,Wi(E)-4),v=1+(i?2:0)+(o?4:0),a8(U,4,v);let V=5;Gi(U,V,Math.floor(n.getTime()/1e3)),V+=4,i&&(Gi(U,V,Math.floor(i.getTime()/1e3)),V+=4),o&&Gi(U,V,Math.floor(o.getTime()/1e3));try{A=new Uint8Array(36);let G=La(A),k=cY(n);oo(G,0,10),oo(G,2,32),oo(G,8,1),oo(G,10,24),Zl(G,12,k),Zl(G,20,cY(i)||k),Zl(G,28,cY(o)||k)}catch{A=new Uint8Array}}else A=E=new Uint8Array;let D=2048;f&&(D=D|8);let O=0;x&&(O=8),c&&(T=T>45?T:45),b&&(D=D|1,u||(T=T>51?T:51,O=99,x&&(C[9]=8)));let I=new Uint8Array(26),L=La(I);oo(L,0,T),oo(L,2,D),oo(L,4,O);let N=new Uint32Array(1),_=La(N),S;n<Aq?S=Aq:n>Tq?S=Tq:S=n,oo(_,0,(S.getHours()<<6|S.getMinutes())<<5|S.getSeconds()/2),oo(_,2,(S.getFullYear()-1980<<4|S.getMonth()+1)<<5|S.getDate());let w=N[0];Gi(L,6,w),oo(L,22,Wi(t));let P=Wi(C,E,A,p);oo(L,24,P);let M=new Uint8Array(30+Wi(t)+P),B=La(M);return Gi(B,0,67324752),Cs(M,I,4),Cs(M,t,30),Cs(M,C,30+Wi(t)),Cs(M,E,30+Wi(t,C)),Cs(M,A,30+Wi(t,C,E)),Cs(M,p,30+Wi(t,C,E,A)),{localHeaderArray:M,headerArray:I,headerView:L,lastModDate:n,rawLastModDate:w,encrypted:b,compressed:x,version:T,compressionMethod:O,extraFieldExtendedTimestampFlag:v,rawExtraFieldExtendedTimestamp:E,rawExtraFieldNTFS:A,rawExtraFieldAES:C,extraFieldLength:P}}function nnt(e,t){let{headerInfo:n}=e,{localHeaderArray:i,extraFieldLength:o}=n,r=La(i),s=64-(t+Wi(i))%64;s<4&&(s+=64);let a=new Uint8Array(s),c=La(a);oo(c,0,6534),oo(c,2,s-2);let u=i;n.localHeaderArray=i=new Uint8Array(Wi(u)+s),Cs(i,u),Cs(i,a,Wi(u)),r=La(i),oo(r,28,o+s),e.metadataSize+=s}function int(e){let{zip64:t,dataDescriptor:n,dataDescriptorSignature:i}=e,o=new Uint8Array,r,s=0;return n&&(o=new Uint8Array(t?i?24:20:i?16:12),r=La(o),i&&(s=4,Gi(r,0,134695760))),{dataDescriptorArray:o,dataDescriptorView:r,dataDescriptorOffset:s}}function ont(e,t){let{signature:n,rawExtraFieldZip64:i,compressedSize:o,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:a}=e,{headerView:c,encrypted:u}=s,{dataDescriptorView:f,dataDescriptorOffset:d}=a,{zip64:p,zip64UncompressedSize:g,zip64CompressedSize:m,zipCrypto:x,dataDescriptor:b}=t;if((!u||x)&&n!==Xi&&(Gi(c,10,n),b&&Gi(f,d,n)),p){let T=La(i);oo(T,0,1),oo(T,2,Wi(i)-4);let C=4;g&&(Gi(c,18,4294967295),Zl(T,C,BigInt(r)),C+=8),m&&(Gi(c,14,4294967295),Zl(T,C,BigInt(o))),b&&(Zl(f,d+4,BigInt(o)),Zl(f,d+12,BigInt(r)))}else Gi(c,14,o),Gi(c,18,r),b&&(Gi(f,d+4,o),Gi(f,d+8,r))}async function rnt(e,t,n,{zipCrypto:i}){let o;o=await t.slice(0,26).arrayBuffer(),o.byteLength!=26&&(o=o.slice(0,26));let r=new DataView(o);return(!e.encrypted||i)&&Gi(r,14,e.signature),e.zip64?(Gi(r,18,4294967295),Gi(r,22,4294967295)):(Gi(r,18,e.compressedSize),Gi(r,22,e.uncompressedSize)),await zm(n,new Uint8Array(o)),t.slice(o.byteLength)}function snt(e,t){let{rawExtraFieldZip64:n,offset:i,diskNumberStart:o}=e,{zip64UncompressedSize:r,zip64CompressedSize:s,zip64Offset:a,zip64DiskNumberStart:c}=t,u=La(n),f=4;r&&(f+=8),s&&(f+=8),a&&(Zl(u,f,BigInt(i)),f+=8),c&&Gi(u,f,o)}async function ant(e,t,n){let{files:i,writer:o}=e,{diskOffset:r,writable:s}=o,{diskNumber:a}=o,c=0,u=0,f=e.offset-r,d=i.size;for(let[,v]of i){let{rawFilename:D,rawExtraFieldZip64:O,rawExtraFieldAES:I,rawComment:L,rawExtraFieldNTFS:N,rawExtraField:_,extendedTimestamp:S,extraFieldExtendedTimestampFlag:w,lastModDate:P}=v,M;if(S){M=new Uint8Array(9);let B=La(M);oo(B,0,21589),oo(B,2,5),a8(B,4,w),Gi(B,5,Math.floor(P.getTime()/1e3))}else M=new Uint8Array;v.rawExtraFieldCDExtendedTimestamp=M,u+=46+Wi(D,L,O,I,N,M,_)}let p=new Uint8Array(u),g=La(p);await Um(o);let m=0;for(let[v,D]of Array.from(i.values()).entries()){let{offset:O,rawFilename:I,rawExtraFieldZip64:L,rawExtraFieldAES:N,rawExtraFieldCDExtendedTimestamp:_,rawExtraFieldNTFS:S,rawExtraField:w,rawComment:P,versionMadeBy:M,headerArray:B,directory:U,zip64:V,zip64UncompressedSize:G,zip64CompressedSize:k,zip64DiskNumberStart:Y,zip64Offset:W,msDosCompatible:Q,internalFileAttribute:j,externalFileAttribute:K,diskNumberStart:Z,uncompressedSize:he,compressedSize:be}=D,re=Wi(L,N,_,S,w);Gi(g,c,33639248),oo(g,c+4,M);let _e=La(B);G||Gi(_e,18,he),k||Gi(_e,14,be),Cs(p,B,c+6),oo(g,c+30,re),oo(g,c+32,Wi(P)),oo(g,c+34,V&&Y?65535:Z),oo(g,c+36,j),K?Gi(g,c+38,K):U&&Q&&a8(g,c+38,16),Gi(g,c+42,V&&W?4294967295:O),Cs(p,I,c+46),Cs(p,L,c+46+Wi(I)),Cs(p,N,c+46+Wi(I,L)),Cs(p,_,c+46+Wi(I,L,N)),Cs(p,S,c+46+Wi(I,L,N,_)),Cs(p,w,c+46+Wi(I,L,N,_,S)),Cs(p,P,c+46+Wi(I)+re);let xe=46+Wi(I,P)+re;if(c-m>o.availableSize&&(o.availableSize=0,await zm(s,p.slice(m,c)),m=c),c+=xe,n.onprogress)try{await n.onprogress(v+1,i.size,new l0(D))}catch{}}await zm(s,m?p.slice(m):p);let x=o.diskNumber,{availableSize:b}=o;b<22&&x++;let T=Go(e,n,"zip64");if(f>4294967295||u>4294967295||d>65535||x>65535){if(T===!1)throw new Error(lY);T=!0}let C=new Uint8Array(T?98:22),A=La(C);c=0,T&&(Gi(A,0,101075792),Zl(A,4,BigInt(44)),oo(A,12,45),oo(A,14,45),Gi(A,16,x),Gi(A,20,a),Zl(A,24,BigInt(d)),Zl(A,32,BigInt(d)),Zl(A,40,BigInt(u)),Zl(A,48,BigInt(f)),Gi(A,56,117853008),Zl(A,64,BigInt(f)+BigInt(u)),Gi(A,72,x+1),Go(e,n,"supportZip64SplitFile",!0)&&(x=65535,a=65535),d=65535,f=4294967295,u=4294967295,c+=76),Gi(A,c,101010256),oo(A,c+4,x),oo(A,c+6,a),oo(A,c+8,d),oo(A,c+10,d),Gi(A,c+12,u),Gi(A,c+16,f);let E=Wi(t);if(E)if(E<=65535)oo(A,c+20,E);else throw new Error(qtt);await zm(s,C),E&&await zm(s,t)}async function zm(e,t){let n=e.getWriter();try{await n.ready,e.size+=Wi(t),await n.write(t)}finally{n.releaseLock()}}function cY(e){if(e)return(BigInt(e.getTime())+BigInt(116444736e5))*BigInt(1e4)}function Go(e,t,n,i){let o=t[n]===Xi?e.options[n]:t[n];return o===Xi?i:o}function cnt(e){return e+5*(Math.floor(e/16383)+1)}function a8(e,t,n){e.setUint8(t,n)}function oo(e,t,n){e.setUint16(t,n,!0)}function Gi(e,t,n){e.setUint32(t,n,!0)}function Zl(e,t,n){e.setBigUint64(t,n,!0)}function Cs(e,t,n){e.set(t,n)}function La(e){return new DataView(e.buffer)}function Wi(...e){let t=0;return e.forEach(n=>n&&(t+=n.length)),t}yS({Deflate:lpe,Inflate:Rpe});function lnt(e){return typeof e=="string"&&(e=document.getElementById(e)),e}var Pn=lnt;function unt(e,t){this.position=e,this.headingPitchRange=t}var VN=unt;function c8(e,t){this.id=t,this.name=e,this.playlistIndex=0,this.playlist=[],this.tourStart=new pe,this.tourEnd=new pe,this.entryStart=new pe,this.entryEnd=new pe,this._activeEntries=[]}c8.prototype.addPlaylistEntry=function(e){this.playlist.push(e)};c8.prototype.play=function(e,t){this.tourStart.raiseEvent();let n=this;w_e.call(this,e,t,function(i){n.playlistIndex=0,i||v_e(n._activeEntries),n.tourEnd.raiseEvent(i)})};c8.prototype.stop=function(){v_e(this._activeEntries)};function v_e(e){for(let t=e.pop();t!==void 0;t=e.pop())t.stop()}function w_e(e,t,n){let i=this.playlist[this.playlistIndex];if(i){let o=fnt.bind(this,e,t,n);if(this._activeEntries.push(i),this.entryStart.raiseEvent(i),i.blocking)i.play(o,e.scene.camera,t);else{let r=this;i.play(function(){r.entryEnd.raiseEvent(i);let s=r._activeEntries.indexOf(i);s>=0&&r._activeEntries.splice(s,1)}),o(e,t,n)}}else l(n)&&n(!1)}function fnt(e,t,n,i){let o=this.playlist[this.playlistIndex];if(this.entryEnd.raiseEvent(o,i),i)n(i);else{let r=this._activeEntries.indexOf(o);r>=0&&this._activeEntries.splice(r,1),this.playlistIndex++,w_e.call(this,e,t,n)}}var UN=c8;var Pi=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return e},Out:function(e){return e},InOut:function(e){return e}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var t=1.70158;return e===1?1:e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return e===0?0:--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)}}),Bounce:Object.freeze({In:function(e){return 1-Pi.Bounce.Out(1-e)},Out:function(e){return e<.36363636363636365?7.5625*e*e:e<.7272727272727273?7.5625*(e-=.5454545454545454)*e+.75:e<.9090909090909091?7.5625*(e-=.8181818181818182)*e+.9375:7.5625*(e-=.9545454545454546)*e+.984375},InOut:function(e){return e<.5?Pi.Bounce.In(e*2)*.5:Pi.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e<Number.EPSILON?Number.EPSILON:e,e=e>1e4?1e4:e,{In:function(t){return Math.pow(t,e)},Out:function(t){return 1-Math.pow(1-t,e)},InOut:function(t){return t<.5?Math.pow(t*2,e)/2:(1-Math.pow(2-t*2,e))/2+.5}}}}),zN=function(){return performance.now()},dnt=function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(n){return t._tweens[n]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(t){this._tweens[t.getId()]=t,this._tweensAddedDuringUpdate[t.getId()]=t},e.prototype.remove=function(t){delete this._tweens[t.getId()],delete this._tweensAddedDuringUpdate[t.getId()]},e.prototype.update=function(t,n){t===void 0&&(t=zN()),n===void 0&&(n=!1);var i=Object.keys(this._tweens);if(i.length===0)return!1;for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o<i.length;o++){var r=this._tweens[i[o]],s=!n;r&&r.update(t,s)===!1&&!n&&delete this._tweens[i[o]]}i=Object.keys(this._tweensAddedDuringUpdate)}return!0},e}(),vS={Linear:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=vS.Utils.Linear;return t<0?r(e[0],e[1],i):t>1?r(e[n],e[n-1],n-i):r(e[o],e[o+1>n?n:o+1],i-o)},Bezier:function(e,t){for(var n=0,i=e.length-1,o=Math.pow,r=vS.Utils.Bernstein,s=0;s<=i;s++)n+=o(1-t,i-s)*o(t,s)*e[s]*r(i,s);return n},CatmullRom:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=vS.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(o=Math.floor(i=n*(1+t))),r(e[(o-1+n)%n],e[o],e[(o+1)%n],e[(o+2)%n],i-o)):t<0?e[0]-(r(e[0],e[0],e[1],e[1],-i)-e[0]):t>1?e[n]-(r(e[n],e[n],e[n-1],e[n-1],i-n)-e[n]):r(e[o?o-1:0],e[o],e[n<o+1?n:o+1],e[n<o+2?n:o+2],i-o)},Utils:{Linear:function(e,t,n){return(t-e)*n+e},Bernstein:function(e,t){var n=vS.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:function(){var e=[1];return function(t){var n=1;if(e[t])return e[t];for(var i=t;i>1;i--)n*=i;return e[t]=n,n}}(),CatmullRom:function(e,t,n,i,o){var r=(n-e)*.5,s=(i-t)*.5,a=o*o,c=o*a;return(2*t-2*n+r+s)*c+(-3*t+3*n-2*r-s)*a+r*o+t}}},D_e=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),uY=new dnt,P_e=function(){function e(t,n){n===void 0&&(n=uY),this._object=t,this._group=n,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Pi.Linear.None,this._interpolationFunction=vS.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=D_e.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(t,n){if(n===void 0&&(n=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=t,this._propertiesAreSetUp=!1,this._duration=n<0?0:n,this},e.prototype.duration=function(t){return t===void 0&&(t=1e3),this._duration=t<0?0:t,this},e.prototype.dynamic=function(t){return t===void 0&&(t=!1),this._isDynamic=t,this},e.prototype.start=function(t,n){if(t===void 0&&(t=zN()),n===void 0&&(n=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var i in this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t,this._startTime+=this._delayTime,!this._propertiesAreSetUp||n){if(this._propertiesAreSetUp=!0,!this._isDynamic){var o={};for(var r in this._valuesEnd)o[r]=this._valuesEnd[r];this._valuesEnd=o}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,n)}return this},e.prototype.startFromCurrentValues=function(t){return this.start(t,!0)},e.prototype._setupProperties=function(t,n,i,o,r){for(var s in i){var a=t[s],c=Array.isArray(a),u=c?"array":typeof a,f=!c&&Array.isArray(i[s]);if(!(u==="undefined"||u==="function")){if(f){var d=i[s];if(d.length===0)continue;for(var p=[a],g=0,m=d.length;g<m;g+=1){var x=this._handleRelativeValue(a,d[g]);if(isNaN(x)){f=!1,console.warn("Found invalid interpolation list. Skipping.");break}p.push(x)}f&&(i[s]=p)}if((u==="object"||c)&&a&&!f){n[s]=c?[]:{};var b=a;for(var T in b)n[s][T]=b[T];o[s]=c?[]:{};var d=i[s];if(!this._isDynamic){var C={};for(var T in d)C[T]=d[T];i[s]=d=C}this._setupProperties(b,n[s],d,o[s],r)}else(typeof n[s]>"u"||r)&&(n[s]=a),c||(n[s]*=1),f?o[s]=i[s].slice().reverse():o[s]=n[s]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(t){return t===void 0&&(t=zN()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=t,this._group&&this._group.remove(this),this)},e.prototype.resume=function(t){return t===void 0&&(t=zN()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this)},e.prototype.stopChainedTweens=function(){for(var t=0,n=this._chainedTweens.length;t<n;t++)this._chainedTweens[t].stop();return this},e.prototype.group=function(t){return t===void 0&&(t=uY),this._group=t,this},e.prototype.delay=function(t){return t===void 0&&(t=0),this._delayTime=t,this},e.prototype.repeat=function(t){return t===void 0&&(t=0),this._initialRepeat=t,this._repeat=t,this},e.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},e.prototype.yoyo=function(t){return t===void 0&&(t=!1),this._yoyo=t,this},e.prototype.easing=function(t){return t===void 0&&(t=Pi.Linear.None),this._easingFunction=t,this},e.prototype.interpolation=function(t){return t===void 0&&(t=vS.Linear),this._interpolationFunction=t,this},e.prototype.chain=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return this._chainedTweens=t,this},e.prototype.onStart=function(t){return this._onStartCallback=t,this},e.prototype.onEveryStart=function(t){return this._onEveryStartCallback=t,this},e.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},e.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},e.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},e.prototype.onStop=function(t){return this._onStopCallback=t,this},e.prototype.update=function(t,n){var i;if(t===void 0&&(t=zN()),n===void 0&&(n=!0),this._isPaused)return!0;var o=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(t>o)return!1;n&&this.start(t,!0)}if(this._goToEnd=!1,t<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var r=t-this._startTime,s=this._duration+((i=this._repeatDelayTime)!==null&&i!==void 0?i:this._delayTime),a=this._duration+this._repeat*s,c=this._calculateElapsedPortion(r,s,a),u=this._easingFunction(c),f=this._calculateCompletionStatus(r,s);if(f==="repeat"&&this._processRepetition(r,s),this._updateProperties(this._object,this._valuesStart,this._valuesEnd,u),f==="about-to-repeat"&&this._processRepetition(r,s),this._onUpdateCallback&&this._onUpdateCallback(this._object,c),f==="repeat"||f==="about-to-repeat")this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1;else if(f==="completed"){this._isPlaying=!1,this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var d=0,p=this._chainedTweens.length;d<p;d++)this._chainedTweens[d].start(this._startTime+this._duration,!1)}return f!=="completed"},e.prototype._calculateElapsedPortion=function(t,n,i){if(this._duration===0||t>i)return 1;var o=t%n,r=Math.min(o/this._duration,1);return r===0&&t!==0&&t%this._duration===0?1:r},e.prototype._calculateCompletionStatus=function(t,n){return this._duration!==0&&t<this._duration?"playing":this._repeat<=0?"completed":t===this._duration?"about-to-repeat":"repeat"},e.prototype._processRepetition=function(t,n){var i=Math.min(Math.trunc((t-this._duration)/n)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=i);for(var o in this._valuesStartRepeat){var r=this._valuesEnd[o];!this._yoyo&&typeof r=="string"&&(this._valuesStartRepeat[o]=this._valuesStartRepeat[o]+parseFloat(r)),this._yoyo&&this._swapEndStartRepeatValues(o),this._valuesStart[o]=this._valuesStartRepeat[o]}this._yoyo&&(this._reversed=!this._reversed),this._startTime+=n*i},e.prototype._updateProperties=function(t,n,i,o){for(var r in i)if(n[r]!==void 0){var s=n[r]||0,a=i[r],c=Array.isArray(t[r]),u=Array.isArray(a),f=!c&&u;f?t[r]=this._interpolationFunction(a,o):typeof a=="object"&&a?this._updateProperties(t[r],s,a,o):(a=this._handleRelativeValue(s,a),typeof a=="number"&&(t[r]=s+(a-s)*o))}},e.prototype._handleRelativeValue=function(t,n){return typeof n!="string"?n:n.charAt(0)==="+"||n.charAt(0)==="-"?t+parseFloat(n):parseFloat(n)},e.prototype._swapEndStartRepeatValues=function(t){var n=this._valuesStartRepeat[t],i=this._valuesEnd[t];typeof i=="string"?this._valuesStartRepeat[t]=this._valuesStartRepeat[t]+parseFloat(i):this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=n},e}();var pKn=D_e.nextId,Hm=uY,_Kn=Hm.getAll.bind(Hm),gKn=Hm.removeAll.bind(Hm),yKn=Hm.add.bind(Hm),xKn=Hm.remove.bind(Hm),bKn=Hm.update.bind(Hm);var hnt={LINEAR_NONE:Pi.Linear.None,QUADRATIC_IN:Pi.Quadratic.In,QUADRATIC_OUT:Pi.Quadratic.Out,QUADRATIC_IN_OUT:Pi.Quadratic.InOut,CUBIC_IN:Pi.Cubic.In,CUBIC_OUT:Pi.Cubic.Out,CUBIC_IN_OUT:Pi.Cubic.InOut,QUARTIC_IN:Pi.Quartic.In,QUARTIC_OUT:Pi.Quartic.Out,QUARTIC_IN_OUT:Pi.Quartic.InOut,QUINTIC_IN:Pi.Quintic.In,QUINTIC_OUT:Pi.Quintic.Out,QUINTIC_IN_OUT:Pi.Quintic.InOut,SINUSOIDAL_IN:Pi.Sinusoidal.In,SINUSOIDAL_OUT:Pi.Sinusoidal.Out,SINUSOIDAL_IN_OUT:Pi.Sinusoidal.InOut,EXPONENTIAL_IN:Pi.Exponential.In,EXPONENTIAL_OUT:Pi.Exponential.Out,EXPONENTIAL_IN_OUT:Pi.Exponential.InOut,CIRCULAR_IN:Pi.Circular.In,CIRCULAR_OUT:Pi.Circular.Out,CIRCULAR_IN_OUT:Pi.Circular.InOut,ELASTIC_IN:Pi.Elastic.In,ELASTIC_OUT:Pi.Elastic.Out,ELASTIC_IN_OUT:Pi.Elastic.InOut,BACK_IN:Pi.Back.In,BACK_OUT:Pi.Back.Out,BACK_IN_OUT:Pi.Back.InOut,BOUNCE_IN:Pi.Bounce.In,BOUNCE_OUT:Pi.Bounce.Out,BOUNCE_IN_OUT:Pi.Bounce.InOut},Br=Object.freeze(hnt);function l8(e,t,n){this.type="KmlTourFlyTo",this.blocking=!0,this.activeCamera=null,this.activeCallback=null,this.duration=e,this.view=n,this.flyToMode=t}l8.prototype.play=function(e,t,n){if(this.activeCamera=t,l(e)&&e!==null){let o=this;this.activeCallback=function(r){delete o.activeCallback,delete o.activeCamera,e(l(r)?!1:r)}}let i=this.getCameraOptions(n);if(this.view.headingPitchRoll)t.flyTo(i);else if(this.view.headingPitchRange){let o=new ae(this.view.position);t.flyToBoundingSphere(o,i)}};l8.prototype.stop=function(){l(this.activeCamera)&&this.activeCamera.cancelFlight(),l(this.activeCallback)&&this.activeCallback(!0)};l8.prototype.getCameraOptions=function(e){let t={duration:this.duration};return l(this.activeCallback)&&(t.complete=this.activeCallback),this.flyToMode==="smooth"&&(t.easingFunction=Br.LINEAR_NONE),this.view.headingPitchRoll?(t.destination=this.view.position,t.orientation=this.view.headingPitchRoll):this.view.headingPitchRange&&(t.offset=this.view.headingPitchRange),l(e)&&(t=_t(t,e)),t};var HN=l8;function fY(e){this.type="KmlTourWait",this.blocking=!0,this.duration=e,this.timeout=null}fY.prototype.play=function(e){let t=this;this.activeCallback=e,this.timeout=setTimeout(function(){delete t.activeCallback,e(!1)},this.duration*1e3)};fY.prototype.stop=function(){clearTimeout(this.timeout),l(this.activeCallback)&&this.activeCallback(!0)};var GN=fY;var U_e={avi:"video/x-msvideo",bmp:"image/bmp",bz2:"application/x-bzip2",chm:"application/vnd.ms-htmlhelp",css:"text/css",csv:"text/csv",doc:"application/msword",dvi:"application/x-dvi",eps:"application/postscript",flv:"video/x-flv",gif:"image/gif",gz:"application/x-gzip",htm:"text/html",html:"text/html",ico:"image/vnd.microsoft.icon",jnlp:"application/x-java-jnlp-file",jpeg:"image/jpeg",jpg:"image/jpeg",m3u:"audio/x-mpegurl",m4v:"video/mp4",mathml:"application/mathml+xml",mid:"audio/midi",midi:"audio/midi",mov:"video/quicktime",mp3:"audio/mpeg",mp4:"video/mp4",mp4v:"video/mp4",mpeg:"video/mpeg",mpg:"video/mpeg",odp:"application/vnd.oasis.opendocument.presentation",ods:"application/vnd.oasis.opendocument.spreadsheet",odt:"application/vnd.oasis.opendocument.text",ogg:"application/ogg",pdf:"application/pdf",png:"image/png",pps:"application/vnd.ms-powerpoint",ppt:"application/vnd.ms-powerpoint",ps:"application/postscript",qt:"video/quicktime",rdf:"application/rdf+xml",rss:"application/rss+xml",rtf:"application/rtf",svg:"image/svg+xml",swf:"application/x-shockwave-flash",text:"text/plain",tif:"image/tiff",tiff:"image/tiff",txt:"text/plain",wav:"audio/x-wav",wma:"audio/x-ms-wma",wmv:"video/x-ms-wmv",xml:"application/xml",zip:"application/zip",detectFromFilename:function(e){let t=e.toLowerCase();return t=X0(t),U_e[t]}},yY;typeof DOMParser<"u"&&(yY=new DOMParser);var mnt=new V_e.default({stripPrefix:!1,email:!1,replaceFn:function(e){return e.urlMatchType==="scheme"||e.urlMatchType==="www"}}),u0=32,I_e=2414016,R_e=1,O_e=16093e3,M_e=.1,L_e=[null,void 0,"http://www.opengis.net/kml/2.2","http://earth.google.com/kml/2.2","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.0"],N_e=["http://www.google.com/kml/ext/2.2"],pnt=["http://www.w3.org/2005/Atom"],Re={kml:L_e,gx:N_e,atom:pnt,kmlgx:L_e.concat(N_e)},xY={Document:Z_e,Folder:Lnt,Placemark:Nnt,NetworkLink:Wnt,GroundOverlay:znt,PhotoOverlay:J_e,ScreenOverlay:Unt,Tour:Bnt};function Gm(e){this._dataSource=e,this._deferred=xl(),this._stack=[],this._promises=[],this._timeoutSet=!1,this._used=!1,this._started=0,this._timeThreshold=1e3}Object.defineProperties(Gm.prototype,{dataSource:{get:function(){return this._dataSource}}});Gm.prototype.addNodes=function(e,t){this._stack.push({nodes:e,index:0,processingData:t}),this._used=!0};Gm.prototype.addPromise=function(e){this._promises.push(e)};Gm.prototype.wait=function(){let e=this._deferred;return this._used||e.resolve(),Promise.all([e.promise,Promise.all(this._promises)])};Gm.prototype.process=function(){let e=this._stack.length===1;return e&&(this._started=zu._getTimestamp()),this._process(e)};Gm.prototype._giveUpTime=function(){if(this._timeoutSet)return;this._timeoutSet=!0,this._timeThreshold=50;let e=this;setTimeout(function(){e._timeoutSet=!1,e._started=zu._getTimestamp(),e._process(!0)},0)};Gm.prototype._nextNode=function(){let e=this._stack,t=e[e.length-1],n=t.index,i=t.nodes;if(n!==i.length)return++t.index,i[n]};Gm.prototype._pop=function(){let e=this._stack;return e.pop(),e.length===0?(this._deferred.resolve(),!1):!0};Gm.prototype._process=function(e){let t=this.dataSource,n=this._stack[this._stack.length-1].processingData,i=this._nextNode();for(;l(i);){let o=xY[i.localName];if(l(o)&&(Re.kml.indexOf(i.namespaceURI)!==-1||Re.gx.indexOf(i.namespaceURI)!==-1)&&(o(t,i,n,this),this._timeoutSet||zu._getTimestamp()>this._started+this._timeThreshold)){this._giveUpTime();return}i=this._nextNode()}this._pop()&&e&&this._process(!0)};function _nt(e){let t=e.slice(0,Math.min(4,e.size)),n=xl(),i=new FileReader;return i.addEventListener("load",function(){n.resolve(new DataView(i.result).getUint32(0,!1)===1347093252)}),i.addEventListener("error",function(){n.reject(i.error)}),i.readAsArrayBuffer(t),n.promise}function gnt(e){let t=xl(),n=new FileReader;return n.addEventListener("load",function(){t.resolve(n.result)}),n.addEventListener("error",function(){t.reject(n.error)}),n.readAsText(e),t.promise}function z_e(e){let t={xsi:"http://www.w3.org/2001/XMLSchema-instance"},n,i,o,r;for(let s in t)t.hasOwnProperty(s)&&(o=RegExp(`[< ]${s}:`),r=`xmlns:${s}=`,o.test(e)&&e.indexOf(r)===-1&&(l(n)||(n=e.substr(0,e.indexOf("<kml")+4),i=e.substr(n.length)),n+=` ${r}"${t[s]}"`));return l(n)&&(e=n+i),e}function H_e(e){let t=e.indexOf("xmlns:"),n=e.indexOf(">",t),i,o,r;for(;t!==-1&&t<n;)i=e.slice(t,e.indexOf('"',t)),o=t,t=e.indexOf(i,t+1),t!==-1?(r=e.indexOf('"',e.indexOf('"',t)+1),e=e.slice(0,t-1)+e.slice(r+1,e.length),t=e.indexOf("xmlns:",o-1)):t=e.indexOf("xmlns:",o+1);return e}function ynt(e,t){return Promise.resolve(e.getData(new W4)).then(function(n){n=z_e(n),n=H_e(n),t.kml=yY.parseFromString(n,"application/xml")})}function dY(e,t){let n=y(U_e.detectFromFilename(e.filename),"application/octet-stream");return Promise.resolve(e.getData(new H4(n))).then(function(i){t[e.filename]=i})}function Vu(e,t,n,i){let o=i.keys,r=new WN.default("."),s=e.querySelectorAll(t);for(let a=0;a<s.length;a++){let c=s[a],u=c.getAttribute(n);if(l(u)){let d=new WN.default(u).absoluteTo(r).toString(),p=o.indexOf(d);if(p!==-1){let g=o[p];c.setAttribute(n,i[g]),t==="a"&&c.getAttribute("download")===null&&c.setAttribute("download",g)}}}}function Uu(e,t,n,i){let o=e.querySelectorAll(t);for(let r=0;r<o.length;r++){let s=o[r],a=s.getAttribute(n),c=bY(a,i);l(c)&&s.setAttribute(n,c.url)}}function G_e(e,t,n){let i=Es(e,"id");i=l(i)&&i.length!==0?i:Hn(),l(n)&&(i=n+i);let o=t.getById(i);return l(o)&&(i=Hn(),l(n)&&(i=n+i)),o=t.add(new Zo({id:i})),l(o.kml)||(o.addProperty("kml"),o.kml=new Xnt),o}function jN(e,t){return e==="absolute"||e==="relativeToGround"||t==="relativeToSeaFloor"}function h8(e,t){if(!l(e))return h.fromDegrees(0,0,0,t);let n=e.match(/[^\s,\n]+/g);if(!l(n))return h.fromDegrees(0,0,0,t);let i=parseFloat(n[0]),o=parseFloat(n[1]),r=parseFloat(n[2]);return i=isNaN(i)?0:i,o=isNaN(o)?0:o,r=isNaN(r)?0:r,h.fromDegrees(i,o,r,t)}function u8(e,t){if(!l(e))return;let n=e.textContent.match(/[^\s\n]+/g);if(!l(n))return;let i=n.length,o=new Array(i),r=0;for(let s=0;s<i;s++)o[r++]=h8(n[s],t);return o}function f0(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function Es(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function Ii(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r<o;r++){let s=i[r];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function F_e(e,t,n){if(!l(e))return;let i=[],o=e.getElementsByTagNameNS("*",t),r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function bh(e,t,n){if(!l(e))return[];let i=[],o=e.childNodes,r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function Jn(e,t,n){let i=Ii(e,t,n);if(l(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function In(e,t,n){let i=Ii(e,t,n);if(l(i))return i.textContent.trim()}function Th(e,t,n){let i=Ii(e,t,n);if(l(i)){let o=i.textContent.trim();return o==="1"||/^true$/i.test(o)}}function bY(e,t,n){if(!l(e))return;let i;if(l(n)){e=e.replace(/\\/g,"/");let o=n[e];if(l(o))i=new De({url:o});else{let r=new WN.default(t.getUrlComponent()),s=new WN.default(e);o=n[s.absoluteTo(r)],l(o)&&(i=new De({url:o}))}}return l(i)||(i=t.getDerivedResource({url:e})),i}var $l={maximumRed:void 0,red:void 0,maximumGreen:void 0,green:void 0,maximumBlue:void 0,blue:void 0};function _Y(e,t){if(!l(e)||/^\s*$/gm.test(e))return;e[0]==="#"&&(e=e.substring(1));let n=parseInt(e.substring(0,2),16)/255,i=parseInt(e.substring(2,4),16)/255,o=parseInt(e.substring(4,6),16)/255,r=parseInt(e.substring(6,8),16)/255;return t?(r>0?($l.maximumRed=r,$l.red=void 0):($l.maximumRed=void 0,$l.red=0),o>0?($l.maximumGreen=o,$l.green=void 0):($l.maximumGreen=void 0,$l.green=0),i>0?($l.maximumBlue=i,$l.blue=void 0):($l.maximumBlue=void 0,$l.blue=0),$l.alpha=n,H.fromRandom($l)):new H(r,o,i,n)}function yT(e,t,n){let i=In(e,t,n);if(l(i))return _Y(i,In(e,"colorMode",n)==="random")}function xnt(e){let t=Ii(e,"TimeStamp",Re.kmlgx),n=In(t,"when",Re.kmlgx);if(!l(t)||!l(n)||n.length===0)return;let i=J.fromIso8601(n),o=new Or;return o.addInterval(new Tn({start:i,stop:Ue.MAXIMUM_VALUE})),o}function bnt(e){let t=Ii(e,"TimeSpan",Re.kmlgx);if(!l(t))return;let n,i=Ii(t,"begin",Re.kmlgx),o=l(i)?J.fromIso8601(i.textContent):void 0,r=Ii(t,"end",Re.kmlgx),s=l(r)?J.fromIso8601(r.textContent):void 0;if(l(o)&&l(s)){if(J.lessThan(s,o)){let a=o;o=s,s=a}n=new Or,n.addInterval(new Tn({start:o,stop:s}))}else l(o)?(n=new Or,n.addInterval(new Tn({start:o,stop:Ue.MAXIMUM_VALUE}))):l(s)&&(n=new Or,n.addInterval(new Tn({start:Ue.MINIMUM_VALUE,stop:s})));return n}function W_e(){let e=new qa;return e.width=u0,e.height=u0,e.scaleByDistance=new Mt(I_e,R_e,O_e,M_e),e.pixelOffsetScaleByDistance=new Mt(I_e,R_e,O_e,M_e),e}function TY(){let e=new Id;return e.outline=!0,e.outlineColor=H.WHITE,e}function j_e(){let e=new Pd;return e.translucencyByDistance=new Mt(3e6,1,5e6,0),e.pixelOffset=new z(17,0),e.horizontalOrigin=di.LEFT,e.font="16px sans-serif",e.style=Uo.FILL_AND_OUTLINE,e}function AY(e,t,n,i,o){let r=In(e,"href",Re.kml);if(!l(r)||r.length===0)return;if(r.indexOf("root://icons/palette-")===0){let a=r.charAt(21),c=y(Jn(e,"x",Re.gx),0),u=y(Jn(e,"y",Re.gx),0);c=Math.min(c/32,7),u=7-Math.min(u/32,7);let f=8*u+c;r=`https://maps.google.com/mapfiles/kml/pal${a}/icon${f}.png`}let s=bY(r,n,i);if(o){let a=In(e,"refreshMode",Re.kml),c=In(e,"viewRefreshMode",Re.kml);a==="onInterval"||a==="onExpire"?Lt(`kml-refreshMode-${a}`,`KML - Unsupported Icon refreshMode: ${a}`):(c==="onStop"||c==="onRegion")&&Lt(`kml-refreshMode-${c}`,`KML - Unsupported Icon viewRefreshMode: ${c}`);let u=y(In(e,"viewBoundScale",Re.kml),1),f=c==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",d=y(In(e,"viewFormat",Re.kml),f),p=In(e,"httpQuery",Re.kml);l(d)&&s.setQueryParameters(cu(d8(d))),l(p)&&s.setQueryParameters(cu(d8(p)));let g=t._ellipsoid;return EY(s,t.camera,t.canvas,u,t._lastCameraView.bbox,g),s}return s}function Tnt(e,t,n,i,o){let r=Jn(t,"scale",Re.kml),s=Jn(t,"heading",Re.kml),a=yT(t,"color",Re.kml),c=Ii(t,"Icon",Re.kml),u=AY(c,e,i,o,!1);l(c)&&!l(u)&&(u=!1);let f=Jn(c,"x",Re.gx),d=Jn(c,"y",Re.gx),p=Jn(c,"w",Re.gx),g=Jn(c,"h",Re.gx),m=Ii(t,"hotSpot",Re.kml),x=f0(m,"x"),b=f0(m,"y"),T=Es(m,"xunits"),C=Es(m,"yunits"),A=n.billboard;l(A)||(A=W_e(),n.billboard=A),A.image=u,A.scale=r,A.color=a,(l(f)||l(d)||l(p)||l(g))&&(A.imageSubRegion=new Ge(f,d,p,g)),l(s)&&s!==0&&(A.rotation=R.toRadians(-s),A.alignedAxis=h.UNIT_Z),r=y(r,1);let E,v;l(x)&&(T==="pixels"?E=-x*r:T==="insetPixels"?E=(x-u0)*r:T==="fraction"&&(E=-x*u0*r),E+=u0*.5*r),l(b)&&(C==="pixels"?v=b*r:C==="insetPixels"?v=(-b+u0)*r:C==="fraction"&&(v=b*u0*r),v-=u0*.5*r),(l(E)||l(v))&&(A.pixelOffset=new z(E,v))}function f8(e,t,n,i,o){for(let r=0,s=t.childNodes.length;r<s;r++){let a=t.childNodes.item(r);if(a.localName==="IconStyle")Tnt(e,a,n,i,o);else if(a.localName==="LabelStyle"){let c=n.label;l(c)||(c=j_e(),n.label=c),c.scale=y(Jn(a,"scale",Re.kml),c.scale),c.fillColor=y(yT(a,"color",Re.kml),c.fillColor),c.text=n.name}else if(a.localName==="LineStyle"){let c=n.polyline;l(c)||(c=new ic,n.polyline=c),c.width=Jn(a,"width",Re.kml),c.material=yT(a,"color",Re.kml),l(yT(a,"outerColor",Re.gx))&&Lt("kml-gx:outerColor","KML - gx:outerColor is not supported in a LineStyle"),l(Jn(a,"outerWidth",Re.gx))&&Lt("kml-gx:outerWidth","KML - gx:outerWidth is not supported in a LineStyle"),l(Jn(a,"physicalWidth",Re.gx))&&Lt("kml-gx:physicalWidth","KML - gx:physicalWidth is not supported in a LineStyle"),l(Th(a,"labelVisibility",Re.gx))&&Lt("kml-gx:labelVisibility","KML - gx:labelVisibility is not supported in a LineStyle")}else if(a.localName==="PolyStyle"){let c=n.polygon;l(c)||(c=TY(),n.polygon=c),c.material=y(yT(a,"color",Re.kml),c.material),c.fill=y(Th(a,"fill",Re.kml),c.fill),c.outline=y(Th(a,"outline",Re.kml),c.outline)}else if(a.localName==="BalloonStyle"){let c=y(_Y(In(a,"bgColor",Re.kml)),H.WHITE),u=y(_Y(In(a,"textColor",Re.kml)),H.BLACK),f=In(a,"text",Re.kml);n.addProperty("balloonStyle"),n.balloonStyle={bgColor:c,textColor:u,text:f}}else if(a.localName==="ListStyle"){let c=In(a,"listItemType",Re.kml);(c==="radioFolder"||c==="checkOffOnly")&&Lt(`kml-listStyle-${c}`,`KML - Unsupported ListStyle with listItemType: ${c}`)}}}function Ant(e,t,n,i,o){let r=new Zo,s,a=-1,c=t.childNodes,u=c.length;for(let d=0;d<u;d++){let p=c[d];(p.localName==="Style"||p.localName==="StyleMap")&&(a=d)}if(a!==-1){let d=c[a];if(d.localName==="Style")f8(e,d,r,i,o);else{let p=bh(d,"Pair",Re.kml);for(let g=0;g<p.length;g++){let m=p[g],x=In(m,"key",Re.kml);if(x==="normal"){let b=In(m,"styleUrl",Re.kml);if(l(b))s=n.getById(b),l(s)||(s=n.getById(`#${b}`)),l(s)&&r.merge(s);else{let T=Ii(m,"Style",Re.kml);f8(e,T,r,i,o)}}else Lt(`kml-styleMap-${x}`,`KML - Unsupported StyleMap key: ${x}`)}}}let f=In(t,"styleUrl",Re.kml);if(l(f)){let d=f;if(f[0]!=="#"&&f.indexOf("#")!==-1){let p=f.split("#"),g=p[0];d=`${i.getDerivedResource({url:g}).getUrlComponent()}#${p[1]}`}s=n.getById(d),l(s)||(s=n.getById(`#${d}`)),l(s)&&r.merge(s)}return r}function Cnt(e,t,n){return t.fetchXML().then(function(i){return q_e(e,i,n,t,!0)})}function q_e(e,t,n,i,o,r){let s,a,c,u,f=F_e(t,"Style",Re.kml);if(l(f)){let x=f.length;for(s=0;s<x;s++)u=f[s],a=Es(u,"id"),l(a)&&(a=`#${a}`,o&&l(i)&&(a=i.getUrlComponent()+a),l(n.getById(a))||(c=new Zo({id:a}),n.add(c),f8(e,u,c,i,r)))}let d=F_e(t,"StyleMap",Re.kml);if(l(d)){let x=d.length;for(s=0;s<x;s++){let b=d[s];if(a=Es(b,"id"),l(a)){let T=bh(b,"Pair",Re.kml);for(let C=0;C<T.length;C++){let A=T[C],E=In(A,"key",Re.kml);if(E==="normal"){if(a=`#${a}`,o&&l(i)&&(a=i.getUrlComponent()+a),!l(n.getById(a))){c=n.getOrCreateEntity(a);let v=In(A,"styleUrl",Re.kml);if(l(v)){v[0]!=="#"&&(v=`#${v}`),o&&l(i)&&(v=i.getUrlComponent()+v);let D=n.getById(v);l(D)&&c.merge(D)}else u=Ii(A,"Style",Re.kml),f8(e,u,c,i,r)}}else Lt(`kml-styleMap-${E}`,`KML - Unsupported StyleMap key: ${E}`)}}}}let p=[],g=t.getElementsByTagName("styleUrl"),m=g.length;for(s=0;s<m;s++){let x=g[s].textContent;if(x[0]!=="#"){let b=x.split("#");if(b.length===2){let T=b[0],C=i.getDerivedResource({url:T});p.push(Cnt(e,C,n))}}}return p}function CY(e,t,n){let i=new M_(e,t.id,["position"]),o=new Im(t.position);t.polyline=l(n.polyline)?n.polyline.clone():new ic,t.polyline.positions=new O_([i,o])}function Y_e(e,t){return!l(e)&&!l(t)||e==="clampToGround"?qe.CLAMP_TO_GROUND:e==="relativeToGround"?qe.RELATIVE_TO_GROUND:e==="absolute"?qe.NONE:t==="clampToSeaFloor"?(Lt("kml-gx:altitudeMode-clampToSeaFloor","KML - <gx:altitudeMode>:clampToSeaFloor is currently not supported, using <kml:altitudeMode>:clampToGround."),qe.CLAMP_TO_GROUND):t==="relativeToSeaFloor"?(Lt("kml-gx:altitudeMode-relativeToSeaFloor","KML - <gx:altitudeMode>:relativeToSeaFloor is currently not supported, using <kml:altitudeMode>:relativeToGround."),qe.RELATIVE_TO_GROUND):(l(e)?Lt("kml-altitudeMode-unknown",`KML - Unknown <kml:altitudeMode>:${e}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`):Lt("kml-gx:altitudeMode-unknown",`KML - Unknown <gx:altitudeMode>:${t}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`),qe.CLAMP_TO_GROUND)}function Ent(e,t,n){return n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround"?e:((l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&Lt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`),new Im(e))}function Snt(e,t,n,i){if(!l(e))return;if(n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround")return e;(l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&Lt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`);let o=e.length;for(let r=0;r<o;r++){let s=e[r];i.scaleToGeodeticSurface(s,s)}return e}function m8(e,t,n,i){let o=t.label;l(o)||(o=l(n.label)?n.label.clone():j_e(),t.label=o),o.text=t.name;let r=t.billboard;l(r)||(r=l(n.billboard)?n.billboard.clone():W_e(),t.billboard=r),l(r.image)?r.image.getValue()||(r.image=void 0):r.image=e._pinBuilder.fromColor(H.YELLOW,64);let s=1;l(r.scale)&&(s=r.scale.getValue(),s!==0?o.pixelOffset=new z(s*16+1,0):(o.pixelOffset=void 0,o.horizontalOrigin=void 0)),l(i)&&e._clampToGround&&(r.heightReference=i,o.heightReference=i)}function X_e(e,t){let n=e.path;l(n)||(n=new Op,n.leadTime=0,e.path=n);let i=t.polyline;l(i)&&(n.material=i.material,n.width=i.width)}function vnt(e,t,n,i,o){let r=In(n,"coordinates",Re.kml),s=In(n,"altitudeMode",Re.kml),a=In(n,"altitudeMode",Re.gx),c=Th(n,"extrude",Re.kml),u=e._ellipsoid,f=h8(r,u);return i.position=f,m8(e,i,o,Y_e(s,a)),c&&jN(s,a)&&CY(t,i,o),!0}function B_e(e,t,n,i,o){let r=Ii(n,"coordinates",Re.kml),s=In(n,"altitudeMode",Re.kml),a=In(n,"altitudeMode",Re.gx),c=Th(n,"extrude",Re.kml),u=Th(n,"tessellate",Re.kml),f=jN(s,a),d=Jn(n,"drawOrder",Re.gx),p=e._ellipsoid,g=u8(r,p),m=o.polyline;if(f&&c){let x=new Mp;i.wall=x,x.positions=g;let b=o.polygon;l(b)&&(x.fill=b.fill,x.material=b.material),x.outline=!0,l(m)?(x.outlineColor=l(m.material)?m.material.color:H.WHITE,x.outlineWidth=m.width):l(b)&&(x.outlineColor=l(b.material)?b.material.color:H.WHITE)}else if(e._clampToGround&&!f&&u){let x=new ic;x.clampToGround=!0,i.polyline=x,x.positions=g,l(m)?(x.material=l(m.material)?m.material.color.getValue(Ue.MINIMUM_VALUE):H.WHITE,x.width=y(m.width,1)):(x.material=H.WHITE,x.width=1),x.zIndex=d}else l(d)&&Lt("kml-gx:drawOrder","KML - gx:drawOrder is not supported in LineStrings when clampToGround is false"),e._clampToGround&&!u&&Lt("kml-line-tesselate","Ignoring clampToGround for KML lines without the tessellate flag."),m=l(m)?m.clone():new ic,i.polyline=m,m.positions=Snt(g,s,a,p),(!u||f)&&(m.arcType=Qt.NONE);return!0}function wnt(e,t,n,i,o){let r=Ii(n,"outerBoundaryIs",Re.kml),s=Ii(r,"LinearRing",Re.kml),a=Ii(s,"coordinates",Re.kml),c=e._ellipsoid,u=u8(a,c),f=Th(n,"extrude",Re.kml),d=In(n,"altitudeMode",Re.kml),p=In(n,"altitudeMode",Re.gx),g=jN(d,p),m=l(o.polygon)?o.polygon.clone():TY(),x=o.polyline;if(l(x)&&(m.outlineColor=l(x.material)?x.material.color:H.WHITE,m.outlineWidth=x.width),i.polygon=m,g?(m.perPositionHeight=!0,m.extrudedHeight=f?0:void 0):e._clampToGround||(m.height=0),l(u)){let b=new Sa(u),T=bh(n,"innerBoundaryIs",Re.kml);for(let C=0;C<T.length;C++){s=bh(T[C],"LinearRing",Re.kml);for(let A=0;A<s.length;A++)a=Ii(s[A],"coordinates",Re.kml),u=u8(a,c),l(u)&&b.holes.push(new Sa(u))}m.hierarchy=b}return!0}function Dnt(e,t,n,i,o){let r=In(n,"altitudeMode",Re.kml),s=In(n,"altitudeMode",Re.gx),a=bh(n,"coord",Re.gx),c=bh(n,"angles",Re.gx),u=bh(n,"when",Re.kml),f=Th(n,"extrude",Re.kml),d=jN(r,s),p=e._ellipsoid;c.length>0&&Lt("kml-gx:angles","KML - gx:angles are not supported in gx:Tracks");let g=Math.min(a.length,u.length),m=[],x=[];for(let T=0;T<g;T++){let C=h8(a[T].textContent,p);m.push(C),x.push(J.fromIso8601(u[T].textContent))}let b=new aa;return b.addSamples(x,m),i.position=b,m8(e,i,o,Y_e(r,s)),X_e(i,o),i.availability=new Or,u.length>0&&i.availability.addInterval(new Tn({start:x[0],stop:x[x.length-1]})),d&&f&&CY(t,i,o),!0}function k_e(e,t,n,i,o,r,s,a,c){let u=e[0],f=e[e.length-1],d=new aa;d.addSamples(e,t),n.intervals.addInterval(new Tn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c,data:Ent(d,s,a)})),i.addInterval(new Tn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c})),o.intervals.addInterval(new Tn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c,data:r}))}function Pnt(e,t,n,i,o){let r=Th(n,"interpolate",Re.gx),s=bh(n,"Track",Re.gx),a,c,u,f=!1,d=new N_,p=new Or,g=new ra,m=e._ellipsoid;for(let x=0,b=s.length;x<b;x++){let T=s[x],C=bh(T,"when",Re.kml),A=bh(T,"coord",Re.gx),E=In(T,"altitudeMode",Re.kml),v=In(T,"altitudeMode",Re.gx),D=jN(E,v),O=Th(T,"extrude",Re.kml),I=Math.min(A.length,C.length),L=[];a=[];for(let N=0;N<I;N++){let _=h8(A[N].textContent,m);L.push(_),a.push(J.fromIso8601(C[N].textContent))}r&&(l(c)&&k_e([c,a[0]],[u,L[0]],g,p,d,!1,"absolute",void 0,!1),c=a[I-1],u=L[L.length-1]),k_e(a,L,g,p,d,D&&O,E,v,!0),f=f||D&&O}return i.availability=p,i.position=g,m8(e,i,o),X_e(i,o),f&&(CY(t,i,o),i.polyline.show=d),!0}var K_e={Point:vnt,LineString:B_e,LinearRing:B_e,Polygon:wnt,Track:Dnt,MultiTrack:Pnt,MultiGeometry:Int,Model:Rnt};function Int(e,t,n,i,o,r){let s=n.childNodes,a=!1;for(let c=0,u=s.length;c<u;c++){let f=s.item(c),d=K_e[f.localName];if(l(d)){let p=G_e(f,t,r);p.parent=i,p.name=i.name,p.availability=i.availability,p.description=i.description,p.kml=i.kml,d(e,t,f,p,o)&&(a=!0)}}return a}function Rnt(e,t,n,i,o){return Lt("kml-unsupportedGeometry",`KML - Unsupported geometry: ${n.localName}`),!1}function Ont(e,t){let n=Ii(e,"ExtendedData",Re.kml);if(!l(n))return;l(Ii(n,"SchemaData",Re.kml))&&Lt("kml-schemaData","KML - SchemaData is unsupported"),l(Es(n,"xmlns:prefix"))&&Lt("kml-extendedData","KML - ExtendedData with xmlns:prefix is unsupported");let i={},o=bh(n,"Data",Re.kml);if(l(o)){let r=o.length;for(let s=0;s<r;s++){let a=o[s],c=Es(a,"name");l(c)&&(i[c]={displayName:In(a,"displayName",Re.kml),value:In(a,"value",Re.kml)})}}t.kml.extendedData=i}var ho;typeof document<"u"&&(ho=document.createElement("div"));function Mnt(e,t,n,i,o){let r,s,a,c=t.kml,u=c.extendedData,f=In(e,"description",Re.kml),d=y(t.balloonStyle,n.balloonStyle),p=H.WHITE,g=H.BLACK,m=f;l(d)&&(p=y(d.bgColor,H.WHITE),g=y(d.textColor,H.BLACK),m=y(d.text,f));let x;if(l(m)){if(m=m.replace("$[name]",y(t.name,"")),m=m.replace("$[description]",y(f,"")),m=m.replace("$[address]",y(c.address,"")),m=m.replace("$[Snippet]",y(c.snippet,"")),m=m.replace("$[id]",t.id),m=m.replace("$[geDirections]",""),l(u)){let C=m.match(/\$\[.+?\]/g);if(C!==null)for(r=0;r<C.length;r++){let A=C[r],E=A.substr(2,A.length-3),v=/\/displayName$/.test(E);E=E.replace(/\/displayName$/,""),x=u[E],l(x)&&(x=v?x.displayName:x.value),l(x)&&(m=m.replace(A,y(x,"")))}}}else if(l(u)&&(a=Object.keys(u),a.length>0)){for(m='<table class="cesium-infoBox-defaultTable cesium-infoBox-defaultTable-lighter"><tbody>',r=0;r<a.length;r++)s=a[r],x=u[s],m+=`<tr><th>${y(x.displayName,s)}</th><td>${y(x.value,"")}</td></tr>`;m+="</tbody></table>"}if(!l(m))return;m=mnt.link(m),ho.innerHTML=m;let b=ho.querySelectorAll("a");for(r=0;r<b.length;r++)b[r].setAttribute("target","_blank");l(i)&&i.keys.length>1&&(Vu(ho,"a","href",i),Vu(ho,"link","href",i),Vu(ho,"area","href",i),Vu(ho,"img","src",i),Vu(ho,"iframe","src",i),Vu(ho,"video","src",i),Vu(ho,"audio","src",i),Vu(ho,"source","src",i),Vu(ho,"track","src",i),Vu(ho,"input","src",i),Vu(ho,"embed","src",i),Vu(ho,"script","src",i),Vu(ho,"video","poster",i)),Uu(ho,"a","href",o),Uu(ho,"link","href",o),Uu(ho,"area","href",o),Uu(ho,"img","src",o),Uu(ho,"iframe","src",o),Uu(ho,"video","src",o),Uu(ho,"audio","src",o),Uu(ho,"source","src",o),Uu(ho,"track","src",o),Uu(ho,"input","src",o),Uu(ho,"embed","src",o),Uu(ho,"script","src",o),Uu(ho,"video","poster",o);let T='<div class="cesium-infoBox-description-lighter" style="';T+="overflow:auto;",T+="word-wrap:break-word;",T+=`background-color:${p.toCssColorString()};`,T+=`color:${g.toCssColorString()};`,T+='">',T+=`${ho.innerHTML}</div>`,ho.innerHTML="",t.description=T}function p8(e,t,n){let i=n.entityCollection,o=n.parentEntity,r=n.sourceResource,s=n.uriResolver,a=G_e(t,i,n.context),c=a.kml,u=Ant(e,t,n.styleCollection,r,s),f=In(t,"name",Re.kml);a.name=f,a.parent=o;let d=bnt(t);l(d)||(d=xnt(t)),a.availability=d,vY(a);function p(A){return A?A.show&&p(A.parent):!0}let g=Th(t,"visibility",Re.kml);a.show=p(o)&&y(g,!0);let m=Ii(t,"author",Re.atom),x=c.author;x.name=In(m,"name",Re.atom),x.uri=In(m,"uri",Re.atom),x.email=In(m,"email",Re.atom);let b=Ii(t,"link",Re.atom),T=c.link;T.href=Es(b,"href"),T.hreflang=Es(b,"hreflang"),T.rel=Es(b,"rel"),T.type=Es(b,"type"),T.title=Es(b,"title"),T.length=Es(b,"length"),c.address=In(t,"address",Re.kml),c.phoneNumber=In(t,"phoneNumber",Re.kml),c.snippet=In(t,"Snippet",Re.kml),Ont(t,a),Mnt(t,a,u,s,r);let C=e._ellipsoid;return Q_e(t,a,C),$_e(t,a,C),l(Ii(t,"Region",Re.kml))&&Lt("kml-region","KML - Placemark Regions are unsupported"),{entity:a,styleEntity:u}}function Z_e(e,t,n,i){i.addNodes(t.childNodes,n),i.process()}function Lnt(e,t,n,i){let o=p8(e,t,n),r=He(n);r.parentEntity=o.entity,Z_e(e,t,r,i)}function Nnt(e,t,n,i){let o=p8(e,t,n),r=o.entity,s=o.styleEntity,a=!1,c=t.childNodes;for(let u=0,f=c.length;u<f&&!a;u++){let d=c.item(u),p=K_e[d.localName];l(p)&&(p(e,n.entityCollection,d,r,s,r.id),a=!0)}a||(r.merge(s),m8(e,r,s))}var Fnt={FlyTo:Vnt,Wait:knt,SoundCue:hY,AnimatedUpdate:hY,TourControl:hY};function Bnt(e,t,n,i){let o=In(t,"name",Re.kml),r=Es(t,"id"),s=new UN(o,r),a=Ii(t,"Playlist",Re.gx);if(a){let c=e._ellipsoid,u=a.childNodes;for(let f=0;f<u.length;f++){let d=u[f];if(d.localName){let p=Fnt[d.localName];p?p(s,d,c):console.log(`Unknown KML Tour playlist entry type ${d.localName}`)}}}e._kmlTours.push(s)}function hY(e,t){Lt(`KML Tour unsupported node ${t.localName}`)}function knt(e,t){let n=Jn(t,"duration",Re.gx);e.addPlaylistEntry(new GN(n))}function Vnt(e,t,n){let i=Jn(t,"duration",Re.gx),o=In(t,"flyToMode",Re.gx),r={kml:{}};Q_e(t,r,n),$_e(t,r,n);let s=r.kml.lookAt||r.kml.camera,a=new HN(i,o,s);e.addPlaylistEntry(a)}function $_e(e,t,n){let i=Ii(e,"Camera",Re.kml);if(l(i)){let o=y(Jn(i,"longitude",Re.kml),0),r=y(Jn(i,"latitude",Re.kml),0),s=y(Jn(i,"altitude",Re.kml),0),a=y(Jn(i,"heading",Re.kml),0),c=y(Jn(i,"tilt",Re.kml),0),u=y(Jn(i,"roll",Re.kml),0),f=h.fromDegrees(o,r,s,n),d=$a.fromDegrees(a,c-90,u);t.kml.camera=new bN(f,d)}}function Q_e(e,t,n){let i=Ii(e,"LookAt",Re.kml);if(l(i)){let o=y(Jn(i,"longitude",Re.kml),0),r=y(Jn(i,"latitude",Re.kml),0),s=y(Jn(i,"altitude",Re.kml),0),a=Jn(i,"heading",Re.kml),c=Jn(i,"tilt",Re.kml),u=y(Jn(i,"range",Re.kml),0);c=R.toRadians(y(c,0)),a=R.toRadians(y(a,0));let f=new Qf(a,c-R.PI_OVER_TWO,u),d=h.fromDegrees(o,r,s,n);t.kml.lookAt=new VN(d,f)}}function Unt(e,t,n,i){let o=n.screenOverlayContainer;if(!l(o))return;let r=n.sourceResource,s=n.uriResolver,a=Ii(t,"Icon",Re.kml),c=AY(a,e,r,s,!1);if(!l(c))return;let u=document.createElement("img");e._screenOverlays.push(u),u.src=c.url,u.onload=function(){let f=["position: absolute"],d=Ii(t,"screenXY",Re.kml),p=Ii(t,"overlayXY",Re.kml),g=Ii(t,"size",Re.kml),m,x,b,T,C,A;l(g)&&(m=f0(g,"x"),x=f0(g,"y"),b=Es(g,"xunits"),T=Es(g,"yunits"),l(m)&&m!==-1&&m!==0&&(b==="fraction"?C=`width: ${Math.floor(m*100)}%`:b==="pixels"&&(C=`width: ${m}px`),f.push(C)),l(x)&&x!==-1&&x!==0&&(T==="fraction"?A=`height: ${Math.floor(x*100)}%`:T==="pixels"&&(A=`height: ${x}px`),f.push(A))),u.style=f.join(";");let E=0,v=u.height;l(p)&&(m=f0(p,"x"),x=f0(p,"y"),b=Es(p,"xunits"),T=Es(p,"yunits"),l(m)&&(b==="fraction"?E=m*u.width:(b==="pixels"||b==="insetPixels")&&(E=m)),l(x)&&(T==="fraction"?v=x*u.height:(T==="pixels"||T==="insetPixels")&&(v=x))),l(d)&&(m=f0(d,"x"),x=f0(d,"y"),b=Es(d,"xunits"),T=Es(d,"yunits"),l(m)&&(b==="fraction"?C=`left: calc(${Math.floor(m*100)}% - ${E}px)`:b==="pixels"?C=`left: ${m-E}px`:b==="insetPixels"&&(C=`right: ${m-E}px`),f.push(C)),l(x)&&(T==="fraction"?A=`bottom: calc(${Math.floor(x*100)}% - ${v}px)`:T==="pixels"?A=`bottom: ${x-v}px`:T==="insetPixels"&&(A=`top: ${x-v}px`),f.push(A))),u.style=f.join(";")},o.appendChild(u)}function znt(e,t,n,i){let r=p8(e,t,n).entity,s,a=!1,c=e._ellipsoid,u=u8(Ii(t,"LatLonQuad",Re.gx),c),f=Jn(t,"drawOrder",Re.kml);if(l(u))s=TY(),s.hierarchy=new Sa(u),s.zIndex=f,r.polygon=s,a=!0;else{s=new Rd,s.zIndex=f,r.rectangle=s;let m=Ii(t,"LatLonBox",Re.kml);if(l(m)){let x=Jn(m,"west",Re.kml),b=Jn(m,"south",Re.kml),T=Jn(m,"east",Re.kml),C=Jn(m,"north",Re.kml);l(x)&&(x=R.negativePiToPi(R.toRadians(x))),l(b)&&(b=R.clampToLatitudeRange(R.toRadians(b))),l(T)&&(T=R.negativePiToPi(R.toRadians(T))),l(C)&&(C=R.clampToLatitudeRange(R.toRadians(C))),s.coordinates=new se(x,b,T,C);let A=Jn(m,"rotation",Re.kml);if(l(A)){let E=R.toRadians(A);s.rotation=E,s.stRotation=E}}}let d=Ii(t,"Icon",Re.kml),p=AY(d,e,n.sourceResource,n.uriResolver,!0);if(l(p)){a&&Lt("kml-gx:LatLonQuad","KML - gx:LatLonQuad Icon does not support texture projection.");let m=Jn(d,"x",Re.gx),x=Jn(d,"y",Re.gx),b=Jn(d,"w",Re.gx),T=Jn(d,"h",Re.gx);(l(m)||l(x)||l(b)||l(T))&&Lt("kml-groundOverlay-xywh","KML - gx:x, gx:y, gx:w, gx:h aren't supported for GroundOverlays"),s.material=p,s.material.color=yT(t,"color",Re.kml),s.material.transparent=!0}else s.material=yT(t,"color",Re.kml);let g=In(t,"altitudeMode",Re.kml);l(g)?g==="absolute"?(s.height=Jn(t,"altitude",Re.kml),s.zIndex=void 0):g!=="clampToGround"&&Lt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`):(g=In(t,"altitudeMode",Re.gx),g==="relativeToSeaFloor"?(Lt("kml-altitudeMode-relativeToSeaFloor","KML - altitudeMode relativeToSeaFloor is currently not supported, treating as absolute."),s.height=Jn(t,"altitude",Re.kml),s.zIndex=void 0):g==="clampToSeaFloor"?Lt("kml-altitudeMode-clampToSeaFloor","KML - altitudeMode clampToSeaFloor is currently not supported, treating as clampToGround."):l(g)&&Lt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`))}function J_e(e,t,n,i){e._unsupportedNode.raiseEvent(e,n.parentEntity,t,n.entityCollection,n.styleCollection,n.sourceResource,n.uriResolver),Lt(`kml-unsupportedFeature-${t.nodeName}`,`KML - Unsupported feature: ${t.nodeName}`)}var d0={INTERVAL:0,EXPIRE:1,STOP:2};function d8(e){if(!l(e)||e.length===0)return"";let t=e[0];return(t==="&"||t==="?")&&(e=e.substring(1)),e}var Hnt=new se,wS=new fe,mY=new z,Gnt=new h;function EY(e,t,n,i,o,r){function s(u){return u<-R.PI_OVER_TWO?-R.PI_OVER_TWO:u>R.PI_OVER_TWO?R.PI_OVER_TWO:u}function a(u){return u>R.PI?u-R.TWO_PI:u<-R.PI?u+R.TWO_PI:u}let c=$0(e.queryParameters);if(c=c.replace(/%5B/g,"[").replace(/%5D/g,"]"),l(t)&&t._mode!==ne.MORPHING){let u,f;if(o=y(o,Hnt),l(n)&&(mY.x=n.clientWidth*.5,mY.y=n.clientHeight*.5,u=t.pickEllipsoid(mY,r,Gnt)),l(u)?f=r.cartesianToCartographic(u,wS):(f=se.center(o,wS),u=r.cartographicToCartesian(f)),l(i)&&!R.equalsEpsilon(i,1,R.EPSILON9)){let T=o.width*i*.5,C=o.height*i*.5;o=new se(a(f.longitude-T),s(f.latitude-C),a(f.longitude+T),s(f.latitude+C))}c=c.replace("[bboxWest]",R.toDegrees(o.west).toString()),c=c.replace("[bboxSouth]",R.toDegrees(o.south).toString()),c=c.replace("[bboxEast]",R.toDegrees(o.east).toString()),c=c.replace("[bboxNorth]",R.toDegrees(o.north).toString());let d=R.toDegrees(f.longitude).toString(),p=R.toDegrees(f.latitude).toString();c=c.replace("[lookatLon]",d),c=c.replace("[lookatLat]",p),c=c.replace("[lookatTilt]",R.toDegrees(t.pitch).toString()),c=c.replace("[lookatHeading]",R.toDegrees(t.heading).toString()),c=c.replace("[lookatRange]",h.distance(t.positionWC,u)),c=c.replace("[lookatTerrainLon]",d),c=c.replace("[lookatTerrainLat]",p),c=c.replace("[lookatTerrainAlt]",f.height.toString()),r.cartesianToCartographic(t.positionWC,wS),c=c.replace("[cameraLon]",R.toDegrees(wS.longitude).toString()),c=c.replace("[cameraLat]",R.toDegrees(wS.latitude).toString()),c=c.replace("[cameraAlt]",R.toDegrees(wS.height).toString());let g=t.frustum,m=g.aspectRatio,x="",b="";if(l(m)){let T=R.toDegrees(g.fov);m>1?(x=T,b=T/m):(b=T,x=T*m)}c=c.replace("[horizFov]",x.toString()),c=c.replace("[vertFov]",b.toString())}else c=c.replace("[bboxWest]","-180"),c=c.replace("[bboxSouth]","-90"),c=c.replace("[bboxEast]","180"),c=c.replace("[bboxNorth]","90"),c=c.replace("[lookatLon]",""),c=c.replace("[lookatLat]",""),c=c.replace("[lookatRange]",""),c=c.replace("[lookatTilt]",""),c=c.replace("[lookatHeading]",""),c=c.replace("[lookatTerrainLon]",""),c=c.replace("[lookatTerrainLat]",""),c=c.replace("[lookatTerrainAlt]",""),c=c.replace("[cameraLon]",""),c=c.replace("[cameraLat]",""),c=c.replace("[cameraAlt]",""),c=c.replace("[horizFov]",""),c=c.replace("[vertFov]","");l(n)?(c=c.replace("[horizPixels]",n.clientWidth),c=c.replace("[vertPixels]",n.clientHeight)):(c=c.replace("[horizPixels]",""),c=c.replace("[vertPixels]","")),c=c.replace("[terrainEnabled]","1"),c=c.replace("[clientVersion]","1"),c=c.replace("[kmlVersion]","2.2"),c=c.replace("[clientName]","Cesium"),c=c.replace("[language]","English"),e.setQueryParameters(cu(c))}function Wnt(e,t,n,i){let r=p8(e,t,n).entity,s=n.sourceResource,a=n.uriResolver,c=Ii(t,"Link",Re.kml);if(l(c)||(c=Ii(t,"Url",Re.kml)),l(c)){let u=In(c,"href",Re.kml),f,d;if(l(u)){let p=u;if(u=bY(u,s,n.uriResolver),/^data:/.test(u.getUrlComponent()))/\.kmz/i.test(s.getUrlComponent())||(p=s.getDerivedResource({url:p}));else{if(p=u.clone(),f=In(c,"viewRefreshMode",Re.kml),f==="onRegion"){Lt("kml-refrehMode-onRegion","KML - Unsupported viewRefreshMode: onRegion");return}d=y(In(c,"viewBoundScale",Re.kml),1);let b=f==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",T=y(In(c,"viewFormat",Re.kml),b),C=In(c,"httpQuery",Re.kml);l(T)&&u.setQueryParameters(cu(d8(T))),l(C)&&u.setQueryParameters(cu(d8(C)));let A=e._ellipsoid;EY(u,e.camera,e.canvas,d,e._lastCameraView.bbox,A)}let g={sourceUri:p,uriResolver:a,context:r.id,screenOverlayContainer:n.screenOverlayContainer},m=new Hs,x=SY(e,m,u,g).then(function(b){let T=e._entityCollection,C=m.values;T.suspendEvents();for(let v=0;v<C.length;v++){let D=C[v];l(D.parent)||(D.parent=r,vY(D)),T.add(D)}T.resumeEvents();let A=In(c,"refreshMode",Re.kml),E=y(Jn(c,"refreshInterval",Re.kml),0);if(A==="onInterval"&&E>0||A==="onExpire"||f==="onStop"){let v=Ii(b,"NetworkLinkControl",Re.kml),D=l(v),O=J.now(),I={id:Hn(),href:u,cookie:{},lastUpdated:O,updating:!1,entity:r,viewBoundScale:d,needsUpdate:!1,cameraUpdateTime:O},L=0;if(D&&(I.cookie=cu(y(In(v,"cookie",Re.kml),"")),L=y(Jn(v,"minRefreshPeriod",Re.kml),0)),A==="onInterval")D&&(E=Math.max(L,E)),I.refreshMode=d0.INTERVAL,I.time=E;else if(A==="onExpire"){let N;if(D&&(N=In(v,"expires",Re.kml)),l(N))try{let _=J.fromIso8601(N),S=J.secondsDifference(_,O);S>0&&S<L&&J.addSeconds(O,L,_),I.refreshMode=d0.EXPIRE,I.time=_}catch{Lt("kml-refreshMode-onInterval-onExpire","KML - NetworkLinkControl expires is not a valid date")}else Lt("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element")}else l(e.camera)?(I.refreshMode=d0.STOP,I.time=y(Jn(c,"viewRefreshTime",Re.kml),0)):Lt("kml-refrehMode-onStop-noCamera","A NetworkLink with viewRefreshMode=onStop requires the `camera` property to be defined.");l(I.refreshMode)&&e._networkLinks.set(I.id,I)}}).catch(function(b){Lt(`An error occured during loading ${u.url}`),e._error.raiseEvent(e,b)});i.addPromise(x)}}}function jnt(e,t,n,i){let o=xY[t.localName];return l(o)?o(e,t,n,i):J_e(e,t,n,i)}function gY(e,t,n,i,o,r,s){t.removeAll();let a=n.documentElement,c=a.localName==="Document"?a:Ii(a,"Document",Re.kml),u=In(c,"name",Re.kml);l(u)||(u=I_(i.getUrlComponent())),l(e._name)||(e._name=u);let f=new zu._DeferredLoading(e),d=new Hs(e);return Promise.all(q_e(e,n,d,i,!1,o)).then(function(){let p=n.documentElement;if(p.localName==="kml"){let m=p.childNodes;for(let x=0;x<m.length;x++){let b=m[x];if(l(xY[b.localName])){p=b;break}}}let g={parentEntity:void 0,entityCollection:t,styleCollection:d,sourceResource:i,uriResolver:o,context:s,screenOverlayContainer:r};return t.suspendEvents(),jnt(e,p,g,f),t.resumeEvents(),f.wait().then(function(){return n.documentElement})})}function qnt(e,t,n,i,o){let r=en("ThirdParty/Workers/z-worker-pako.js");yS({workerScripts:{deflate:[r,"./pako_deflate.min.js"],inflate:[r,"./pako_inflate.min.js"]}});let s=new i8(new Y_(n));return Promise.resolve(s.getEntries()).then(function(a){let c=[],u={},f;for(let d=0;d<a.length;d++){let p=a[d];p.directory||(/\.kml$/i.test(p.filename)&&(!l(f)||!/\//i.test(p.filename))?(l(f)&&c.push(dY(f,u)),f=p):c.push(dY(p,u)))}return l(f)&&c.push(ynt(f,u)),Promise.all(c).then(function(){if(s.close(),!l(u.kml))throw new le("KMZ file does not contain a KML document.");return u.keys=Object.keys(u),gY(e,t,u.kml,i,u,o)})})}function SY(e,t,n,i){i=y(i,y.EMPTY_OBJECT);let o=i.sourceUri,r=i.uriResolver,s=i.context,a=i.screenOverlayContainer,c=n;if(typeof n=="string"||n instanceof De){n=De.createIfNeeded(n),c=n.fetchBlob(),o=y(o,n.clone());let u=e._resourceCredits,f=n.credits;if(l(f)){let d=f.length;for(let p=0;p<d;p++)u.push(f[p])}}else o=y(o,De.DEFAULT.clone());return o=De.createIfNeeded(o),l(a)&&(a=Pn(a)),Promise.resolve(c).then(function(u){return u instanceof Blob?_nt(u).then(function(f){return f?qnt(e,t,u,o,a):gnt(u).then(function(d){d=z_e(d),d=H_e(d);let p,g;try{p=yY.parseFromString(d,"application/xml")}catch(m){g=m.toString()}if(l(g)||p.body||p.documentElement.tagName==="parsererror"){let m=l(g)?g:p.documentElement.firstChild.nodeValue;throw m||(m=p.body.innerText),new le(m)}return gY(e,t,p,o,r,a,s)})}):gY(e,t,u,o,r,a,s)}).catch(function(u){return e._error.raiseEvent(e,u),console.log(u),Promise.reject(u)})}function zu(e){e=y(e,y.EMPTY_OBJECT);let t=e.camera,n=e.canvas;this._changed=new pe,this._error=new pe,this._loading=new pe,this._refresh=new pe,this._unsupportedNode=new pe,this._clock=void 0,this._entityCollection=new Hs(this),this._name=void 0,this._isLoading=!1,this._pinBuilder=new H_,this._networkLinks=new bt,this._entityCluster=new wu,this.canvas=n,this.camera=t,this._lastCameraView={position:l(t)?h.clone(t.positionWC):void 0,direction:l(t)?h.clone(t.directionWC):void 0,up:l(t)?h.clone(t.upWC):void 0,bbox:l(t)?t.computeViewRectangle():se.clone(se.MAX_VALUE)},this._ellipsoid=y(e.ellipsoid,te.WGS84);let i=e.credit;typeof i=="string"&&(i=new Tt(i)),this._credit=i,this._resourceCredits=[],this._kmlTours=[],this._screenOverlays=[]}zu.load=function(e,t){return t=y(t,y.EMPTY_OBJECT),new zu(t).load(e,t)};Object.defineProperties(zu.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},refreshEvent:{get:function(){return this._refresh}},unsupportedNodeEvent:{get:function(){return this._unsupportedNode}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}},kmlTours:{get:function(){return this._kmlTours}}});zu.prototype.load=function(e,t){t=y(t,y.EMPTY_OBJECT),Mr.setLoading(this,!0);let n=this._name;this._name=void 0,this._clampToGround=y(t.clampToGround,!1);let i=this;return SY(this,this._entityCollection,e,t).then(function(){let o,r=i._entityCollection.computeAvailability(),s=r.start,a=r.stop,c=J.equals(s,Ue.MINIMUM_VALUE),u=J.equals(a,Ue.MAXIMUM_VALUE);if(!c||!u){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=J.fromDate(d)),u&&(d=new Date,d.setHours(24,0,0,0),a=J.fromDate(d)),o=new ch,o.startTime=s,o.stopTime=a,o.currentTime=J.clone(s),o.clockRange=Nr.LOOP_STOP,o.clockStep=fo.SYSTEM_CLOCK_MULTIPLIER,o.multiplier=Math.round(Math.min(Math.max(J.secondsDifference(a,s)/60,1),31556900))}let f=!1;return o!==i._clock&&(i._clock=o,f=!0),n!==i._name&&(f=!0),f&&i._changed.raiseEvent(i),Mr.setLoading(i,!1),i}).catch(function(o){return Mr.setLoading(i,!1),i._error.raiseEvent(i,o),console.log(o),Promise.reject(o)})};zu.prototype.destroy=function(){for(;this._screenOverlays.length>0;)this._screenOverlays.pop().remove()};function vY(e){let t=e.parent;if(l(t)){let n=t.availability;if(l(n)){let i=e.availability;l(i)?i.intersect(n):e.availability=n}}}function Ynt(e,t,n,i,o){return function(r){if(!i.contains(t.id))return;let s=!1,a=Ii(r,"NetworkLinkControl",Re.kml),c=l(a),u=0;if(c){if(l(Ii(a,"Update",Re.kml))){Lt("kml-networkLinkControl-update","KML - NetworkLinkControl updates aren't supported."),t.updating=!1,i.remove(t.id);return}t.cookie=cu(y(In(a,"cookie",Re.kml),"")),u=y(Jn(a,"minRefreshPeriod",Re.kml),0)}let f=J.now(),d=t.refreshMode;if(d===d0.INTERVAL)l(a)&&(t.time=Math.max(u,t.time));else if(d===d0.EXPIRE){let O;if(l(a)&&(O=In(a,"expires",Re.kml)),l(O))try{let I=J.fromIso8601(O),L=J.secondsDifference(I,f);L>0&&L<u&&J.addSeconds(f,u,I),t.time=I}catch{Lt("kml-networkLinkControl-expires","KML - NetworkLinkControl expires is not a valid date"),s=!0}else Lt("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element"),s=!0}let p=t.entity,g=e._entityCollection,m=n.values;function x(O){g.remove(O);let I=O._children,L=I.length;for(let N=0;N<L;++N)x(I[N])}g.suspendEvents();let b=g.values.slice(),T;for(T=0;T<b.length;++T){let O=b[T];O.parent===p&&(O.parent=void 0,x(O))}for(g.resumeEvents(),g.suspendEvents(),T=0;T<m.length;T++){let O=m[T];l(O.parent)||(O.parent=p,vY(O)),g.add(O)}g.resumeEvents(),s?i.remove(t.id):t.lastUpdated=f;let C=g.computeAvailability(),A=C.start,E=C.stop,v=J.equals(A,Ue.MINIMUM_VALUE),D=J.equals(E,Ue.MAXIMUM_VALUE);if(!v||!D){let O=e._clock;(O.startTime!==A||O.stopTime!==E)&&(O.startTime=A,O.stopTime=E,e._changed.raiseEvent(e))}t.updating=!1,t.needsUpdate=!1,e._refresh.raiseEvent(e,o.getUrlComponent(!0))}}var pY=new bt;zu.prototype.update=function(e){let t=this._networkLinks;if(t.length===0)return!0;let n=J.now(),i=this;pY.removeAll();function o(f){let d=f._children,p=d.length;for(let g=0;g<p;++g){let m=d[g];pY.set(m.id,m),o(m)}}let r=!1,s=this._lastCameraView,a=this.camera;l(a)&&!(a.positionWC.equalsEpsilon(s.position,R.EPSILON7)&&a.directionWC.equalsEpsilon(s.direction,R.EPSILON7)&&a.upWC.equalsEpsilon(s.up,R.EPSILON7))&&(s.position=h.clone(a.positionWC),s.direction=h.clone(a.directionWC),s.up=h.clone(a.upWC),s.bbox=a.computeViewRectangle(),r=!0);let c=new bt,u=!1;return t.values.forEach(function(f){let d=f.entity;if(!pY.contains(d.id)){if(!f.updating){let p=!1;if(f.refreshMode===d0.INTERVAL?J.secondsDifference(n,f.lastUpdated)>f.time&&(p=!0):f.refreshMode===d0.EXPIRE?J.greaterThan(n,f.time)&&(p=!0):f.refreshMode===d0.STOP&&(r&&(f.needsUpdate=!0,f.cameraUpdateTime=n),f.needsUpdate&&J.secondsDifference(n,f.cameraUpdateTime)>=f.time&&(p=!0)),p){o(d),f.updating=!0;let g=new Hs,m=f.href.clone();m.setQueryParameters(f.cookie);let x=y(i._ellipsoid,te.WGS84);EY(m,i.camera,i.canvas,f.viewBoundScale,s.bbox,x),SY(i,g,m,{context:d.id}).then(Ynt(i,f,g,c,m)).catch(function(b){let T=`NetworkLink ${f.href} refresh failed: ${b}`;console.log(T),i._error.raiseEvent(i,T)}),u=!0}}c.set(f.id,f)}}),u&&(this._networkLinks=c,this._changed.raiseEvent(this)),!0};function Xnt(){this.author={name:void 0,uri:void 0,email:void 0},this.link={href:void 0,hreflang:void 0,rel:void 0,type:void 0,title:void 0,length:void 0},this.address=void 0,this.phoneNumber=void 0,this.snippet=void 0,this.extendedData=void 0}zu._DeferredLoading=Gm;zu._getTimestamp=pi;var qN=zu;function YN(){de.throwInstantiationError()}YN.prototype.update=de.throwInstantiationError;YN.prototype.getBoundingSphere=de.throwInstantiationError;YN.prototype.isDestroyed=de.throwInstantiationError;YN.prototype.destroy=de.throwInstantiationError;var wY=YN;var DY=32,Knt="http://www.opengis.net/kml/2.2",Ch="http://www.google.com/kml/ext/2.2",Znt="http://www.w3.org/2000/xmlns/";function _8(e){this._files={},this._promises=[],this._count=0,this._modelCallback=e}var $nt=/^data:image\/([^,;]+)/;_8.prototype.texture=function(e){let t=this,n;if(typeof e=="string"||e instanceof De){if(e=De.createIfNeeded(e),!e.isDataUri)return e.url;let i=e.url.match($nt);n=`texture_${++this._count}`,l(i)&&(n+=`.${i[1]}`);let o=e.fetchBlob().then(function(r){t._files[n]=r});return this._promises.push(o),n}if(e instanceof HTMLCanvasElement){n=`texture_${++this._count}.png`;let i=new Promise(o=>{e.toBlob(function(r){t._files[n]=r,o()})});return this._promises.push(i),n}return""};function Qnt(e,t){return function(n){e._files[t]=n}}_8.prototype.model=function(e,t){let n=this._modelCallback;if(!l(n))throw new le("Encountered a model entity while exporting to KML, but no model callback was supplied.");let i={},o=n(e,t,i);for(let r in i)if(i.hasOwnProperty(r)){let s=Promise.resolve(i[r]);this._promises.push(s),s.then(Qnt(this,r))}return o};Object.defineProperties(_8.prototype,{promise:{get:function(){return Promise.all(this._promises)}},files:{get:function(){return this._files}}});function g8(e){this._time=e}g8.prototype.get=function(e,t,n){let i;return l(e)&&(i=l(e.getValue)?e.getValue(this._time,n):e),y(i,t)};g8.prototype.getColor=function(e,t){let n=this.get(e,t);if(l(n))return bT(n)};g8.prototype.getMaterialType=function(e){if(l(e))return e.getType(this._time)};function PY(){this._ids={},this._styles={},this._count=0}PY.prototype.get=function(e){let t=this._ids,n=e.innerHTML;if(l(t[n]))return t[n];let i=`style-${++this._count}`;return e.setAttribute("id",i),i=`#${i}`,t[n]=i,this._styles[n]=e,i};PY.prototype.save=function(e){let t=this._styles,n=e.childNodes[0];for(let i in t)t.hasOwnProperty(i)&&e.insertBefore(t[i],n)};function nge(){this._ids={}}nge.prototype.get=function(e){if(!l(e))return this.get(Hn());let t=this._ids;return l(t[e])?`${e.toString()}-${++t[e]}`:(t[e]=0,e)};function IY(e){e=y(e,y.EMPTY_OBJECT);let t=e.entities,n=y(e.kmz,!1),i=IY._createState(e),o=t.values.filter(function(u){return!l(u.parent)}),r=i.kmlDoc,s=r.documentElement;s.setAttributeNS(Znt,"xmlns:gx",Ch);let a=r.createElement("Document");s.appendChild(a),oge(i,a,o),i.styleCache.save(a);let c=i.externalFileHandler;return c.promise.then(function(){let f=new XMLSerializer().serializeToString(i.kmlDoc);return n?Jnt(f,c.files):{kml:f,externalFiles:c.files}})}function Jnt(e,t){let n=en("ThirdParty/Workers/z-worker-pako.js");yS({workerScripts:{deflate:[n,"./pako_deflate.min.js"],inflate:[n,"./pako_inflate.min.js"]}});let i=new MN,o=new s8(i);return o.add("doc.kml",new G4(e)).then(function(){let r=Object.keys(t);return ige(o,r,t,0)}).then(function(){return o.close()}).then(function(r){return{kmz:r}})}function ige(e,t,n,i){if(t.length===i)return;let o=t[i];return e.add(o,new Y_(n[o])).then(function(){return ige(e,t,n,i+1)})}IY._createState=function(e){let t=e.entities,n=new PY,i=t.computeAvailability(),o=l(e.time)?e.time:i.start,r=y(e.defaultAvailability,i),s=y(e.sampleDuration,60);r.start===Ue.MINIMUM_VALUE?r.stop===Ue.MAXIMUM_VALUE?r=new Tn:J.addSeconds(r.stop,-10*s,r.start):r.stop===Ue.MAXIMUM_VALUE&&J.addSeconds(r.start,10*s,r.stop);let a=new _8(e.modelCallback);return{kmlDoc:document.implementation.createDocument(Knt,"kml"),ellipsoid:y(e.ellipsoid,te.WGS84),idManager:new nge,styleCache:n,externalFileHandler:a,time:o,valueGetter:new g8(o),sampleDuration:s,defaultAvailability:new Or([r])}};function oge(e,t,n){let i=e.kmlDoc,o=e.styleCache,r=e.valueGetter,s=e.idManager,a=n.length,c,u,f;for(let d=0;d<a;++d){let p=n[d];c=[],u=[],f=[],eit(e,p,u,f),tit(e,p.polyline,u,f),tge(e,p.rectangle,u,f,c),tge(e,p.polygon,u,f,c),rit(e,p,p.model,u,f);let g,m=p.availability;l(m)&&(g=i.createElement("TimeSpan"),J.equals(m.start,Ue.MINIMUM_VALUE)||g.appendChild(dn(i,"begin",J.toIso8601(m.start))),J.equals(m.stop,Ue.MAXIMUM_VALUE)||g.appendChild(dn(i,"end",J.toIso8601(m.stop))));for(let T=0;T<c.length;++T){let C=c[T];C.setAttribute("id",s.get(p.id)),C.appendChild(dn(i,"name",p.name)),C.appendChild(dn(i,"visibility",p.show)),C.appendChild(dn(i,"description",p.description)),l(g)&&C.appendChild(g),t.appendChild(C)}let x=u.length;if(x>0){let T=i.createElement("Placemark");T.setAttribute("id",s.get(p.id));let C=p.name,A=p.label;if(l(A)){let v=i.createElement("LabelStyle"),D=r.get(A.text);C=l(D)&&D.length>0?D:C;let O=r.getColor(A.fillColor);l(O)&&(v.appendChild(dn(i,"color",O)),v.appendChild(dn(i,"colorMode","normal")));let I=r.get(A.scale);l(I)&&v.appendChild(dn(i,"scale",I)),f.push(v)}T.appendChild(dn(i,"name",C)),T.appendChild(dn(i,"visibility",p.show)),T.appendChild(dn(i,"description",p.description)),l(g)&&T.appendChild(g),t.appendChild(T);let E=f.length;if(E>0){let v=i.createElement("Style");for(let D=0;D<E;++D)v.appendChild(f[D]);T.appendChild(dn(i,"styleUrl",o.get(v)))}if(u.length===1)T.appendChild(u[0]);else if(u.length>1){let v=i.createElement("MultiGeometry");for(let D=0;D<x;++D)v.appendChild(u[D]);T.appendChild(v)}}let b=p._children;if(b.length>0){let T=i.createElement("Folder");T.setAttribute("id",s.get(p.id)),T.appendChild(dn(i,"name",p.name)),T.appendChild(dn(i,"visibility",p.show)),T.appendChild(dn(i,"description",p.description)),t.appendChild(T),oge(e,T,b)}}}var Ql=new h,cl=new fe,Ah=new J;function eit(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter,a=y(t.billboard,t.point);if(!l(a)&&!l(t.path))return;let c=t.position;if(!c.isConstant){rge(e,t,a,n,i);return}s.get(c,void 0,Ql);let u=dn(o,"coordinates",xT(Ql,r)),f=o.createElement("Point"),d=o.createElement("altitudeMode");d.appendChild(TT(e,a.heightReference)),f.appendChild(d),f.appendChild(u),n.push(f);let p=a instanceof qa?age(e,a):sge(e,a);i.push(p)}function rge(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter,c,u=t.position,f=!0;u instanceof ra?(c=u.intervals,f=!1):c=y(t.availability,e.defaultAvailability);let d=n instanceof Rp,p,g,m,x=[];for(p=0;p<c.length;++p){let T=c.get(p),C=f?u:T.data,A=r.createElement("altitudeMode");C instanceof Im?(C=C._value,A.appendChild(TT(e,qe.CLAMP_TO_GROUND))):l(n)?A.appendChild(TT(e,n.heightReference)):A.appendChild(TT(e,qe.NONE));let E=[],v=[];if(C.isConstant){a.get(C,void 0,Ql);let O=dn(r,"coordinates",xT(Ql,s));E.push(J.toIso8601(T.start)),v.push(O),E.push(J.toIso8601(T.stop)),v.push(O)}else if(C instanceof aa)for(m=C._property._times,g=0;g<m.length;++g)E.push(J.toIso8601(m[g])),C.getValueInReferenceFrame(m[g],to.FIXED,Ql),v.push(xT(Ql,s));else if(C instanceof Ru){m=C._times;let O=C._values;for(g=0;g<m.length;++g)E.push(J.toIso8601(m[g])),h.fromArray(O,g*3,Ql),v.push(xT(Ql,s))}else{let O=e.sampleDuration;T.start.clone(Ah),T.isStartIncluded||J.addSeconds(Ah,O,Ah);let I=T.stop;for(;J.lessThan(Ah,I);)C.getValue(Ah,Ql),E.push(J.toIso8601(Ah)),v.push(xT(Ql,s)),J.addSeconds(Ah,O,Ah);T.isStopIncluded&&J.equals(Ah,I)&&(C.getValue(Ah,Ql),E.push(J.toIso8601(Ah)),v.push(xT(Ql,s)))}let D=r.createElementNS(Ch,"Track");D.appendChild(A);for(let O=0;O<E.length;++O){let I=dn(r,"when",E[O]),L=dn(r,"coord",v[O],Ch);D.appendChild(I),D.appendChild(L)}d&&D.appendChild(cge(e,n)),x.push(D)}if(x.length===1)i.push(x[0]);else if(x.length>1){let T=r.createElementNS(Ch,"MultiTrack");for(p=0;p<x.length;++p)T.appendChild(x[p]);i.push(T)}if(l(n)&&!d){let T=n instanceof qa?age(e,n):sge(e,n);o.push(T)}let b=t.path;if(l(b)){let T=a.get(b.width),C=b.material;if(l(C)||l(T)){let A=r.createElement("LineStyle");l(T)&&A.appendChild(dn(r,"width",T)),RY(e,C,A),o.push(A)}}}function sge(e,t){let n=e.kmlDoc,i=e.valueGetter,o=n.createElement("IconStyle"),r=i.getColor(t.color);l(r)&&(o.appendChild(dn(n,"color",r)),o.appendChild(dn(n,"colorMode","normal")));let s=i.get(t.pixelSize);return l(s)&&o.appendChild(dn(n,"scale",s/DY)),o}function age(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("IconStyle"),s=i.get(t.image);if(l(s)){s=o.texture(s);let p=n.createElement("Icon");p.appendChild(dn(n,"href",s));let g=i.get(t.imageSubRegion);l(g)&&(p.appendChild(dn(n,"x",g.x,Ch)),p.appendChild(dn(n,"y",g.y,Ch)),p.appendChild(dn(n,"w",g.width,Ch)),p.appendChild(dn(n,"h",g.height,Ch))),r.appendChild(p)}let a=i.getColor(t.color);l(a)&&(r.appendChild(dn(n,"color",a)),r.appendChild(dn(n,"colorMode","normal")));let c=i.get(t.scale);l(c)&&r.appendChild(dn(n,"scale",c));let u=i.get(t.pixelOffset);if(l(u)){c=y(c,1),z.divideByScalar(u,c,u);let p=i.get(t.width,DY),g=i.get(t.height,DY),m=i.get(t.horizontalOrigin,di.CENTER);m===di.CENTER?u.x-=p*.5:m===di.RIGHT&&(u.x-=p);let x=i.get(t.verticalOrigin,Rn.CENTER);x===Rn.TOP?u.y+=g:x===Rn.CENTER&&(u.y+=g*.5);let b=n.createElement("hotSpot");b.setAttribute("x",-u.x),b.setAttribute("y",u.y),b.setAttribute("xunits","pixels"),b.setAttribute("yunits","pixels"),r.appendChild(b)}let f=i.get(t.rotation),d=i.get(t.alignedAxis);return l(f)&&h.equals(h.UNIT_Z,d)&&(f=R.toDegrees(-f),f===0&&(f=360),r.appendChild(dn(n,"heading",f))),r}function tit(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter;if(!l(t))return;let a=o.createElement("LineString"),c=o.createElement("altitudeMode"),u=s.get(t.clampToGround,!1),f;u?(a.appendChild(dn(o,"tessellate",!0)),f=o.createTextNode("clampToGround")):f=o.createTextNode("absolute"),c.appendChild(f),a.appendChild(c);let d=t.positions,p=s.get(d),g=dn(o,"coordinates",xT(p,r));a.appendChild(g);let m=s.get(t.zIndex);u&&l(m)&&a.appendChild(dn(o,"drawOrder",m,Ch)),n.push(a);let x=o.createElement("LineStyle"),b=s.get(t.width);l(b)&&x.appendChild(dn(o,"width",b)),RY(e,t.material,x),i.push(x)}function nit(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=o.get(t.height,0);n>0&&(r=n);let s=t.coordinates,a=o.get(s),c=[],u=[se.northeast,se.southeast,se.southwest,se.northwest];for(let g=0;g<4;++g)u[g](a,cl),c.push(`${R.toDegrees(cl.longitude)},${R.toDegrees(cl.latitude)},${r}`);let f=dn(i,"coordinates",c.join(" ")),d=i.createElement("outerBoundaryIs"),p=i.createElement("LinearRing");return p.appendChild(f),d.appendChild(p),[d]}function ege(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=[],a=t.length;for(let f=0;f<a;++f)fe.fromCartesian(t[f],r,cl),s.push(`${R.toDegrees(cl.longitude)},${R.toDegrees(cl.latitude)},${i?cl.height:n}`);let c=dn(o,"coordinates",s.join(" ")),u=o.createElement("LinearRing");return u.appendChild(c),u}function iit(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=o.get(t.height,0),s=o.get(t.perPositionHeight,!1);!s&&n>0&&(r=n);let a=[],c=t.hierarchy,u=o.get(c),f=Array.isArray(u)?u:u.positions,d=i.createElement("outerBoundaryIs");d.appendChild(ege(e,f,r,s)),a.push(d);let p=u.holes;if(l(p)){let g=p.length;for(let m=0;m<g;++m){let x=i.createElement("innerBoundaryIs");x.appendChild(ege(e,p[m].positions,r,s)),a.push(x)}}return a}function tge(e,t,n,i,o){let r=e.kmlDoc,s=e.valueGetter;if(!l(t))return;let a=t instanceof Rd;if(a&&s.getMaterialType(t.material)==="Image"){oit(e,t,o);return}let c=r.createElement("Polygon"),u=s.get(t.extrudedHeight,0);u>0&&c.appendChild(dn(r,"extrude",!0));let f=a?nit(e,t,u):iit(e,t,u),d=f.length;for(let b=0;b<d;++b)c.appendChild(f[b]);let p=r.createElement("altitudeMode");p.appendChild(TT(e,t.heightReference)),c.appendChild(p),n.push(c);let g=r.createElement("PolyStyle"),m=s.get(t.fill,!1);m&&g.appendChild(dn(r,"fill",m)),RY(e,t.material,g);let x=s.get(t.outline,!1);if(x){g.appendChild(dn(r,"outline",x));let b=r.createElement("LineStyle"),T=s.get(t.outlineWidth,1);b.appendChild(dn(r,"width",T));let C=s.getColor(t.outlineColor,H.BLACK);b.appendChild(dn(r,"color",C)),b.appendChild(dn(r,"colorMode","normal")),i.push(b)}i.push(g)}function oit(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=e.externalFileHandler,s=i.createElement("GroundOverlay"),a=i.createElement("altitudeMode");a.appendChild(TT(e,t.heightReference)),s.appendChild(a);let c=o.get(t.height);l(c)&&s.appendChild(dn(i,"altitude",c));let u=o.get(t.coordinates),f=i.createElement("LatLonBox");f.appendChild(dn(i,"north",R.toDegrees(u.north))),f.appendChild(dn(i,"south",R.toDegrees(u.south))),f.appendChild(dn(i,"east",R.toDegrees(u.east))),f.appendChild(dn(i,"west",R.toDegrees(u.west))),s.appendChild(f);let d=o.get(t.material),p=r.texture(d.image),g=i.createElement("Icon");g.appendChild(dn(i,"href",p)),s.appendChild(g);let m=d.color;l(m)&&s.appendChild(dn(i,"color",bT(d.color))),n.push(s)}function cge(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("Model"),s=i.get(t.scale);if(l(s)){let u=n.createElement("scale");u.appendChild(dn(n,"x",s)),u.appendChild(dn(n,"y",s)),u.appendChild(dn(n,"z",s)),r.appendChild(u)}let a=n.createElement("Link"),c=o.model(t,e.time);return a.appendChild(dn(n,"href",c)),r.appendChild(a),r}function rit(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter;if(!l(n))return;let c=t.position;if(!c.isConstant){rge(e,t,n,i,o);return}let u=cge(e,n),f=r.createElement("altitudeMode");f.appendChild(TT(e,n.heightReference)),u.appendChild(f),a.get(c,void 0,Ql),fe.fromCartesian(Ql,s,cl);let d=r.createElement("Location");d.appendChild(dn(r,"longitude",R.toDegrees(cl.longitude))),d.appendChild(dn(r,"latitude",R.toDegrees(cl.latitude))),d.appendChild(dn(r,"altitude",cl.height)),u.appendChild(d),i.push(u)}function RY(e,t,n){let i=e.kmlDoc,o=e.valueGetter;if(!l(t))return;let r=o.get(t);if(!l(r))return;let s,a=o.getMaterialType(t),c,u;switch(a){case"Image":s=bT(H.WHITE);break;case"Color":case"Grid":case"PolylineGlow":case"PolylineArrow":case"PolylineDash":s=bT(r.color);break;case"PolylineOutline":s=bT(r.color),c=bT(r.outlineColor),u=r.outlineWidth,n.appendChild(dn(i,"outerColor",c,Ch)),n.appendChild(dn(i,"outerWidth",u,Ch));break;case"Stripe":s=bT(r.oddColor);break}l(s)&&(n.appendChild(dn(i,"color",s)),n.appendChild(dn(i,"colorMode","normal")))}function TT(e,t){let n=e.kmlDoc,o=e.valueGetter.get(t,qe.NONE),r;switch(o){case qe.NONE:r=n.createTextNode("absolute");break;case qe.CLAMP_TO_GROUND:r=n.createTextNode("clampToGround");break;case qe.RELATIVE_TO_GROUND:r=n.createTextNode("relativeToGround");break}return r}function xT(e,t){Array.isArray(e)||(e=[e]);let n=e.length,i=[];for(let o=0;o<n;++o)fe.fromCartesian(e[o],t,cl),i.push(`${R.toDegrees(cl.longitude)},${R.toDegrees(cl.latitude)},${cl.height}`);return i.join(" ")}function dn(e,t,n,i){n=y(n,""),typeof n=="boolean"&&(n=n?"1":"0");let o=l(i)?e.createElementNS(i,t):e.createElement(t),r=n==="string"&&n.indexOf("<")!==-1?e.createCDATASection(n):e.createTextNode(n);return o.appendChild(r),o}function bT(e){let t="",n=e.toBytes();for(let i=3;i>=0;--i)t+=n[i]<16?`0${n[i].toString(16)}`:n[i].toString(16);return t}var OY=IY;var AT=`in vec4 position; in vec2 textureCoordinates; out vec2 v_textureCoordinates; void main() { gl_Position = position; v_textureCoordinates = textureCoordinates; } `;function y8(e){this._context=e}var XN,sit=new Ze({primitiveType:Le.TRIANGLES}),ait=new ii({color:new H(0,0,0,0)});function cit(e,t){return new ta({context:e,colorTextures:[t],destroyAttachments:!1})}function lit(e,t){return $t.fromCache({context:e,vertexShaderSource:AT,fragmentShaderSource:t,attributeLocations:{position:0,textureCoordinates:1}})}function uit(e,t){return(!l(XN)||XN.viewport.width!==e||XN.viewport.height!==t)&&(XN=Ve.fromCache({viewport:new Ge(0,0,e,t)})),XN}y8.prototype.execute=function(e){l(e.preExecute)&&e.preExecute(e);let t=e.outputTexture,n=t.width,i=t.height,o=this._context,r=l(e.vertexArray)?e.vertexArray:o.getViewportQuadVertexArray(),s=l(e.shaderProgram)?e.shaderProgram:lit(o,e.fragmentShaderSource),a=cit(o,t),c=uit(n,i),u=e.uniformMap,f=ait;f.framebuffer=a,f.renderState=c,f.execute(o);let d=sit;d.vertexArray=r,d.renderState=c,d.shaderProgram=s,d.uniformMap=u,d.framebuffer=a,d.execute(o),a.destroy(),e.persists||(s.destroy(),l(e.vertexArray)&&r.destroy()),l(e.postExecute)&&e.postExecute(t)};y8.prototype.isDestroyed=function(){return!1};y8.prototype.destroy=function(){return ue(this)};var KN=y8;function fit(e){this.context=e,this.framebuffer=void 0,this.blendingEnabled=void 0,this.scissorTest=void 0,this.viewport=void 0}var bc=fit;function Eh(e){this._context=e,this._shaders={},this._numberOfShaders=0,this._shadersToRelease={}}Object.defineProperties(Eh.prototype,{numberOfShaders:{get:function(){return this._numberOfShaders}}});Eh.prototype.replaceShaderProgram=function(e){return l(e.shaderProgram)&&e.shaderProgram.destroy(),this.getShaderProgram(e)};function dit(e){let t=Object.keys(e).sort();return JSON.stringify(e,t)}Eh.prototype.getShaderProgram=function(e){let t=e.vertexShaderSource,n=e.fragmentShaderSource,i=e.attributeLocations;typeof t=="string"&&(t=new ze({sources:[t]})),typeof n=="string"&&(n=new ze({sources:[n]}));let o=t.getCacheKey(),r=n.getCacheKey(),s=l(i)?dit(i):"",a=`${o}:${r}:${s}`,c;if(l(this._shaders[a]))c=this._shaders[a],delete this._shadersToRelease[a];else{let u=this._context,f=t.createCombinedVertexShader(u),d=n.createCombinedFragmentShader(u),p=new $t({gl:u._gl,logShaderCompilation:u.logShaderCompilation,debugShaders:u.debugShaders,vertexShaderSource:t,vertexShaderText:f,fragmentShaderSource:n,fragmentShaderText:d,attributeLocations:i});c={cache:this,shaderProgram:p,keyword:a,derivedKeywords:[],count:0},p._cachedShader=c,this._shaders[a]=c,++this._numberOfShaders}return++c.count,c.shaderProgram};Eh.prototype.replaceDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=this._shaders[o];if(l(r)){MY(this,r);let s=i.derivedKeywords.indexOf(t);s>-1&&i.derivedKeywords.splice(s,1)}return this.createDerivedShaderProgram(e,t,n)};Eh.prototype.getDerivedShaderProgram=function(e,t){let n=e._cachedShader,i=t+n.keyword,o=this._shaders[i];if(l(o))return o.shaderProgram};Eh.prototype.createDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=n.vertexShaderSource,s=n.fragmentShaderSource,a=n.attributeLocations;typeof r=="string"&&(r=new ze({sources:[r]})),typeof s=="string"&&(s=new ze({sources:[s]}));let c=this._context,u=r.createCombinedVertexShader(c),f=s.createCombinedFragmentShader(c),d=new $t({gl:c._gl,logShaderCompilation:c.logShaderCompilation,debugShaders:c.debugShaders,vertexShaderSource:r,vertexShaderText:u,fragmentShaderSource:s,fragmentShaderText:f,attributeLocations:a}),p={cache:this,shaderProgram:d,keyword:o,derivedKeywords:[],count:0};return i.derivedKeywords.push(t),d._cachedShader=p,this._shaders[o]=p,d};function MY(e,t){let n=t.derivedKeywords,i=n.length;for(let o=0;o<i;++o){let r=n[o]+t.keyword,s=e._shaders[r];MY(e,s)}delete e._shaders[t.keyword],t.shaderProgram.finalDestroy()}Eh.prototype.destroyReleasedShaderPrograms=function(){let e=this._shadersToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];MY(this,n),--this._numberOfShaders}this._shadersToRelease={}};Eh.prototype.releaseShaderProgram=function(e){if(l(e)){let t=e._cachedShader;t&&--t.count===0&&(this._shadersToRelease[t.keyword]=t)}};Eh.prototype.isDestroyed=function(){return!1};Eh.prototype.destroy=function(){let e=this._shaders;for(let t in e)e.hasOwnProperty(t)&&e[t].shaderProgram.finalDestroy();return ue(this)};var ZN=Eh;function CT(){this._textures={},this._numberOfTextures=0,this._texturesToRelease={}}Object.defineProperties(CT.prototype,{numberOfTextures:{get:function(){return this._numberOfTextures}}});CT.prototype.getTexture=function(e){let t=this._textures[e];if(l(t))return delete this._texturesToRelease[e],++t.count,t.texture};CT.prototype.addTexture=function(e,t){let n={texture:t,count:1};t.finalDestroy=t.destroy;let i=this;t.destroy=function(){--n.count===0&&(i._texturesToRelease[e]=n)},this._textures[e]=n,++this._numberOfTextures};CT.prototype.destroyReleasedTextures=function(){let e=this._texturesToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];delete this._textures[t],n.texture.finalDestroy(),--this._numberOfTextures}this._texturesToRelease={}};CT.prototype.isDestroyed=function(){return!1};CT.prototype.destroy=function(){let e=this._textures;for(let t in e)e.hasOwnProperty(t)&&e[t].texture.finalDestroy();return ue(this)};var $N=CT;var LY={};function hit(e){let t=6.239996+.0172019696544*e;return .001657*Math.sin(t+.01671*Math.sin(t))}var mit=32.184,pit=2451545;function wge(e,t){t=J.addSeconds(e,mit,t);let n=J.totalDays(t)-pit;return t=J.addSeconds(t,hit(n),t),t}var x8=new J(2451545,0,jn.TAI),_it=1e3,td=R.RADIANS_PER_DEGREE,Hu=R.RADIANS_PER_ARCSECOND,Na=14959787e4,lge=new $;function Dge(e,t,n,i,o,r,s){n<0&&(n=-n,o+=R.PI);let a=e*(1-t),c=i-o,u=o,f=yit(r-i,t),d=git(t,0);Cit(c,n,u,lge);let p=a*(1+t),g=Math.cos(f),m=Math.sin(f),x=1+t*g,b=p/x;return l(s)?(s.x=b*g,s.y=b*m,s.z=0):s=new h(b*g,b*m,0),$.multiplyByVector(lge,s,s)}function git(e,t){return e<=t?"Circular":e<1-t?"Elliptical":e<=1+t?"Parabolic":"Hyperbolic"}function yit(e,t){let n=Tit(e,t);return Ait(n,t)}var xit=50,bit=R.EPSILON8;function Tit(e,t){let n=Math.floor(e/R.TWO_PI);e-=n*R.TWO_PI;let i=e+t*Math.sin(e)/(1-Math.sin(e+t)+Math.sin(e)),o=Number.MAX_VALUE,r;for(r=0;r<xit&&Math.abs(o-i)>bit;++r){o=i;let s=o-t*Math.sin(o)-e,a=1-t*Math.cos(o);i=o-s/a}return o=i+n*R.TWO_PI,o}function Ait(e,t){let n=Math.floor(e/R.TWO_PI);e-=n*R.TWO_PI;let i=Math.cos(e)-t,o=Math.sin(e)*Math.sqrt(1-t*t),r=Math.atan2(o,i);return r=R.zeroToTwoPi(r),e<0&&(r-=R.TWO_PI),r+=n*R.TWO_PI,r}function Cit(e,t,n,i){let o=Math.cos(e),r=Math.sin(e),s=Math.cos(t),a=Math.sin(t),c=Math.cos(n),u=Math.sin(n);return l(i)?(i[0]=c*o-u*r*s,i[1]=u*o+c*r*s,i[2]=r*a,i[3]=-c*r-u*o*s,i[4]=-u*r+c*o*s,i[5]=o*a,i[6]=u*a,i[7]=-c*a,i[8]=s):i=new $(c*o-u*r*s,-c*r-u*o*s,u*a,u*o+c*r*s,-u*r+c*o*s,-c*a,r*a,o*a,s),i}var Eit=1.0000010178*Na,Sit=100.46645683*td,vit=129597742283429e-5*Hu,uge=16002,fge=21863,dge=32004,hge=10931,mge=14529,pge=16368,_ge=15318,gge=32794,wit=64*1e-7*Na,Dit=-152*1e-7*Na,Pit=62*1e-7*Na,Iit=-8*1e-7*Na,Rit=32*1e-7*Na,Oit=-41*1e-7*Na,Mit=19*1e-7*Na,Lit=-11*1e-7*Na,Nit=-150*1e-7*Na,Fit=-46*1e-7*Na,Bit=68*1e-7*Na,kit=54*1e-7*Na,Vit=14*1e-7*Na,Uit=24*1e-7*Na,zit=-28*1e-7*Na,Hit=22*1e-7*Na,yge=10,xge=16002,bge=21863,Tge=10931,Age=1473,Cge=32004,Ege=4387,Sge=73,Git=-325*1e-7,Wit=-322*1e-7,jit=-79*1e-7,qit=232*1e-7,Yit=-52*1e-7,Xit=97*1e-7,Kit=55*1e-7,Zit=-41*1e-7,$it=-105*1e-7,Qit=-137*1e-7,Jit=258*1e-7,eot=35*1e-7,tot=-116*1e-7,not=-88*1e-7,iot=-112*1e-7,oot=-80*1e-7,DS=new J(0,0,jn.TAI);function rot(e,t){wge(e,DS);let i=(DS.dayNumber-x8.dayNumber+(DS.secondsOfDay-x8.secondsOfDay)/Xn.SECONDS_PER_DAY)/(Xn.DAYS_PER_JULIAN_CENTURY*10),o=.3595362*i,r=Eit+wit*Math.cos(uge*o)+Nit*Math.sin(uge*o)+Dit*Math.cos(fge*o)+Fit*Math.sin(fge*o)+Pit*Math.cos(dge*o)+Bit*Math.sin(dge*o)+Iit*Math.cos(hge*o)+kit*Math.sin(hge*o)+Rit*Math.cos(mge*o)+Vit*Math.sin(mge*o)+Oit*Math.cos(pge*o)+Uit*Math.sin(pge*o)+Mit*Math.cos(_ge*o)+zit*Math.sin(_ge*o)+Lit*Math.cos(gge*o)+Hit*Math.sin(gge*o),s=Sit+vit*i+Git*Math.cos(yge*o)+$it*Math.sin(yge*o)+Wit*Math.cos(xge*o)+Qit*Math.sin(xge*o)+jit*Math.cos(bge*o)+Jit*Math.sin(bge*o)+qit*Math.cos(Tge*o)+eot*Math.sin(Tge*o)+Yit*Math.cos(Age*o)+tot*Math.sin(Age*o)+Xit*Math.cos(Cge*o)+not*Math.sin(Cge*o)+Kit*Math.cos(Ege*o)+iot*Math.sin(Ege*o)+Zit*Math.cos(Sge*o)+oot*Math.sin(Sge*o),a=.0167086342-.0004203654*i,c=102.93734808*td+11612.3529*Hu*i,u=469.97289*Hu*i,f=174.87317577*td-8679.27034*Hu*i;return Dge(r,a,u,c,f,s,t)}function Pge(e,t){wge(e,DS);let i=(DS.dayNumber-x8.dayNumber+(DS.secondsOfDay-x8.secondsOfDay)/Xn.SECONDS_PER_DAY)/Xn.DAYS_PER_JULIAN_CENTURY,o=i*i,r=o*i,s=r*i,a=383397.7725+.004*i,c=.055545526-16e-9*i,u=5.15668983*td,f=-8e-5*i+.02966*o-42e-6*r-13e-8*s,d=83.35324312*td,p=146434202669e-4*i-38.2702*o-.045047*r+21301e-8*s,g=125.04455501*td,m=-69679193631e-4*i+6.3602*o+.007625*r-3586e-8*s,x=218.31664563*td,b=17325593434847e-4*i-6.391*o+.006588*r-3169e-8*s,T=297.85019547*td+Hu*(1602961601209e-3*i-6.3706*o+.006593*r-3169e-8*s),C=93.27209062*td+Hu*(17395272628478e-4*i-12.7512*o-.001037*r+417e-8*s),A=134.96340251*td+Hu*(17179159232178e-4*i+31.8792*o+.051635*r-2447e-7*s),E=357.52910918*td+Hu*(1295965810481e-4*i-.5532*o+136e-6*r-1149e-8*s),v=310.17137918*td-Hu*(6967051436e-3*i+6.2068*o+.007618*r-3219e-8*s),D=2*T,O=4*T,I=6*T,L=2*A,N=3*A,_=4*A,S=2*C;a+=3400.4*Math.cos(D)-635.6*Math.cos(D-A)-235.6*Math.cos(A)+218.1*Math.cos(D-E)+181*Math.cos(D+A),c+=.014216*Math.cos(D-A)+.008551*Math.cos(D-L)-.001383*Math.cos(A)+.001356*Math.cos(D+A)-.001147*Math.cos(O-N)-914e-6*Math.cos(O-L)+869e-6*Math.cos(D-E-A)-627e-6*Math.cos(D)-394e-6*Math.cos(O-_)+282e-6*Math.cos(D-E-L)-279e-6*Math.cos(T-A)-236e-6*Math.cos(L)+231e-6*Math.cos(O)+229e-6*Math.cos(I-_)-201e-6*Math.cos(L-S),f+=486.26*Math.cos(D-S)-40.13*Math.cos(D)+37.51*Math.cos(S)+25.73*Math.cos(L-S)+19.97*Math.cos(D-E-S),p+=-55609*Math.sin(D-A)-34711*Math.sin(D-L)-9792*Math.sin(A)+9385*Math.sin(O-N)+7505*Math.sin(O-L)+5318*Math.sin(D+A)+3484*Math.sin(O-_)-3417*Math.sin(D-E-A)-2530*Math.sin(I-_)-2376*Math.sin(D)-2075*Math.sin(D-N)-1883*Math.sin(L)-1736*Math.sin(I-5*A)+1626*Math.sin(E)-1370*Math.sin(I-N),m+=-5392*Math.sin(D-S)-540*Math.sin(E)-441*Math.sin(D)+423*Math.sin(S)-288*Math.sin(L-S),b+=-3332.9*Math.sin(D)+1197.4*Math.sin(D-A)-662.5*Math.sin(E)+396.3*Math.sin(A)-218*Math.sin(D-E);let w=2*v,P=3*v;f+=46.997*Math.cos(v)*i-.614*Math.cos(D-S+v)*i+.614*Math.cos(D-S-v)*i-.0297*Math.cos(w)*o-.0335*Math.cos(v)*o+.0012*Math.cos(D-S+w)*o-16e-5*Math.cos(v)*r+4e-5*Math.cos(P)*r+4e-5*Math.cos(w)*r;let M=2.116*Math.sin(v)*i-.111*Math.sin(D-S-v)*i-.0015*Math.sin(v)*o;p+=M,b+=M,m+=-520.77*Math.sin(v)*i+13.66*Math.sin(D-S+v)*i+1.12*Math.sin(D-v)*i-1.06*Math.sin(S-v)*i+.66*Math.sin(w)*o+.371*Math.sin(v)*o-.035*Math.sin(D-S+w)*o-.015*Math.sin(D-S+v)*o+.0014*Math.sin(v)*r-.0011*Math.sin(P)*r-9e-4*Math.sin(w)*r,a*=_it;let B=u+f*Hu,U=d+p*Hu,V=x+b*Hu,G=g+m*Hu;return Dge(a,c,B,U,G,V,t)}var vge=.012300034,sot=vge/(vge+1)*-1;function aot(e,t){return t=Pge(e,t),h.multiplyByScalar(t,sot,t)}var Ige=new $(1.0000000000000002,5619723173785822e-31,4690511510146299e-34,-5154129427414611e-31,.9174820620691819,-.39777715593191376,-223970096136568e-30,.39777715593191376,.9174820620691819),QN=new h;LY.computeSunPositionInEarthInertialFrame=function(e,t){return l(e)||(e=J.now()),l(t)||(t=new h),QN=rot(e,QN),t=h.negate(QN,t),aot(e,QN),h.subtract(t,QN,t),$.multiplyByVector(Ige,t,t),t};LY.computeMoonPositionInEarthInertialFrame=function(e,t){return l(e)||(e=J.now()),t=Pge(e,t),$.multiplyByVector(Ige,t,t),t};var h0=LY;function cot(e){e=y(e,y.EMPTY_OBJECT),this.color=H.clone(y(e.color,H.WHITE)),this.intensity=y(e.intensity,2)}var X_=cot;function PS(){this.globeDepthTexture=void 0,this.gamma=void 0,this._viewport=new Ge,this._viewportCartesian4=new oe,this._viewportDirty=!1,this._viewportOrthographicMatrix=F.clone(F.IDENTITY),this._viewportTransformation=F.clone(F.IDENTITY),this._model=F.clone(F.IDENTITY),this._view=F.clone(F.IDENTITY),this._inverseView=F.clone(F.IDENTITY),this._projection=F.clone(F.IDENTITY),this._infiniteProjection=F.clone(F.IDENTITY),this._entireFrustum=new z,this._currentFrustum=new z,this._frustumPlanes=new oe,this._farDepthFromNearPlusOne=void 0,this._log2FarDepthFromNearPlusOne=void 0,this._oneOverLog2FarDepthFromNearPlusOne=void 0,this._frameState=void 0,this._temeToPseudoFixed=$.clone(F.IDENTITY),this._view3DDirty=!0,this._view3D=new F,this._inverseView3DDirty=!0,this._inverseView3D=new F,this._inverseModelDirty=!0,this._inverseModel=new F,this._inverseTransposeModelDirty=!0,this._inverseTransposeModel=new $,this._viewRotation=new $,this._inverseViewRotation=new $,this._viewRotation3D=new $,this._inverseViewRotation3D=new $,this._inverseProjectionDirty=!0,this._inverseProjection=new F,this._modelViewDirty=!0,this._modelView=new F,this._modelView3DDirty=!0,this._modelView3D=new F,this._modelViewRelativeToEyeDirty=!0,this._modelViewRelativeToEye=new F,this._inverseModelViewDirty=!0,this._inverseModelView=new F,this._inverseModelView3DDirty=!0,this._inverseModelView3D=new F,this._viewProjectionDirty=!0,this._viewProjection=new F,this._inverseViewProjectionDirty=!0,this._inverseViewProjection=new F,this._modelViewProjectionDirty=!0,this._modelViewProjection=new F,this._inverseModelViewProjectionDirty=!0,this._inverseModelViewProjection=new F,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewProjectionRelativeToEye=new F,this._modelViewInfiniteProjectionDirty=!0,this._modelViewInfiniteProjection=new F,this._normalDirty=!0,this._normal=new $,this._normal3DDirty=!0,this._normal3D=new $,this._inverseNormalDirty=!0,this._inverseNormal=new $,this._inverseNormal3DDirty=!0,this._inverseNormal3D=new $,this._encodedCameraPositionMCDirty=!0,this._encodedCameraPositionMC=new Gn,this._cameraPosition=new h,this._sunPositionWC=new h,this._sunPositionColumbusView=new h,this._sunDirectionWC=new h,this._sunDirectionEC=new h,this._moonDirectionEC=new h,this._lightDirectionWC=new h,this._lightDirectionEC=new h,this._lightColor=new h,this._lightColorHdr=new h,this._pass=void 0,this._mode=void 0,this._mapProjection=void 0,this._ellipsoid=void 0,this._cameraDirection=new h,this._cameraRight=new h,this._cameraUp=new h,this._frustum2DWidth=0,this._eyeHeight=0,this._eyeHeight2D=new z,this._eyeEllipsoidNormalEC=new h,this._eyeEllipsoidCurvature=new z,this._modelToEnu=new F,this._enuToModel=new F,this._pixelRatio=1,this._orthographicIn3D=!1,this._backgroundColor=new H,this._brdfLut=void 0,this._environmentMap=void 0,this._sphericalHarmonicCoefficients=void 0,this._specularEnvironmentMaps=void 0,this._specularEnvironmentMapsDimensions=new z,this._specularEnvironmentMapsMaximumLOD=void 0,this._fogDensity=void 0,this._fogMinimumBrightness=void 0,this._atmosphereHsbShift=void 0,this._atmosphereLightIntensity=void 0,this._atmosphereRayleighCoefficient=new h,this._atmosphereRayleighScaleHeight=new h,this._atmosphereMieCoefficient=new h,this._atmosphereMieScaleHeight=void 0,this._atmosphereMieAnisotropy=void 0,this._atmosphereDynamicLighting=void 0,this._invertClassificationColor=void 0,this._splitPosition=0,this._pixelSizePerMeter=void 0,this._geometricToleranceOverMeter=void 0,this._minimumDisableDepthTestDistance=void 0}Object.defineProperties(PS.prototype,{frameState:{get:function(){return this._frameState}},viewport:{get:function(){return this._viewport},set:function(e){if(!Ge.equals(e,this._viewport)){Ge.clone(e,this._viewport);let t=this._viewport,n=this._viewportCartesian4;n.x=t.x,n.y=t.y,n.z=t.width,n.w=t.height,this._viewportDirty=!0}}},viewportCartesian4:{get:function(){return this._viewportCartesian4}},viewportOrthographic:{get:function(){return Oge(this),this._viewportOrthographicMatrix}},viewportTransformation:{get:function(){return Oge(this),this._viewportTransformation}},model:{get:function(){return this._model},set:function(e){F.clone(e,this._model),this._modelView3DDirty=!0,this._inverseModelView3DDirty=!0,this._inverseModelDirty=!0,this._inverseTransposeModelDirty=!0,this._modelViewDirty=!0,this._inverseModelViewDirty=!0,this._modelViewRelativeToEyeDirty=!0,this._inverseModelViewDirty=!0,this._modelViewProjectionDirty=!0,this._inverseModelViewProjectionDirty=!0,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewInfiniteProjectionDirty=!0,this._normalDirty=!0,this._inverseNormalDirty=!0,this._normal3DDirty=!0,this._inverseNormal3DDirty=!0,this._encodedCameraPositionMCDirty=!0}},inverseModel:{get:function(){return this._inverseModelDirty&&(this._inverseModelDirty=!1,F.inverse(this._model,this._inverseModel)),this._inverseModel}},inverseTransposeModel:{get:function(){let e=this._inverseTransposeModel;return this._inverseTransposeModelDirty&&(this._inverseTransposeModelDirty=!1,F.getMatrix3(this.inverseModel,e),$.transpose(e,e)),e}},view:{get:function(){return this._view}},view3D:{get:function(){return NY(this),this._view3D}},viewRotation:{get:function(){return NY(this),this._viewRotation}},viewRotation3D:{get:function(){return NY(this),this._viewRotation3D}},inverseView:{get:function(){return this._inverseView}},inverseView3D:{get:function(){return Nge(this),this._inverseView3D}},inverseViewRotation:{get:function(){return this._inverseViewRotation}},inverseViewRotation3D:{get:function(){return Nge(this),this._inverseViewRotation3D}},projection:{get:function(){return this._projection}},inverseProjection:{get:function(){return xot(this),this._inverseProjection}},infiniteProjection:{get:function(){return this._infiniteProjection}},modelView:{get:function(){return bot(this),this._modelView}},modelView3D:{get:function(){return Tot(this),this._modelView3D}},modelViewRelativeToEye:{get:function(){return wot(this),this._modelViewRelativeToEye}},inverseModelView:{get:function(){return Aot(this),this._inverseModelView}},inverseModelView3D:{get:function(){return Cot(this),this._inverseModelView3D}},viewProjection:{get:function(){return Eot(this),this._viewProjection}},inverseViewProjection:{get:function(){return Sot(this),this._inverseViewProjection}},modelViewProjection:{get:function(){return vot(this),this._modelViewProjection}},inverseModelViewProjection:{get:function(){return Dot(this),this._inverseModelViewProjection}},modelViewProjectionRelativeToEye:{get:function(){return Pot(this),this._modelViewProjectionRelativeToEye}},modelViewInfiniteProjection:{get:function(){return Iot(this),this._modelViewInfiniteProjection}},normal:{get:function(){return Rot(this),this._normal}},normal3D:{get:function(){return Oot(this),this._normal3D}},inverseNormal:{get:function(){return Mot(this),this._inverseNormal}},inverseNormal3D:{get:function(){return Lot(this),this._inverseNormal3D}},entireFrustum:{get:function(){return this._entireFrustum}},currentFrustum:{get:function(){return this._currentFrustum}},frustumPlanes:{get:function(){return this._frustumPlanes}},farDepthFromNearPlusOne:{get:function(){return this._farDepthFromNearPlusOne}},log2FarDepthFromNearPlusOne:{get:function(){return this._log2FarDepthFromNearPlusOne}},oneOverLog2FarDepthFromNearPlusOne:{get:function(){return this._oneOverLog2FarDepthFromNearPlusOne}},eyeHeight:{get:function(){return this._eyeHeight}},eyeHeight2D:{get:function(){return this._eyeHeight2D}},eyeEllipsoidNormalEC:{get:function(){return this._eyeEllipsoidNormalEC}},eyeEllipsoidCurvature:{get:function(){return this._eyeEllipsoidCurvature}},modelToEnu:{get:function(){return this._modelToEnu}},enuToModel:{get:function(){return this._enuToModel}},sunPositionWC:{get:function(){return this._sunPositionWC}},sunPositionColumbusView:{get:function(){return this._sunPositionColumbusView}},sunDirectionWC:{get:function(){return this._sunDirectionWC}},sunDirectionEC:{get:function(){return this._sunDirectionEC}},moonDirectionEC:{get:function(){return this._moonDirectionEC}},lightDirectionWC:{get:function(){return this._lightDirectionWC}},lightDirectionEC:{get:function(){return this._lightDirectionEC}},lightColor:{get:function(){return this._lightColor}},lightColorHdr:{get:function(){return this._lightColorHdr}},encodedCameraPositionMCHigh:{get:function(){return Lge(this),this._encodedCameraPositionMC.high}},encodedCameraPositionMCLow:{get:function(){return Lge(this),this._encodedCameraPositionMC.low}},temeToPseudoFixedMatrix:{get:function(){return this._temeToPseudoFixed}},pixelRatio:{get:function(){return this._pixelRatio}},fogDensity:{get:function(){return this._fogDensity}},fogMinimumBrightness:{get:function(){return this._fogMinimumBrightness}},atmosphereHsbShift:{get:function(){return this._atmosphereHsbShift}},atmosphereLightIntensity:{get:function(){return this._atmosphereLightIntensity}},atmosphereRayleighCoefficient:{get:function(){return this._atmosphereRayleighCoefficient}},atmosphereRayleighScaleHeight:{get:function(){return this._atmosphereRayleighScaleHeight}},atmosphereMieCoefficient:{get:function(){return this._atmosphereMieCoefficient}},atmosphereMieScaleHeight:{get:function(){return this._atmosphereMieScaleHeight}},atmosphereMieAnisotropy:{get:function(){return this._atmosphereMieAnisotropy}},atmosphereDynamicLighting:{get:function(){return this._atmosphereDynamicLighting}},geometricToleranceOverMeter:{get:function(){return this._geometricToleranceOverMeter}},pass:{get:function(){return this._pass}},backgroundColor:{get:function(){return this._backgroundColor}},brdfLut:{get:function(){return this._brdfLut}},environmentMap:{get:function(){return this._environmentMap}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps}},specularEnvironmentMapsDimensions:{get:function(){return this._specularEnvironmentMapsDimensions}},specularEnvironmentMapsMaximumLOD:{get:function(){return this._specularEnvironmentMapsMaximumLOD}},splitPosition:{get:function(){return this._splitPosition}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance}},invertClassificationColor:{get:function(){return this._invertClassificationColor}},orthographicIn3D:{get:function(){return this._orthographicIn3D}},ellipsoid:{get:function(){return y(this._ellipsoid,te.WGS84)}}});function lot(e,t){F.clone(t,e._view),F.getMatrix3(t,e._viewRotation),e._view3DDirty=!0,e._inverseView3DDirty=!0,e._modelViewDirty=!0,e._modelView3DDirty=!0,e._modelViewRelativeToEyeDirty=!0,e._inverseModelViewDirty=!0,e._inverseModelView3DDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0,e._modelViewInfiniteProjectionDirty=!0,e._normalDirty=!0,e._inverseNormalDirty=!0,e._normal3DDirty=!0,e._inverseNormal3DDirty=!0}function uot(e,t){F.clone(t,e._inverseView),F.getMatrix3(t,e._inverseViewRotation)}function fot(e,t){F.clone(t,e._projection),e._inverseProjectionDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0}function dot(e,t){F.clone(t,e._infiniteProjection),e._modelViewInfiniteProjectionDirty=!0}var Rge=new h,hot=new F;function mot(e,t){h.clone(t.positionWC,e._cameraPosition),h.clone(t.directionWC,e._cameraDirection),h.clone(t.rightWC,e._cameraRight),h.clone(t.upWC,e._cameraUp);let n=e._ellipsoid,i,o=t.positionCartographic;if(l(o)?(e._eyeHeight=o.height,e._eyeEllipsoidNormalEC=n.geodeticSurfaceNormalCartographic(o,e._eyeEllipsoidNormalEC),i=h.fromRadians(o.longitude,o.latitude,0,n,Rge)):(e._eyeHeight=-n.maximumRadius,h.magnitude(t.positionWC)>0&&(e._eyeEllipsoidNormalEC=h.normalize(t.positionWC,e._eyeEllipsoidNormalEC)),i=n.scaleToGeodeticSurface(t.positionWC,Rge)),e._encodedCameraPositionMCDirty=!0,!l(i))return;e._eyeEllipsoidNormalEC=$.multiplyByVector(e._viewRotation,e._eyeEllipsoidNormalEC,e._eyeEllipsoidNormalEC);let r=wt.eastNorthUpToFixedFrame(i,n,hot);e._enuToModel=F.multiplyTransformation(e.inverseModel,r,e._enuToModel),e._modelToEnu=F.inverseTransformation(e._enuToModel,e._modelToEnu),R.equalsEpsilon(n._radii.x,n._radii.y,R.EPSILON15)&&(e._eyeEllipsoidCurvature=n.getLocalCurvature(i,e._eyeEllipsoidCurvature))}var JN=new $,pot=new fe;function _ot(e,t){l(wt.computeIcrfToFixedMatrix(t.time,JN))||(JN=wt.computeTemeToPseudoFixedMatrix(t.time,JN));let n=h0.computeSunPositionInEarthInertialFrame(t.time,e._sunPositionWC);$.multiplyByVector(JN,n,n),h.normalize(n,e._sunDirectionWC),n=$.multiplyByVector(e.viewRotation3D,n,e._sunDirectionEC),h.normalize(n,n),n=h0.computeMoonPositionInEarthInertialFrame(t.time,e._moonDirectionEC),$.multiplyByVector(JN,n,n),$.multiplyByVector(e.viewRotation3D,n,n),h.normalize(n,n);let i=t.mapProjection,r=i.ellipsoid.cartesianToCartographic(e._sunPositionWC,pot);i.project(r,e._sunPositionColumbusView)}PS.prototype.updateCamera=function(e){lot(this,e.viewMatrix),uot(this,e.inverseViewMatrix),mot(this,e),this._entireFrustum.x=e.frustum.near,this._entireFrustum.y=e.frustum.far,this.updateFrustum(e.frustum),this._orthographicIn3D=this._mode!==ne.SCENE2D&&e.frustum instanceof rn};PS.prototype.updateFrustum=function(e){fot(this,e.projectionMatrix),l(e.infiniteProjectionMatrix)&&dot(this,e.infiniteProjectionMatrix),this._currentFrustum.x=e.near,this._currentFrustum.y=e.far,this._farDepthFromNearPlusOne=e.far-e.near+1,this._log2FarDepthFromNearPlusOne=R.log2(this._farDepthFromNearPlusOne),this._oneOverLog2FarDepthFromNearPlusOne=1/this._log2FarDepthFromNearPlusOne;let t=e.offCenterFrustum;l(t)&&(e=t),this._frustumPlanes.x=e.top,this._frustumPlanes.y=e.bottom,this._frustumPlanes.z=e.left,this._frustumPlanes.w=e.right};PS.prototype.updatePass=function(e){this._pass=e};var got=[],yot=new X_;PS.prototype.update=function(e){this._mode=e.mode,this._mapProjection=e.mapProjection,this._ellipsoid=e.mapProjection.ellipsoid,this._pixelRatio=e.pixelRatio;let t=e.camera;this.updateCamera(t),e.mode===ne.SCENE2D?(this._frustum2DWidth=t.frustum.right-t.frustum.left,this._eyeHeight2D.x=this._frustum2DWidth*.5,this._eyeHeight2D.y=this._eyeHeight2D.x*this._eyeHeight2D.x):(this._frustum2DWidth=0,this._eyeHeight2D.x=0,this._eyeHeight2D.y=0),_ot(this,e);let n=y(e.light,yot);n instanceof X_?(this._lightDirectionWC=h.clone(this._sunDirectionWC,this._lightDirectionWC),this._lightDirectionEC=h.clone(this._sunDirectionEC,this._lightDirectionEC)):(this._lightDirectionWC=h.normalize(h.negate(n.direction,this._lightDirectionWC),this._lightDirectionWC),this._lightDirectionEC=$.multiplyByVector(this.viewRotation3D,this._lightDirectionWC,this._lightDirectionEC));let i=n.color,o=h.fromElements(i.red,i.green,i.blue,this._lightColorHdr);o=h.multiplyByScalar(o,n.intensity,o);let r=h.maximumComponent(o);r>1?h.divideByScalar(o,r,this._lightColor):h.clone(o,this._lightColor);let s=e.brdfLutGenerator,a=l(s)?s.colorTexture:void 0;this._brdfLut=a,this._environmentMap=y(e.environmentMap,e.context.defaultCubeMap),this._sphericalHarmonicCoefficients=y(e.sphericalHarmonicCoefficients,got),this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapsMaximumLOD=e.specularEnvironmentMapsMaximumLOD,l(this._specularEnvironmentMaps)&&z.clone(this._specularEnvironmentMaps.dimensions,this._specularEnvironmentMapsDimensions),this._fogDensity=e.fog.density,this._fogMinimumBrightness=e.fog.minimumBrightness;let c=e.atmosphere;l(c)&&(this._atmosphereHsbShift=h.fromElements(c.hueShift,c.saturationShift,c.brightnessShift,this._atmosphereHsbShift),this._atmosphereLightIntensity=c.lightIntensity,this._atmosphereRayleighCoefficient=h.clone(c.rayleighCoefficient,this._atmosphereRayleighCoefficient),this._atmosphereRayleighScaleHeight=c.rayleighScaleHeight,this._atmosphereMieCoefficient=h.clone(c.mieCoefficient,this._atmosphereMieCoefficient),this._atmosphereMieScaleHeight=c.mieScaleHeight,this._atmosphereMieAnisotropy=c.mieAnisotropy,this._atmosphereDynamicLighting=c.dynamicLighting),this._invertClassificationColor=e.invertClassificationColor,this._frameState=e,this._temeToPseudoFixed=wt.computeTemeToPseudoFixedMatrix(e.time,this._temeToPseudoFixed),this._splitPosition=e.splitPosition*e.context.drawingBufferWidth;let u=t.frustum.fov,f=this._viewport,d;l(u)?f.height>f.width?d=Math.tan(.5*u)*2/f.height:d=Math.tan(.5*u)*2/f.width:d=1/Math.max(f.width,f.height),this._geometricToleranceOverMeter=d*e.maximumScreenSpaceError,H.clone(e.backgroundColor,this._backgroundColor),this._minimumDisableDepthTestDistance=e.minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance*=this._minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance===Number.POSITIVE_INFINITY&&(this._minimumDisableDepthTestDistance=-1)};function Oge(e){if(e._viewportDirty){let t=e._viewport;F.computeOrthographicOffCenter(t.x,t.x+t.width,t.y,t.y+t.height,0,1,e._viewportOrthographicMatrix),F.computeViewportTransformation(t,0,1,e._viewportTransformation),e._viewportDirty=!1}}function xot(e){e._inverseProjectionDirty&&(e._inverseProjectionDirty=!1,e._mode!==ne.SCENE2D&&e._mode!==ne.MORPHING&&!e._orthographicIn3D?F.inverse(e._projection,e._inverseProjection):F.clone(F.ZERO,e._inverseProjection))}function bot(e){e._modelViewDirty&&(e._modelViewDirty=!1,F.multiplyTransformation(e._view,e._model,e._modelView))}function Tot(e){e._modelView3DDirty&&(e._modelView3DDirty=!1,F.multiplyTransformation(e.view3D,e._model,e._modelView3D))}function Aot(e){e._inverseModelViewDirty&&(e._inverseModelViewDirty=!1,F.inverse(e.modelView,e._inverseModelView))}function Cot(e){e._inverseModelView3DDirty&&(e._inverseModelView3DDirty=!1,F.inverse(e.modelView3D,e._inverseModelView3D))}function Eot(e){e._viewProjectionDirty&&(e._viewProjectionDirty=!1,F.multiply(e._projection,e._view,e._viewProjection))}function Sot(e){e._inverseViewProjectionDirty&&(e._inverseViewProjectionDirty=!1,F.inverse(e.viewProjection,e._inverseViewProjection))}function vot(e){e._modelViewProjectionDirty&&(e._modelViewProjectionDirty=!1,F.multiply(e._projection,e.modelView,e._modelViewProjection))}function wot(e){if(e._modelViewRelativeToEyeDirty){e._modelViewRelativeToEyeDirty=!1;let t=e.modelView,n=e._modelViewRelativeToEye;n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=0,n[13]=0,n[14]=0,n[15]=t[15]}}function Dot(e){e._inverseModelViewProjectionDirty&&(e._inverseModelViewProjectionDirty=!1,F.inverse(e.modelViewProjection,e._inverseModelViewProjection))}function Pot(e){e._modelViewProjectionRelativeToEyeDirty&&(e._modelViewProjectionRelativeToEyeDirty=!1,F.multiply(e._projection,e.modelViewRelativeToEye,e._modelViewProjectionRelativeToEye))}function Iot(e){e._modelViewInfiniteProjectionDirty&&(e._modelViewInfiniteProjectionDirty=!1,F.multiply(e._infiniteProjection,e.modelView,e._modelViewInfiniteProjection))}function Rot(e){if(e._normalDirty){e._normalDirty=!1;let t=e._normal;F.getMatrix3(e.inverseModelView,t),$.transpose(t,t)}}function Oot(e){if(e._normal3DDirty){e._normal3DDirty=!1;let t=e._normal3D;F.getMatrix3(e.inverseModelView3D,t),$.transpose(t,t)}}function Mot(e){if(e._inverseNormalDirty){e._inverseNormalDirty=!1;let t=e._inverseNormal;F.getMatrix3(e.modelView,t),$.transpose(t,t)}}function Lot(e){if(e._inverseNormal3DDirty){e._inverseNormal3DDirty=!1;let t=e._inverseNormal3D;F.getMatrix3(e.modelView3D,t),$.transpose(t,t)}}var Mge=new h;function Lge(e){e._encodedCameraPositionMCDirty&&(e._encodedCameraPositionMCDirty=!1,F.multiplyByPoint(e.inverseModel,e._cameraPosition,Mge),Gn.fromCartesian(Mge,e._encodedCameraPositionMC))}var Not=new h,Fot=new h,Bot=new h,kot=new h,Vot=new fe,Uot=new h,zot=new F;function Hot(e,t,n,i,o,r,s,a){let c=Not;c.x=e.y,c.y=e.z,c.z=e.x;let u=Fot;u.x=n.y,u.y=n.z,u.z=n.x;let f=Bot;f.x=i.y,f.y=i.z,f.z=i.x;let d=kot;d.x=t.y,d.y=t.z,d.z=t.x,r===ne.SCENE2D&&(c.z=o*.5);let p=s.unproject(c,Vot);p.longitude=R.clamp(p.longitude,-Math.PI,Math.PI),p.latitude=R.clamp(p.latitude,-R.PI_OVER_TWO,R.PI_OVER_TWO);let g=s.ellipsoid,m=g.cartographicToCartesian(p,Uot),x=wt.eastNorthUpToFixedFrame(m,g,zot);return F.multiplyByPointAsVector(x,u,u),F.multiplyByPointAsVector(x,f,f),F.multiplyByPointAsVector(x,d,d),l(a)||(a=new F),a[0]=u.x,a[1]=f.x,a[2]=-d.x,a[3]=0,a[4]=u.y,a[5]=f.y,a[6]=-d.y,a[7]=0,a[8]=u.z,a[9]=f.z,a[10]=-d.z,a[11]=0,a[12]=-h.dot(u,m),a[13]=-h.dot(f,m),a[14]=h.dot(d,m),a[15]=1,a}function NY(e){e._view3DDirty&&(e._mode===ne.SCENE3D?F.clone(e._view,e._view3D):Hot(e._cameraPosition,e._cameraDirection,e._cameraRight,e._cameraUp,e._frustum2DWidth,e._mode,e._mapProjection,e._view3D),F.getMatrix3(e._view3D,e._viewRotation3D),e._view3DDirty=!1)}function Nge(e){e._inverseView3DDirty&&(F.inverseTransformation(e.view3D,e._inverseView3D),F.getMatrix3(e._inverseView3D,e._inverseViewRotation3D),e._inverseView3DDirty=!1)}var eF=PS;function Gu(e,t){let{getWebGLStub:n,requestWebgl1:i,webgl:o={},allowTextureFilterAnisotropic:r=!0}=y(t,{});o.alpha=y(o.alpha,!1),o.stencil=y(o.stencil,!0),o.powerPreference=y(o.powerPreference,"high-performance");let s=l(n)?n(e,o):Got(e,o,i),c=typeof WebGL2RenderingContext<"u"&&s instanceof WebGL2RenderingContext;this._canvas=e,this._originalGLContext=s,this._gl=s,this._webgl2=c,this._id=Hn(),this.validateFramebuffer=!1,this.validateShaderProgram=!1,this.logShaderCompilation=!1,this._throwOnWebGLError=!1,this._shaderCache=new ZN(this),this._textureCache=new $N;let u=s;this._stencilBits=u.getParameter(u.STENCIL_BITS),Nt._maximumCombinedTextureImageUnits=u.getParameter(u.MAX_COMBINED_TEXTURE_IMAGE_UNITS),Nt._maximumCubeMapSize=u.getParameter(u.MAX_CUBE_MAP_TEXTURE_SIZE),Nt._maximumFragmentUniformVectors=u.getParameter(u.MAX_FRAGMENT_UNIFORM_VECTORS),Nt._maximumTextureImageUnits=u.getParameter(u.MAX_TEXTURE_IMAGE_UNITS),Nt._maximumRenderbufferSize=u.getParameter(u.MAX_RENDERBUFFER_SIZE),Nt._maximumTextureSize=u.getParameter(u.MAX_TEXTURE_SIZE),Nt._maximumVaryingVectors=u.getParameter(u.MAX_VARYING_VECTORS),Nt._maximumVertexAttributes=u.getParameter(u.MAX_VERTEX_ATTRIBS),Nt._maximumVertexTextureImageUnits=u.getParameter(u.MAX_VERTEX_TEXTURE_IMAGE_UNITS),Nt._maximumVertexUniformVectors=u.getParameter(u.MAX_VERTEX_UNIFORM_VECTORS),Nt._maximumSamples=this._webgl2?u.getParameter(u.MAX_SAMPLES):0;let f=u.getParameter(u.ALIASED_LINE_WIDTH_RANGE);Nt._minimumAliasedLineWidth=f[0],Nt._maximumAliasedLineWidth=f[1];let d=u.getParameter(u.ALIASED_POINT_SIZE_RANGE);Nt._minimumAliasedPointSize=d[0],Nt._maximumAliasedPointSize=d[1];let p=u.getParameter(u.MAX_VIEWPORT_DIMS);Nt._maximumViewportWidth=p[0],Nt._maximumViewportHeight=p[1];let g=u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_FLOAT);Nt._highpFloatSupported=g.precision!==0;let m=u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_INT);Nt._highpIntSupported=m.rangeMax!==0,this._antialias=u.getContextAttributes().antialias,this._standardDerivatives=!!kr(u,["OES_standard_derivatives"]),this._blendMinmax=!!kr(u,["EXT_blend_minmax"]),this._elementIndexUint=!!kr(u,["OES_element_index_uint"]),this._depthTexture=!!kr(u,["WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture"]),this._fragDepth=!!kr(u,["EXT_frag_depth"]),this._debugShaders=kr(u,["WEBGL_debug_shaders"]),this._textureFloat=!!kr(u,["OES_texture_float"]),this._textureHalfFloat=!!kr(u,["OES_texture_half_float"]),this._textureFloatLinear=!!kr(u,["OES_texture_float_linear"]),this._textureHalfFloatLinear=!!kr(u,["OES_texture_half_float_linear"]),this._colorBufferFloat=!!kr(u,["EXT_color_buffer_float","WEBGL_color_buffer_float"]),this._floatBlend=!!kr(u,["EXT_float_blend"]),this._colorBufferHalfFloat=!!kr(u,["EXT_color_buffer_half_float"]),this._s3tc=!!kr(u,["WEBGL_compressed_texture_s3tc","MOZ_WEBGL_compressed_texture_s3tc","WEBKIT_WEBGL_compressed_texture_s3tc"]),this._pvrtc=!!kr(u,["WEBGL_compressed_texture_pvrtc","WEBKIT_WEBGL_compressed_texture_pvrtc"]),this._astc=!!kr(u,["WEBGL_compressed_texture_astc"]),this._etc=!!kr(u,["WEBG_compressed_texture_etc"]),this._etc1=!!kr(u,["WEBGL_compressed_texture_etc1"]),this._bc7=!!kr(u,["EXT_texture_compression_bptc"]),Cl.setKTX2SupportedFormats(this._s3tc,this._pvrtc,this._astc,this._etc,this._etc1,this._bc7);let x=r?kr(u,["EXT_texture_filter_anisotropic","WEBKIT_EXT_texture_filter_anisotropic"]):void 0;this._textureFilterAnisotropic=x,Nt._maximumTextureFilterAnisotropy=l(x)?u.getParameter(x.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1;let b,T,C,A,E,v,D,O,I,L;if(c){let w=this;b=function(){return w._gl.createVertexArray()},T=function(P){w._gl.bindVertexArray(P)},C=function(P){w._gl.deleteVertexArray(P)},A=function(P,M,B,U,V){u.drawElementsInstanced(P,M,B,U,V)},E=function(P,M,B,U){u.drawArraysInstanced(P,M,B,U)},v=function(P,M){u.vertexAttribDivisor(P,M)},D=function(P){u.drawBuffers(P)}}else O=kr(u,["OES_vertex_array_object"]),l(O)&&(b=function(){return O.createVertexArrayOES()},T=function(w){O.bindVertexArrayOES(w)},C=function(w){O.deleteVertexArrayOES(w)}),I=kr(u,["ANGLE_instanced_arrays"]),l(I)&&(A=function(w,P,M,B,U){I.drawElementsInstancedANGLE(w,P,M,B,U)},E=function(w,P,M,B){I.drawArraysInstancedANGLE(w,P,M,B)},v=function(w,P){I.vertexAttribDivisorANGLE(w,P)}),L=kr(u,["WEBGL_draw_buffers"]),l(L)&&(D=function(w){L.drawBuffersWEBGL(w)});this.glCreateVertexArray=b,this.glBindVertexArray=T,this.glDeleteVertexArray=C,this.glDrawElementsInstanced=A,this.glDrawArraysInstanced=E,this.glVertexAttribDivisor=v,this.glDrawBuffers=D,this._vertexArrayObject=!!O,this._instancedArrays=!!I,this._drawBuffers=!!L,Nt._maximumDrawBuffers=this.drawBuffers?u.getParameter(ee.MAX_DRAW_BUFFERS):1,Nt._maximumColorAttachments=this.drawBuffers?u.getParameter(ee.MAX_COLOR_ATTACHMENTS):1,this._clearColor=new H(0,0,0,0),this._clearDepth=1,this._clearStencil=0;let N=new eF,_=new bc(this),S=Ve.fromCache();this._defaultPassState=_,this._defaultRenderState=S,this._defaultTexture=void 0,this._defaultEmissiveTexture=void 0,this._defaultNormalTexture=void 0,this._defaultCubeMap=void 0,this._us=N,this._currentRenderState=S,this._currentPassState=_,this._currentFramebuffer=void 0,this._maxFrameTextureUnitIndex=0,this._vertexAttribDivisors=[],this._previousDrawInstanced=!1;for(let w=0;w<Nt._maximumVertexAttributes;w++)this._vertexAttribDivisors.push(0);this._pickObjects={},this._nextPickColor=new Uint32Array(1),this.options={getWebGLStub:n,requestWebgl1:i,webgl:o,allowTextureFilterAnisotropic:r},this.cache={},Ve.apply(u,S,_)}function Got(e,t,n){if(typeof WebGLRenderingContext>"u")throw new le("The browser does not support WebGL. Visit http://get.webgl.org.");!n&&!(typeof WebGL2RenderingContext<"u")&&(n=!0);let o=n?"webgl":"webgl2",r=e.getContext(o,t);if(!l(r))throw new le("The browser supports WebGL, but initialization failed.");return r}function Wot(e,t){let n="WebGL Error: ";switch(t){case e.INVALID_ENUM:n+="INVALID_ENUM";break;case e.INVALID_VALUE:n+="INVALID_VALUE";break;case e.INVALID_OPERATION:n+="INVALID_OPERATION";break;case e.OUT_OF_MEMORY:n+="OUT_OF_MEMORY";break;case e.CONTEXT_LOST_WEBGL:n+="CONTEXT_LOST_WEBGL lost";break;default:n+=`Unknown (${t})`}return n}function jot(e,t,n,i){let o=`${Wot(e,i)}: ${t.name}(`;for(let r=0;r<n.length;++r)r!==0&&(o+=", "),o+=n[r];return o+=");",o}function qot(e,t,n){let i=e.getError();if(i!==e.NO_ERROR)throw new le(jot(e,t,n,i))}function Yot(e,t,n){return{get:function(){let i=e[t];return n(e,`get: ${t}`,i),e[t]},set:function(i){e[t]=i,n(e,`set: ${t}`,i)}}}function Xot(e,t){if(!l(t))return e;function n(o){return function(){let r=o.apply(e,arguments);return t(e,o,arguments),r}}let i={};for(let o in e){let r=e[o];r instanceof Function?i[o]=n(r):Object.defineProperty(i,o,Yot(e,o,t))}return i}function kr(e,t){let n=t.length;for(let i=0;i<n;++i){let o=e.getExtension(t[i]);if(o)return o}}var Kot={};Object.defineProperties(Gu.prototype,{id:{get:function(){return this._id}},webgl2:{get:function(){return this._webgl2}},canvas:{get:function(){return this._canvas}},shaderCache:{get:function(){return this._shaderCache}},textureCache:{get:function(){return this._textureCache}},uniformState:{get:function(){return this._us}},stencilBits:{get:function(){return this._stencilBits}},stencilBuffer:{get:function(){return this._stencilBits>=8}},antialias:{get:function(){return this._antialias}},msaa:{get:function(){return this._webgl2}},standardDerivatives:{get:function(){return this._standardDerivatives||this._webgl2}},floatBlend:{get:function(){return this._floatBlend}},blendMinmax:{get:function(){return this._blendMinmax||this._webgl2}},elementIndexUint:{get:function(){return this._elementIndexUint||this._webgl2}},depthTexture:{get:function(){return this._depthTexture||this._webgl2}},floatingPointTexture:{get:function(){return this._webgl2||this._textureFloat}},halfFloatingPointTexture:{get:function(){return this._webgl2||this._textureHalfFloat}},textureFloatLinear:{get:function(){return this._textureFloatLinear}},textureHalfFloatLinear:{get:function(){return this._webgl2&&this._textureFloatLinear||!this._webgl2&&this._textureHalfFloatLinear}},textureFilterAnisotropic:{get:function(){return!!this._textureFilterAnisotropic}},s3tc:{get:function(){return this._s3tc}},pvrtc:{get:function(){return this._pvrtc}},astc:{get:function(){return this._astc}},etc:{get:function(){return this._etc}},etc1:{get:function(){return this._etc1}},bc7:{get:function(){return this._bc7}},supportsBasis:{get:function(){return this._s3tc||this._pvrtc||this._astc||this._etc||this._etc1||this._bc7}},vertexArrayObject:{get:function(){return this._vertexArrayObject||this._webgl2}},fragmentDepth:{get:function(){return this._fragDepth||this._webgl2}},instancedArrays:{get:function(){return this._instancedArrays||this._webgl2}},colorBufferFloat:{get:function(){return this._colorBufferFloat}},colorBufferHalfFloat:{get:function(){return this._webgl2&&this._colorBufferFloat||!this._webgl2&&this._colorBufferHalfFloat}},drawBuffers:{get:function(){return this._drawBuffers||this._webgl2}},debugShaders:{get:function(){return this._debugShaders}},throwOnWebGLError:{get:function(){return this._throwOnWebGLError},set:function(e){this._throwOnWebGLError=e,this._gl=Xot(this._originalGLContext,e?qot:void 0)}},defaultTexture:{get:function(){return this._defaultTexture===void 0&&(this._defaultTexture=new Dt({context:this,source:{width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])},flipY:!1})),this._defaultTexture}},defaultEmissiveTexture:{get:function(){return this._defaultEmissiveTexture===void 0&&(this._defaultEmissiveTexture=new Dt({context:this,pixelFormat:nt.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([0,0,0])},flipY:!1})),this._defaultEmissiveTexture}},defaultNormalTexture:{get:function(){return this._defaultNormalTexture===void 0&&(this._defaultNormalTexture=new Dt({context:this,pixelFormat:nt.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([128,128,255])},flipY:!1})),this._defaultNormalTexture}},defaultCubeMap:{get:function(){if(this._defaultCubeMap===void 0){let e={width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])};this._defaultCubeMap=new Ja({context:this,source:{positiveX:e,negativeX:e,positiveY:e,negativeY:e,positiveZ:e,negativeZ:e},flipY:!1})}return this._defaultCubeMap}},drawingBufferHeight:{get:function(){return this._gl.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._gl.drawingBufferWidth}},defaultFramebuffer:{get:function(){return Kot}}});function Fge(e,t,n,i){let o=e._currentRenderState,r=e._currentPassState;e._currentRenderState=t,e._currentPassState=n,Ve.partialApply(e._gl,o,t,r,n,i)}var FY;typeof WebGLRenderingContext<"u"&&(FY=[ee.BACK]);function BY(e,t){if(t!==e._currentFramebuffer){e._currentFramebuffer=t;let n=FY;if(l(t))t._bind(),n=t._getActiveColorAttachments();else{let i=e._gl;i.bindFramebuffer(i.FRAMEBUFFER,null)}e.drawBuffers&&e.glDrawBuffers(n)}}var Zot=new ii;Gu.prototype.clear=function(e,t){e=y(e,Zot),t=y(t,this._defaultPassState);let n=this._gl,i=0,o=e.color,r=e.depth,s=e.stencil;l(o)&&(H.equals(this._clearColor,o)||(H.clone(o,this._clearColor),n.clearColor(o.red,o.green,o.blue,o.alpha)),i|=n.COLOR_BUFFER_BIT),l(r)&&(r!==this._clearDepth&&(this._clearDepth=r,n.clearDepth(r)),i|=n.DEPTH_BUFFER_BIT),l(s)&&(s!==this._clearStencil&&(this._clearStencil=s,n.clearStencil(s)),i|=n.STENCIL_BUFFER_BIT);let a=y(e.renderState,this._defaultRenderState);Fge(this,a,t,!0);let c=y(e.framebuffer,t.framebuffer);BY(this,c),n.clear(i)};function $ot(e,t,n,i,o){BY(e,t),Fge(e,o,n,!1),i._bind(),e._maxFrameTextureUnitIndex=Math.max(e._maxFrameTextureUnitIndex,i.maximumTextureUnitIndex)}function Qot(e,t,n,i){let o=t._primitiveType,r=t._vertexArray,s=t._offset,a=t._count,c=t.instanceCount;e._us.model=y(t._modelMatrix,F.IDENTITY),n._setUniforms(i,e._us,e.validateShaderProgram),r._bind();let u=r.indexBuffer;l(u)?(s=s*u.bytesPerIndex,l(a)?a=Math.min(a,u.numberOfIndices):a=u.numberOfIndices,c===0?e._gl.drawElements(o,a,u.indexDatatype,s):e.glDrawElementsInstanced(o,a,u.indexDatatype,s,c)):(l(a)?a=Math.min(a,r.numberOfVertices):a=r.numberOfVertices,c===0?e._gl.drawArrays(o,s,a):e.glDrawArraysInstanced(o,s,a,c)),r._unBind()}Gu.prototype.draw=function(e,t,n,i){t=y(t,this._defaultPassState);let o=y(e._framebuffer,t.framebuffer),r=y(e._renderState,this._defaultRenderState);n=y(n,e._shaderProgram),i=y(i,e._uniformMap),$ot(this,o,t,n,r),Qot(this,e,n,i)};Gu.prototype.endFrame=function(){let e=this._gl;e.useProgram(null),this._currentFramebuffer=void 0,e.bindFramebuffer(e.FRAMEBUFFER,null);let t=FY;this.drawBuffers&&this.glDrawBuffers(t);let n=this._maxFrameTextureUnitIndex;this._maxFrameTextureUnitIndex=0;for(let i=0;i<n;++i)e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,null),e.bindTexture(e.TEXTURE_CUBE_MAP,null)};Gu.prototype.readPixels=function(e){let t=this._gl;e=y(e,y.EMPTY_OBJECT);let n=Math.max(y(e.x,0),0),i=Math.max(y(e.y,0),0),o=y(e.width,t.drawingBufferWidth),r=y(e.height,t.drawingBufferHeight),s=e.framebuffer,a=We.UNSIGNED_BYTE;l(s)&&s.numberOfColorAttachments>0&&(a=s.getColorTexture(0).pixelDatatype);let c=nt.createTypedArray(nt.RGBA,a,o,r);return BY(this,s),t.readPixels(n,i,o,r,nt.RGBA,We.toWebGLConstant(a,this),c),c};var Bge={position:0,textureCoordinates:1};Gu.prototype.getViewportQuadVertexArray=function(){let e=this.cache.viewportQuad_vertexArray;if(!l(e)){let t=new st({attributes:{position:new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[-1,-1,1,-1,1,1,-1,1]}),textureCoordinates:new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[0,0,1,0,1,1,0,1]})},indices:new Uint16Array([0,1,2,0,2,3]),primitiveType:Le.TRIANGLES});e=ei.fromGeometry({context:this,geometry:t,attributeLocations:Bge,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),this.cache.viewportQuad_vertexArray=e}return e};Gu.prototype.createViewportQuadCommand=function(e,t){return t=y(t,y.EMPTY_OBJECT),new Ze({vertexArray:this.getViewportQuadVertexArray(),primitiveType:Le.TRIANGLES,renderState:t.renderState,shaderProgram:$t.fromCache({context:this,vertexShaderSource:AT,fragmentShaderSource:e,attributeLocations:Bge}),uniformMap:t.uniformMap,owner:t.owner,framebuffer:t.framebuffer,pass:t.pass})};Gu.prototype.getObjectByPickColor=function(e){return this._pickObjects[e.toRgba()]};function kY(e,t,n){this._pickObjects=e,this.key=t,this.color=n}Object.defineProperties(kY.prototype,{object:{get:function(){return this._pickObjects[this.key]},set:function(e){this._pickObjects[this.key]=e}}});kY.prototype.destroy=function(){delete this._pickObjects[this.key]};Gu.prototype.createPickId=function(e){++this._nextPickColor[0];let t=this._nextPickColor[0];if(t===0)throw new le("Out of unique Pick IDs.");return this._pickObjects[t]=e,new kY(this._pickObjects,t,H.fromRgba(t))};Gu.prototype.isDestroyed=function(){return!1};Gu.prototype.destroy=function(){let e=this.cache;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];l(n.destroy)&&n.destroy()}return this._shaderCache=this._shaderCache.destroy(),this._textureCache=this._textureCache.destroy(),this._defaultTexture=this._defaultTexture&&this._defaultTexture.destroy(),this._defaultEmissiveTexture=this._defaultEmissiveTexture&&this._defaultEmissiveTexture.destroy(),this._defaultNormalTexture=this._defaultNormalTexture&&this._defaultNormalTexture.destroy(),this._defaultCubeMap=this._defaultCubeMap&&this._defaultCubeMap.destroy(),ue(this)};Gu._deprecationWarning=Ls;var tF=Gu;function Jot(e,t,n){let i={flipY:!0,skipColorSpaceConversion:n,preferImageBitmap:!0},o=[De.createIfNeeded(t.positiveX).fetchImage(i),De.createIfNeeded(t.negativeX).fetchImage(i),De.createIfNeeded(t.positiveY).fetchImage(i),De.createIfNeeded(t.negativeY).fetchImage(i),De.createIfNeeded(t.positiveZ).fetchImage(i),De.createIfNeeded(t.negativeZ).fetchImage(i)];return Promise.all(o).then(function(r){return new Ja({context:e,source:{positiveX:r[0],negativeX:r[1],positiveY:r[2],negativeY:r[3],positiveZ:r[4],negativeZ:r[5]}})})}var nF=Jot;var ert={NONE:0,LERC:1},nd=Object.freeze(ert);var trt={NONE:0,BITS12:1},js=Object.freeze(trt);var ET=new h,nrt=new h,id=new z,b8=new F,irt=new F,ort=Math.pow(2,12);function Tc(e,t,n,i,o,r,s,a,c,u){let f=js.NONE,d,p;if(l(t)&&l(n)&&l(i)&&l(o)){let g=t.minimum,m=t.maximum,x=h.subtract(m,g,nrt),b=i-n;Math.max(h.maximumComponent(x),b)<ort-1?f=js.BITS12:f=js.NONE,d=F.inverseTransformation(o,new F);let C=h.negate(g,ET);F.multiply(F.fromTranslation(C,b8),d,d);let A=ET;A.x=1/x.x,A.y=1/x.y,A.z=1/x.z,F.multiply(F.fromScale(A,b8),d,d),p=F.clone(o),F.setTranslation(p,h.ZERO,p),o=F.clone(o,new F);let E=F.fromTranslation(g,b8),v=F.fromScale(x,irt),D=F.multiply(E,v,b8);F.multiply(o,D,o),F.multiply(p,D,p)}this.quantization=f,this.minimumHeight=n,this.maximumHeight=i,this.center=h.clone(e),this.toScaledENU=d,this.fromScaledENU=o,this.matrix=p,this.hasVertexNormals=r,this.hasWebMercatorT=y(s,!1),this.hasGeodeticSurfaceNormals=y(a,!1),this.exaggeration=y(c,1),this.exaggerationRelativeHeight=y(u,0),this.stride=0,this._offsetGeodeticSurfaceNormal=0,this._offsetVertexNormal=0,this._calculateStrideAndOffsets()}Tc.prototype.encode=function(e,t,n,i,o,r,s,a){let c=i.x,u=i.y;if(this.quantization===js.BITS12){n=F.multiplyByPoint(this.toScaledENU,n,ET),n.x=R.clamp(n.x,0,1),n.y=R.clamp(n.y,0,1),n.z=R.clamp(n.z,0,1);let f=this.maximumHeight-this.minimumHeight,d=R.clamp((o-this.minimumHeight)/f,0,1);z.fromElements(n.x,n.y,id);let p=Mn.compressTextureCoordinates(id);z.fromElements(n.z,d,id);let g=Mn.compressTextureCoordinates(id);z.fromElements(c,u,id);let m=Mn.compressTextureCoordinates(id);if(e[t++]=p,e[t++]=g,e[t++]=m,this.hasWebMercatorT){z.fromElements(s,0,id);let x=Mn.compressTextureCoordinates(id);e[t++]=x}}else h.subtract(n,this.center,ET),e[t++]=ET.x,e[t++]=ET.y,e[t++]=ET.z,e[t++]=o,e[t++]=c,e[t++]=u,this.hasWebMercatorT&&(e[t++]=s);return this.hasVertexNormals&&(e[t++]=Mn.octPackFloat(r)),this.hasGeodeticSurfaceNormals&&(e[t++]=a.x,e[t++]=a.y,e[t++]=a.z),t};var rrt=new h,kge=new h;Tc.prototype.addGeodeticSurfaceNormals=function(e,t,n){if(this.hasGeodeticSurfaceNormals)return;let i=this.stride,o=e.length/i;this.hasGeodeticSurfaceNormals=!0,this._calculateStrideAndOffsets();let r=this.stride;for(let s=0;s<o;s++){for(let f=0;f<i;f++){let d=s*i+f,p=s*r+f;t[p]=e[d]}let a=this.decodePosition(t,s,rrt),c=n.geodeticSurfaceNormal(a,kge),u=s*r+this._offsetGeodeticSurfaceNormal;t[u]=c.x,t[u+1]=c.y,t[u+2]=c.z}};Tc.prototype.removeGeodeticSurfaceNormals=function(e,t){if(!this.hasGeodeticSurfaceNormals)return;let n=this.stride,i=e.length/n;this.hasGeodeticSurfaceNormals=!1,this._calculateStrideAndOffsets();let o=this.stride;for(let r=0;r<i;r++)for(let s=0;s<o;s++){let a=r*n+s,c=r*o+s;t[c]=e[a]}};Tc.prototype.decodePosition=function(e,t,n){if(l(n)||(n=new h),t*=this.stride,this.quantization===js.BITS12){let i=Mn.decompressTextureCoordinates(e[t],id);n.x=i.x,n.y=i.y;let o=Mn.decompressTextureCoordinates(e[t+1],id);return n.z=o.x,F.multiplyByPoint(this.fromScaledENU,n,n)}return n.x=e[t],n.y=e[t+1],n.z=e[t+2],h.add(n,this.center,n)};Tc.prototype.getExaggeratedPosition=function(e,t,n){n=this.decodePosition(e,t,n);let i=this.exaggeration,o=this.exaggerationRelativeHeight;if(i!==1&&this.hasGeodeticSurfaceNormals){let s=this.decodeGeodeticSurfaceNormal(e,t,kge),a=this.decodeHeight(e,t),c=pr.getHeight(a,i,o)-a;n.x+=s.x*c,n.y+=s.y*c,n.z+=s.z*c}return n};Tc.prototype.decodeTextureCoordinates=function(e,t,n){return l(n)||(n=new z),t*=this.stride,this.quantization===js.BITS12?Mn.decompressTextureCoordinates(e[t+2],n):z.fromElements(e[t+4],e[t+5],n)};Tc.prototype.decodeHeight=function(e,t){return t*=this.stride,this.quantization===js.BITS12?Mn.decompressTextureCoordinates(e[t+1],id).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight:e[t+3]};Tc.prototype.decodeWebMercatorT=function(e,t){return t*=this.stride,this.quantization===js.BITS12?Mn.decompressTextureCoordinates(e[t+3],id).x:e[t+6]};Tc.prototype.getOctEncodedNormal=function(e,t,n){t=t*this.stride+this._offsetVertexNormal;let i=e[t]/256,o=Math.floor(i),r=(i-o)*256;return z.fromElements(o,r,n)};Tc.prototype.decodeGeodeticSurfaceNormal=function(e,t,n){return t=t*this.stride+this._offsetGeodeticSurfaceNormal,n.x=e[t],n.y=e[t+1],n.z=e[t+2],n};Tc.prototype._calculateStrideAndOffsets=function(){let e=0;switch(this.quantization){case js.BITS12:e+=3;break;default:e+=6}this.hasWebMercatorT&&(e+=1),this.hasVertexNormals&&(this._offsetVertexNormal=e,e+=1),this.hasGeodeticSurfaceNormals&&(this._offsetGeodeticSurfaceNormal=e,e+=3),this.stride=e};var T8={position3DAndHeight:0,textureCoordAndEncodedNormals:1,geodeticSurfaceNormal:2},A8={compressed0:0,compressed1:1,geodeticSurfaceNormal:2};Tc.prototype.getAttributes=function(e){let t=X.FLOAT,n=X.getSizeInBytes(t),i=this.stride*n,o=0,r=[];function s(a,c){r.push({index:a,vertexBuffer:e,componentDatatype:t,componentsPerAttribute:c,offsetInBytes:o,strideInBytes:i}),o+=c*n}if(this.quantization===js.NONE){s(T8.position3DAndHeight,4);let a=2;a+=this.hasWebMercatorT?1:0,a+=this.hasVertexNormals?1:0,s(T8.textureCoordAndEncodedNormals,a),this.hasGeodeticSurfaceNormals&&s(T8.geodeticSurfaceNormal,3)}else{let a=this.hasWebMercatorT||this.hasVertexNormals,c=this.hasWebMercatorT&&this.hasVertexNormals;s(A8.compressed0,a?4:3),c&&s(A8.compressed1,1),this.hasGeodeticSurfaceNormals&&s(A8.geodeticSurfaceNormal,3)}return r};Tc.prototype.getAttributeLocations=function(){return this.quantization===js.NONE?T8:A8};Tc.clone=function(e,t){if(l(e))return l(t)||(t=new Tc),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=h.clone(e.center),t.toScaledENU=F.clone(e.toScaledENU),t.fromScaledENU=F.clone(e.fromScaledENU),t.matrix=F.clone(e.matrix),t.hasVertexNormals=e.hasVertexNormals,t.hasWebMercatorT=e.hasWebMercatorT,t.hasGeodeticSurfaceNormals=e.hasGeodeticSurfaceNormals,t.exaggeration=e.exaggeration,t.exaggerationRelativeHeight=e.exaggerationRelativeHeight,t._calculateStrideAndOffsets(),t};var Ac=Tc;var Wm={};Wm.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var VY=new h,srt=new F,art=new h,crt=new h;Wm.computeVertices=function(e){let t=Math.cos,n=Math.sin,i=Math.sqrt,o=Math.atan,r=Math.exp,s=R.PI_OVER_TWO,a=R.toRadians,c=e.heightmap,u=e.width,f=e.height,d=e.skirtHeight,p=d>0,g=y(e.isGeographic,!0),m=y(e.ellipsoid,te.WGS84),x=1/m.maximumRadius,b=se.clone(e.nativeRectangle),T=se.clone(e.rectangle),C,A,E,v;l(T)?(C=T.west,A=T.south,E=T.east,v=T.north):g?(C=a(b.west),A=a(b.south),E=a(b.east),v=a(b.north)):(C=b.west*x,A=s-2*o(r(-b.south*x)),E=b.east*x,v=s-2*o(r(-b.north*x)));let D=e.relativeToCenter,O=l(D);D=O?D:h.ZERO;let I=y(e.includeWebMercatorT,!1),L=y(e.exaggeration,1),N=y(e.exaggerationRelativeHeight,0),S=L!==1,w=y(e.structure,Wm.DEFAULT_STRUCTURE),P=y(w.heightScale,Wm.DEFAULT_STRUCTURE.heightScale),M=y(w.heightOffset,Wm.DEFAULT_STRUCTURE.heightOffset),B=y(w.elementsPerHeight,Wm.DEFAULT_STRUCTURE.elementsPerHeight),U=y(w.stride,Wm.DEFAULT_STRUCTURE.stride),V=y(w.elementMultiplier,Wm.DEFAULT_STRUCTURE.elementMultiplier),G=y(w.isBigEndian,Wm.DEFAULT_STRUCTURE.isBigEndian),k=se.computeWidth(b),Y=se.computeHeight(b),W=k/(u-1),Q=Y/(f-1);g||(k*=x,Y*=x);let j=m.radiiSquared,K=j.x,Z=j.y,he=j.z,be=65536,re=-65536,_e=wt.eastNorthUpToFixedFrame(D,m),xe=F.inverseTransformation(_e,srt),Ce,we;I&&(Ce=Si.geodeticLatitudeToMercatorAngle(A),we=1/(Si.geodeticLatitudeToMercatorAngle(v)-Ce));let Oe=art;Oe.x=Number.POSITIVE_INFINITY,Oe.y=Number.POSITIVE_INFINITY,Oe.z=Number.POSITIVE_INFINITY;let ke=crt;ke.x=Number.NEGATIVE_INFINITY,ke.y=Number.NEGATIVE_INFINITY,ke.z=Number.NEGATIVE_INFINITY;let At=Number.POSITIVE_INFINITY,Bt=u*f,rt=d>0?u*2+f*2:0,Qe=Bt+rt,Kt=new Array(Qe),ht=new Array(Qe),mt=new Array(Qe),Zt=I?new Array(Qe):[],me=S?new Array(Qe):[],Ae=0,Ut=f,ut=0,Ai=u;p&&(--Ae,++Ut,--ut,++Ai);let po=1e-5;for(let Ye=Ae;Ye<Ut;++Ye){let ft=Ye;ft<0&&(ft=0),ft>=f&&(ft=f-1);let Wt=b.north-Q*ft;g?Wt=a(Wt):Wt=s-2*o(r(-Wt*x));let wn=(Wt-A)/(v-A);wn=R.clamp(wn,0,1);let qn=Ye===Ae,_o=Ye===Ut-1;d>0&&(qn?Wt+=po*Y:_o&&(Wt-=po*Y));let za=t(Wt),ya=n(Wt),or=he*ya,Zi;I&&(Zi=(Si.geodeticLatitudeToMercatorAngle(Wt)-Ce)*we);for(let Ps=ut;Ps<Ai;++Ps){let ts=Ps;ts<0&&(ts=0),ts>=u&&(ts=u-1);let Mc=ft*(u*U)+ts*U,Lo;if(B===1)Lo=c[Mc];else{Lo=0;let jt;if(G)for(jt=0;jt<B;++jt)Lo=Lo*V+c[Mc+jt];else for(jt=B-1;jt>=0;--jt)Lo=Lo*V+c[Mc+jt]}Lo=Lo*P+M,re=Math.max(re,Lo),be=Math.min(be,Lo);let br=b.west+W*ts;g?br=a(br):br=br*x;let Ha=(br-C)/(E-C);Ha=R.clamp(Ha,0,1);let Xs=ft*u+ts;if(d>0){let jt=Ps===ut,Se=Ps===Ai-1,Ct=qn||_o||jt||Se;if((qn||_o)&&(jt||Se))continue;Ct&&(Lo-=d,jt?(Xs=Bt+(f-ft-1),br-=po*k):_o?Xs=Bt+f+(u-ts-1):Se?(Xs=Bt+f+u+ft,br+=po*k):qn&&(Xs=Bt+f+u+f+ts))}let Ga=za*t(br),Tg=za*n(br),xa=K*Ga,Wa=Z*Tg,Tr=1/i(xa*Ga+Wa*Tg+or*ya),sf=xa*Tr,af=Wa*Tr,W0=or*Tr,ns=new h;ns.x=sf+Ga*Lo,ns.y=af+Tg*Lo,ns.z=W0+ya*Lo,F.multiplyByPoint(xe,ns,VY),h.minimumByComponent(VY,Oe,Oe),h.maximumByComponent(VY,ke,ke),At=Math.min(At,Lo),Kt[Xs]=ns,mt[Xs]=new z(Ha,wn),ht[Xs]=Lo,I&&(Zt[Xs]=Zi),S&&(me[Xs]=m.geodeticSurfaceNormal(ns))}}let hs=ae.fromPoints(Kt),es;l(T)&&(es=Sn.fromRectangle(T,be,re,m));let Ur;O&&(Ur=new D_(m).computeHorizonCullingPointPossiblyUnderEllipsoid(D,Kt,be));let Wo=new Mg(Oe,ke,D),Be=new Ac(D,Wo,At,re,_e,!1,I,S,L,N),Ke=new Float32Array(Qe*Be.stride),Xe=0;for(let Ye=0;Ye<Qe;++Ye)Xe=Be.encode(Ke,Xe,Kt[Ye],mt[Ye],ht[Ye],void 0,Zt[Ye],me[Ye]);return{vertices:Ke,maximumHeight:re,minimumHeight:be,encoding:Be,boundingSphere3D:hs,orientedBoundingBox:es,occludeePointInScaledSpace:Ur}};var IS=Wm;function m0(){de.throwInstantiationError()}Object.defineProperties(m0.prototype,{credits:{get:de.throwInstantiationError},waterMask:{get:de.throwInstantiationError}});m0.prototype.interpolateHeight=de.throwInstantiationError;m0.prototype.isChildAvailable=de.throwInstantiationError;m0.prototype.createMesh=de.throwInstantiationError;m0.prototype.upsample=de.throwInstantiationError;m0.prototype.wasCreatedByUpsampling=de.throwInstantiationError;m0.maximumAsynchronousTasks=5;var Sh=m0;function lrt(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){this.center=e,this.vertices=t,this.stride=y(u,6),this.indices=n,this.indexCountWithoutSkirts=i,this.vertexCountWithoutSkirts=o,this.minimumHeight=r,this.maximumHeight=s,this.boundingSphere3D=a,this.occludeePointInScaledSpace=c,this.orientedBoundingBox=f,this.encoding=d,this.westIndicesSouthToNorth=p,this.southIndicesEastToWest=g,this.eastIndicesNorthToSouth=m,this.northIndicesWestToEast=x}var od=lrt;function ll(){de.throwInstantiationError()}Object.defineProperties(ll.prototype,{errorEvent:{get:de.throwInstantiationError},credit:{get:de.throwInstantiationError},tilingScheme:{get:de.throwInstantiationError},hasWaterMask:{get:de.throwInstantiationError},hasVertexNormals:{get:de.throwInstantiationError},availability:{get:de.throwInstantiationError}});var Vge=[];ll.getRegularGridIndices=function(e,t){let n=Vge[e];l(n)||(Vge[e]=n=[]);let i=n[t];return l(i)||(e*t<R.SIXTY_FOUR_KILOBYTES?i=n[t]=new Uint16Array((e-1)*(t-1)*6):i=n[t]=new Uint32Array((e-1)*(t-1)*6),Gge(e,t,i,0)),i};var Uge=[];ll.getRegularGridIndicesAndEdgeIndices=function(e,t){let n=Uge[e];l(n)||(Uge[e]=n=[]);let i=n[t];if(!l(i)){let o=ll.getRegularGridIndices(e,t),r=Hge(e,t),s=r.westIndicesSouthToNorth,a=r.southIndicesEastToWest,c=r.eastIndicesNorthToSouth,u=r.northIndicesWestToEast;i=n[t]={indices:o,westIndicesSouthToNorth:s,southIndicesEastToWest:a,eastIndicesNorthToSouth:c,northIndicesWestToEast:u}}return i};var zge=[];ll.getRegularGridAndSkirtIndicesAndEdgeIndices=function(e,t){let n=zge[e];l(n)||(zge[e]=n=[]);let i=n[t];if(!l(i)){let o=e*t,r=(e-1)*(t-1)*6,s=e*2+t*2,a=Math.max(0,s-4)*6,c=o+s,u=r+a,f=Hge(e,t),d=f.westIndicesSouthToNorth,p=f.southIndicesEastToWest,g=f.eastIndicesNorthToSouth,m=f.northIndicesWestToEast,x=Ne.createTypedArray(c,u);Gge(e,t,x,0),ll.addSkirtIndices(d,p,g,m,o,x,r),i=n[t]={indices:x,westIndicesSouthToNorth:d,southIndicesEastToWest:p,eastIndicesNorthToSouth:g,northIndicesWestToEast:m,indexCountWithoutSkirts:r}}return i};ll.addSkirtIndices=function(e,t,n,i,o,r,s){let a=o;s=C8(e,a,r,s),a+=e.length,s=C8(t,a,r,s),a+=t.length,s=C8(n,a,r,s),a+=n.length,C8(i,a,r,s)};function Hge(e,t){let n=new Array(t),i=new Array(e),o=new Array(t),r=new Array(e),s;for(s=0;s<e;++s)r[s]=s,i[s]=e*t-1-s;for(s=0;s<t;++s)o[s]=(s+1)*e-1,n[s]=(t-s-1)*e;return{westIndicesSouthToNorth:n,southIndicesEastToWest:i,eastIndicesNorthToSouth:o,northIndicesWestToEast:r}}function Gge(e,t,n,i){let o=0;for(let r=0;r<t-1;++r){for(let s=0;s<e-1;++s){let a=o,c=a+e,u=c+1,f=a+1;n[i++]=a,n[i++]=c,n[i++]=f,n[i++]=f,n[i++]=c,n[i++]=u,++o}++o}}function C8(e,t,n,i){let o=e[0],r=e.length;for(let s=1;s<r;++s){let a=e[s];n[i++]=o,n[i++]=a,n[i++]=t,n[i++]=t,n[i++]=a,n[i++]=t+1,o=a,++t}return i}ll.heightmapTerrainQuality=.25;ll.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(e,t,n){return e.maximumRadius*2*Math.PI*ll.heightmapTerrainQuality/(t*n)};ll.prototype.requestTileGeometry=de.throwInstantiationError;ll.prototype.getLevelMaximumGeometricError=de.throwInstantiationError;ll.prototype.getTileDataAvailable=de.throwInstantiationError;ll.prototype.loadTileDataAvailability=de.throwInstantiationError;var Kr=ll;function K_(e){this._buffer=e.buffer,this._width=e.width,this._height=e.height,this._childTileMask=y(e.childTileMask,15),this._encoding=y(e.encoding,nd.NONE);let t=IS.DEFAULT_STRUCTURE,n=e.structure;l(n)?n!==t&&(n.heightScale=y(n.heightScale,t.heightScale),n.heightOffset=y(n.heightOffset,t.heightOffset),n.elementsPerHeight=y(n.elementsPerHeight,t.elementsPerHeight),n.stride=y(n.stride,t.stride),n.elementMultiplier=y(n.elementMultiplier,t.elementMultiplier),n.isBigEndian=y(n.isBigEndian,t.isBigEndian)):n=t,this._structure=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._skirtHeight=void 0,this._bufferType=this._encoding===nd.LERC?Float32Array:this._buffer.constructor,this._mesh=void 0}Object.defineProperties(K_.prototype,{credits:{get:function(){}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}}});var Wge="createVerticesFromHeightmap",urt=new mi(Wge),frt=new mi(Wge,Sh.maximumAsynchronousTasks);K_.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,u=t.tileXYToNativeRectangle(n,i,o),f=t.tileXYToRectangle(n,i,o),d=c.cartographicToCartesian(se.center(f)),p=this._structure,m=Kr.getEstimatedLevelZeroGeometricErrorForAHeightmap(c,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(m*4,1e3);let b=(a?frt:urt).scheduleTask({heightmap:this._buffer,structure:p,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:u,rectangle:f,relativeToCenter:d,ellipsoid:c,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof Ci,exaggeration:r,exaggerationRelativeHeight:s,encoding:this._encoding});if(!l(b))return;let T=this;return Promise.resolve(b).then(function(C){let A;T._skirtHeight>0?A=Kr.getRegularGridAndSkirtIndicesAndEdgeIndices(C.gridWidth,C.gridHeight):A=Kr.getRegularGridIndicesAndEdgeIndices(C.gridWidth,C.gridHeight);let E=C.gridWidth*C.gridHeight;return T._mesh=new od(d,new Float32Array(C.vertices),A.indices,A.indexCountWithoutSkirts,E,C.minimumHeight,C.maximumHeight,ae.clone(C.boundingSphere3D),h.clone(C.occludeePointInScaledSpace),C.numberOfAttributes,Sn.clone(C.orientedBoundingBox),Ac.clone(C.encoding),A.westIndicesSouthToNorth,A.southIndicesEastToWest,A.eastIndicesNorthToSouth,A.northIndicesWestToEast),T._buffer=void 0,T._mesh})};K_.prototype._createMeshSync=function(e){let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=t.ellipsoid,c=t.tileXYToNativeRectangle(n,i,o),u=t.tileXYToRectangle(n,i,o),f=a.cartographicToCartesian(se.center(u)),d=this._structure,g=Kr.getEstimatedLevelZeroGeometricErrorForAHeightmap(a,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(g*4,1e3);let m=IS.computeVertices({heightmap:this._buffer,structure:d,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:c,rectangle:u,relativeToCenter:f,ellipsoid:a,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof Ci,exaggeration:r,exaggerationRelativeHeight:s});this._buffer=void 0;let x;this._skirtHeight>0?x=Kr.getRegularGridAndSkirtIndicesAndEdgeIndices(this._width,this._height):x=Kr.getRegularGridIndicesAndEdgeIndices(this._width,this._height);let b=m.gridWidth*m.gridHeight;return this._mesh=new od(f,m.vertices,x.indices,x.indexCountWithoutSkirts,b,m.minimumHeight,m.maximumHeight,m.boundingSphere3D,m.occludeePointInScaledSpace,m.encoding.stride,m.orientedBoundingBox,m.encoding,x.westIndicesSouthToNorth,x.southIndicesEastToWest,x.eastIndicesNorthToSouth,x.northIndicesWestToEast),this._mesh};K_.prototype.interpolateHeight=function(e,t,n){let i=this._width,o=this._height,r=this._structure,s=r.stride,a=r.elementsPerHeight,c=r.elementMultiplier,u=r.isBigEndian,f=r.heightOffset,d=r.heightScale,p=l(this._mesh),g=this._encoding===nd.LERC;if(!p&&g)return;let x;if(p){let b=this._mesh.vertices,T=this._mesh.encoding;x=jge(b,T,f,d,e,i,o,t,n)}else x=drt(this._buffer,a,c,s,u,e,i,o,t,n),x=x*d+f;return x};K_.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(a))return;let c=this._width,u=this._height,f=this._structure,d=f.stride,p=new this._bufferType(c*u*d),g=a.vertices,m=a.encoding,x=e.tileXYToRectangle(t,n,i),b=e.tileXYToRectangle(o,r,s),T=f.heightOffset,C=f.heightScale,A=f.elementsPerHeight,E=f.elementMultiplier,v=f.isBigEndian,D=Math.pow(E,A-1);for(let O=0;O<u;++O){let I=R.lerp(b.north,b.south,O/(u-1));for(let L=0;L<c;++L){let N=R.lerp(b.west,b.east,L/(c-1)),_=jge(g,m,T,C,x,c,u,N,I);_=_<f.lowestEncodedHeight?f.lowestEncodedHeight:_,_=_>f.highestEncodedHeight?f.highestEncodedHeight:_,hrt(p,A,E,D,d,v,O*c+L,_)}}return Promise.resolve(new K_({buffer:p,width:c,height:u,childTileMask:0,structure:this._structure,createdByUpsampling:!0}))};K_.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};K_.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};function drt(e,t,n,i,o,r,s,a,c,u){let f=(c-r.west)*(s-1)/(r.east-r.west),d=(u-r.south)*(a-1)/(r.north-r.south),p=f|0,g=p+1;g>=s&&(g=s-1,p=s-2);let m=d|0,x=m+1;x>=a&&(x=a-1,m=a-2);let b=f-p,T=d-m;m=a-1-m,x=a-1-x;let C=E8(e,t,n,i,o,m*s+p),A=E8(e,t,n,i,o,m*s+g),E=E8(e,t,n,i,o,x*s+p),v=E8(e,t,n,i,o,x*s+g);return qge(b,T,C,A,E,v)}function jge(e,t,n,i,o,r,s,a,c){let u=(a-o.west)*(r-1)/(o.east-o.west),f=(c-o.south)*(s-1)/(o.north-o.south),d=u|0,p=d+1;p>=r&&(p=r-1,d=r-2);let g=f|0,m=g+1;m>=s&&(m=s-1,g=s-2);let x=u-d,b=f-g;g=s-1-g,m=s-1-m;let T=(t.decodeHeight(e,g*r+d)-n)/i,C=(t.decodeHeight(e,g*r+p)-n)/i,A=(t.decodeHeight(e,m*r+d)-n)/i,E=(t.decodeHeight(e,m*r+p)-n)/i;return qge(x,b,T,C,A,E)}function qge(e,t,n,i,o,r){return t<e?n+e*(i-n)+t*(r-i):n+e*(r-o)+t*(o-n)}function E8(e,t,n,i,o,r){r*=i;let s=0,a;if(o)for(a=0;a<t;++a)s=s*n+e[r+a];else for(a=t-1;a>=0;--a)s=s*n+e[r+a];return s}function hrt(e,t,n,i,o,r,s,a){s*=o;let c;if(r)for(c=0;c<t-1;++c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;else for(c=t-1;c>0;--c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;e[s+c]=a}var Fa=K_;function MS(e,t){this._tilingScheme=e,this._maximumLevel=t,this._rootNodes=[]}var ST=new se;function mrt(e,t,n,i){let o=i.length;for(let r=0;r<o;++r){let s=i[r];if(s.x===t&&s.y===n&&s.level===e)return!0}return!1}MS.prototype.addAvailableTileRange=function(e,t,n,i,o){let r=this._tilingScheme,s=this._rootNodes;if(e===0)for(let p=n;p<=o;++p)for(let g=t;g<=i;++g)mrt(e,g,p,s)||s.push(new RS(r,void 0,0,g,p));r.tileXYToRectangle(t,n,e,ST);let a=ST.west,c=ST.north;r.tileXYToRectangle(i,o,e,ST);let u=ST.east,f=ST.south,d=new xrt(e,a,f,u,c);for(let p=0;p<s.length;++p){let g=s[p];UY(g.extent,d)&&brt(this._maximumLevel,g,d)}};MS.prototype.computeMaximumLevelAtPosition=function(e){let t;for(let n=0;n<this._rootNodes.length;++n){let i=this._rootNodes[n];if(OS(i.extent,e)){t=i;break}}return l(t)?iF(void 0,t,e):-1};var prt=[],_rt=[],grt=new se,yrt=new se;MS.prototype.computeBestAvailableLevelOverRectangle=function(e){let t=prt;t.length=0,e.east<e.west?(t.push(se.fromRadians(-Math.PI,e.south,e.east,e.north,grt)),t.push(se.fromRadians(e.west,e.south,Math.PI,e.north,yrt))):t.push(e);let n=_rt;n.length=0;let i;for(i=0;i<this._rootNodes.length;++i)oF(n,this._rootNodes[i],t);for(i=n.length-1;i>=0;--i)if(l(n[i])&&n[i].length===0)return i;return 0};var Yge=new fe;MS.prototype.isTileAvailable=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(t,n,e,ST);return se.center(i,Yge),this.computeMaximumLevelAtPosition(Yge)>=e};MS.prototype.computeChildMaskForTile=function(e,t,n){let i=e+1;if(i>=this._maximumLevel)return 0;let o=0;return o|=this.isTileAvailable(i,2*t,2*n+1)?1:0,o|=this.isTileAvailable(i,2*t+1,2*n+1)?2:0,o|=this.isTileAvailable(i,2*t,2*n)?4:0,o|=this.isTileAvailable(i,2*t+1,2*n)?8:0,o};function RS(e,t,n,i,o){this.tilingScheme=e,this.parent=t,this.level=n,this.x=i,this.y=o,this.extent=e.tileXYToRectangle(i,o,n),this.rectangles=[],this._sw=void 0,this._se=void 0,this._nw=void 0,this._ne=void 0}Object.defineProperties(RS.prototype,{nw:{get:function(){return this._nw||(this._nw=new RS(this.tilingScheme,this,this.level+1,this.x*2,this.y*2)),this._nw}},ne:{get:function(){return this._ne||(this._ne=new RS(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2)),this._ne}},sw:{get:function(){return this._sw||(this._sw=new RS(this.tilingScheme,this,this.level+1,this.x*2,this.y*2+1)),this._sw}},se:{get:function(){return this._se||(this._se=new RS(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2+1)),this._se}}});function xrt(e,t,n,i,o){this.level=e,this.west=t,this.south=n,this.east=i,this.north=o}function UY(e,t){let n=Math.max(e.west,t.west),i=Math.max(e.south,t.south),o=Math.min(e.east,t.east),r=Math.min(e.north,t.north);return i<r&&n<o}function brt(e,t,n){for(;t.level<e;)if(S8(t.nw.extent,n))t=t.nw;else if(S8(t.ne.extent,n))t=t.ne;else if(S8(t.sw.extent,n))t=t.sw;else if(S8(t.se.extent,n))t=t.se;else break;if(t.rectangles.length===0||t.rectangles[t.rectangles.length-1].level<=n.level)t.rectangles.push(n);else{let i=Do(t.rectangles,n.level,Trt);i<0&&(i=~i),t.rectangles.splice(i,0,n)}}function Trt(e,t){return e.level-t}function S8(e,t){return t.west>=e.west&&t.east<=e.east&&t.south>=e.south&&t.north<=e.north}function OS(e,t){return t.longitude>=e.west&&t.longitude<=e.east&&t.latitude>=e.south&&t.latitude<=e.north}function iF(e,t,n){let i=0,o=!1;for(;!o;){let r=t._nw&&OS(t._nw.extent,n),s=t._ne&&OS(t._ne.extent,n),a=t._sw&&OS(t._sw.extent,n),c=t._se&&OS(t._se.extent,n);if(r+s+a+c>1){r&&(i=Math.max(i,iF(t,t._nw,n))),s&&(i=Math.max(i,iF(t,t._ne,n))),a&&(i=Math.max(i,iF(t,t._sw,n))),c&&(i=Math.max(i,iF(t,t._se,n)));break}else r?t=t._nw:s?t=t._ne:a?t=t._sw:c?t=t._se:o=!0}for(;t!==e;){let r=t.rectangles;for(let s=r.length-1;s>=0&&r[s].level>i;--s){let a=r[s];OS(a,n)&&(i=a.level)}t=t.parent}return i}function oF(e,t,n){if(!t)return;let i,o=!1;for(i=0;i<n.length;++i)o=o||UY(t.extent,n[i]);if(!o)return;let r=t.rectangles;for(i=0;i<r.length;++i){let s=r[i];e[s.level]||(e[s.level]=n),e[s.level]=Art(e[s.level],s)}oF(e,t._nw,n),oF(e,t._ne,n),oF(e,t._sw,n),oF(e,t._se,n)}function Art(e,t){let n=[];for(let i=0;i<e.length;++i){let o=e[i];UY(o,t)?(o.west<t.west&&n.push(new se(o.west,o.south,t.west,o.north)),o.east>t.east&&n.push(new se(t.east,o.south,o.east,o.north)),o.south<t.south&&n.push(new se(Math.max(t.west,o.west),o.south,Math.min(t.east,o.east),t.south)),o.north>t.north&&n.push(new se(Math.max(t.west,o.west),t.north,Math.min(t.east,o.east),o.north))):n.push(o)}return n}var vh=MS;function Crt(e){let t,n=e.name,i=e.message;l(n)&&l(i)?t=`${n}: ${i}`:t=e.toString();let o=e.stack;return l(o)&&(t+=` ${o}`),t}var jm=Crt;function v8(e,t,n,i,o,r,s){this.provider=e,this.message=t,this.x=n,this.y=i,this.level=o,this.timesRetried=y(r,0),this.retry=!1,this.error=s}v8.reportError=function(e,t,n,i,o,r,s,a){let c=e;return l(e)?(c.provider=t,c.message=i,c.x=o,c.y=r,c.level=s,c.retry=!1,c.error=a,++c.timesRetried):c=new v8(t,i,o,r,s,0,a),l(n)&&n.numberOfListeners>0?n.raiseEvent(c):l(t)&&console.log(`An error occurred in "${t.constructor.name}": ${jm(i)}`),c};v8.reportSuccess=function(e){l(e)&&(e.timesRetried=-1)};var vo=v8;function p0(e){if(e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,te.WGS84),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,1),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1),this._projection=new Si(this._ellipsoid),l(e.rectangleSouthwestInMeters)&&l(e.rectangleNortheastInMeters))this._rectangleSouthwestInMeters=e.rectangleSouthwestInMeters,this._rectangleNortheastInMeters=e.rectangleNortheastInMeters;else{let i=this._ellipsoid.maximumRadius*Math.PI;this._rectangleSouthwestInMeters=new z(-i,-i),this._rectangleNortheastInMeters=new z(i,i)}let t=this._projection.unproject(this._rectangleSouthwestInMeters),n=this._projection.unproject(this._rectangleNortheastInMeters);this._rectangle=new se(t.longitude,t.latitude,n.longitude,n.latitude)}Object.defineProperties(p0.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});p0.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};p0.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};p0.prototype.rectangleToNativeRectangle=function(e,t){let n=this._projection,i=n.project(se.southwest(e)),o=n.project(se.northeast(e));return l(t)?(t.west=i.x,t.south=i.y,t.east=o.x,t.north=o.y,t):new se(i.x,i.y,o.x,o.y)};p0.prototype.tileXYToNativeRectangle=function(e,t,n,i){let o=this.getNumberOfXTilesAtLevel(n),r=this.getNumberOfYTilesAtLevel(n),s=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/o,a=this._rectangleSouthwestInMeters.x+e*s,c=this._rectangleSouthwestInMeters.x+(e+1)*s,u=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/r,f=this._rectangleNortheastInMeters.y-t*u,d=this._rectangleNortheastInMeters.y-(t+1)*u;return l(i)?(i.west=a,i.south=d,i.east=c,i.north=f,i):new se(a,d,c,f)};p0.prototype.tileXYToRectangle=function(e,t,n,i){let o=this.tileXYToNativeRectangle(e,t,n,i),r=this._projection,s=r.unproject(new z(o.west,o.south)),a=r.unproject(new z(o.east,o.north));return o.west=s.longitude,o.south=s.latitude,o.east=a.longitude,o.north=a.latitude,o};p0.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!se.contains(i,e))return;let o=this.getNumberOfXTilesAtLevel(t),r=this.getNumberOfYTilesAtLevel(t),a=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/o,u=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/r,d=this._projection.project(e),p=d.x-this._rectangleSouthwestInMeters.x,g=this._rectangleNortheastInMeters.y-d.y,m=p/a|0;m>=o&&(m=o-1);let x=g/u|0;return x>=r&&(x=r-1),l(n)?(n.x=m,n.y=x,n):new z(m,x)};var Zr=p0;var Ert=15;function Xge(e){this.ellipsoid=y(e.ellipsoid,te.WGS84),this.credit=void 0,this.tilingScheme=void 0,this.height=void 0,this.width=void 0,this.encoding=void 0,this.lodCount=void 0,this.hasAvailability=!1,this.tilesAvailable=void 0,this.tilesAvailabilityLoaded=void 0,this.levelZeroMaximumGeometricError=void 0,this.terrainDataStructure=void 0}Xge.prototype.build=function(e){e._credit=this.credit,e._tilingScheme=this.tilingScheme,e._height=this.height,e._width=this.width,e._encoding=this.encoding,e._lodCount=this.lodCount,e._hasAvailability=this.hasAvailability,e._tilesAvailable=this.tilesAvailable,e._tilesAvailabilityLoaded=this.tilesAvailabilityLoaded,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._terrainDataStructure=this.terrainDataStructure};function Srt(e,t){let n=t.copyrightText;l(n)&&(e.credit=new Tt(n));let i=t.spatialReference,o=y(i.latestWkid,i.wkid),r=t.extent,s={ellipsoid:e.ellipsoid};if(o===4326)s.rectangle=se.fromDegrees(r.xmin,r.ymin,r.xmax,r.ymax),e.tilingScheme=new Ui(s);else if(o===3857){let u=Math.PI*e.ellipsoid.maximumRadius;t.extent.xmax>u&&(t.extent.xmax=u),t.extent.ymax>u&&(t.extent.ymax=u),t.extent.xmin<-u&&(t.extent.xmin=-u),t.extent.ymin<-u&&(t.extent.ymin=-u),s.rectangleSouthwestInMeters=new z(r.xmin,r.ymin),s.rectangleNortheastInMeters=new z(r.xmax,r.ymax),e.tilingScheme=new Zr(s)}else throw new le("Invalid spatial reference");let a=t.tileInfo;if(!l(a))throw new le("tileInfo is required");e.width=a.rows+1,e.height=a.cols+1,e.encoding=a.format==="LERC"?nd.LERC:nd.NONE,e.lodCount=a.lods.length-1,(e.hasAvailability=t.capabilities.indexOf("Tilemap")!==-1)&&(e.tilesAvailable=new vh(e.tilingScheme,e.lodCount),e.tilesAvailable.addAvailableTileRange(0,0,0,e.tilingScheme.getNumberOfXTilesAtLevel(0),e.tilingScheme.getNumberOfYTilesAtLevel(0)),e.tilesAvailabilityLoaded=new vh(e.tilingScheme,e.lodCount)),e.levelZeroMaximumGeometricError=Kr.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.width,e.tilingScheme.getNumberOfXTilesAtLevel(0)),t.bandCount>1&&console.log("ArcGISTiledElevationTerrainProvider: Terrain data has more than 1 band. Using the first one."),l(t.minValues)&&l(t.maxValues)?e.terrainDataStructure={elementMultiplier:1,lowestEncodedHeight:t.minValues[0],highestEncodedHeight:t.maxValues[0]}:e.terrainDataStructure={elementMultiplier:1}}async function vrt(e,t,n){try{let i=await t.fetchJson();Srt(e,i)}catch(i){let o=`An error occurred while accessing ${t}.`;throw vo.reportError(void 0,n,l(n)?n._errorEvent:void 0,o),i}}function _0(e){e=y(e,y.EMPTY_OBJECT),this._resource=void 0,this._credit=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._maxLevel=void 0,this._terrainDataStructure=void 0,this._width=void 0,this._height=void 0,this._encoding=void 0,this._lodCount=void 0,this._hasAvailability=!1,this._tilesAvailable=void 0,this._tilesAvailabilityLoaded=void 0,this._availableCache={},this._errorEvent=new pe}Object.defineProperties(_0.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){return this._tilesAvailable}}});_0.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=De.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&(n=n.getDerivedResource({queryParameters:{token:t.token}}));let i=n.getDerivedResource({queryParameters:{f:"pjson"}}),o=new Xge(t);await vrt(o,i);let r=new _0(t);return o.build(r),r._resource=n,r};_0.prototype.requestTileGeometry=function(e,t,n,i){let o=this._resource.getDerivedResource({url:`tile/${n}/${t}/${e}`,request:i}),r=this._hasAvailability,s=Promise.resolve(!0),a;if(r&&!l(zY(this,n+1,e*2,t*2))){let d=Kge(this,n+1,e*2,t*2);s=d.promise,a=d.request}let c=o.fetchArrayBuffer();if(!l(c)||!l(s))return;let u=this,f=this._tilesAvailable;return Promise.all([c,s]).then(function(d){return new Fa({buffer:d[0],width:u._width,height:u._height,childTileMask:r?f.computeChildMaskForTile(n,e,t):Ert,structure:u._terrainDataStructure,encoding:u._encoding})}).catch(function(d){return l(a)&&a.state===$n.CANCELLED?(i.cancel(),i.deferred.promise.finally(function(){return i.state=$n.CANCELLED,Promise.reject(d)})):Promise.reject(d)})};function zY(e,t,n,i){if(!e._hasAvailability)return;let o=e._tilesAvailabilityLoaded,r=e._tilesAvailable;if(t>e._lodCount)return!1;if(r.isTileAvailable(t,n,i))return!0;if(o.isTileAvailable(t,n,i))return!1}_0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};_0.prototype.getTileDataAvailable=function(e,t,n){if(!this._hasAvailability)return;let i=zY(this,n,e,t);if(l(i))return i;Kge(this,n,e,t)};_0.prototype.loadTileDataAvailability=function(e,t,n){};function wrt(e,t,n,i){let o=t-1,r=n-1,s=i[e.y*t+e.x],a=[],c={startX:e.x,startY:e.y,endX:0,endY:0},u=new z(e.x+1,e.y+1),f=!1,d=!1;for(;!(f&&d);){let p=u.x,g=d?u.y+1:u.y;if(!f){for(let m=e.y;m<g;++m)if(i[m*t+u.x]!==s){f=!0;break}f?(a.push(new z(u.x,e.y)),--u.x,--p,c.endX=u.x):u.x===o?(c.endX=u.x,f=!0):++u.x}if(!d){let m=u.y*t;for(let x=e.x;x<=p;++x)if(i[m+x]!==s){d=!0;break}d?(a.push(new z(e.x,u.y)),--u.y,c.endY=u.y):u.y===r?(c.endY=u.y,d=!0):++u.y}}return{endingIndices:a,range:c,value:s}}function Drt(e,t,n,i,o){let r=[];if(o.every(function(c){return c===o[0]}))return o[0]===1&&r.push({startX:e,startY:t,endX:e+n-1,endY:t+i-1}),r;let a=[new z(0,0)];for(;a.length>0;){let c=a.pop(),u=wrt(c,n,i,o);if(u.value===1){let d=u.range;d.startX+=e,d.endX+=e,d.startY+=t,d.endY+=t,r.push(d)}let f=u.endingIndices;f.length>0&&(a=a.concat(f))}return r}function Kge(e,t,n,i){if(!e._hasAvailability)return{};let o=Math.floor(n/128)*128,r=Math.floor(i/128)*128,s=Math.min(1<<t,128),a=`tilemap/${t}/${r}/${o}/${s}/${s}`,c=e._availableCache;if(l(c[a]))return c[a];let u=new qo({throttle:!1,throttleByServer:!0,type:os.TERRAIN}),d=e._resource.getDerivedResource({url:a,request:u}).fetchJson();return l(d)?(d=d.then(function(p){let g=Drt(o,r,s,s,p.data);e._tilesAvailabilityLoaded.addAvailableTileRange(t,o,r,o+s,r+s);let m=e._tilesAvailable;for(let x=0;x<g.length;++x){let b=g[x];m.addAvailableTileRange(t,b.startX,b.startY,b.endX,b.endY)}return zY(e,t,n,i)}),c[a]={promise:d,request:u},d=d.finally(function(p){return delete c[a],p}),{promise:d,request:u}):{}}var HY=_0;var Zge="https://dev.virtualearth.net/REST/v1/Locations";function GY(e){e=y(e,y.EMPTY_OBJECT);let t=e.key;this._key=t;let n={key:t};l(e.culture)&&(n.culture=e.culture),this._resource=new De({url:Zge,queryParameters:n}),this._credit=new Tt('<img src="http://dev.virtualearth.net/Branding/logo_powered_by.png"/>',!1)}Object.defineProperties(GY.prototype,{url:{get:function(){return Zge}},key:{get:function(){return this._key}},credit:{get:function(){return this._credit}}});GY.prototype.geocode=async function(e){return this._resource.getDerivedResource({queryParameters:{query:e}}).fetchJsonp("jsonp").then(function(n){return n.resourceSets.length===0?[]:n.resourceSets[0].resources.map(function(o){let r=o.bbox,s=r[0],a=r[1],c=r[2],u=r[3];return{displayName:o.name,destination:se.fromDegrees(a,s,u,c)}})})};var WY=GY;function jY(){}Object.defineProperties(jY.prototype,{credit:{get:function(){}}});jY.prototype.geocode=function(e){let t=e.match(/[^\s,\n]+/g);if(t.length===2||t.length===3){let n=+t[0],i=+t[1],o=t.length===3?+t[2]:300;if(isNaN(n)&&isNaN(i)){let r=/^(\d+.?\d*)([nsew])/i;for(let s=0;s<t.length;++s){let a=t[s].match(r);r.test(t[s])&&a.length===3&&(/^[ns]/i.test(a[2])?i=/^[n]/i.test(a[2])?+a[1]:-a[1]:/^[ew]/i.test(a[2])&&(n=/^[e]/i.test(a[2])?+a[1]:-a[1]))}}if(!isNaN(n)&&!isNaN(i)&&!isNaN(o)){let r={displayName:e,destination:h.fromDegrees(n,i,o)};return Promise.resolve([r])}}return Promise.resolve([])};var qY=jY;var Prt=new oe,$ge=new h,LS=new h;function Irt(e){let t=e.points,n=e.times;if(t.length<3){let i=n[0],o=1/(n[1]-i),r=t[0],s=t[1];return function(a,c){l(c)||(c=new h);let u=(a-i)*o;return h.lerp(r,s,u,c)}}return function(i,o){l(o)||(o=new h);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=Prt;a.z=s,a.y=s*s,a.x=a.y*s,a.w=1;let c,u,f,d,p;return r===0?(c=t[0],u=t[1],f=e.firstTangent,d=h.subtract(t[2],c,$ge),h.multiplyByScalar(d,.5,d),p=F.multiplyByVector(py.hermiteCoefficientMatrix,a,a)):r===t.length-2?(c=t[r],u=t[r+1],d=e.lastTangent,f=h.subtract(u,t[r-1],$ge),h.multiplyByScalar(f,.5,f),p=F.multiplyByVector(py.hermiteCoefficientMatrix,a,a)):(c=t[r-1],u=t[r],f=t[r+1],d=t[r+2],p=F.multiplyByVector(g0.catmullRomCoefficientMatrix,a,a)),o=h.multiplyByScalar(c,p.x,o),h.multiplyByScalar(u,p.y,LS),h.add(o,LS,o),h.multiplyByScalar(f,p.z,LS),h.add(o,LS,o),h.multiplyByScalar(d,p.w,LS),h.add(o,LS,o)}}var Rrt=new h,Ort=new h;function g0(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.firstTangent,o=e.lastTangent;if(t.length>2&&(l(i)||(i=Rrt,h.multiplyByScalar(t[1],2,i),h.subtract(i,t[2],i),h.subtract(i,t[0],i),h.multiplyByScalar(i,.5,i)),!l(o))){let r=t.length-1;o=Ort,h.multiplyByScalar(t[r-1],2,o),h.subtract(t[r],o,o),h.add(o,t[r-2],o),h.multiplyByScalar(o,.5,o)}this._times=n,this._points=t,this._firstTangent=h.clone(i),this._lastTangent=h.clone(o),this._evaluateFunction=Irt(this),this._lastTimeIndex=0}Object.defineProperties(g0.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},firstTangent:{get:function(){return this._firstTangent}},lastTangent:{get:function(){return this._lastTangent}}});g0.catmullRomCoefficientMatrix=new F(-.5,1,-.5,0,1.5,-2.5,0,1,-1.5,2,.5,0,.5,-.5,0,0);g0.prototype.findTimeInterval=io.prototype.findTimeInterval;g0.prototype.wrapTime=io.prototype.wrapTime;g0.prototype.clampTime=io.prototype.clampTime;g0.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var YY=g0;var w8={};w8.clipTriangleAtAxisAlignedThreshold=function(e,t,n,i,o,r){l(r)?r.length=0:r=[];let s,a,c;t?(s=n<e,a=i<e,c=o<e):(s=n>e,a=i>e,c=o>e);let u=s+a+c,f,d,p,g,m,x;return u===1?s?(f=(e-n)/(i-n),d=(e-n)/(o-n),r.push(1),r.push(2),d!==1&&(r.push(-1),r.push(0),r.push(2),r.push(d)),f!==1&&(r.push(-1),r.push(0),r.push(1),r.push(f))):a?(p=(e-i)/(o-i),g=(e-i)/(n-i),r.push(2),r.push(0),g!==1&&(r.push(-1),r.push(1),r.push(0),r.push(g)),p!==1&&(r.push(-1),r.push(1),r.push(2),r.push(p))):c&&(m=(e-o)/(n-o),x=(e-o)/(i-o),r.push(0),r.push(1),x!==1&&(r.push(-1),r.push(2),r.push(1),r.push(x)),m!==1&&(r.push(-1),r.push(2),r.push(0),r.push(m))):u===2?!s&&n!==e?(g=(e-i)/(n-i),m=(e-o)/(n-o),r.push(0),r.push(-1),r.push(1),r.push(0),r.push(g),r.push(-1),r.push(2),r.push(0),r.push(m)):!a&&i!==e?(x=(e-o)/(i-o),f=(e-n)/(i-n),r.push(1),r.push(-1),r.push(2),r.push(1),r.push(x),r.push(-1),r.push(0),r.push(1),r.push(f)):!c&&o!==e&&(d=(e-n)/(o-n),p=(e-i)/(o-i),r.push(2),r.push(-1),r.push(0),r.push(2),r.push(d),r.push(-1),r.push(1),r.push(2),r.push(p)):u!==3&&(r.push(0),r.push(1),r.push(2)),r};w8.computeBarycentricCoordinates=function(e,t,n,i,o,r,s,a,c){let u=n-s,f=s-o,d=r-a,p=i-a,g=1/(d*u+f*p),m=t-a,x=e-s,b=(d*x+f*m)*g,T=(-p*x+u*m)*g,C=1-b-T;return l(c)?(c.x=b,c.y=T,c.z=C,c):new h(b,T,C)};w8.computeLineSegmentLineSegmentIntersection=function(e,t,n,i,o,r,s,a,c){let u=(s-o)*(t-r)-(a-r)*(e-o),f=(n-e)*(t-r)-(i-t)*(e-o),d=(a-r)*(n-e)-(s-o)*(i-t);if(d===0)return;let p=u/d,g=f/d;if(p>=0&&p<=1&&g>=0&&g<=1)return l(c)||(c=new z),c.x=e+p*(n-e),c.y=t+p*(i-t),c};var Z_=w8;function y0(e){this._quantizedVertices=e.quantizedVertices,this._encodedNormals=e.encodedNormals,this._indices=e.indices,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._boundingSphere=e.boundingSphere,this._orientedBoundingBox=e.orientedBoundingBox,this._horizonOcclusionPoint=e.horizonOcclusionPoint,this._credits=e.credits;let t=this._quantizedVertices.length/3,n=this._uValues=this._quantizedVertices.subarray(0,t),i=this._vValues=this._quantizedVertices.subarray(t,2*t);this._heightValues=this._quantizedVertices.subarray(2*t,3*t);function o(s,a){return i[s]-i[a]}function r(s,a){return n[s]-n[a]}this._westIndices=P8(e.westIndices,o,t),this._southIndices=P8(e.southIndices,r,t),this._eastIndices=P8(e.eastIndices,o,t),this._northIndices=P8(e.northIndices,r,t),this._westSkirtHeight=e.westSkirtHeight,this._southSkirtHeight=e.southSkirtHeight,this._eastSkirtHeight=e.eastSkirtHeight,this._northSkirtHeight=e.northSkirtHeight,this._childTileMask=y(e.childTileMask,15),this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._mesh=void 0}Object.defineProperties(y0.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}},canUpsample:{get:function(){return l(this._mesh)}}});var D8=[];function P8(e,t,n){D8.length=e.length;let i=!1;for(let o=0,r=e.length;o<r;++o)D8[o]=e[o],i=i||o>0&&t(e[o-1],e[o])>0;return i?(D8.sort(t),Ne.createTypedArray(n,D8)):e}var Qge="createVerticesFromQuantizedTerrainMesh",Mrt=new mi(Qge),Lrt=new mi(Qge,Sh.maximumAsynchronousTasks);y0.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,u=t.tileXYToRectangle(n,i,o),d=(a?Lrt:Mrt).scheduleTask({minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,quantizedVertices:this._quantizedVertices,octEncodedNormals:this._encodedNormals,includeWebMercatorT:!0,indices:this._indices,westIndices:this._westIndices,southIndices:this._southIndices,eastIndices:this._eastIndices,northIndices:this._northIndices,westSkirtHeight:this._westSkirtHeight,southSkirtHeight:this._southSkirtHeight,eastSkirtHeight:this._eastSkirtHeight,northSkirtHeight:this._northSkirtHeight,rectangle:u,relativeToCenter:this._boundingSphere.center,ellipsoid:c,exaggeration:r,exaggerationRelativeHeight:s});if(!l(d))return;let p=this;return Promise.resolve(d).then(function(g){let m=p._quantizedVertices.length/3,x=m+p._westIndices.length+p._southIndices.length+p._eastIndices.length+p._northIndices.length,b=Ne.createTypedArray(x,g.indices),T=new Float32Array(g.vertices),C=g.center,A=g.minimumHeight,E=g.maximumHeight,v=p._boundingSphere,D=p._orientedBoundingBox,O=y(h.clone(g.occludeePointInScaledSpace),p._horizonOcclusionPoint),I=g.vertexStride,L=Ac.clone(g.encoding);return p._mesh=new od(C,T,b,g.indexCountWithoutSkirts,m,A,E,v,O,I,D,L,g.westIndicesSouthToNorth,g.southIndicesEastToWest,g.eastIndicesNorthToSouth,g.northIndicesWestToEast),p._quantizedVertices=void 0,p._encodedNormals=void 0,p._indices=void 0,p._uValues=void 0,p._vValues=void 0,p._heightValues=void 0,p._westIndices=void 0,p._southIndices=void 0,p._eastIndices=void 0,p._northIndices=void 0,p._mesh})};var Nrt=new mi("upsampleQuantizedTerrainMesh",Sh.maximumAsynchronousTasks);y0.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,u=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=Nrt.scheduleTask({vertices:a.vertices,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:u,childRectangle:d,ellipsoid:f});if(!l(p))return;let g=Math.min(this._westSkirtHeight,this._eastSkirtHeight);g=Math.min(g,this._southSkirtHeight),g=Math.min(g,this._northSkirtHeight);let m=c?g*.5:this._westSkirtHeight,x=u?g*.5:this._southSkirtHeight,b=c?this._eastSkirtHeight:g*.5,T=u?this._northSkirtHeight:g*.5,C=this._credits;return Promise.resolve(p).then(function(A){let E=new Uint16Array(A.vertices),v=Ne.createTypedArray(E.length/3,A.indices),D;return l(A.encodedNormals)&&(D=new Uint8Array(A.encodedNormals)),new y0({quantizedVertices:E,indices:v,encodedNormals:D,minimumHeight:A.minimumHeight,maximumHeight:A.maximumHeight,boundingSphere:ae.clone(A.boundingSphere),orientedBoundingBox:Sn.clone(A.orientedBoundingBox),horizonOcclusionPoint:h.clone(A.horizonOcclusionPoint),westIndices:A.westIndices,southIndices:A.southIndices,eastIndices:A.eastIndices,northIndices:A.northIndices,westSkirtHeight:m,southSkirtHeight:x,eastSkirtHeight:b,northSkirtHeight:T,childTileMask:0,credits:C,createdByUpsampling:!0})})};var XY=32767,Jge=new h;y0.prototype.interpolateHeight=function(e,t,n){let i=R.clamp((t-e.west)/e.width,0,1);i*=XY;let o=R.clamp((n-e.south)/e.height,0,1);return o*=XY,l(this._mesh)?Vrt(this,i,o):Urt(this,i,o)};function eye(e,t,n,i,o,r,s,a){let c=Math.min(n,o,s),u=Math.max(n,o,s),f=Math.min(i,r,a),d=Math.max(i,r,a);return e>=c&&e<=u&&t>=f&&t<=d}var Frt=new z,Brt=new z,krt=new z;function Vrt(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,u,Frt),g=r.decodeTextureCoordinates(o,f,Brt),m=r.decodeTextureCoordinates(o,d,krt);if(eye(t,n,p.x,p.y,g.x,g.y,m.x,m.y)){let x=Z_.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,m.x,m.y,Jge);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let b=r.decodeHeight(o,u),T=r.decodeHeight(o,f),C=r.decodeHeight(o,d);return x.x*b+x.y*T+x.z*C}}}}function Urt(e,t,n){let i=e._uValues,o=e._vValues,r=e._heightValues,s=e._indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=i[u],g=i[f],m=i[d],x=o[u],b=o[f],T=o[d];if(eye(t,n,p,x,g,b,m,T)){let C=Z_.computeBarycentricCoordinates(t,n,p,x,g,b,m,T,Jge);if(C.x>=-1e-15&&C.y>=-1e-15&&C.z>=-1e-15){let A=C.x*r[u]+C.y*r[f]+C.z*r[d];return R.lerp(e._minimumHeight,e._maximumHeight,A/XY)}}}}y0.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};y0.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var vT=y0;function zrt(e){this.resource=e.resource,this.version=e.version,this.isHeightmap=e.isHeightmap,this.tileUrlTemplates=e.tileUrlTemplates,this.availability=e.availability,this.hasVertexNormals=e.hasVertexNormals,this.hasWaterMask=e.hasWaterMask,this.hasMetadata=e.hasMetadata,this.availabilityLevels=e.availabilityLevels,this.availabilityTilesLoaded=e.availabilityTilesLoaded,this.littleEndianExtensionSize=e.littleEndianExtensionSize,this.availabilityPromiseCache={}}function nye(e){this.requestVertexNormals=y(e.requestVertexNormals,!1),this.requestWaterMask=y(e.requestWaterMask,!1),this.requestMetadata=y(e.requestMetadata,!0),this.ellipsoid=e.ellipsoid,this.heightmapWidth=65,this.heightmapStructure=void 0,this.hasWaterMask=!1,this.hasMetadata=!1,this.hasVertexNormals=!1,this.scheme=void 0,this.lastResource=void 0,this.layerJsonResource=void 0,this.previousError=void 0,this.availability=void 0,this.tilingScheme=void 0,this.levelZeroMaximumGeometricError=void 0,this.heightmapStructure=void 0,this.layers=[],this.attribution="",this.overallAvailability=[],this.overallMaxZoom=0,this.tileCredits=[]}nye.prototype.build=function(e){e._heightmapWidth=this.heightmapWidth,e._scheme=this.scheme;let t=l(this.lastResource.credits)?this.lastResource.credits:[];e._tileCredits=t.concat(this.tileCredits),e._availability=this.availability,e._tilingScheme=this.tilingScheme,e._requestWaterMask=this.requestWaterMask,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._heightmapStructure=this.heightmapStructure,e._layers=this.layers,e._hasWaterMask=this.hasWaterMask,e._hasVertexNormals=this.hasVertexNormals,e._hasMetadata=this.hasMetadata};async function iye(e,t,n){if(!t.format){let x="The tile format is not specified in the layer.json file.";throw e.previousError=vo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new le(x)}if(!t.tiles||t.tiles.length===0){let x="The layer.json file does not specify any tile URL templates.";throw e.previousError=vo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new le(x)}let i=!1,o=!1,r=!1,s=!0,a=!1;if(t.format==="heightmap-1.0")a=!0,l(e.heightmapStructure)||(e.heightmapStructure={heightScale:1/5,heightOffset:-1e3,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1,lowestEncodedHeight:0,highestEncodedHeight:256*256-1}),o=!0,e.requestWaterMask=!0;else if(t.format.indexOf("quantized-mesh-1.")!==0){let x=`The tile format "${t.format}" is invalid or not supported.`;throw e.previousError=vo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new le(x)}let c=t.tiles,u=t.maxzoom;if(e.overallMaxZoom=Math.max(e.overallMaxZoom,u),!t.projection||t.projection==="EPSG:4326")e.tilingScheme=new Ui({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else if(t.projection==="EPSG:3857")e.tilingScheme=new Zr({numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else{let x=`The projection "${t.projection}" is invalid or not supported.`;throw e.previousError=vo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new le(x)}if(e.levelZeroMaximumGeometricError=Kr.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.heightmapWidth,e.tilingScheme.getNumberOfXTilesAtLevel(0)),!t.scheme||t.scheme==="tms"||t.scheme==="slippyMap")e.scheme=t.scheme;else{let x=`The scheme "${t.scheme}" is invalid or not supported.`;throw e.previousError=vo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new le(x)}let f;l(t.extensions)&&t.extensions.indexOf("octvertexnormals")!==-1?i=!0:l(t.extensions)&&t.extensions.indexOf("vertexnormals")!==-1&&(i=!0,s=!1),l(t.extensions)&&t.extensions.indexOf("watermask")!==-1&&(o=!0),l(t.extensions)&&t.extensions.indexOf("metadata")!==-1&&(r=!0);let d=t.metadataAvailability,p=t.available,g;if(l(p)&&!l(d)){g=new vh(e.tilingScheme,p.length);for(let x=0;x<p.length;++x){let b=p[x],T=e.tilingScheme.getNumberOfYTilesAtLevel(x);l(e.overallAvailability[x])||(e.overallAvailability[x]=[]);for(let C=0;C<b.length;++C){let A=b[C],E=T-A.endY-1,v=T-A.startY-1;e.overallAvailability[x].push([A.startX,E,A.endX,v]),g.addAvailableTileRange(x,A.startX,E,A.endX,v)}}}else l(d)&&(f=new vh(e.tilingScheme,u),g=new vh(e.tilingScheme,u),e.overallAvailability[0]=[[0,0,1,0]],g.addAvailableTileRange(0,0,0,1,0));e.hasWaterMask=e.hasWaterMask||o,e.hasVertexNormals=e.hasVertexNormals||i,e.hasMetadata=e.hasMetadata||r,l(t.attribution)&&(e.attribution.length>0&&(e.attribution+=" "),e.attribution+=t.attribution),e.layers.push(new zrt({resource:e.lastResource,version:t.version,isHeightmap:a,tileUrlTemplates:c,availability:g,hasVertexNormals:i,hasWaterMask:o,hasMetadata:r,availabilityLevels:d,availabilityTilesLoaded:f,littleEndianExtensionSize:s}));let m=t.parentUrl;return l(m)?l(g)?(e.lastResource=e.lastResource.getDerivedResource({url:m}),e.lastResource.appendForwardSlash(),e.layerJsonResource=e.lastResource.getDerivedResource({url:"layer.json"}),await $Y(e),!0):(console.log("A layer.json can't have a parentUrl if it does't have an available array."),!0):!0}function Hrt(e,t,n){let i=`An error occurred while accessing ${e.layerJsonResource.url}.`;if(l(t)&&(i+=` ${t.message}`),e.previousError=vo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,i),e.previousError.retry)return $Y(e,n);throw new le(i)}async function Grt(e,t,n){await iye(e,t,n);let i=e.overallAvailability.length;if(i>0){let o=e.availability=new vh(e.tilingScheme,e.overallMaxZoom);for(let r=0;r<i;++r){let s=e.overallAvailability[r];for(let a=0;a<s.length;++a){let c=s[a];o.addAvailableTileRange(r,c[0],c[1],c[2],c[3])}}}if(e.attribution.length>0){let o=new Tt(e.attribution);e.tileCredits.push(o)}return!0}async function $Y(e,t){try{let n=await e.layerJsonResource.fetchJson();return Grt(e,n,t)}catch(n){return l(n)&&n.statusCode===404?(await iye(e,{tilejson:"2.1.0",format:"heightmap-1.0",version:"1.0.0",scheme:"tms",tiles:["{z}/{x}/{y}.terrain?v={version}"]},t),!0):Hrt(e,n,t)}}function wh(e){e=y(e,y.EMPTY_OBJECT),this._heightmapWidth=void 0,this._heightmapStructure=void 0,this._hasWaterMask=!1,this._hasVertexNormals=!1,this._hasMetadata=!1,this._scheme=void 0,this._ellipsoid=e.ellipsoid,this._requestVertexNormals=y(e.requestVertexNormals,!1),this._requestWaterMask=y(e.requestWaterMask,!1),this._requestMetadata=y(e.requestMetadata,!0),this._errorEvent=new pe;let t=e.credit;typeof t=="string"&&(t=new Tt(t)),this._credit=t,this._availability=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._layers=void 0,this._tileCredits=void 0}var KY={OCT_VERTEX_NORMALS:1,WATER_MASK:2,METADATA:4};function tye(e){return!l(e)||e.length===0?{Accept:"application/vnd.quantized-mesh,application/octet-stream;q=0.9,*/*;q=0.01"}:{Accept:`application/vnd.quantized-mesh;extensions=${e.join("-")},application/octet-stream;q=0.9,*/*;q=0.01`}}function Wrt(e,t,n,i,o){let r=new Uint16Array(t,0,e._heightmapWidth*e._heightmapWidth);return new Fa({buffer:r,childTileMask:new Uint8Array(t,r.byteLength,1)[0],waterMask:new Uint8Array(t,r.byteLength+1,t.byteLength-r.byteLength-1),width:e._heightmapWidth,height:e._heightmapWidth,structure:e._heightmapStructure,credits:e._tileCredits})}function jrt(e,t,n,i,o,r){let s=r.littleEndianExtensionSize,a=0,c=3,u=c+1,f=Float64Array.BYTES_PER_ELEMENT*c,d=Float64Array.BYTES_PER_ELEMENT*u,g=Uint16Array.BYTES_PER_ELEMENT*3,m=3,x=Uint16Array.BYTES_PER_ELEMENT,b=x*m,T=new DataView(t),C=new h(T.getFloat64(a,!0),T.getFloat64(a+8,!0),T.getFloat64(a+16,!0));a+=f;let A=T.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let E=T.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let v=new ae(new h(T.getFloat64(a,!0),T.getFloat64(a+8,!0),T.getFloat64(a+16,!0)),T.getFloat64(a+f,!0));a+=d;let D=new h(T.getFloat64(a,!0),T.getFloat64(a+8,!0),T.getFloat64(a+16,!0));a+=f;let O=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let I=new Uint16Array(t,a,O*3);a+=O*g,O>64*1024&&(x=Uint32Array.BYTES_PER_ELEMENT,b=x*m);let L=I.subarray(0,O),N=I.subarray(O,2*O),_=I.subarray(O*2,3*O);Mn.zigZagDeltaDecode(L,N,_),a%x!==0&&(a+=x-a%x);let S=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let w=Ne.createTypedArrayFromArrayBuffer(O,t,a,S*m);a+=S*b;let P=0,M=w.length;for(let re=0;re<M;++re){let _e=w[re];w[re]=P-_e,_e===0&&++P}let B=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let U=Ne.createTypedArrayFromArrayBuffer(O,t,a,B);a+=B*x;let V=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let G=Ne.createTypedArrayFromArrayBuffer(O,t,a,V);a+=V*x;let k=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let Y=Ne.createTypedArrayFromArrayBuffer(O,t,a,k);a+=k*x;let W=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let Q=Ne.createTypedArrayFromArrayBuffer(O,t,a,W);a+=W*x;let j,K;for(;a<T.byteLength;){let re=T.getUint8(a,!0);a+=Uint8Array.BYTES_PER_ELEMENT;let _e=T.getUint32(a,s);if(a+=Uint32Array.BYTES_PER_ELEMENT,re===KY.OCT_VERTEX_NORMALS&&e._requestVertexNormals)j=new Uint8Array(t,a,O*2);else if(re===KY.WATER_MASK&&e._requestWaterMask)K=new Uint8Array(t,a,_e);else if(re===KY.METADATA&&e._requestMetadata){let xe=T.getUint32(a,!0);if(xe>0){let we=Ro(new Uint8Array(t),a+Uint32Array.BYTES_PER_ELEMENT,xe).available;if(l(we))for(let Oe=0;Oe<we.length;++Oe){let ke=n+Oe+1,At=we[Oe],Bt=e._tilingScheme.getNumberOfYTilesAtLevel(ke);for(let rt=0;rt<At.length;++rt){let Qe=At[rt],Kt=Bt-Qe.endY-1,ht=Bt-Qe.startY-1;e.availability.addAvailableTileRange(ke,Qe.startX,Kt,Qe.endX,ht),r.availability.addAvailableTileRange(ke,Qe.startX,Kt,Qe.endX,ht)}}}r.availabilityTilesLoaded.addAvailableTileRange(n,i,o,i,o)}a+=_e}let Z=e.getLevelMaximumGeometricError(n)*5,he=e._tilingScheme.tileXYToRectangle(i,o,n),be=Sn.fromRectangle(he,A,E,e._tilingScheme.ellipsoid);return new vT({center:C,minimumHeight:A,maximumHeight:E,boundingSphere:v,orientedBoundingBox:be,horizonOcclusionPoint:D,quantizedVertices:I,encodedNormals:j,indices:w,westIndices:U,southIndices:G,eastIndices:Y,northIndices:Q,westSkirtHeight:Z,southSkirtHeight:Z,eastSkirtHeight:Z,northSkirtHeight:Z,childTileMask:e.availability.computeChildMaskForTile(n,i,o),waterMask:K,credits:e._tileCredits})}wh.prototype.requestTileGeometry=function(e,t,n,i){let o=this._layers,r,s=o.length,a=!1,c=Promise.resolve();if(s===1)r=o[0];else for(let u=0;u<s;++u){let f=o[u];if(!l(f.availability)||f.availability.isTileAvailable(n,e,t)){r=f;break}let d=QY(this,e,t,n,f,u===0);d.result&&(a=!0,c=c.then(()=>d.promise))}return!l(r)&&a?c.then(()=>new Promise(u=>{setTimeout(()=>{let f=this.requestTileGeometry(e,t,n,i);u(f)},0)})):oye(this,e,t,n,r,i)};function oye(e,t,n,i,o,r){if(!l(o))return Promise.reject(new le("Terrain tile doesn't exist"));let s=o.tileUrlTemplates;if(s.length===0)return;let a;!e._scheme||e._scheme==="tms"?a=e._tilingScheme.getNumberOfYTilesAtLevel(i)-n-1:a=n;let c=[];e._requestVertexNormals&&o.hasVertexNormals&&c.push(o.littleEndianExtensionSize?"octvertexnormals":"vertexnormals"),e._requestWaterMask&&o.hasWaterMask&&c.push("watermask"),e._requestMetadata&&o.hasMetadata&&c.push("metadata");let u,f,d=s[(t+a+i)%s.length],p=o.resource;l(p._ionEndpoint)&&!l(p._ionEndpoint.externalType)?(c.length!==0&&(f={extensions:c.join("-")}),u=tye(void 0)):u=tye(c);let g=p.getDerivedResource({url:d,templateValues:{version:o.version,z:i,x:t,y:a},queryParameters:f,headers:u,request:r}).fetchArrayBuffer();if(l(g))return g.then(function(m){return l(m)?l(e._heightmapStructure)?Wrt(e,m,i,t,n):jrt(e,m,i,t,n,o):Promise.reject(new le("Mesh buffer doesn't exist."))})}Object.defineProperties(wh.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return this._hasWaterMask&&this._requestWaterMask}},hasVertexNormals:{get:function(){return this._hasVertexNormals&&this._requestVertexNormals}},hasMetadata:{get:function(){return this._hasMetadata&&this._requestMetadata}},requestVertexNormals:{get:function(){return this._requestVertexNormals}},requestWaterMask:{get:function(){return this._requestWaterMask}},requestMetadata:{get:function(){return this._requestMetadata}},availability:{get:function(){return this._availability}}});wh.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};wh.fromIonAssetId=async function(e,t){let n=await _u.fromAssetId(e);return wh.fromUrl(n,t)};wh.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=De.createIfNeeded(e);n.appendForwardSlash();let i=new nye(t);i.lastResource=n,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await $Y(i);let o=new wh(t);return i.build(o),o};wh.prototype.getTileDataAvailable=function(e,t,n){if(!l(this._availability))return;if(n>this._availability._maximumLevel)return!1;if(this._availability.isTileAvailable(n,e,t))return!0;if(!this._hasMetadata)return!1;let i=this._layers,o=i.length;for(let r=0;r<o;++r)if(QY(this,e,t,n,i[r],r===0).result)return;return!1};wh.prototype.loadTileDataAvailability=function(e,t,n){if(!l(this._availability)||n>this._availability._maximumLevel||this._availability.isTileAvailable(n,e,t)||!this._hasMetadata)return;let i=this._layers,o=i.length;for(let r=0;r<o;++r){let s=QY(this,e,t,n,i[r],r===0);if(l(s.promise))return s.promise}};function ZY(e,t,n,i){if(i===0)return;let o=e.availabilityLevels,r=i%o===0?i-o:(i/o|0)*o,s=1<<i-r,a=t/s|0,c=n/s|0;return{level:r,x:a,y:c}}function QY(e,t,n,i,o,r){if(!l(o.availabilityLevels))return{result:!1};let s,a=function(){delete o.availabilityPromiseCache[s]},c=o.availabilityTilesLoaded,u=o.availability,f=ZY(o,t,n,i);for(;l(f);){if(u.isTileAvailable(f.level,f.x,f.y)&&!c.isTileAvailable(f.level,f.x,f.y)){let d;if(!r&&(s=`${f.level}-${f.x}-${f.y}`,d=o.availabilityPromiseCache[s],!l(d))){let p=new qo({throttle:!1,throttleByServer:!0,type:os.TERRAIN});d=oye(e,f.x,f.y,f.level,o,p),l(d)&&(o.availabilityPromiseCache[s]=d,d.then(a))}return{result:!0,promise:d}}f=ZY(o,f.x,f.y,f.level)}return{result:!1}}wh._getAvailabilityTile=ZY;var wT=wh;function $_(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new rl(n),this._workerName="createCircleGeometry"}$_.packedLength=rl.packedLength;$_.pack=function(e,t,n){return rl.pack(e._ellipseGeometry,t,n)};var qrt=new rl({center:new h,semiMajorAxis:1,semiMinorAxis:1}),Cc={center:new h,radius:void 0,ellipsoid:te.clone(te.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new Ie,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};$_.unpack=function(e,t,n){let i=rl.unpack(e,t,qrt);return Cc.center=h.clone(i._center,Cc.center),Cc.ellipsoid=te.clone(i._ellipsoid,Cc.ellipsoid),Cc.height=i._height,Cc.extrudedHeight=i._extrudedHeight,Cc.granularity=i._granularity,Cc.vertexFormat=Ie.clone(i._vertexFormat,Cc.vertexFormat),Cc.stRotation=i._stRotation,Cc.shadowVolume=i._shadowVolume,l(n)?(Cc.semiMajorAxis=i._semiMajorAxis,Cc.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new rl(Cc),n):(Cc.radius=i._semiMajorAxis,new $_(Cc))};$_.createGeometry=function(e){return rl.createGeometry(e._ellipseGeometry)};$_.createShadowVolume=function(e,t,n){let i=e._ellipseGeometry._granularity,o=e._ellipseGeometry._ellipsoid,r=t(i,o),s=n(i,o);return new $_({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:o,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties($_.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var JY=$_;function NS(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new Mu(n),this._workerName="createCircleOutlineGeometry"}NS.packedLength=Mu.packedLength;NS.pack=function(e,t,n){return Mu.pack(e._ellipseGeometry,t,n)};var Yrt=new Mu({center:new h,semiMajorAxis:1,semiMinorAxis:1}),Wu={center:new h,radius:void 0,ellipsoid:te.clone(te.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};NS.unpack=function(e,t,n){let i=Mu.unpack(e,t,Yrt);return Wu.center=h.clone(i._center,Wu.center),Wu.ellipsoid=te.clone(i._ellipsoid,Wu.ellipsoid),Wu.height=i._height,Wu.extrudedHeight=i._extrudedHeight,Wu.granularity=i._granularity,Wu.numberOfVerticalLines=i._numberOfVerticalLines,l(n)?(Wu.semiMajorAxis=i._semiMajorAxis,Wu.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new Mu(Wu),n):(Wu.radius=i._semiMajorAxis,new NS(Wu))};NS.createGeometry=function(e){return Mu.createGeometry(e._ellipseGeometry)};var eX=NS;function FS(e){e=y(e,y.EMPTY_OBJECT),this._callback=e.callback,this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new Ui({ellipsoid:y(e.ellipsoid,te.WGS84)})),this._width=e.width,this._height=e.height;let t=Math.max(this._width,this._height);this._levelZeroMaximumGeometricError=Kr.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,t,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new pe;let n=e.credit;typeof n=="string"&&(n=new Tt(n)),this._credit=n}Object.defineProperties(FS.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});FS.prototype.requestTileGeometry=function(e,t,n,i){let o=this._callback(e,t,n);if(!l(o))return;let r=this._width,s=this._height;return Promise.resolve(o).then(function(a){let c=a;return Array.isArray(c)&&(c=new Float64Array(c)),new Fa({buffer:c,width:r,height:s})})};FS.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};FS.prototype.getTileDataAvailable=function(e,t,n){};FS.prototype.loadTileDataAvailability=function(e,t,n){};var tX=FS;function rye(e){this.proxy=e}rye.prototype.getURL=function(e){let t=this.proxy.indexOf("?")===-1?"?":"";return this.proxy+t+encodeURIComponent(e)};var nX=rye;function Dh(e){this._comparator=e.comparator,this._maximumLength=e.maximumLength,this._array=l(e.maximumLength)?new Array(e.maximumLength):[],this._length=0}Object.defineProperties(Dh.prototype,{length:{get:function(){return this._length}},maximumLength:{get:function(){return this._maximumLength},set:function(e){if(l(e)){for(;this._length>e;)this.removeMinimum();this._array.length=e}this._maximumLength=e}},internalArray:{get:function(){return this._array}},comparator:{get:function(){return this._comparator}}});Dh.prototype.clone=function(){let e=this._maximumLength,t=this._comparator,n=this._array,i=this._length,o=new Dh({comparator:t,maximumLength:e});o._length=i;for(let r=0;r<i;r++)o._array[r]=n[r];return o};Dh.prototype.reset=function(){this._length=0;let e=this._maximumLength;if(l(e))for(let t=0;t<e;t++)this._array[t]=void 0;else this._array.length=0};Dh.prototype.resort=function(){let e=this._length;for(let t=0;t<e;t++)sye(this,t)};Dh.prototype.insert=function(e){let t,n=this._maximumLength;if(l(n)){if(n===0)return;if(this._length===n){let o=this._array[0];if(this._comparator(e,o)<=0)return e;t=this.removeMinimum()}}let i=this._length;return this._array[i]=e,this._length++,sye(this,i),t};Dh.prototype.removeMinimum=function(){let e=this._length;if(e===0)return;this._length--;let t=this._array[0];return e>=2&&(this._array[0]=this._array[e-1],aye(this,0)),this._array[e-1]=void 0,t};Dh.prototype.removeMaximum=function(){let e=this._length;if(e===0)return;this._length--;let t;if(e<=2)t=this._array[e-1];else{let n=iX(this,1,2)?1:2;t=this._array[n],this._array[n]=this._array[e-1],e>=4&&aye(this,n)}return this._array[e-1]=void 0,t};Dh.prototype.getMinimum=function(){if(this._length!==0)return this._array[0]};Dh.prototype.getMaximum=function(){let e=this._length;if(e!==0)return e<=2?this._array[e-1]:this._array[iX(this,1,2)?1:2]};function I8(e,t,n){let i=e._array,o=i[t];i[t]=i[n],i[n]=o}function rF(e,t,n){return e._comparator(e._array[t],e._array[n])<0}function iX(e,t,n){return e._comparator(e._array[t],e._array[n])>0}function sye(e,t){if(t===0)return;let n=Math.floor(R.log2(t+1))%2===0,i=Math.floor((t-1)/2),o=rF(e,t,i);for(o!==n&&(I8(e,t,i),t=i);t>=3;){let r=Math.floor((t-3)/4);if(rF(e,t,r)!==o)break;I8(e,t,r),t=r}}function aye(e,t){let n=e._length,i=Math.floor(R.log2(t+1))%2===0,o;for(;(o=2*t+1)<n;){let r=o,s=o+1;if(s<n){rF(e,s,r)===i&&(r=s);let a=2*o+1,c=Math.max(Math.min(n-a,4),0);for(let u=0;u<c;u++){let f=a+u;rF(e,f,r)===i&&(r=f)}}if(rF(e,r,t)===i&&(I8(e,r,t),r!==o&&r!==s)){let a=Math.floor((r-1)/2);iX(e,r,a)===i&&I8(e,r,a)}t=r}}var DT=Dh;function BS(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new Ui({ellipsoid:y(e.ellipsoid,te.WGS84)})),this._levelZeroMaximumGeometricError=Kr.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,64,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new pe}Object.defineProperties(BS.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});BS.prototype.requestTileGeometry=function(e,t,n,i){return Promise.resolve(new Fa({buffer:new Uint8Array(16*16),width:16,height:16}))};BS.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};BS.prototype.getTileDataAvailable=function(e,t,n){};BS.prototype.loadTileDataAvailability=function(e,t,n){};var qm=BS;function Ym(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new as,this._perspectiveMatrix=new F,this._infinitePerspective=new F}function oX(e){let t=e.top,n=e.bottom,i=e.right,o=e.left,r=e.near,s=e.far;(t!==e._top||n!==e._bottom||o!==e._left||i!==e._right||r!==e._near||s!==e._far)&&(e._left=o,e._right=i,e._top=t,e._bottom=n,e._near=r,e._far=s,e._perspectiveMatrix=F.computePerspectiveOffCenter(o,i,n,t,r,s,e._perspectiveMatrix),e._infinitePerspective=F.computeInfinitePerspectiveOffCenter(o,i,n,t,r,e._infinitePerspective))}Object.defineProperties(Ym.prototype,{projectionMatrix:{get:function(){return oX(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return oX(this),this._infinitePerspective}}});var Xrt=new h,Krt=new h,Zrt=new h,$rt=new h;Ym.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,u=this.far,f=h.cross(t,n,Xrt),d=Krt;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=Zrt;h.multiplyByScalar(t,u,p),h.add(e,p,p);let g=$rt;h.multiplyByScalar(f,a,g),h.add(d,g,g),h.subtract(g,e,g),h.normalize(g,g),h.cross(g,n,g),h.normalize(g,g);let m=i[0];return l(m)||(m=i[0]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(f,s,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(n,g,g),h.normalize(g,g),m=i[1],l(m)||(m=i[1]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(n,r,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(f,g,g),h.normalize(g,g),m=i[2],l(m)||(m=i[2]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(n,o,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(g,f,g),h.normalize(g,g),m=i[3],l(m)||(m=i[3]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),m=i[4],l(m)||(m=i[4]=new oe),m.x=t.x,m.y=t.y,m.z=t.z,m.w=-h.dot(t,d),h.negate(t,g),m=i[5],l(m)||(m=i[5]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,p),this._cullingVolume};Ym.prototype.getPixelDimensions=function(e,t,n,i,o){oX(this);let r=1/this.near,s=this.top*r,a=2*i*n*s/t;s=this.right*r;let c=2*i*n*s/e;return o.x=c,o.y=a,o};Ym.prototype.clone=function(e){return l(e)||(e=new Ym),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};Ym.prototype.equals=function(e){return l(e)&&e instanceof Ym&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};Ym.prototype.equalsEpsilon=function(e,t,n){return e===this||l(e)&&e instanceof Ym&&R.equalsEpsilon(this.right,e.right,t,n)&&R.equalsEpsilon(this.left,e.left,t,n)&&R.equalsEpsilon(this.top,e.top,t,n)&&R.equalsEpsilon(this.bottom,e.bottom,t,n)&&R.equalsEpsilon(this.near,e.near,t,n)&&R.equalsEpsilon(this.far,e.far,t,n)};var ul=Ym;function Jl(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new ul,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this.xOffset=y(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=y(e.yOffset,0),this._yOffset=this.yOffset}Jl.packedLength=6;Jl.pack=function(e,t,n){return n=y(n,0),t[n++]=e.fov,t[n++]=e.aspectRatio,t[n++]=e.near,t[n++]=e.far,t[n++]=e.xOffset,t[n]=e.yOffset,t};Jl.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Jl),n.fov=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t++],n.xOffset=e[t++],n.yOffset=e[t],n};function Ph(e){let t=e._offCenterFrustum;(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset)&&(e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:Math.atan(Math.tan(e.fov*.5)/e.aspectRatio)*2,e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset,t.top=e.near*Math.tan(.5*e._fovy),t.bottom=-t.top,t.right=e.aspectRatio*t.top,t.left=-t.right,t.near=e.near,t.far=e.far,t.right+=e.xOffset,t.left+=e.xOffset,t.top+=e.yOffset,t.bottom+=e.yOffset)}Object.defineProperties(Jl.prototype,{projectionMatrix:{get:function(){return Ph(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return Ph(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return Ph(this),this._fovy}},sseDenominator:{get:function(){return Ph(this),this._sseDenominator}},offCenterFrustum:{get:function(){return Ph(this),this._offCenterFrustum}}});Jl.prototype.computeCullingVolume=function(e,t,n){return Ph(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};Jl.prototype.getPixelDimensions=function(e,t,n,i,o){return Ph(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};Jl.prototype.clone=function(e){return l(e)||(e=new Jl),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};Jl.prototype.equals=function(e){return!l(e)||!(e instanceof Jl)?!1:(Ph(this),Ph(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};Jl.prototype.equalsEpsilon=function(e,t,n){return!l(e)||!(e instanceof Jl)?!1:(Ph(this),Ph(e),R.equalsEpsilon(this.fov,e.fov,t,n)&&R.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var Ti=Jl;var R8=0,Qrt=1;function PT(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e.vertexFormat,Ie.DEFAULT),r=y(e._drawNearPlane,!0),s,a;t instanceof Ti?(s=R8,a=Ti.packedLength):t instanceof rn&&(s=Qrt,a=rn.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Me.clone(n),this._drawNearPlane=r,this._vertexFormat=o,this._workerName="createFrustumGeometry",this.packedLength=2+a+h.packedLength+Me.packedLength+Ie.packedLength}PT.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===R8?(Ti.pack(o,t,n),n+=Ti.packedLength):(rn.pack(o,t,n),n+=rn.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Me.pack(e._orientation,t,n),n+=Me.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n]=e._drawNearPlane?1:0,t};var Jrt=new Ti,est=new rn,tst=new Me,nst=new h,ist=new Ie;PT.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===R8?(o=Ti.unpack(e,t,Jrt),t+=Ti.packedLength):(o=rn.unpack(e,t,est),t+=rn.packedLength);let r=h.unpack(e,t,nst);t+=h.packedLength;let s=Me.unpack(e,t,tst);t+=Me.packedLength;let a=Ie.unpack(e,t,ist);t+=Ie.packedLength;let c=e[t]===1;if(!l(n))return new PT({frustum:o,origin:r,orientation:s,vertexFormat:a,_drawNearPlane:c});let u=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(u),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Me.clone(s,n._orientation),n._vertexFormat=Ie.clone(a,n._vertexFormat),n._drawNearPlane=c,n};function kS(e,t,n,i,o,r,s,a){let c=e/3*2;for(let u=0;u<4;++u)l(t)&&(t[e]=r.x,t[e+1]=r.y,t[e+2]=r.z),l(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),l(i)&&(i[e]=a.x,i[e+1]=a.y,i[e+2]=a.z),e+=3;o[c]=0,o[c+1]=0,o[c+2]=1,o[c+3]=0,o[c+4]=1,o[c+5]=1,o[c+6]=0,o[c+7]=1}var ost=new $,rst=new F,rX=new F,cye=new h,lye=new h,uye=new h,sst=new h,ast=new h,cst=new h,x0=new Array(3),sF=new Array(4);sF[0]=new oe(-1,-1,1,1);sF[1]=new oe(1,-1,1,1);sF[2]=new oe(1,1,1,1);sF[3]=new oe(-1,1,1,1);var fye=new Array(4);for(let e=0;e<4;++e)fye[e]=new oe;PT._computeNearFarPlanes=function(e,t,n,i,o,r,s,a){let c=$.fromQuaternion(t,ost),u=y(r,cye),f=y(s,lye),d=y(a,uye);u=$.getColumn(c,0,u),f=$.getColumn(c,1,f),d=$.getColumn(c,2,d),h.normalize(u,u),h.normalize(f,f),h.normalize(d,d),h.negate(u,u);let p=F.computeView(e,d,f,u,rst),g,m,x=i.projectionMatrix;if(n===R8){let b=F.multiply(x,p,rX);m=F.inverse(b,rX)}else g=F.inverseTransformation(p,rX);l(m)?(x0[0]=i.near,x0[1]=i.far):(x0[0]=0,x0[1]=i.near,x0[2]=i.far);for(let b=0;b<2;++b)for(let T=0;T<4;++T){let C=oe.clone(sF[T],fye[T]);if(l(m)){C=F.multiplyByVector(m,C,C);let A=1/C.w;h.multiplyByScalar(C,A,C),h.subtract(C,e,C),h.normalize(C,C);let E=h.dot(d,C);h.multiplyByScalar(C,x0[b]/E,C),h.add(C,e,C)}else{let A=i.offCenterFrustum;l(A)&&(i=A);let E=x0[b],v=x0[b+1];C.x=(C.x*(i.right-i.left)+i.left+i.right)*.5,C.y=(C.y*(i.top-i.bottom)+i.bottom+i.top)*.5,C.z=(C.z*(E-v)-E-v)*.5,C.w=1,F.multiplyByVector(g,C,C)}o[12*b+T*3]=C.x,o[12*b+T*3+1]=C.y,o[12*b+T*3+2]=C.z}};PT.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=e._vertexFormat,a=r?6:5,c=new Float64Array(3*4*6);PT._computeNearFarPlanes(i,o,t,n,c);let u=3*4*2;c[u]=c[3*4],c[u+1]=c[3*4+1],c[u+2]=c[3*4+2],c[u+3]=c[0],c[u+4]=c[1],c[u+5]=c[2],c[u+6]=c[3*3],c[u+7]=c[3*3+1],c[u+8]=c[3*3+2],c[u+9]=c[3*7],c[u+10]=c[3*7+1],c[u+11]=c[3*7+2],u+=3*4,c[u]=c[3*5],c[u+1]=c[3*5+1],c[u+2]=c[3*5+2],c[u+3]=c[3],c[u+4]=c[4],c[u+5]=c[5],c[u+6]=c[0],c[u+7]=c[1],c[u+8]=c[2],c[u+9]=c[3*4],c[u+10]=c[3*4+1],c[u+11]=c[3*4+2],u+=3*4,c[u]=c[3],c[u+1]=c[4],c[u+2]=c[5],c[u+3]=c[3*5],c[u+4]=c[3*5+1],c[u+5]=c[3*5+2],c[u+6]=c[3*6],c[u+7]=c[3*6+1],c[u+8]=c[3*6+2],c[u+9]=c[3*2],c[u+10]=c[3*2+1],c[u+11]=c[3*2+2],u+=3*4,c[u]=c[3*2],c[u+1]=c[3*2+1],c[u+2]=c[3*2+2],c[u+3]=c[3*6],c[u+4]=c[3*6+1],c[u+5]=c[3*6+2],c[u+6]=c[3*7],c[u+7]=c[3*7+1],c[u+8]=c[3*7+2],c[u+9]=c[3*3],c[u+10]=c[3*3+1],c[u+11]=c[3*3+2],r||(c=c.subarray(3*4));let f=new fn({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})});if(l(s.normal)||l(s.tangent)||l(s.bitangent)||l(s.st)){let p=l(s.normal)?new Float32Array(12*a):void 0,g=l(s.tangent)?new Float32Array(3*4*a):void 0,m=l(s.bitangent)?new Float32Array(3*4*a):void 0,x=l(s.st)?new Float32Array(2*4*a):void 0,b=cye,T=lye,C=uye,A=h.negate(b,sst),E=h.negate(T,ast),v=h.negate(C,cst);u=0,r&&(kS(u,p,g,m,x,v,b,T),u+=3*4),kS(u,p,g,m,x,C,A,T),u+=3*4,kS(u,p,g,m,x,A,v,T),u+=3*4,kS(u,p,g,m,x,E,v,A),u+=3*4,kS(u,p,g,m,x,b,C,T),u+=3*4,kS(u,p,g,m,x,T,C,A),l(p)&&(f.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),l(g)&&(f.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),l(m)&&(f.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),l(x)&&(f.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:x}))}let d=new Uint16Array(6*a);for(let p=0;p<a;++p){let g=p*6,m=p*4;d[g]=m,d[g+1]=m+1,d[g+2]=m+2,d[g+3]=m,d[g+4]=m+2,d[g+5]=m+3}return new st({attributes:f,indices:d,primitiveType:Le.TRIANGLES,boundingSphere:ae.fromVertices(c)})};var IT=PT;var sX=0,lst=1;function aF(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e._drawNearPlane,!0),r,s;t instanceof Ti?(r=sX,s=Ti.packedLength):t instanceof rn&&(r=lst,s=rn.packedLength),this._frustumType=r,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Me.clone(n),this._drawNearPlane=o,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+s+h.packedLength+Me.packedLength}aF.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===sX?(Ti.pack(o,t,n),n+=Ti.packedLength):(rn.pack(o,t,n),n+=rn.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Me.pack(e._orientation,t,n),n+=Me.packedLength,t[n]=e._drawNearPlane?1:0,t};var ust=new Ti,fst=new rn,dst=new Me,hst=new h;aF.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===sX?(o=Ti.unpack(e,t,ust),t+=Ti.packedLength):(o=rn.unpack(e,t,fst),t+=rn.packedLength);let r=h.unpack(e,t,hst);t+=h.packedLength;let s=Me.unpack(e,t,dst);t+=Me.packedLength;let a=e[t]===1;if(!l(n))return new aF({frustum:o,origin:r,orientation:s,_drawNearPlane:a});let c=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(c),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Me.clone(s,n._orientation),n._drawNearPlane=a,n};aF.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=new Float64Array(3*4*2);IT._computeNearFarPlanes(i,o,t,n,s);let a=new fn({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),c,u,f=r?2:1,d=new Uint16Array(8*(f+1)),p=r?0:1;for(;p<2;++p)c=r?p*8:0,u=p*4,d[c]=u,d[c+1]=u+1,d[c+2]=u+1,d[c+3]=u+2,d[c+4]=u+2,d[c+5]=u+3,d[c+6]=u+3,d[c+7]=u;for(p=0;p<2;++p)c=(f+p)*8,u=p*4,d[c]=u,d[c+1]=u+4,d[c+2]=u+1,d[c+3]=u+5,d[c+4]=u+2,d[c+5]=u+6,d[c+6]=u+3,d[c+7]=u+7;return new st({attributes:a,indices:d,primitiveType:Le.LINES,boundingSphere:ae.fromVertices(s)})};var cF=aF;var mst={SEARCH:0,AUTOCOMPLETE:1},b0=Object.freeze(mst);function O8(){de.throwInstantiationError()}Object.defineProperties(O8.prototype,{credit:{get:de.throwInstantiationError}});O8.getCreditsFromResult=function(e){if(l(e.attributions))return e.attributions.map(Tt.getIonCredit)};O8.prototype.geocode=de.throwInstantiationError;var VS=O8;function dye(){de.throwInstantiationError()}dye.createGeometry=function(e){de.throwInstantiationError()};var aX=dye;var bst=wo(cX(),1);function pst(e,t){return(e&t)!==0}var Ec=pst;var _st=[1,2,4,8],hye=15,gst=16,yst=64,xst=128;function Xm(e,t,n,i,o,r){this._bits=e,this.cnodeVersion=t,this.imageryVersion=n,this.terrainVersion=i,this.imageryProvider=o,this.terrainProvider=r,this.ancestorHasTerrain=!1,this.terrainState=void 0}Xm.clone=function(e,t){return l(t)?(t._bits=e._bits,t.cnodeVersion=e.cnodeVersion,t.imageryVersion=e.imageryVersion,t.terrainVersion=e.terrainVersion,t.imageryProvider=e.imageryProvider,t.terrainProvider=e.terrainProvider):t=new Xm(e._bits,e.cnodeVersion,e.imageryVersion,e.terrainVersion,e.imageryProvider,e.terrainProvider),t.ancestorHasTerrain=e.ancestorHasTerrain,t.terrainState=e.terrainState,t};Xm.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()};Xm.prototype.hasSubtree=function(){return Ec(this._bits,gst)};Xm.prototype.hasImagery=function(){return Ec(this._bits,yst)};Xm.prototype.hasTerrain=function(){return Ec(this._bits,xst)};Xm.prototype.hasChildren=function(){return Ec(this._bits,hye)};Xm.prototype.hasChild=function(e){return Ec(this._bits,_st[e])};Xm.prototype.getChildBitmask=function(){return this._bits&hye};var lF=Xm;function Tst(e){let t=e.length,n=new ArrayBuffer(t),i=new Uint8Array(n);for(let o=0;o<t;++o)i[o]=e.charCodeAt(o);return n}var Ast=Tst(`E\xF4\xBD\vy\xE2jE"\x92,\xCDq\xF8IFgQ\0B%\xC6\xE8a,f)\b\xC64\xDCjb%y wmi\xD6\xF0\x9Ck\x93\xA1\xBDNu\xE0A[\xDF@V\f\xD9\xBBr\x9B\x81|3S\xEEOl\xD4q\xB0{\xC0\x7FEVZ\xADwUe\v3\x92*\xACl5\xC50s\xF83>mF8J\xB4\xDD\xF0.\xDDu\xDA\x8CDt"\xFAa"\f3"So\xAF9D\v\x8C9\xD99L\xB9\xBF\x7F\xAB\\\x8CP_\x9F"ux\xE9\x07q\x91h;\xC1\xC4\x9B\x7F\xF0<VqH\x82'UfYNe\x98u\xA3aF}a?A\0\x9F\xD7\xB44M\xCE\x87F\xB0\xD5\xB8\x8A'{\x8B\xDC+\xBBMg0\xC8\xD1\xF6\\\x8FP\xFA[/F\x9Bn5/'C.\xEB \f^\xA5s\x1Be4\xE5l.jC'c#U\xA9?q{gC}:\xAF\xCD\xE2TU\x9C\xFDK\xC6\xE2\x9F/(\xED\xCB\\\xC6-f\x07\x88\xA7;/*"N\xB0k.\xDD\r\x95}}G\xBAC\xB2\xB2+>M\xAA>}\xE6\xCEI\x89\xC6\xE6x\fa1-\xA4O\xA5~q \x88\xEC\r1\xE8N\v\0nPh}=\b\r\x95\xA6n\xA3h\x97$[k\xF3#\xF3\xB6s\xB3\r\v@\xC0\x9F\xD8Q]\xFA".j\xDFI\0\xB9\xA0wU\xC6\xEFj\xBF{GL\x7F\x83\xEE\xDC\xDCF\x85\xA9\xADS\x07+S4\x07\xFF\x94Y\xE48\xE81\x83N\xB9XFk\xCB-#\x86\x92p\x005\x88"\xCF1\xB2&/\xE7\xC3u-6,rt\xB0#G\xB7\xD3\xD1&\x857r\xE2\0\x8CD\xCF\xDA3-\xDE\`\x86i#i*|\xCDKQ\r\x95T9w.)\xEA\x1B\xA6P\xA2j\x8FoP\x99\\>T\xFB\xEFP[\v\x07E\x89m(w7\xDB\x8EJfJo\x99 \xE5p\xE2\xB9q~\fmI-z\xFEr\xC7\xF2Y0\x8F\xBB]s\xE5\xC9 \xEAx\xEC \x90\xF0\x8A\x7FB|G\`\xB0\xBD&\xB7q\xB6\xC7\x9F\xD13\x82=\xD3\xAB\xEEc\x99\xC8+S\xA0D\\q\xC6\xCCD2O<\xCA\xC0)=R\xD3aX\xA9}e\xB4\xDC\xCF\r\xF4=\xF1\b\xA9B\xDA# \xD8\xBF^PI\xF8M\xC0\xCBGLO\xF7{+\xD8\xC51\x92;\xB5o\xDCl\r\x92\x88\xD1\x9E\xDB?\xE2\xE9\xDA_\xD4\x84\xE2FaZ\xDEU\xCF\xA4\0\xBE\xFD\xCEg\xF1Ji\x97\xE6 H\xD8]\x7F~\xAEq N\xAE\xC0V\xA9\x91<\x82r\xE7v\xEC)I\xD6]-\x83\xE3\xDB6\xA9;f\x97\x87j\xD5\xB6=P^R\xB9K\xC7sWx\xC9\xF4.Y\x07\x95\x93o\xD0KW>''\xC7\`\xDB;\xED\x9ASD>?\x8D\x92mw\xA2 \xEB?R\xA8\xC6U^1I7\x85\xF4\xC5&-\xA9\xBF\x8B'T\xDA\xC3j \xE5*x\xB0\xD6\x90pr\xAA\x8Bh\xBD\x88\xF7_H\xB1~\xC0XL?f\xF9>\xE1e\xC0p\xA7\xCF8i\xAF\xF0VldI\x9C'\xADxtO\xC2\x87\xDEV9\0\xDAw\v\xCB-\x1B\x89\xFB5O\xF5\bQ\`\xC1 ZGM&30x\xDA\xC0\x9CFG\xE2[y\`In7gS >\xE9\xECF9\xB2\xF14\r\xC6\x84Sun\xE1\fY\xD9\xDE)\x85{II\xA5wy\xBEIV.6\xE7\v:\xBBOb{\xD2M1\x95/\xBD8{\xA8O!\xE1\xECFpv\x95})"x\x88 \x90\xDD\x9D\\\xDA\xDEQ\xCF\xF0\xFCYRe|3\xDF\xF3H\xDA\xBB*u\xDB\`\xB2\xD4\xFC\xED\x1B\xEC\x7F5\xA8\xFF(1\x07-\xC8\xDC\x88F|\x8A["`);function ju(e){this.imageryPresent=!0,this.protoImagery=void 0,this.terrainPresent=!0,this.negativeAltitudeExponentBias=32,this.negativeAltitudeThreshold=R.EPSILON12,this.providers={},this.key=void 0,this._resource=void 0,this._quadPacketVersion=1,this._tileInfo={},this._subtreePromises={}}Object.defineProperties(ju.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},resource:{get:function(){return this._resource}}});ju.fromUrl=async function(e){let t=e;typeof t!="string"&&!(t instanceof De)&&(t=e.url);let n=De.createIfNeeded(t);n.appendForwardSlash();let i=new ju;i._resource=n;try{await Cst(i),await i.getQuadTreePacket("",i._quadPacketVersion)}catch(o){let r=`An error occurred while accessing ${pye(i,"",1).url}: ${o}`;throw new le(r)}return i};ju.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;Ec(t,r)?Ec(e,r)&&(s|=1):(s|=2,Ec(e,r)||(s|=1)),i+=s}return i};ju.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let o=i;o>=0;--o){let r=1<<o,s=+e[i-o];Ec(s,2)?Ec(s,1)||(t|=r):(n|=r,Ec(s,1)&&(t|=r))}return{x:t,y:n,level:i}};ju.prototype.isValid=function(e){let t=this.getTileInformationFromQuadKey(e);if(l(t))return t!==null;let n=!0,i=e,o;for(;i.length>1;)if(o=i.substring(i.length-1),i=i.substring(0,i.length-1),t=this.getTileInformationFromQuadKey(i),l(t)){!t.hasSubtree()&&!t.hasChild(parseInt(o))&&(n=!1);break}else if(t===null){n=!1;break}return n};var mye=new mi("decodeGoogleEarthEnterprisePacket");ju.prototype.getQuadTreePacket=function(e,t,n){t=y(t,1),e=y(e,"");let o=pye(this,e,t,n).fetchArrayBuffer();if(!l(o))return;let r=this._tileInfo,s=this.key;return o.then(function(a){return mye.scheduleTask({buffer:a,quadKey:e,type:"Metadata",key:s},[a]).then(function(u){let f,d=-1;if(e!==""){d=e.length+1;let m=u[e];f=r[e],f._bits|=m._bits,delete u[e]}let p=Object.keys(u);p.sort(function(m,x){return m.length-x.length});let g=p.length;for(let m=0;m<g;++m){let x=p[m];if(u[x]!==null){let T=lF.clone(u[x]),C=x.length;if(C===d)T.setParent(f);else if(C>1){let A=r[x.substring(0,x.length-1)];T.setParent(A)}r[x]=T}else r[x]=null}})})};ju.prototype.populateSubtree=function(e,t,n,i){let o=ju.tileXYToQuadKey(e,t,n);return fX(this,o,i)};function fX(e,t,n){let i=e._tileInfo,o=t,r=i[o];if(l(r)&&(!r.hasSubtree()||r.hasChildren()))return r;for(;r===void 0&&o.length>1;)o=o.substring(0,o.length-1),r=i[o];let s,a=e._subtreePromises,c=a[o];if(l(c))return c.then(function(){return s=new qo({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),fX(e,t,s)});if(!l(r)||!r.hasSubtree())return Promise.reject(new le(`Couldn't load metadata for tile ${t}`));if(c=e.getQuadTreePacket(o,r.cnodeVersion,n),!!l(c))return a[o]=c,c.then(function(){return s=new qo({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),fX(e,t,s)}).finally(function(){delete a[o]})}ju.prototype.getTileInformation=function(e,t,n){let i=ju.tileXYToQuadKey(e,t,n);return this._tileInfo[i]};ju.prototype.getTileInformationFromQuadKey=function(e){return this._tileInfo[e]};function pye(e,t,n,i){return e._resource.getDerivedResource({url:`flatfile?q2-0${t}-q.${n.toString()}`,request:i})}var lX,uX;function Cst(e){let t=e._resource.getDerivedResource({url:"dbRoot.v5",queryParameters:{output:"proto"}});if(!l(uX)){let n=en("ThirdParty/google-earth-dbroot-parser.js"),i=window.cesiumGoogleEarthDbRootParser;uX=Z0(n).then(function(){lX=window.cesiumGoogleEarthDbRootParser(bst),l(i)?window.cesiumGoogleEarthDbRootParser=i:delete window.cesiumGoogleEarthDbRootParser})}return uX.then(function(){return t.fetchArrayBuffer()}).then(function(n){let i=lX.EncryptedDbRootProto.decode(new Uint8Array(n)),o=i.encryptionData,r=o.byteOffset,s=r+o.byteLength,a=e.key=o.buffer.slice(r,s);o=i.dbrootData,r=o.byteOffset,s=r+o.byteLength;let c=o.buffer.slice(r,s);return mye.scheduleTask({buffer:c,type:"DbRoot",key:a},[c])}).then(function(n){let i=lX.DbRootProto.decode(new Uint8Array(n.buffer));if(e.imageryPresent=y(i.imageryPresent,e.imageryPresent),e.protoImagery=i.protoImagery,e.terrainPresent=y(i.terrainPresent,e.terrainPresent),l(i.endSnippet)&&l(i.endSnippet.model)){let a=i.endSnippet.model;e.negativeAltitudeExponentBias=y(a.negativeAltitudeExponentBias,e.negativeAltitudeExponentBias),e.negativeAltitudeThreshold=y(a.compressedNegativeAltitudeThreshold,e.negativeAltitudeThreshold)}l(i.databaseVersion)&&(e._quadPacketVersion=y(i.databaseVersion.quadtreeVersion,e._quadPacketVersion));let o=e.providers,r=y(i.providerInfo,[]),s=r.length;for(let a=0;a<s;++a){let c=r[a],u=c.copyrightString;l(u)&&(o[c.providerId]=new Tt(u.value))}}).catch(function(){console.log(`Failed to retrieve ${t.url}. Using defaults.`),e.key=Ast})}var Q_=ju;function RT(e){e=y(e,y.EMPTY_OBJECT),this._buffer=e.buffer,this._credits=e.credits,this._negativeAltitudeExponentBias=e.negativeAltitudeExponentBias,this._negativeElevationThreshold=e.negativeElevationThreshold;let t=y(e.childTileMask,15),n=t&3;n|=t&4?8:0,n|=t&8?4:0,this._childTileMask=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._skirtHeight=void 0,this._bufferType=this._buffer.constructor,this._mesh=void 0,this._minimumHeight=void 0,this._maximumHeight=void 0}Object.defineProperties(RT.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){}}});var yye="createVerticesFromGoogleEarthEnterpriseBuffer",Est=new mi(yye),Sst=new mi(yye,Sh.maximumAsynchronousTasks),_ye=new se,dX=new se;RT.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid;t.tileXYToNativeRectangle(n,i,o,_ye),t.tileXYToRectangle(n,i,o,dX);let u=c.cartographicToCartesian(se.center(dX)),d=40075.16/(1<<o);this._skirtHeight=Math.min(d*8,1e3);let g=(a?Sst:Est).scheduleTask({buffer:this._buffer,nativeRectangle:_ye,rectangle:dX,relativeToCenter:u,ellipsoid:c,skirtHeight:this._skirtHeight,exaggeration:r,exaggerationRelativeHeight:s,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!l(g))return;let m=this;return g.then(function(x){return m._mesh=new od(u,new Float32Array(x.vertices),new Uint16Array(x.indices),x.indexCountWithoutSkirts,x.vertexCountWithoutSkirts,x.minimumHeight,x.maximumHeight,ae.clone(x.boundingSphere3D),h.clone(x.occludeePointInScaledSpace),x.numberOfAttributes,Sn.clone(x.orientedBoundingBox),Ac.clone(x.encoding),x.westIndicesSouthToNorth,x.southIndicesEastToWest,x.eastIndicesNorthToSouth,x.northIndicesWestToEast),m._minimumHeight=x.minimumHeight,m._maximumHeight=x.maximumHeight,m._buffer=void 0,m._mesh})};RT.prototype.interpolateHeight=function(e,t,n){let i=R.clamp((t-e.west)/e.width,0,1),o=R.clamp((n-e.south)/e.height,0,1);return l(this._mesh)?Ist(this,i,o):Mst(this,i,o,e)};var vst=new mi("upsampleQuantizedTerrainMesh",Sh.maximumAsynchronousTasks);RT.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,u=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=vst.scheduleTask({vertices:a.vertices,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:u,childRectangle:d,ellipsoid:f});if(!l(p))return;let g=this;return p.then(function(m){let x=new Uint16Array(m.vertices),b=Ne.createTypedArray(x.length/3,m.indices),T=g._skirtHeight;return new vT({quantizedVertices:x,indices:b,minimumHeight:m.minimumHeight,maximumHeight:m.maximumHeight,boundingSphere:ae.clone(m.boundingSphere),orientedBoundingBox:Sn.clone(m.orientedBoundingBox),horizonOcclusionPoint:h.clone(m.horizonOcclusionPoint),westIndices:m.westIndices,southIndices:m.southIndices,eastIndices:m.eastIndices,northIndices:m.northIndices,westSkirtHeight:T,southSkirtHeight:T,eastSkirtHeight:T,northSkirtHeight:T,childTileMask:0,createdByUpsampling:!0,credits:g._credits})})};RT.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};RT.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var wst=new z,Dst=new z,Pst=new z,xye=new h;function Ist(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,u,wst),g=r.decodeTextureCoordinates(o,f,Dst),m=r.decodeTextureCoordinates(o,d,Pst),x=Z_.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,m.x,m.y,xye);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let b=r.decodeHeight(o,u),T=r.decodeHeight(o,f),C=r.decodeHeight(o,d);return x.x*b+x.y*T+x.z*C}}}var Rst=Uint16Array.BYTES_PER_ELEMENT,gye=Uint32Array.BYTES_PER_ELEMENT,hX=Int32Array.BYTES_PER_ELEMENT,Ost=Float32Array.BYTES_PER_ELEMENT,mX=Float64Array.BYTES_PER_ELEMENT;function Mst(e,t,n,i){let o=e._buffer,r=0,s=0,a=0;n>.5?(t>.5?(r=2,s=.5):r=3,a=.5):t>.5&&(r=1,s=.5);let c=new DataView(o),u=0;for(let v=0;v<r;++v)u+=c.getUint32(u,!0),u+=gye;u+=gye,u+=2*mX;let f=R.toRadians(c.getFloat64(u,!0)*180);u+=mX;let d=R.toRadians(c.getFloat64(u,!0)*180);u+=mX;let p=i.width/f/2,g=i.height/d/2,m=c.getInt32(u,!0);u+=hX;let x=c.getInt32(u,!0)*3;u+=hX,u+=hX;let b=new Array(m),T=new Array(m),C=new Array(m),A;for(A=0;A<m;++A)b[A]=s+c.getUint8(u++)*p,T[A]=a+c.getUint8(u++)*g,C[A]=c.getFloat32(u,!0)*6371010,u+=Ost;let E=new Array(x);for(A=0;A<x;++A)E[A]=c.getUint16(u,!0),u+=Rst;for(A=0;A<x;A+=3){let v=E[A],D=E[A+1],O=E[A+2],I=b[v],L=b[D],N=b[O],_=T[v],S=T[D],w=T[O],P=Z_.computeBarycentricCoordinates(t,n,I,_,L,S,N,w,xye);if(P.x>=-1e-15&&P.y>=-1e-15&&P.z>=-1e-15)return P.x*C[v]+P.y*C[D]+P.z*C[O]}}var US=RT;var rd={UNKNOWN:0,NONE:1,SELF:2,PARENT:3},M8=new J;function L8(){this._terrainCache={},this._lastTidy=J.now()}L8.prototype.add=function(e,t){this._terrainCache[e]={buffer:t,timestamp:J.now()}};L8.prototype.get=function(e){let n=this._terrainCache[e];if(l(n))return delete this._terrainCache[e],n.buffer};L8.prototype.tidy=function(){if(J.now(M8),J.secondsDifference(M8,this._lastTidy)>10){let e=this._terrainCache,t=Object.keys(e),n=t.length;for(let i=0;i<n;++i){let o=t[i],r=e[o];J.secondsDifference(M8,r.timestamp)>10&&delete e[o]}J.clone(M8,this._lastTidy)}};function T0(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=new Ui({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new se(-R.PI,-R.PI,R.PI,R.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new Tt(t)),this._credit=t,this._levelZeroMaximumGeometricError=40075.16,this._terrainCache=new L8,this._terrainPromises={},this._terrainRequests={},this._errorEvent=new pe}Object.defineProperties(T0.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tilingScheme:{get:function(){return this._tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});T0.fromMetadata=function(e,t){if(!e.terrainPresent)throw new le(`The server ${e.url} doesn't have terrain`);let n=new T0(t);return n._metadata=e,n};var Lst=new mi("decodeGoogleEarthEnterprisePacket");function bye(e,t,n){let i=t.getChildBitmask();if(t.terrainState===rd.PARENT){i=0;for(let o=0;o<4;++o){let r=n.getTileInformationFromQuadKey(e+o.toString());l(r)&&r.hasTerrain()&&(i|=1<<o)}}return i}T0.prototype.requestTileGeometry=function(e,t,n,i){let o=Q_.tileXYToQuadKey(e,t,n),r=this._terrainCache,s=this._metadata,a=s.getTileInformationFromQuadKey(o);if(!l(a))return Promise.reject(new le("Terrain tile doesn't exist"));let c=a.terrainState;l(c)||(c=a.terrainState=rd.UNKNOWN);let u=r.get(o);if(l(u)){let T=s.providers[a.terrainProvider];return Promise.resolve(new US({buffer:u,childTileMask:bye(o,a,s),credits:l(T)?[T]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold}))}if(r.tidy(),a.ancestorHasTerrain){if(c===rd.NONE)return Promise.reject(new le("Terrain tile doesn't exist"))}else return Promise.resolve(new Fa({buffer:new Uint8Array(16*16),width:16,height:16}));let f,d=o,p=-1;switch(c){case rd.SELF:p=a.terrainVersion;break;case rd.PARENT:d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),p=f.terrainVersion;break;case rd.UNKNOWN:a.hasTerrain()?p=a.terrainVersion:(d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),l(f)&&f.hasTerrain()&&(p=f.terrainVersion));break}if(p<0)return Promise.reject(new le("Terrain tile doesn't exist"));let g=this._terrainPromises,m=this._terrainRequests,x,b;if(l(g[d]))x=g[d],b=m[d];else{b=i;let T=Nst(this,d,p,b).fetchArrayBuffer();if(!l(T))return;x=T.then(function(C){return l(C)?Lst.scheduleTask({buffer:C,type:"Terrain",key:s.key},[C]).then(function(A){let E=s.getTileInformationFromQuadKey(d);E.terrainState=rd.SELF,r.add(d,A[0]);let v=E.terrainProvider,D=A.length-1;for(let O=0;O<D;++O){let I=d+O.toString(),L=s.getTileInformationFromQuadKey(I);l(L)&&(r.add(I,A[O+1]),L.terrainState=rd.PARENT,L.terrainProvider===0&&(L.terrainProvider=v))}}):Promise.reject(new le("Failed to load terrain."))}),g[d]=x,m[d]=b,x=x.finally(function(){delete g[d],delete m[d]})}return x.then(function(){let T=r.get(o);if(l(T)){let C=s.providers[a.terrainProvider];return new US({buffer:T,childTileMask:bye(o,a,s),credits:l(C)?[C]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold})}return Promise.reject(new le("Failed to load terrain."))}).catch(function(T){return b.state===$n.CANCELLED?(i.state=b.state,Promise.reject(T)):(a.terrainState=rd.NONE,Promise.reject(T))})};T0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};T0.prototype.getTileDataAvailable=function(e,t,n){let i=this._metadata,o=Q_.tileXYToQuadKey(e,t,n),r=i.getTileInformation(e,t,n);if(r===null)return!1;if(l(r)){if(!r.ancestorHasTerrain)return!0;let s=r.terrainState;if(s===rd.NONE)return!1;if((!l(s)||s===rd.UNKNOWN)&&(r.terrainState=rd.UNKNOWN,!r.hasTerrain())){o=o.substring(0,o.length-1);let a=i.getTileInformationFromQuadKey(o);if(!l(a)||!a.hasTerrain())return!1}return!0}if(i.isValid(o)){let s=new qo({throttle:!1,throttleByServer:!0,type:os.TERRAIN});i.populateSubtree(e,t,n,s)}return!1};T0.prototype.loadTileDataAvailability=function(e,t,n){};function Nst(e,t,n,i){return n=l(n)&&n>0?n:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1c-0${t}-t.${n.toString()}`,request:i})}var pX=T0;var N8={};N8.defaultApiKey=void 0;N8.mapTilesApiEndpoint=new De({url:"https://tile.googleapis.com/v1/"});N8.getDefaultCredit=function(){return new Tt('<img src="https://assets.ion-development.cesium.com/google-credit.png" alt="Google">',!0)};var OT=N8;function Fst(e,t,n,i){this.rightAscension=e,this.declination=t,this.rotation=n,this.rotationRate=i}var uF=Fst;var Lye={},Bst=32.184,kst=2451545,Tye=-.0529921,Aye=-.1059842,Cye=13.0120009,Eye=13.3407154,Sye=.9856003,vye=26.4057084,wye=13.064993,Dye=.3287146,Pye=1.7484877,Iye=-.1589763,Rye=.0036096,Oye=.1643573,Mye=12.9590088,_X=new J;Lye.ComputeMoon=function(e,t){l(e)||(e=J.now()),_X=J.addSeconds(e,Bst,_X);let n=J.totalDays(_X)-kst,i=n/Xn.DAYS_PER_JULIAN_CENTURY,o=(125.045+Tye*n)*R.RADIANS_PER_DEGREE,r=(250.089+Aye*n)*R.RADIANS_PER_DEGREE,s=(260.008+Cye*n)*R.RADIANS_PER_DEGREE,a=(176.625+Eye*n)*R.RADIANS_PER_DEGREE,c=(357.529+Sye*n)*R.RADIANS_PER_DEGREE,u=(311.589+vye*n)*R.RADIANS_PER_DEGREE,f=(134.963+wye*n)*R.RADIANS_PER_DEGREE,d=(276.617+Dye*n)*R.RADIANS_PER_DEGREE,p=(34.226+Pye*n)*R.RADIANS_PER_DEGREE,g=(15.134+Iye*n)*R.RADIANS_PER_DEGREE,m=(119.743+Rye*n)*R.RADIANS_PER_DEGREE,x=(239.961+Oye*n)*R.RADIANS_PER_DEGREE,b=(25.053+Mye*n)*R.RADIANS_PER_DEGREE,T=Math.sin(o),C=Math.sin(r),A=Math.sin(s),E=Math.sin(a),v=Math.sin(c),D=Math.sin(u),O=Math.sin(f),I=Math.sin(d),L=Math.sin(p),N=Math.sin(g),_=Math.sin(m),S=Math.sin(x),w=Math.sin(b),P=Math.cos(o),M=Math.cos(r),B=Math.cos(s),U=Math.cos(a),V=Math.cos(c),G=Math.cos(u),k=Math.cos(f),Y=Math.cos(d),W=Math.cos(p),Q=Math.cos(g),j=Math.cos(m),K=Math.cos(x),Z=Math.cos(b),he=(269.9949+.0031*i-3.8787*T-.1204*C+.07*A-.0172*E+.0072*D-.0052*N+.0043*w)*R.RADIANS_PER_DEGREE,be=(66.5392+.013*i+1.5419*P+.0239*M-.0278*B+.0068*U-.0029*G+9e-4*k+8e-4*Q-9e-4*Z)*R.RADIANS_PER_DEGREE,re=(38.3213+13.17635815*n-14e-13*n*n+3.561*T+.1208*C-.0642*A+.0158*E+.0252*v-.0066*D-.0047*O-.0046*I+.0028*L+.0052*N+.004*_+.0019*S-.0044*w)*R.RADIANS_PER_DEGREE,_e=(13.17635815-14e-13*(2*n)+3.561*P*Tye+.1208*M*Aye-.0642*B*Cye+.0158*U*Eye+.0252*V*Sye-.0066*G*vye-.0047*k*wye-.0046*Y*Dye+.0028*W*Pye+.0052*Q*Iye+.004*j*Rye+.0019*K*Oye-.0044*Z*Mye)/86400*R.RADIANS_PER_DEGREE;return l(t)||(t=new uF),t.rightAscension=he,t.declination=be,t.rotation=re,t.rotationRate=_e,t};var fF=Lye;function Nye(e){(!l(e)||typeof e!="function")&&(e=fF.ComputeMoon),this._computeFunction=e}var Vst=new h,Ust=new h,zst=new h;function Hst(e,t,n){let i=Vst;i.x=Math.cos(e+R.PI_OVER_TWO),i.y=Math.sin(e+R.PI_OVER_TWO),i.z=0;let o=Math.cos(t),r=zst;r.x=o*Math.cos(e),r.y=o*Math.sin(e),r.z=Math.sin(t);let s=h.cross(r,i,Ust);return l(n)||(n=new $),n[0]=i.x,n[1]=s.x,n[2]=r.x,n[3]=i.y,n[4]=s.y,n[5]=r.y,n[6]=i.z,n[7]=s.z,n[8]=r.z,n}var Gst=new $,Wst=new Me;Nye.prototype.evaluate=function(e,t){l(e)||(e=J.now());let n=this._computeFunction(e),i=Hst(n.rightAscension,n.declination,t),o=R.zeroToTwoPi(n.rotation),r=Me.fromAxisAngle(h.UNIT_Z,o,Wst),s=$.fromQuaternion(Me.conjugate(r,r),Gst);return $.multiply(s,i,i)};var dF=Nye;var hF={};hF.type=void 0;hF.getRequiredDataPoints=de.throwInstantiationError;hF.interpolateOrderZero=de.throwInstantiationError;hF.interpolate=de.throwInstantiationError;var gX=hF;function yX(e){this._url=De.createIfNeeded(e),this._url.appendForwardSlash()}Object.defineProperties(yX.prototype,{url:{get:function(){return this._url}},credit:{get:function(){}}});yX.prototype.geocode=async function(e,t){return this._url.getDerivedResource({url:t===b0.AUTOCOMPLETE?"autocomplete":"search",queryParameters:{text:e}}).fetchJson().then(function(i){return i.features.map(function(o){let r,s=o.bbox;if(l(s))r=se.fromDegrees(s[0],s[1],s[2],s[3]);else{let a=o.geometry.coordinates[0],c=o.geometry.coordinates[1];r=h.fromDegrees(a,c)}return{displayName:o.properties.label,destination:r,attributions:i.attributions}})})};var mF=yX;function xX(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.accessToken,Nd.defaultAccessToken),n=De.createIfNeeded(y(e.server,Nd.defaultServer));n.appendForwardSlash();let i=Nd.getDefaultTokenCredit(t);l(i)&&e.scene.frameState.creditDisplay.addStaticCredit(Tt.clone(i));let o=n.getDerivedResource({url:"v1/geocode"});l(t)&&o.appendQueryParameters({access_token:t}),this._accessToken=t,this._server=n,this._pelias=new mF(o)}Object.defineProperties(xX.prototype,{credit:{get:function(){}}});xX.prototype.geocode=async function(e,t){return this._pelias.geocode(e,t)};var pF=xX;var jst={SHIFT:0,CTRL:1,ALT:2},fa=Object.freeze(jst);function F8(){de.throwInstantiationError()}Object.defineProperties(F8.prototype,{ellipsoid:{get:de.throwInstantiationError}});F8.prototype.project=de.throwInstantiationError;F8.prototype.unproject=de.throwInstantiationError;var bX=F8;function zS(e){e=y(e,y.EMPTY_OBJECT);let t=e.weights,n=e.times;this._times=n,this._weights=t,this._count=t.length/n.length,this._lastTimeIndex=0}Object.defineProperties(zS.prototype,{times:{get:function(){return this._times}},weights:{get:function(){return this._weights}}});zS.prototype.findTimeInterval=io.prototype.findTimeInterval;zS.prototype.wrapTime=io.prototype.wrapTime;zS.prototype.clampTime=io.prototype.clampTime;zS.prototype.evaluate=function(e,t){let n=this.weights,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);l(t)||(t=new Array(this._count));for(let s=0;s<this._count;s++){let a=o*this._count+s;t[s]=n[a]*(1-r)+n[a+this._count]*r}return t};var TX=zS;var qst={NONE:-1,PARTIAL:0,FULL:1},fr=Object.freeze(qst);function Sc(e,t){this._occluderPosition=h.clone(e.center),this._occluderRadius=e.radius,this._horizonDistance=0,this._horizonPlaneNormal=void 0,this._horizonPlanePosition=void 0,this._cameraPosition=void 0,this.cameraPosition=t}var B8=new h;Object.defineProperties(Sc.prototype,{position:{get:function(){return this._occluderPosition}},radius:{get:function(){return this._occluderRadius}},cameraPosition:{set:function(e){e=h.clone(e,this._cameraPosition);let t=h.subtract(this._occluderPosition,e,B8),n=h.magnitudeSquared(t),i=this._occluderRadius*this._occluderRadius,o,r,s;if(n>i){o=Math.sqrt(n-i),n=1/Math.sqrt(n),r=h.multiplyByScalar(t,n,B8);let a=o*o*n;s=h.add(e,h.multiplyByScalar(r,a,B8),B8)}else o=Number.MAX_VALUE;this._horizonDistance=o,this._horizonPlaneNormal=r,this._horizonPlanePosition=s,this._cameraPosition=e}}});Sc.fromBoundingSphere=function(e,t,n){return l(n)?(h.clone(e.center,n._occluderPosition),n._occluderRadius=e.radius,n.cameraPosition=t,n):new Sc(e,t)};var Bye=new h;Sc.prototype.isPointVisible=function(e){if(this._horizonDistance!==Number.MAX_VALUE){let t=h.subtract(e,this._occluderPosition,Bye),n=this._occluderRadius;if(n=h.magnitudeSquared(t)-n*n,n>0)return n=Math.sqrt(n)+this._horizonDistance,t=h.subtract(e,this._cameraPosition,t),n*n>h.magnitudeSquared(t)}return!1};var Yst=new h;Sc.prototype.isBoundingSphereVisible=function(e){let t=h.clone(e.center,Yst),n=e.radius;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,Bye),o=this._occluderRadius-n;if(o=h.magnitudeSquared(i)-o*o,n<this._occluderRadius)return o>0?(o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i),o*o+n*n>h.magnitudeSquared(i)):!1;if(o>0){i=h.subtract(t,this._cameraPosition,i);let r=h.magnitudeSquared(i),s=this._occluderRadius*this._occluderRadius,a=n*n;return(this._horizonDistance*this._horizonDistance+s)*a>r*s?!0:(o=Math.sqrt(o)+this._horizonDistance,o*o+a>r)}return!0}return!1};var Xst=new h;Sc.prototype.computeVisibility=function(e){let t=h.clone(e.center),n=e.radius;if(n>this._occluderRadius)return fr.FULL;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,Xst),o=this._occluderRadius-n,r=h.magnitudeSquared(i);if(o=r-o*o,o>0){o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i);let s=h.magnitudeSquared(i);return o*o+n*n<s?fr.NONE:(o=this._occluderRadius+n,o=r-o*o,o>0?(o=Math.sqrt(o)+this._horizonDistance,s<o*o+n*n?fr.FULL:fr.PARTIAL):(i=h.subtract(t,this._horizonPlanePosition,i),h.dot(i,this._horizonPlaneNormal)>-n?fr.PARTIAL:fr.FULL))}}return fr.NONE};var k8=new h;Sc.computeOccludeePoint=function(e,t,n){let i=h.clone(t),o=h.clone(e.center),r=e.radius,s=n.length,a=h.normalize(h.subtract(i,o,k8),k8),c=-h.dot(a,o),u=Sc._anyRotationVector(o,a,c),f=Sc._horizonToPlaneNormalDotProduct(e,a,c,u,n[0]);if(!f)return;let d;for(let g=1;g<s;++g){if(d=Sc._horizonToPlaneNormalDotProduct(e,a,c,u,n[g]),!d)return;d<f&&(f=d)}if(f<.0017453283658983088)return;let p=r/f;return h.add(o,h.multiplyByScalar(a,p,k8),k8)};var Kst=[];Sc.computeOccludeePointFromRectangle=function(e,t){t=y(t,te.WGS84);let n=se.subsample(e,t,0,Kst),i=ae.fromPoints(n),o=h.ZERO;if(!h.equals(o,i.center))return Sc.computeOccludeePoint(new ae(o,t.minimumRadius),i.center,n)};var Zst=new h;Sc._anyRotationVector=function(e,t,n){let i=h.abs(t,Zst),o=i.x>i.y?0:1;(o===0&&i.z>i.x||o===1&&i.z>i.y)&&(o=2);let r=new h,s;o===0?(i.x=e.x,i.y=e.y+1,i.z=e.z+1,s=h.UNIT_X):o===1?(i.x=e.x+1,i.y=e.y,i.z=e.z+1,s=h.UNIT_Y):(i.x=e.x+1,i.y=e.y+1,i.z=e.z,s=h.UNIT_Z);let a=(h.dot(t,i)+n)/-h.dot(t,s);return h.normalize(h.subtract(h.add(i,h.multiplyByScalar(s,a,r),i),e,i),i)};var $st=new h;Sc._rotationVector=function(e,t,n,i,o){let r=h.subtract(i,e,$st);if(r=h.normalize(r,r),h.dot(t,r)<.9999999847691291){let s=h.cross(t,r,r);if(h.magnitude(s)>R.EPSILON13)return h.normalize(s,new h)}return o};var AX=new h,Qst=new h,V8=new h,Fye=new h;Sc._horizonToPlaneNormalDotProduct=function(e,t,n,i,o){let r=h.clone(o,AX),s=h.clone(e.center,Qst),a=e.radius,c=h.subtract(s,r,V8),u=h.magnitudeSquared(c),f=a*a;if(u<f)return!1;let d=u-f,p=Math.sqrt(d),m=1/Math.sqrt(u),b=p*m*p;c=h.normalize(c,c);let T=h.add(r,h.multiplyByScalar(c,b,Fye),Fye),C=Math.sqrt(d-b*b),A=this._rotationVector(s,t,n,r,i),E=h.fromElements(A.x*A.x*c.x+(A.x*A.y-A.z)*c.y+(A.x*A.z+A.y)*c.z,(A.x*A.y+A.z)*c.x+A.y*A.y*c.y+(A.y*A.z-A.x)*c.z,(A.x*A.z-A.y)*c.x+(A.y*A.z+A.x)*c.y+A.z*A.z*c.z,AX);E=h.normalize(E,E);let v=h.multiplyByScalar(E,C,AX);A=h.normalize(h.subtract(h.add(T,v,V8),s,V8),V8);let D=h.dot(t,A);A=h.normalize(h.subtract(h.subtract(T,v,A),s,A),A);let O=h.dot(t,A);return D<O?D:O};var _F=Sc;function CX(e,t,n){e=De.createIfNeeded(e),e.appendForwardSlash(),e.setQueryParameters({key:t}),this._url=e,this._params=y(n,{}),this._credit=new Tt('Geodata copyright <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors',!1)}Object.defineProperties(CX.prototype,{url:{get:function(){return this._url}},params:{get:function(){return this._params}},credit:{get:function(){return this._credit}}});CX.prototype.geocode=async function(e){return this._url.getDerivedResource({url:"json",queryParameters:_t(this._params,{q:e})}).fetchJson().then(function(n){return n.results.map(function(i){let o,r=i.bounds;if(l(r))o=se.fromDegrees(r.southwest.lng,r.southwest.lat,r.northeast.lng,r.northeast.lat);else{let s=i.geometry.lat,a=i.geometry.lng;o=h.fromDegrees(s,a)}return{displayName:i.formatted,destination:o}})})};var EX=CX;var Jst={packedLength:void 0,pack:de.throwInstantiationError,unpack:de.throwInstantiationError},SX=Jst;var eat={packedInterpolationLength:void 0,convertPackedArrayForInterpolation:de.throwInstantiationError,unpackInterpolationResult:de.throwInstantiationError},vX=eat;function kye(){de.throwInstantiationError()}kye.prototype.getURL=de.throwInstantiationError;var wX=kye;var tat={LEFT_DOWN:0,LEFT_UP:1,LEFT_CLICK:2,LEFT_DOUBLE_CLICK:3,RIGHT_DOWN:5,RIGHT_UP:6,RIGHT_CLICK:7,MIDDLE_DOWN:10,MIDDLE_UP:11,MIDDLE_CLICK:12,MOUSE_MOVE:15,WHEEL:16,PINCH_START:17,PINCH_END:18,PINCH_MOVE:19},bn=Object.freeze(tat);function A0(e,t,n){let i=e._element;if(i===document)return n.x=t.clientX,n.y=t.clientY,n;let o=i.getBoundingClientRect();return n.x=t.clientX-o.left,n.y=t.clientY-o.top,n}function MX(e,t){let n=e;return l(t)&&(n+=`+${t}`),n}function MT(e){if(e.shiftKey)return fa.SHIFT;if(e.ctrlKey)return fa.CTRL;if(e.altKey)return fa.ALT}var Ss={LEFT:0,MIDDLE:1,RIGHT:2};function qu(e,t,n,i){function o(r){i(e,r)}Vt.isInternetExplorer()?n.addEventListener(t,o,!1):n.addEventListener(t,o,{capture:!1,passive:!1}),e._removalFunctions.push(function(){n.removeEventListener(t,o,!1)})}function nat(e){let t=e._element,n=l(t.disableRootEvents)?t:document;Vt.supportsPointerEvents()?(qu(e,"pointerdown",t,cat),qu(e,"pointerup",t,Xye),qu(e,"pointermove",t,lat),qu(e,"pointercancel",t,Xye)):(qu(e,"mousedown",t,Kye),qu(e,"mouseup",n,Zye),qu(e,"mousemove",n,$ye),qu(e,"touchstart",t,sat),qu(e,"touchend",n,Gye),qu(e,"touchmove",n,aat),qu(e,"touchcancel",n,Gye)),qu(e,"dblclick",t,oat);let i;"onwheel"in t?i="wheel":document.onmousewheel!==void 0?i="mousewheel":i="DOMMouseScroll",qu(e,i,t,rat)}function iat(e){let t=e._removalFunctions;for(let n=0;n<t.length;++n)t[n]()}var Vye={position:new z};function LX(e){e._lastSeenTouchEvent=pi()}function NX(e){return pi()-e._lastSeenTouchEvent>Ih.mouseEmulationIgnoreMilliseconds}function OX(e,t,n){let i=e.x-t.x,o=e.y-t.y;return Math.sqrt(i*i+o*o)<n}function Kye(e,t){if(!NX(e))return;let n=t.button;e._buttonDown[n]=!0;let i;if(n===Ss.LEFT)i=bn.LEFT_DOWN;else if(n===Ss.MIDDLE)i=bn.MIDDLE_DOWN;else if(n===Ss.RIGHT)i=bn.RIGHT_DOWN;else return;let o=A0(e,t,e._primaryPosition);z.clone(o,e._primaryStartPosition),z.clone(o,e._primaryPreviousPosition);let r=MT(t),s=e.getInputAction(i,r);l(s)&&(z.clone(o,Vye.position),s(Vye),t.preventDefault())}var Uye={position:new z},zye={position:new z};function DX(e,t,n,i){let o=MT(i),r=e.getInputAction(t,o),s=e.getInputAction(n,o);if(l(r)||l(s)){let a=A0(e,i,e._primaryPosition);if(l(r)&&(z.clone(a,Uye.position),r(Uye)),l(s)){let c=e._primaryStartPosition;OX(c,a,e._clickPixelTolerance)&&(z.clone(a,zye.position),s(zye))}}}function Zye(e,t){if(!NX(e))return;let n=t.button;n!==Ss.LEFT&&n!==Ss.MIDDLE&&n!==Ss.RIGHT||(e._buttonDown[Ss.LEFT]&&(DX(e,bn.LEFT_UP,bn.LEFT_CLICK,t),e._buttonDown[Ss.LEFT]=!1),e._buttonDown[Ss.MIDDLE]&&(DX(e,bn.MIDDLE_UP,bn.MIDDLE_CLICK,t),e._buttonDown[Ss.MIDDLE]=!1),e._buttonDown[Ss.RIGHT]&&(DX(e,bn.RIGHT_UP,bn.RIGHT_CLICK,t),e._buttonDown[Ss.RIGHT]=!1))}var PX={startPosition:new z,endPosition:new z};function $ye(e,t){if(!NX(e))return;let n=MT(t),i=A0(e,t,e._primaryPosition),o=e._primaryPreviousPosition,r=e.getInputAction(bn.MOUSE_MOVE,n);l(r)&&(z.clone(o,PX.startPosition),z.clone(i,PX.endPosition),r(PX)),z.clone(i,o),(e._buttonDown[Ss.LEFT]||e._buttonDown[Ss.MIDDLE]||e._buttonDown[Ss.RIGHT])&&t.preventDefault()}var Hye={position:new z};function oat(e,t){let n=t.button,i;if(n===Ss.LEFT)i=bn.LEFT_DOUBLE_CLICK;else return;let o=MT(t),r=e.getInputAction(i,o);l(r)&&(A0(e,t,Hye.position),r(Hye))}function rat(e,t){let n;if(l(t.deltaY)){let r=t.deltaMode;r===t.DOM_DELTA_PIXEL?n=-t.deltaY:r===t.DOM_DELTA_LINE?n=-t.deltaY*40:n=-t.deltaY*120}else t.detail>0?n=t.detail*-120:n=t.wheelDelta;if(!l(n))return;let i=MT(t),o=e.getInputAction(bn.WHEEL,i);l(o)&&(o(n),t.preventDefault())}function sat(e,t){LX(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.set(s,A0(e,r,new z));U8(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.set(s,z.clone(a.get(s)))}function Gye(e,t){LX(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.remove(s);U8(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.remove(s)}var Wye={position:new z},IX={position1:new z,position2:new z},jye={position:new z},qye={position:new z},Yye={position:new z};function U8(e,t){let n=MT(t),i=e._positions,o=i.length,r,s,a=e._isPinching;if(o!==1&&e._buttonDown[Ss.LEFT]){if(e._buttonDown[Ss.LEFT]=!1,l(e._touchHoldTimer)&&(clearTimeout(e._touchHoldTimer),e._touchHoldTimer=void 0),r=e.getInputAction(bn.LEFT_UP,n),l(r)&&(z.clone(e._primaryPosition,jye.position),r(jye)),o===0&&!e._isTouchHolding&&(s=e.getInputAction(bn.LEFT_CLICK,n),l(s))){let c=e._primaryStartPosition,u=e._previousPositions.values[0];OX(c,u,e._clickPixelTolerance)&&(z.clone(e._primaryPosition,qye.position),s(qye))}e._isTouchHolding=!1}if(o===0&&a&&(e._isPinching=!1,r=e.getInputAction(bn.PINCH_END,n),l(r)&&r()),o===1&&!a){let c=i.values[0];z.clone(c,e._primaryPosition),z.clone(c,e._primaryStartPosition),z.clone(c,e._primaryPreviousPosition),e._buttonDown[Ss.LEFT]=!0,r=e.getInputAction(bn.LEFT_DOWN,n),l(r)&&(z.clone(c,Wye.position),r(Wye)),e._touchHoldTimer=setTimeout(function(){if(!e.isDestroyed()&&(e._touchHoldTimer=void 0,e._isTouchHolding=!0,s=e.getInputAction(bn.RIGHT_CLICK,n),l(s))){let u=e._primaryStartPosition,f=e._previousPositions.values[0];OX(u,f,e._holdPixelTolerance)&&(z.clone(e._primaryPosition,Yye.position),s(Yye))}},Ih.touchHoldDelayMilliseconds),t.preventDefault()}o===2&&!a&&(e._isPinching=!0,r=e.getInputAction(bn.PINCH_START,n),l(r)&&(z.clone(i.values[0],IX.position1),z.clone(i.values[1],IX.position2),r(IX),t.preventDefault()))}function aat(e,t){LX(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i){r=n[i],s=r.identifier;let u=a.get(s);l(u)&&A0(e,r,u)}Qye(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,z.clone(a.get(s),c.get(s))}var RX={startPosition:new z,endPosition:new z},gF={distance:{startPosition:new z,endPosition:new z},angleAndHeight:{startPosition:new z,endPosition:new z}};function Qye(e,t){let n=MT(t),i=e._positions,o=e._previousPositions,r=i.length,s;if(r===1&&e._buttonDown[Ss.LEFT]){let a=i.values[0];z.clone(a,e._primaryPosition);let c=e._primaryPreviousPosition;s=e.getInputAction(bn.MOUSE_MOVE,n),l(s)&&(z.clone(c,RX.startPosition),z.clone(a,RX.endPosition),s(RX)),z.clone(a,c),t.preventDefault()}else if(r===2&&e._isPinching&&(s=e.getInputAction(bn.PINCH_MOVE,n),l(s))){let a=i.values[0],c=i.values[1],u=o.values[0],f=o.values[1],d=c.x-a.x,p=c.y-a.y,g=Math.sqrt(d*d+p*p)*.25,m=f.x-u.x,x=f.y-u.y,b=Math.sqrt(m*m+x*x)*.25,T=(c.y+a.y)*.125,C=(f.y+u.y)*.125,A=Math.atan2(p,d),E=Math.atan2(x,m);z.fromElements(0,b,gF.distance.startPosition),z.fromElements(0,g,gF.distance.endPosition),z.fromElements(E,C,gF.angleAndHeight.startPosition),z.fromElements(A,T,gF.angleAndHeight.endPosition),s(gF)}}function cat(e,t){if(t.target.setPointerCapture(t.pointerId),t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.set(i,A0(e,t,new z)),U8(e,t),e._previousPositions.set(i,z.clone(n.get(i)))}else Kye(e,t)}function Xye(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.remove(i),U8(e,t),e._previousPositions.remove(i)}else Zye(e,t)}function lat(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId,o=n.get(i);if(!l(o))return;A0(e,t,o),Qye(e,t);let r=e._previousPositions;z.clone(n.get(i),r.get(i))}else $ye(e,t)}function Ih(e){this._inputEvents={},this._buttonDown={LEFT:!1,MIDDLE:!1,RIGHT:!1},this._isPinching=!1,this._isTouchHolding=!1,this._lastSeenTouchEvent=-Ih.mouseEmulationIgnoreMilliseconds,this._primaryStartPosition=new z,this._primaryPosition=new z,this._primaryPreviousPosition=new z,this._positions=new bt,this._previousPositions=new bt,this._removalFunctions=[],this._touchHoldTimer=void 0,this._clickPixelTolerance=5,this._holdPixelTolerance=25,this._element=y(e,document),nat(this)}Ih.prototype.setInputAction=function(e,t,n){let i=MX(t,n);this._inputEvents[i]=e};Ih.prototype.getInputAction=function(e,t){let n=MX(e,t);return this._inputEvents[n]};Ih.prototype.removeInputAction=function(e,t){let n=MX(e,t);delete this._inputEvents[n]};Ih.prototype.isDestroyed=function(){return!1};Ih.prototype.destroy=function(){return iat(this),ue(this)};Ih.mouseEmulationIgnoreMilliseconds=800;Ih.touchHoldDelayMilliseconds=1500;var Yu=Ih;function uat(e,t,n,i,o,r,s){let a=wi.numberOfPoints(e,t,o),c,u=n.red,f=n.green,d=n.blue,p=n.alpha,g=i.red,m=i.green,x=i.blue,b=i.alpha;if(H.equals(n,i)){for(c=0;c<a;c++)r[s++]=H.floatToByte(u),r[s++]=H.floatToByte(f),r[s++]=H.floatToByte(d),r[s++]=H.floatToByte(p);return s}let T=(g-u)/a,C=(m-f)/a,A=(x-d)/a,E=(b-p)/a,v=s;for(c=0;c<a;c++)r[v++]=H.floatToByte(u+c*T),r[v++]=H.floatToByte(f+c*C),r[v++]=H.floatToByte(d+c*A),r[v++]=H.floatToByte(p+c*E);return v}function yF(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._colorsPerVertex=i,this._arcType=y(e.arcType,Qt.GEODESIC),this._granularity=y(e.granularity,R.RADIANS_PER_DEGREE),this._ellipsoid=y(e.ellipsoid,te.WGS84),this._workerName="createSimplePolylineGeometry";let o=1+t.length*h.packedLength;o+=l(n)?1+n.length*H.packedLength:1,this.packedLength=o+te.packedLength+3}yF.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._colors;for(r=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=H.packedLength)H.pack(s[i],t,n);return te.pack(e._ellipsoid,t,n),n+=te.packedLength,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};yF.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=H.packedLength)s[i]=H.unpack(e,t);let a=te.unpack(e,t);t+=te.packedLength;let c=e[t++]===1,u=e[t++],f=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=a,n._colorsPerVertex=c,n._arcType=u,n._granularity=f,n):new yF({positions:r,colors:s,ellipsoid:a,colorsPerVertex:c,arcType:u,granularity:f})};var z8=new Array(2),H8=new Array(2),fat={positions:z8,height:H8,ellipsoid:void 0,minDistance:void 0,granularity:void 0};yF.createGeometry=function(e){let t=e._positions,n=e._colors,i=e._colorsPerVertex,o=e._arcType,r=e._granularity,s=e._ellipsoid,a=R.chordLength(r,s.maximumRadius),c=l(n)&&!i,u,f=t.length,d,p,g,m,x=0;if(o===Qt.GEODESIC||o===Qt.RHUMB){let E,v,D;o===Qt.GEODESIC?(E=R.chordLength(r,s.maximumRadius),v=wi.numberOfPoints,D=wi.generateArc):(E=r,v=wi.numberOfPointsRhumbLine,D=wi.generateRhumbArc);let O=wi.extractHeights(t,s),I=fat;if(o===Qt.GEODESIC?I.minDistance=a:I.granularity=r,I.ellipsoid=s,c){let L=0;for(u=0;u<f-1;u++)L+=v(t[u],t[u+1],E)+1;d=new Float64Array(L*3),g=new Uint8Array(L*4),I.positions=z8,I.height=H8;let N=0;for(u=0;u<f-1;++u){z8[0]=t[u],z8[1]=t[u+1],H8[0]=O[u],H8[1]=O[u+1];let _=D(I);if(l(n)){let S=_.length/3;m=n[u];for(let w=0;w<S;++w)g[N++]=H.floatToByte(m.red),g[N++]=H.floatToByte(m.green),g[N++]=H.floatToByte(m.blue),g[N++]=H.floatToByte(m.alpha)}d.set(_,x),x+=_.length}}else if(I.positions=t,I.height=O,d=new Float64Array(D(I)),l(n)){for(g=new Uint8Array(d.length/3*4),u=0;u<f-1;++u){let N=t[u],_=t[u+1],S=n[u],w=n[u+1];x=uat(N,_,S,w,a,g,x)}let L=n[f-1];g[x++]=H.floatToByte(L.red),g[x++]=H.floatToByte(L.green),g[x++]=H.floatToByte(L.blue),g[x++]=H.floatToByte(L.alpha)}}else{p=c?f*2-2:f,d=new Float64Array(p*3),g=l(n)?new Uint8Array(p*4):void 0;let E=0,v=0;for(u=0;u<f;++u){let D=t[u];if(c&&u>0&&(h.pack(D,d,E),E+=3,m=n[u-1],g[v++]=H.floatToByte(m.red),g[v++]=H.floatToByte(m.green),g[v++]=H.floatToByte(m.blue),g[v++]=H.floatToByte(m.alpha)),c&&u===f-1)break;h.pack(D,d,E),E+=3,l(n)&&(m=n[u],g[v++]=H.floatToByte(m.red),g[v++]=H.floatToByte(m.green),g[v++]=H.floatToByte(m.blue),g[v++]=H.floatToByte(m.alpha))}}let b=new fn;b.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),l(n)&&(b.color=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:g,normalize:!0})),p=d.length/3;let T=(p-1)*2,C=Ne.createTypedArray(p,T),A=0;for(u=0;u<p-1;++u)C[A++]=u,C[A++]=u+1;return new st({attributes:b,indices:C,primitiveType:Le.LINES,boundingSphere:ae.fromPoints(t)})};var FX=yF;function HS(e){let t=y(e.radius,1),i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new Ws(i),this._workerName="createSphereGeometry"}HS.packedLength=Ws.packedLength;HS.pack=function(e,t,n){return Ws.pack(e._ellipsoidGeometry,t,n)};var dat=new Ws,C0={radius:void 0,radii:new h,vertexFormat:new Ie,stackPartitions:void 0,slicePartitions:void 0};HS.unpack=function(e,t,n){let i=Ws.unpack(e,t,dat);return C0.vertexFormat=Ie.clone(i._vertexFormat,C0.vertexFormat),C0.stackPartitions=i._stackPartitions,C0.slicePartitions=i._slicePartitions,l(n)?(h.clone(i._radii,C0.radii),n._ellipsoidGeometry=new Ws(C0),n):(C0.radius=i._radii.x,new HS(C0))};HS.createGeometry=function(e){return Ws.createGeometry(e._ellipsoidGeometry)};var BX=HS;var hat={WEST:0,NORTH:1,EAST:2,SOUTH:3,NORTHWEST:4,NORTHEAST:5,SOUTHWEST:6,SOUTHEAST:7},_n=hat;function E0(e){}Object.defineProperties(E0.prototype,{ellipsoid:{get:de.throwInstantiationError},rectangle:{get:de.throwInstantiationError},projection:{get:de.throwInstantiationError}});E0.prototype.getNumberOfXTilesAtLevel=de.throwInstantiationError;E0.prototype.getNumberOfYTilesAtLevel=de.throwInstantiationError;E0.prototype.rectangleToNativeRectangle=de.throwInstantiationError;E0.prototype.tileXYToNativeRectangle=de.throwInstantiationError;E0.prototype.tileXYToRectangle=de.throwInstantiationError;E0.prototype.positionToTileXY=de.throwInstantiationError;var kX=E0;function mat(e,t){this.rectangle=e,this.maxLevel=t}function Jye(e){this.ellipsoid=y(e.ellipsoid,te.WGS84),this.tilingScheme=void 0,this.heightmapWidth=void 0,this.heightmapHeight=void 0,this.levelZeroMaximumGeometricError=void 0,this.rectangles=[]}Jye.prototype.build=function(e){e._tilingScheme=this.tilingScheme,e._heightmapWidth=this.heightmapWidth,e._heightmapHeight=this.heightmapHeight,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._rectangles=this.rectangles};function pat(e,t){let n=t.getElementsByTagName("SRS")[0].textContent;if(n==="EPSG:4326")e.tilingScheme=new Ui({ellipsoid:e.ellipsoid});else throw new le(`SRS ${n} is not supported`);let i=t.getElementsByTagName("TileFormat")[0];e.heightmapWidth=parseInt(i.getAttribute("width"),10),e.heightmapHeight=parseInt(i.getAttribute("height"),10),e.levelZeroMaximumGeometricError=Kr.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.ellipsoid,Math.min(e.heightmapWidth,e.heightmapHeight),e.tilingScheme.getNumberOfXTilesAtLevel(0));let o=t.getElementsByTagName("DataExtent");for(let r=0;r<o.length;++r){let s=o[r],a=R.toRadians(parseFloat(s.getAttribute("minx"))),c=R.toRadians(parseFloat(s.getAttribute("miny"))),u=R.toRadians(parseFloat(s.getAttribute("maxx"))),f=R.toRadians(parseFloat(s.getAttribute("maxy"))),d=parseInt(s.getAttribute("maxlevel"),10);e.rectangles.push(new mat(new se(a,c,u,f),d))}}function _at(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i=`${i}: ${t.message}`),vo.reportError(void 0,n,l(n)?n._errorEvent:void 0,i),new le(i)}async function gat(e,t,n){try{let i=await t.fetchXML();pat(e,i)}catch(i){_at(t,i,n)}}function S0(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new pe,this._terrainDataStructure={heightScale:1/1e3,heightOffset:-1e3,elementsPerHeight:3,stride:4,elementMultiplier:256,isBigEndian:!0,lowestEncodedHeight:0,highestEncodedHeight:256*256*256-1};let t=e.credit;typeof t=="string"&&(t=new Tt(t)),this._credit=t,this._tilingScheme=void 0,this._rectangles=[]}Object.defineProperties(S0.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});S0.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=new Jye(t),i=De.createIfNeeded(e);await gat(n,i);let o=new S0(t);return n.build(o),o._resource=i,o};S0.prototype.requestTileGeometry=function(e,t,n,i){let o=this._tilingScheme.getNumberOfYTilesAtLevel(n),s=this._resource.getDerivedResource({url:`${n}/${e}/${o-t-1}.tif`,queryParameters:{cesium:!0},request:i}).fetchImage({preferImageBitmap:!0});if(!l(s))return;let a=this;return Promise.resolve(s).then(function(c){return new Fa({buffer:bd(c),width:a._heightmapWidth,height:a._heightmapHeight,childTileMask:yat(a,e,t,n),structure:a._terrainDataStructure})})};S0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};var e0e=new se;function yat(e,t,n,i){let o=e._tilingScheme,r=e._rectangles,s=o.tileXYToRectangle(t,n,i),a=0;for(let c=0;c<r.length&&a!==15;++c){let u=r[c];if(u.maxLevel<=i)continue;let f=u.rectangle,d=se.intersection(f,s,e0e);l(d)&&(G8(o,f,t*2,n*2,i+1)&&(a|=4),G8(o,f,t*2+1,n*2,i+1)&&(a|=8),G8(o,f,t*2,n*2+1,i+1)&&(a|=1),G8(o,f,t*2+1,n*2+1,i+1)&&(a|=2))}return a}function G8(e,t,n,i,o){let r=e.tileXYToRectangle(n,i,o);return l(se.intersection(r,t,e0e))}S0.prototype.getTileDataAvailable=function(e,t,n){};S0.prototype.loadTileDataAvailability=function(e,t,n){};var VX=S0;function LT(e){e=y(e,y.EMPTY_OBJECT),this._clock=void 0,this._element=void 0,this._clockSubscription=void 0,this._seekFunction=void 0,this._lastPlaybackRate=void 0,this.clock=e.clock,this.element=e.element,this.epoch=y(e.epoch,Ue.MINIMUM_VALUE),this.tolerance=y(e.tolerance,1),this._seeking=!1,this._seekFunction=void 0,this._firstTickAfterSeek=!1}Object.defineProperties(LT.prototype,{clock:{get:function(){return this._clock},set:function(e){let t=this._clock;t!==e&&(l(t)&&(this._clockSubscription(),this._clockSubscription=void 0),l(e)&&(this._clockSubscription=e.onTick.addEventListener(LT.prototype._onTick,this)),this._clock=e)}},element:{get:function(){return this._element},set:function(e){let t=this._element;t!==e&&(l(t)&&t.removeEventListener("seeked",this._seekFunction,!1),l(e)&&(this._seeking=!1,this._seekFunction=xat(this),e.addEventListener("seeked",this._seekFunction,!1)),this._element=e,this._seeking=!1,this._firstTickAfterSeek=!1)}}});LT.prototype.destroy=function(){return this.element=void 0,this.clock=void 0,ue(this)};LT.prototype.isDestroyed=function(){return!1};LT.prototype._trySetPlaybackRate=function(e){if(this._lastPlaybackRate===e.multiplier)return;let t=this._element;try{t.playbackRate=e.multiplier}catch{t.playbackRate=0}this._lastPlaybackRate=e.multiplier};LT.prototype._onTick=function(e){let t=this._element;if(!l(t)||t.readyState<2)return;let n=t.paused,i=e.shouldAnimate;if(i===n&&(i?t.play():t.pause()),this._seeking||this._firstTickAfterSeek){this._firstTickAfterSeek=!1;return}this._trySetPlaybackRate(e);let o=e.currentTime,r=y(this.epoch,Ue.MINIMUM_VALUE),s=J.secondsDifference(o,r),a=t.duration,c,u=t.currentTime;t.loop?(s=s%a,s<0&&(s=a-s),c=s):s>a?c=a:s<0?c=0:c=s;let f=i?y(this.tolerance,1):.001;Math.abs(c-u)>f&&(this._seeking=!0,t.currentTime=c)};function xat(e){return function(){e._seeking=!1,e._firstTickAfterSeek=!0}}var UX=LT;var bat={VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033},zX=Object.freeze(bat);function Tat(e){return e=y(e,y.EMPTY_OBJECT),wT.fromIonAssetId(2426648,{requestVertexNormals:y(e.requestVertexNormals,!1)})}var xF=Tat;function Aat(e){return e=y(e,y.EMPTY_OBJECT),wT.fromIonAssetId(1,{requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1)})}var NT=Aat;var Cat=1953029805,Eat=2917034100;function HX(e,t){if(HX.passThroughDataForTesting)return t;let n=e.byteLength;if(n===0||n%4!==0)throw new le("The length of key must be greater than 0 and a multiple of 4.");let i=new DataView(t),o=i.getUint32(0,!0);if(o===Cat||o===Eat)return t;let r=new DataView(e),s=0,a=t.byteLength,c=a-a%8,u=n,f,d=8;for(;s<c;)for(d=(d+8)%24,f=d;s<c&&f<u;)i.setUint32(s,i.getUint32(s,!0)^r.getUint32(f,!0),!0),i.setUint32(s+4,i.getUint32(s+4,!0)^r.getUint32(f+4,!0),!0),s+=8,f+=24;if(s<a)for(f>=u&&(d=(d+8)%24,f=d);s<a;)i.setUint8(s,i.getUint8(s)^r.getUint8(f)),s++,f++}HX.passThroughDataForTesting=!1;var bF=HX;function Sat(e,t,n){let i=new Uint8ClampedArray(e.buffer),o=new ImageData(i,t,n),r=document.createElement("canvas");return r.width=t,r.height=n,r.getContext("2d").putImageData(o,0,0),r}var TF=Sat;var GX=[],WX=[];function vat(e,t,n,i,o,r){let s=o-i+1,a=r-o,c=GX,u=WX,f,d;for(f=0;f<s;++f)c[f]=e[i+f];for(d=0;d<a;++d)u[d]=e[o+d+1];f=0,d=0;for(let p=i;p<=r;++p){let g=c[f],m=u[d];f<s&&(d>=a||t(g,m,n)<=0)?(e[p]=g,++f):d<a&&(e[p]=m,++d)}}function jX(e,t,n,i,o){if(i>=o)return;let r=Math.floor((i+o)*.5);jX(e,t,n,i,r),jX(e,t,n,r+1,o),vat(e,t,n,i,r,o)}function wat(e,t,n){let i=e.length,o=Math.ceil(i*.5);GX.length=o,WX.length=o,jX(e,t,n,0,i-1),GX.length=0,WX.length=0}var J_=wat;var Dat=new h;function Pat(e,t,n,i){let o=dx(e,t,n,i,Dat);return l(o)?o.x>0&&o.y>0&&o.z>0:!1}var qX=Pat;async function Iat(e,t,n,i){return l(i)||(i=!1),Mat(e,t,n,i)}function Rat(e,t,n){let i=e[0],o=i.terrainProvider.requestTileGeometry(i.x,i.y,i.level);if(!o)return!1;let r;return n?r=o.then(n0e(i)):r=o.then(n0e(i)).catch(Lat(i)),e.shift(),t.push(r),!0}function Oat(e){return new Promise(function(t){setTimeout(t,e)})}function YX(e,t,n){return e.length?Rat(e,t,n)?YX(e,t,n):Oat(100).then(()=>YX(e,t,n)):Promise.resolve()}function Mat(e,t,n,i){let o=e.tilingScheme,r,s=[],a={};for(r=0;r<n.length;++r){let u=o.positionToTileXY(n[r],t);if(!l(u))continue;let f=u.toString();if(!a.hasOwnProperty(f)){let d={x:u.x,y:u.y,level:t,tilingScheme:o,terrainProvider:e,positions:[]};a[f]=d,s.push(d)}a[f].positions.push(n[r])}let c=[];return YX(s,c,i).then(function(){return Promise.all(c).then(function(){return n})})}function t0e(e,t,n){let i=t.interpolateHeight(n,e.longitude,e.latitude);return i===void 0?!1:(e.height=i,!0)}function n0e(e){let t=e.positions,n=e.tilingScheme.tileXYToRectangle(e.x,e.y,e.level);return function(i){let o=!1;for(let r=0;r<t.length;++r){let s=t[r];if(!t0e(s,i,n)){o=!0;break}}return o?i.createMesh({tilingScheme:e.tilingScheme,x:e.x,y:e.y,level:e.level,throttle:!1}).then(function(){for(let r=0;r<t.length;++r){let s=t[r];t0e(s,i,n)}}):Promise.resolve()}}function Lat(e){let t=e.positions;return function(){for(let n=0;n<t.length;++n){let i=t[n];i.height=void 0}}}var AF=Iat;var XX=new z;async function i0e(e,t,n){l(n)||(n=!1);let i=[],o=[],r=e.availability,s=[];for(let c=0;c<t.length;++c){let u=t[c],f=r.computeMaximumLevelAtPosition(u);if(o[c]=f,f===0){e.tilingScheme.positionToTileXY(u,1,XX);let p=e.loadTileDataAvailability(XX.x,XX.y,1);l(p)&&s.push(p)}let d=i[f];l(d)||(i[f]=d=[]),d.push(u)}await Promise.all(s),await Promise.all(i.map(function(c,u){if(l(c))return AF(e,u,c,n)}));let a=[];for(let c=0;c<t.length;++c){let u=t[c];r.computeMaximumLevelAtPosition(u)!==o[c]&&a.push(u)}return a.length>0&&await i0e(e,a,n),t}var FT=i0e;function Nat(e){return e<=.04045?e*.07739938080495357:Math.pow((e+.055)*.9478672985781991,2.4)}var BT=Nat;function Fat(e){switch(e){case ee.FLOAT:return"float";case ee.FLOAT_VEC2:return"vec2";case ee.FLOAT_VEC3:return"vec3";case ee.FLOAT_VEC4:return"vec4";case ee.FLOAT_MAT2:return"mat2";case ee.FLOAT_MAT3:return"mat3";case ee.FLOAT_MAT4:return"mat4";case ee.SAMPLER_2D:return"sampler2D";case ee.BOOL:return"bool"}}var KX=Fat;function Bat(e,t,n){return function(){n.apply(e,arguments),t.apply(e,arguments)}}var CF=Bat;var GS=`#ifdef MRT layout (location = 0) out vec4 out_FragData_0; layout (location = 1) out vec4 out_FragData_1; #else layout (location = 0) out vec4 out_FragColor; #endif uniform vec4 u_bgColor; uniform sampler2D u_depthTexture; in vec2 v_textureCoordinates; void main() { if (texture(u_depthTexture, v_textureCoordinates).r < 1.0) { #ifdef MRT out_FragData_0 = u_bgColor; out_FragData_1 = vec4(u_bgColor.a); #else out_FragColor = u_bgColor; #endif return; } discard; } `;var eg=`uniform vec3 u_radiiAndDynamicAtmosphereColor; uniform float u_atmosphereLightIntensity; uniform float u_atmosphereRayleighScaleHeight; uniform float u_atmosphereMieScaleHeight; uniform float u_atmosphereMieAnisotropy; uniform vec3 u_atmosphereRayleighCoefficient; uniform vec3 u_atmosphereMieCoefficient; const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters. const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled. const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. /** * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as * the transmittance value for the ray. * * @param {czm_ray} primaryRay The ray from the camera to the position. * @param {float} primaryRayLength The length of the primary ray. * @param {vec3} lightDirection The direction of the light to calculate the scattering from. * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. * @param {vec3} mieColor The variable the Mie scattering will be written to. * @param {float} opacity The variable the transmittance will be written to. * @glslFunction */ void computeScattering( czm_ray primaryRay, float primaryRayLength, vec3 lightDirection, float atmosphereInnerRadius, out vec3 rayleighColor, out vec3 mieColor, out float opacity ) { // Initialize the default scattering amounts to 0. rayleighColor = vec3(0.0); mieColor = vec3(0.0); opacity = 0.0; float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; vec3 origin = vec3(0.0); // Calculate intersection from the camera to the outer ring of the atmosphere. czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius); // Return empty colors if no intersection with the atmosphere geometry. if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) { return; } // To deal with smaller values of PRIMARY_STEPS (e.g. 4) // we implement a split strategy: sky or horizon. // For performance reasons, instead of a if/else branch // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0 float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength); // Value close to 0.0: close to the horizon // Value close to 1.0: above in the sky float w_stop_gt_lprl = 0.5 * (1.0 + czm_approximateTanh(x)); // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere. float start_0 = primaryRayAtmosphereIntersect.start; primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0); // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller. primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength)); // For the number of ray steps, distinguish inside or outside atmosphere (outer space) // (1) from outer space we have to use more ray steps to get a realistic rendering // (2) within atmosphere we need fewer steps for faster rendering float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + czm_approximateTanh(x_o_a)); int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled. int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere. float rayPositionLength = primaryRayAtmosphereIntersect.start; // (1) Outside the atmosphere: constant rayStepLength // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength; float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0)); float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS)); vec3 rayleighAccumulation = vec3(0.0); vec3 mieAccumulation = vec3(0.0); vec2 opticalDepth = vec2(0.0); vec2 heightScale = vec2(u_atmosphereRayleighScaleHeight, u_atmosphereMieScaleHeight); // Sample positions on the primary ray. for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) { // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot // loop with non-constant condition, so it has to break early instead if (i >= PRIMARY_STEPS) { break; } // Calculate sample position along viewpoint ray. vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); // Calculate height of sample position above ellipsoid. float sampleHeight = length(samplePosition) - atmosphereInnerRadius; // Calculate and accumulate density of particles at the sample position. vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; opticalDepth += sampleDensity; // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. czm_ray lightRay = czm_ray(samplePosition, lightDirection); czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); float lightPositionLength = 0.0; vec2 lightOpticalDepth = vec2(0.0); // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot // loop with non-constant condition, so it has to break early instead if (j >= LIGHT_STEPS) { break; } // Calculate sample position along light ray. vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); // Calculate height of the light sample position above ellipsoid. float lightHeight = length(lightPosition) - atmosphereInnerRadius; // Calculate density of photons at the light sample position. lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; // Increment distance on light ray. lightPositionLength += lightStepLength; } // Compute attenuation via the primary ray and the light ray. vec3 attenuation = exp(-((u_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (u_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); // Accumulate the scattering. rayleighAccumulation += sampleDensity.x * attenuation; mieAccumulation += sampleDensity.y * attenuation; // Increment distance on primary ray. rayPositionLength += (rayStepLength += rayStepLengthIncrease); } // Compute the scattering amount. rayleighColor = u_atmosphereRayleighCoefficient * rayleighAccumulation; mieColor = u_atmosphereMieCoefficient * mieAccumulation; // Compute the transmittance i.e. how much light is passing through the atmosphere. opacity = length(exp(-((u_atmosphereMieCoefficient * opticalDepth.y) + (u_atmosphereRayleighCoefficient * opticalDepth.x)))); } vec4 computeAtmosphereColor( vec3 positionWC, vec3 lightDirection, vec3 rayleighColor, vec3 mieColor, float opacity ) { // Setup the primary ray: from the camera position to the vertex position. vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); float cosAngle = dot(cameraToPositionWCDirection, lightDirection); float cosAngleSq = cosAngle * cosAngle; float G = u_atmosphereMieAnisotropy; float GSq = G * G; // The Rayleigh phase function. float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); // The Mie phase function. float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); // The final color is generated by combining the effects of the Rayleigh and Mie scattering. vec3 rayleigh = rayleighPhase * rayleighColor; vec3 mie = miePhase * mieColor; vec3 color = (rayleigh + mie) * u_atmosphereLightIntensity; return vec4(color, opacity); } `;var EF=`in vec2 v_textureCoordinates; const float M_PI = 3.141592653589793; float vdcRadicalInverse(int i) { float r; float base = 2.0; float value = 0.0; float invBase = 1.0 / base; float invBi = invBase; for (int x = 0; x < 100; x++) { if (i <= 0) { break; } r = mod(float(i), base); value += r * invBi; invBi *= invBase; i = int(float(i) * invBase); } return value; } vec2 hammersley2D(int i, int N) { return vec2(float(i) / float(N), vdcRadicalInverse(i)); } vec3 importanceSampleGGX(vec2 xi, float roughness, vec3 N) { float a = roughness * roughness; float phi = 2.0 * M_PI * xi.x; float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (a * a - 1.0) * xi.y)); float sinTheta = sqrt(1.0 - cosTheta * cosTheta); vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); vec3 tangentX = normalize(cross(upVector, N)); vec3 tangentY = cross(N, tangentX); return tangentX * H.x + tangentY * H.y + N * H.z; } float G1_Smith(float NdotV, float k) { return NdotV / (NdotV * (1.0 - k) + k); } float G_Smith(float roughness, float NdotV, float NdotL) { float k = roughness * roughness / 2.0; return G1_Smith(NdotV, k) * G1_Smith(NdotL, k); } vec2 integrateBrdf(float roughness, float NdotV) { vec3 V = vec3(sqrt(1.0 - NdotV * NdotV), 0.0, NdotV); float A = 0.0; float B = 0.0; const int NumSamples = 1024; for (int i = 0; i < NumSamples; i++) { vec2 xi = hammersley2D(i, NumSamples); vec3 H = importanceSampleGGX(xi, roughness, vec3(0.0, 0.0, 1.0)); vec3 L = 2.0 * dot(V, H) * H - V; float NdotL = clamp(L.z, 0.0, 1.0); float NdotH = clamp(H.z, 0.0, 1.0); float VdotH = clamp(dot(V, H), 0.0, 1.0); if (NdotL > 0.0) { float G = G_Smith(roughness, NdotV, NdotL); float G_Vis = G * VdotH / (NdotH * NdotV); float Fc = pow(1.0 - VdotH, 5.0); A += (1.0 - Fc) * G_Vis; B += Fc * G_Vis; } } return vec2(A, B) / float(NumSamples); } void main() { out_FragColor = vec4(integrateBrdf(v_textureCoordinates.y, v_textureCoordinates.x), 0.0, 1.0); } `;var SF=`uniform sampler2D u_noiseTexture; uniform vec3 u_noiseTextureDimensions; uniform float u_noiseDetail; in vec2 v_offset; in vec3 v_maximumSize; in vec4 v_color; in float v_slice; in float v_brightness; float wrap(float value, float rangeLength) { if(value < 0.0) { float absValue = abs(value); float modValue = mod(absValue, rangeLength); return mod(rangeLength - modValue, rangeLength); } return mod(value, rangeLength); } vec3 wrapVec(vec3 value, float rangeLength) { return vec3(wrap(value.x, rangeLength), wrap(value.y, rangeLength), wrap(value.z, rangeLength)); } vec2 voxelToUV(vec3 voxelIndex) { float textureSliceWidth = u_noiseTextureDimensions.x; float noiseTextureRows = u_noiseTextureDimensions.y; float inverseNoiseTextureRows = u_noiseTextureDimensions.z; float textureSliceWidthSquared = textureSliceWidth * textureSliceWidth; vec2 inverseNoiseTextureDimensions = vec2(noiseTextureRows / textureSliceWidthSquared, inverseNoiseTextureRows / textureSliceWidth); vec3 wrappedIndex = wrapVec(voxelIndex, textureSliceWidth); float column = mod(wrappedIndex.z, textureSliceWidth * inverseNoiseTextureRows); float row = floor(wrappedIndex.z / textureSliceWidth * noiseTextureRows); float xPixelCoord = wrappedIndex.x + column * textureSliceWidth; float yPixelCoord = wrappedIndex.y + row * textureSliceWidth; return vec2(xPixelCoord, yPixelCoord) * inverseNoiseTextureDimensions; } // Interpolate a voxel with its neighbor (along the positive X-axis) vec4 lerpSamplesX(vec3 voxelIndex, float x) { vec2 uv0 = voxelToUV(voxelIndex); vec2 uv1 = voxelToUV(voxelIndex + vec3(1.0, 0.0, 0.0)); vec4 sample0 = texture(u_noiseTexture, uv0); vec4 sample1 = texture(u_noiseTexture, uv1); return mix(sample0, sample1, x); } vec4 sampleNoiseTexture(vec3 position) { float textureSliceWidth = u_noiseTextureDimensions.x; vec3 recenteredPos = position + vec3(textureSliceWidth / 2.0); vec3 lerpValue = fract(recenteredPos); vec3 voxelIndex = floor(recenteredPos); vec4 xLerp00 = lerpSamplesX(voxelIndex, lerpValue.x); vec4 xLerp01 = lerpSamplesX(voxelIndex + vec3(0.0, 0.0, 1.0), lerpValue.x); vec4 xLerp10 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 0.0), lerpValue.x); vec4 xLerp11 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 1.0), lerpValue.x); vec4 yLerp0 = mix(xLerp00, xLerp10, lerpValue.y); vec4 yLerp1 = mix(xLerp01, xLerp11, lerpValue.y); return mix(yLerp0, yLerp1, lerpValue.z); } // Intersection with a unit sphere with radius 0.5 at center (0, 0, 0). bool intersectSphere(vec3 origin, vec3 dir, float slice, out vec3 point, out vec3 normal) { float A = dot(dir, dir); float B = dot(origin, dir); float C = dot(origin, origin) - 0.25; float discriminant = (B * B) - (A * C); if(discriminant < 0.0) { return false; } float root = sqrt(discriminant); float t = (-B - root) / A; if(t < 0.0) { t = (-B + root) / A; } point = origin + t * dir; if(slice >= 0.0) { point.z = (slice / 2.0) - 0.5; if(length(point) > 0.5) { return false; } } normal = normalize(point); point -= czm_epsilon2 * normal; return true; } // Transforms the ray origin and direction into unit sphere space, // then transforms the result back into the ellipsoid's space. bool intersectEllipsoid(vec3 origin, vec3 dir, vec3 center, vec3 scale, float slice, out vec3 point, out vec3 normal) { if(scale.x <= 0.01 || scale.y < 0.01 || scale.z < 0.01) { return false; } vec3 o = (origin - center) / scale; vec3 d = dir / scale; vec3 p, n; bool intersected = intersectSphere(o, d, slice, p, n); if(intersected) { point = (p * scale) + center; normal = n; } return intersected; } // Assume that if phase shift is being called for octave i, // the frequency is of i - 1. This saves us from doing extra // division / multiplication operations. vec2 phaseShift2D(vec2 p, vec2 freq) { return (czm_pi / 2.0) * sin(freq.yx * p.yx); } vec2 phaseShift3D(vec3 p, vec2 freq) { return phaseShift2D(p.xy, freq) + czm_pi * vec2(sin(freq.x * p.z)); } // The cloud texture function derived from Gardner's 1985 paper, // "Visual Simulation of Clouds." // https://www.cs.drexel.edu/~david/Classes/Papers/p297-gardner.pdf const float T0 = 0.6; // contrast of the texture pattern const float k = 0.1; // computed to produce a maximum value of 1 const float C0 = 0.8; // coefficient const float FX0 = 0.6; // frequency X const float FY0 = 0.6; // frequency Y const int octaves = 5; float T(vec3 point) { vec2 sum = vec2(0.0); float Ci = C0; vec2 FXY = vec2(FX0, FY0); vec2 PXY = vec2(0.0); for(int i = 1; i <= octaves; i++) { PXY = phaseShift3D(point, FXY); Ci *= 0.707; FXY *= 2.0; vec2 sinTerm = sin(FXY * point.xy + PXY); sum += Ci * sinTerm + vec2(T0); } return k * sum.x * sum.y; } const float a = 0.5; // fraction of surface reflection due to ambient or scattered light, const float t = 0.4; // fraction of texture shading const float s = 0.25; // fraction of specular reflection float I(float Id, float Is, float It) { return (1.0 - a) * ((1.0 - t) * ((1.0 - s) * Id + s * Is) + t * It) + a; } const vec3 lightDir = normalize(vec3(0.2, -1.0, 0.7)); vec4 drawCloud(vec3 rayOrigin, vec3 rayDir, vec3 cloudCenter, vec3 cloudScale, float cloudSlice, float brightness) { vec3 cloudPoint, cloudNormal; if(!intersectEllipsoid(rayOrigin, rayDir, cloudCenter, cloudScale, cloudSlice, cloudPoint, cloudNormal)) { return vec4(0.0); } float Id = clamp(dot(cloudNormal, -lightDir), 0.0, 1.0); // diffuse reflection float Is = max(pow(dot(-lightDir, -rayDir), 2.0), 0.0); // specular reflection float It = T(cloudPoint); // texture function float intensity = I(Id, Is, It); vec3 color = vec3(intensity * clamp(brightness, 0.1, 1.0)); vec4 noise = sampleNoiseTexture(u_noiseDetail * cloudPoint); float W = noise.x; float W2 = noise.y; float W3 = noise.z; // The dot product between the cloud's normal and the ray's direction is greatest // in the center of the ellipsoid's surface. It decreases towards the edge. // Thus, it is used to blur the areas leading to the edges of the ellipsoid, // so that no harsh lines appear. // The first (and biggest) layer of worley noise is then subtracted from this. // The final result is scaled up so that the base cloud is not too translucent. float ndDot = clamp(dot(cloudNormal, -rayDir), 0.0, 1.0); float TR = pow(ndDot, 3.0) - W; // translucency TR *= 1.3; // Subtracting the second and third layers of worley noise is more complicated. // If these layers of noise were simply subtracted from the current translucency, // the shape derived from the first layer of noise would be completely deleted. // The erosion of this noise should thus be constricted to the edges of the cloud. // However, because the edges of the ellipsoid were already blurred away, mapping // the noise to (1.0 - ndDot) will have no impact on most of the cloud's appearance. // The value of (0.5 - ndDot) provides the best compromise. float minusDot = 0.5 - ndDot; // Even with the previous calculation, subtracting the second layer of wnoise // erode too much of the cloud. The addition of it, however, will detailed // volume to the cloud. As long as the noise is only added and not subtracted, // the results are aesthetically pleasing. // The minusDot product is mapped in a way that it is larger at the edges of // the ellipsoid, so a subtraction and min operation are used instead of // an addition and max one. TR -= min(minusDot * W2, 0.0); // The third level of worley noise is subtracted from the result, with some // modifications. First, a scalar is added to minusDot so that the noise // starts affecting the shape farther away from the center of the ellipsoid's // surface. Then, it is scaled down so its impact is not too intense. TR -= 0.8 * (minusDot + 0.25) * W3; // The texture function's shading does not correlate with the shape of the cloud // produced by the layers of noise, so an extra shading scalar is calculated. // The darkest areas of the cloud are assigned to be where the noise erodes // the cloud the most. This is then interpolated based on the translucency // and the diffuse shading term of that point in the cloud. float shading = mix(1.0 - 0.8 * W * W, 1.0, Id * TR); // To avoid values that are too dark, this scalar is increased by a small amount // and clamped so it never goes to zero. shading = clamp(shading + 0.2, 0.3, 1.0); // Finally, the contrast of the cloud's color is increased. vec3 finalColor = mix(vec3(0.5), shading * color, 1.15); return vec4(finalColor, clamp(TR, 0.0, 1.0)) * v_color; } void main() { #ifdef DEBUG_BILLBOARDS out_FragColor = vec4(0.0, 0.5, 0.5, 1.0); #endif // To avoid calculations with high values, // we raycast from an arbitrarily smaller space. vec2 coordinate = v_maximumSize.xy * v_offset; vec3 ellipsoidScale = 0.82 * v_maximumSize; vec3 ellipsoidCenter = vec3(0.0); float zOffset = max(ellipsoidScale.z - 10.0, 0.0); vec3 eye = vec3(0, 0, -10.0 - zOffset); vec3 rayDir = normalize(vec3(coordinate, 1.0) - eye); vec3 rayOrigin = eye; #ifdef DEBUG_ELLIPSOIDS vec3 point, normal; if(intersectEllipsoid(rayOrigin, rayDir, ellipsoidCenter, ellipsoidScale, v_slice, point, normal)) { out_FragColor = v_brightness * v_color; } #else #ifndef DEBUG_BILLBOARDS vec4 cloud = drawCloud(rayOrigin, rayDir, ellipsoidCenter, ellipsoidScale, v_slice, v_brightness); if(cloud.w < 0.01) { discard; } out_FragColor = cloud; #endif #endif } `;var vF=`#ifdef INSTANCED in vec2 direction; #endif in vec4 positionHighAndScaleX; in vec4 positionLowAndScaleY; in vec4 packedAttribute0; in vec4 packedAttribute1; in vec4 color; out vec2 v_offset; out vec3 v_maximumSize; out vec4 v_color; out float v_slice; out float v_brightness; void main() { // Unpack attributes. vec3 positionHigh = positionHighAndScaleX.xyz; vec3 positionLow = positionLowAndScaleY.xyz; vec2 scale = vec2(positionHighAndScaleX.w, positionLowAndScaleY.w); float show = packedAttribute0.x; float brightness = packedAttribute0.y; vec2 coordinates = packedAttribute0.wz; vec3 maximumSize = packedAttribute1.xyz; float slice = packedAttribute1.w; #ifdef INSTANCED vec2 dir = direction; #else vec2 dir = coordinates; #endif vec2 offset = dir - vec2(0.5, 0.5); vec2 scaledOffset = scale * offset; vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); vec4 positionEC = czm_modelViewRelativeToEye * p; positionEC.xy += scaledOffset; positionEC.xyz *= show; gl_Position = czm_projection * positionEC; v_offset = offset; v_maximumSize = maximumSize; v_color = color; v_slice = slice; v_brightness = brightness; } `;var wF=`uniform vec3 u_noiseTextureDimensions; uniform float u_noiseDetail; uniform vec3 u_noiseOffset; in vec2 v_position; float wrap(float value, float rangeLength) { if(value < 0.0) { float absValue = abs(value); float modValue = mod(absValue, rangeLength); return mod(rangeLength - modValue, rangeLength); } return mod(value, rangeLength); } vec3 wrapVec(vec3 value, float rangeLength) { return vec3(wrap(value.x, rangeLength), wrap(value.y, rangeLength), wrap(value.z, rangeLength)); } vec3 random3(vec3 p) { float dot1 = dot(p, vec3(127.1, 311.7, 932.8)); float dot2 = dot(p, vec3(269.5, 183.3, 421.4)); return fract(vec3(sin(dot1 - dot2), cos(dot1 * dot2), dot1 * dot2)); } // Frequency corresponds to cell size. // The higher the frequency, the smaller the cell size. vec3 getWorleyCellPoint(vec3 centerCell, vec3 offset, float freq) { float textureSliceWidth = u_noiseTextureDimensions.x; vec3 cell = centerCell + offset; cell = wrapVec(cell, textureSliceWidth / u_noiseDetail); cell += floor(u_noiseOffset / u_noiseDetail); vec3 p = offset + random3(cell); return p; } float worleyNoise(vec3 p, float freq) { vec3 centerCell = floor(p * freq); vec3 pointInCell = fract(p * freq); float shortestDistance = 1000.0; for(float z = -1.0; z <= 1.0; z++) { for(float y = -1.0; y <= 1.0; y++) { for(float x = -1.0; x <= 1.0; x++) { vec3 offset = vec3(x, y, z); vec3 point = getWorleyCellPoint(centerCell, offset, freq); float distance = length(pointInCell - point); if(distance < shortestDistance) { shortestDistance = distance; } } } } return shortestDistance; } const float MAX_FBM_ITERATIONS = 10.0; float worleyFBMNoise(vec3 p, float octaves, float scale) { float noise = 0.0; float freq = 1.0; float persistence = 0.625; for(float i = 0.0; i < MAX_FBM_ITERATIONS; i++) { if(i >= octaves) { break; } noise += worleyNoise(p * scale, freq * scale) * persistence; persistence *= 0.5; freq *= 2.0; } return noise; } void main() { float textureSliceWidth = u_noiseTextureDimensions.x; float inverseNoiseTextureRows = u_noiseTextureDimensions.z; float x = mod(v_position.x, textureSliceWidth); float y = mod(v_position.y, textureSliceWidth); float sliceRow = floor(v_position.y / textureSliceWidth); float z = floor(v_position.x / textureSliceWidth) + sliceRow * inverseNoiseTextureRows * textureSliceWidth; vec3 position = vec3(x, y, z); position /= u_noiseDetail; float worley0 = clamp(worleyFBMNoise(position, 3.0, 1.0), 0.0, 1.0); float worley1 = clamp(worleyFBMNoise(position, 3.0, 2.0), 0.0, 1.0); float worley2 = clamp(worleyFBMNoise(position, 3.0, 3.0), 0.0, 1.0); out_FragColor = vec4(worley0, worley1, worley2, 1.0); } `;var DF=`uniform vec3 u_noiseTextureDimensions; in vec2 position; out vec2 v_position; void main() { gl_Position = vec4(position, 0.1, 1.0); float textureSliceWidth = u_noiseTextureDimensions.x; float noiseTextureRows = u_noiseTextureDimensions.y; float inverseNoiseTextureRows = u_noiseTextureDimensions.z; vec2 transformedPos = (position * 0.5) + vec2(0.5); transformedPos *= textureSliceWidth; transformedPos.x *= textureSliceWidth * inverseNoiseTextureRows; transformedPos.y *= noiseTextureRows; v_position = transformedPos; } `;var PF=`uniform sampler2D u_opaqueDepthTexture; uniform sampler2D u_translucentDepthTexture; in vec2 v_textureCoordinates; void main() { float opaqueDepth = texture(u_opaqueDepthTexture, v_textureCoordinates).r; float translucentDepth = texture(u_translucentDepthTexture, v_textureCoordinates).r; translucentDepth = czm_branchFreeTernary(translucentDepth > opaqueDepth, 1.0, translucentDepth); out_FragColor = czm_packDepth(translucentDepth); } `;var IF=`/** * Compositing for Weighted Blended Order-Independent Transparency. See: * - http://jcgt.org/published/0002/02/09/ * - http://casual-effects.blogspot.com/2014/03/weighted-blended-order-independent.html */ uniform sampler2D u_opaque; uniform sampler2D u_accumulation; uniform sampler2D u_revealage; in vec2 v_textureCoordinates; void main() { vec4 opaque = texture(u_opaque, v_textureCoordinates); vec4 accum = texture(u_accumulation, v_textureCoordinates); float r = texture(u_revealage, v_textureCoordinates).r; #ifdef MRT vec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a); #else vec4 transparent = vec4(accum.rgb / clamp(accum.a, 1e-4, 5e4), r); #endif out_FragColor = (1.0 - transparent.a) * transparent + transparent.a * opaque; if (opaque != czm_backgroundColor) { out_FragColor.a = 1.0; } } `;var RF=`in vec4 positionEC; void main() { vec3 position; vec3 direction; if (czm_orthographicIn3D == 1.0) { vec2 uv = (gl_FragCoord.xy - czm_viewport.xy) / czm_viewport.zw; vec2 minPlane = vec2(czm_frustumPlanes.z, czm_frustumPlanes.y); // left, bottom vec2 maxPlane = vec2(czm_frustumPlanes.w, czm_frustumPlanes.x); // right, top position = vec3(mix(minPlane, maxPlane, uv), 0.0); direction = vec3(0.0, 0.0, -1.0); } else { position = vec3(0.0); direction = normalize(positionEC.xyz); } czm_ray ray = czm_ray(position, direction); vec3 ellipsoid_center = czm_view[3].xyz; czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); if (!czm_isEmpty(intersection)) { out_FragColor = vec4(1.0, 1.0, 0.0, 1.0); } else { discard; } czm_writeLogDepth(); } `;var OF=`in vec4 position; out vec4 positionEC; void main() { positionEC = czm_modelView * position; gl_Position = czm_projection * positionEC; czm_vertexLogDepth(); } `;var WS=`uniform vec3 u_radii; uniform vec3 u_oneOverEllipsoidRadiiSquared; in vec3 v_positionEC; vec4 computeEllipsoidColor(czm_ray ray, float intersection, float side) { vec3 positionEC = czm_pointAlongRay(ray, intersection); vec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz; vec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared)); vec3 sphericalNormal = normalize(positionMC / u_radii); vec3 normalMC = geodeticNormal * side; // normalized surface normal (always facing the viewer) in model coordinates vec3 normalEC = normalize(czm_normal * normalMC); // normalized surface normal in eye coordinates vec2 st = czm_ellipsoidWgs84TextureCoordinates(sphericalNormal); vec3 positionToEyeEC = -positionEC; czm_materialInput materialInput; materialInput.s = st.s; materialInput.st = st; materialInput.str = (positionMC + u_radii) / u_radii; materialInput.normalEC = normalEC; materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); materialInput.positionToEyeEC = positionToEyeEC; czm_material material = czm_getMaterial(materialInput); #ifdef ONLY_SUN_LIGHTING return czm_private_phong(normalize(positionToEyeEC), material, czm_sunDirectionEC); #else return czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); #endif } void main() { // PERFORMANCE_TODO: When dynamic branching is available, compute ratio of maximum and minimum radii // in the vertex shader. Only when it is larger than some constant, march along the ray. // Otherwise perform one intersection test which will be the common case. // Test if the ray intersects a sphere with the ellipsoid's maximum radius. // For very oblate ellipsoids, using the ellipsoid's radii for an intersection test // may cause false negatives. This will discard fragments before marching the ray forward. float maxRadius = max(u_radii.x, max(u_radii.y, u_radii.z)) * 1.5; vec3 direction = normalize(v_positionEC); vec3 ellipsoidCenter = czm_modelView[3].xyz; float t1 = -1.0; float t2 = -1.0; float b = -2.0 * dot(direction, ellipsoidCenter); float c = dot(ellipsoidCenter, ellipsoidCenter) - maxRadius * maxRadius; float discriminant = b * b - 4.0 * c; if (discriminant >= 0.0) { t1 = (-b - sqrt(discriminant)) * 0.5; t2 = (-b + sqrt(discriminant)) * 0.5; } if (t1 < 0.0 && t2 < 0.0) { discard; } float t = min(t1, t2); if (t < 0.0) { t = 0.0; } // March ray forward to intersection with larger sphere and find czm_ray ray = czm_ray(t * direction, direction); vec3 ellipsoid_inverseRadii = vec3(1.0 / u_radii.x, 1.0 / u_radii.y, 1.0 / u_radii.z); czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii); if (czm_isEmpty(intersection)) { discard; } // If the viewer is outside, compute outsideFaceColor, with normals facing outward. vec4 outsideFaceColor = (intersection.start != 0.0) ? computeEllipsoidColor(ray, intersection.start, 1.0) : vec4(0.0); // If the viewer either is inside or can see inside, compute insideFaceColor, with normals facing inward. vec4 insideFaceColor = (outsideFaceColor.a < 1.0) ? computeEllipsoidColor(ray, intersection.stop, -1.0) : vec4(0.0); out_FragColor = mix(insideFaceColor, outsideFaceColor, outsideFaceColor.a); out_FragColor.a = 1.0 - (1.0 - insideFaceColor.a) * (1.0 - outsideFaceColor.a); #if (defined(WRITE_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) t = (intersection.start != 0.0) ? intersection.start : intersection.stop; vec3 positionEC = czm_pointAlongRay(ray, t); vec4 positionCC = czm_projection * vec4(positionEC, 1.0); #ifdef LOG_DEPTH czm_writeLogDepth(1.0 + positionCC.w); #else float z = positionCC.z / positionCC.w; float n = czm_depthRange.near; float f = czm_depthRange.far; gl_FragDepth = (z * (f - n) + f + n) * 0.5; #endif #endif } `;var jS=`in vec3 position; uniform vec3 u_radii; out vec3 v_positionEC; void main() { // In the vertex data, the cube goes from (-1.0, -1.0, -1.0) to (1.0, 1.0, 1.0) in model coordinates. // Scale to consider the radii. We could also do this once on the CPU when using the BoxGeometry, // but doing it here allows us to change the radii without rewriting the vertex data, and // allows all ellipsoids to reuse the same vertex data. vec4 p = vec4(u_radii * position, 1.0); v_positionEC = (czm_modelView * p).xyz; // position in eye coordinates gl_Position = czm_modelViewProjection * p; // position in clip coordinates // With multi-frustum, when the ellipsoid primitive is positioned on the intersection of two frustums // and close to terrain, the terrain (writes depth) in the closest frustum can overwrite part of the // ellipsoid (does not write depth) that was rendered in the farther frustum. // // Here, we clamp the depth in the vertex shader to avoid being overwritten; however, this creates // artifacts since some fragments can be alpha blended twice. This is solved by only rendering // the ellipsoid in the closest frustum to the viewer. gl_Position.z = clamp(gl_Position.z, czm_depthRange.near, czm_depthRange.far); czm_vertexLogDepth(); } `;/** * @license * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of NVIDIA CORPORATION nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */var MF=`/** * @license * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of NVIDIA CORPORATION nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS \`\`AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ // NVIDIA GameWorks Graphics Samples GitHub link: https://github.com/NVIDIAGameWorks/GraphicsSamples // Original FXAA 3.11 shader link: https://github.com/NVIDIAGameWorks/GraphicsSamples/blob/master/samples/es3-kepler/FXAA/FXAA3_11.h // Steps used to integrate into Cesium: // * The following defines are set: // #define FXAA_PC 1 // #define FXAA_WEBGL_1 1 // #define FXAA_GREEN_AS_LUMA 1 // #define FXAA_EARLY_EXIT 1 // #define FXAA_GLSL_120 1 // * All other preprocessor directives besides the FXAA_QUALITY__P* directives were removed. // * Double underscores are invalid for preprocessor directives so replace them with a single underscore. Replace // /FXAA_QUALITY__P(.*)/g with /FXAA_QUALITY__P$1/. // * There are no implicit conversions from ivec* to vec* so replace: // #define FxaaInt2 ivec2 // with // #define FxaaInt2 vec2 // * The texture2DLod function is only available in vertex shaders so replace: // #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) // #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) // with // #define FxaaTexTop(t, p) texture(t, p) // #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) // * FXAA_QUALITY_PRESET is prepended in the javascript code. We may want to expose that setting in the future. // * The following parameters to FxaaPixelShader are unused and can be removed: // fxaaConsolePosPos // fxaaConsoleRcpFrameOpt // fxaaConsoleRcpFrameOpt2 // fxaaConsole360RcpFrameOpt2 // fxaaConsoleEdgeSharpness // fxaaConsoleEdgeThreshold // fxaaConsoleEdgeThresholdMi // fxaaConsole360ConstDir // // Choose the quality preset. // This needs to be compiled into the shader as it effects code. // Best option to include multiple presets is to // in each shader define the preset, then include this file. // // OPTIONS // ----------------------------------------------------------------------- // 10 to 15 - default medium dither (10=fastest, 15=highest quality) // 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) // 39 - no dither, very expensive // // NOTES // ----------------------------------------------------------------------- // 12 = slightly faster then FXAA 3.9 and higher edge quality (default) // 13 = about same speed as FXAA 3.9 and better than 12 // 23 = closest to FXAA 3.9 visually and performance wise // _ = the lowest digit is directly related to performance // _ = the highest digit is directly related to style // //#define FXAA_QUALITY_PRESET 12 #if (FXAA_QUALITY_PRESET == 10) #define FXAA_QUALITY_PS 3 #define FXAA_QUALITY_P0 1.5 #define FXAA_QUALITY_P1 3.0 #define FXAA_QUALITY_P2 12.0 #endif #if (FXAA_QUALITY_PRESET == 11) #define FXAA_QUALITY_PS 4 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 3.0 #define FXAA_QUALITY_P3 12.0 #endif #if (FXAA_QUALITY_PRESET == 12) #define FXAA_QUALITY_PS 5 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 2.0 #define FXAA_QUALITY_P3 4.0 #define FXAA_QUALITY_P4 12.0 #endif #if (FXAA_QUALITY_PRESET == 13) #define FXAA_QUALITY_PS 6 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 2.0 #define FXAA_QUALITY_P3 2.0 #define FXAA_QUALITY_P4 4.0 #define FXAA_QUALITY_P5 12.0 #endif #if (FXAA_QUALITY_PRESET == 14) #define FXAA_QUALITY_PS 7 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 2.0 #define FXAA_QUALITY_P3 2.0 #define FXAA_QUALITY_P4 2.0 #define FXAA_QUALITY_P5 4.0 #define FXAA_QUALITY_P6 12.0 #endif #if (FXAA_QUALITY_PRESET == 15) #define FXAA_QUALITY_PS 8 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 2.0 #define FXAA_QUALITY_P3 2.0 #define FXAA_QUALITY_P4 2.0 #define FXAA_QUALITY_P5 2.0 #define FXAA_QUALITY_P6 4.0 #define FXAA_QUALITY_P7 12.0 #endif #if (FXAA_QUALITY_PRESET == 20) #define FXAA_QUALITY_PS 3 #define FXAA_QUALITY_P0 1.5 #define FXAA_QUALITY_P1 2.0 #define FXAA_QUALITY_P2 8.0 #endif #if (FXAA_QUALITY_PRESET == 21) #define FXAA_QUALITY_PS 4 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 2.0 #define FXAA_QUALITY_P3 8.0 #endif #if (FXAA_QUALITY_PRESET == 22) #define FXAA_QUALITY_PS 5 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 2.0 #define FXAA_QUALITY_P3 2.0 #define FXAA_QUALITY_P4 8.0 #endif #if (FXAA_QUALITY_PRESET == 23) #define FXAA_QUALITY_PS 6 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 2.0 #define FXAA_QUALITY_P3 2.0 #define FXAA_QUALITY_P4 2.0 #define FXAA_QUALITY_P5 8.0 #endif #if (FXAA_QUALITY_PRESET == 24) #define FXAA_QUALITY_PS 7 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 2.0 #define FXAA_QUALITY_P3 2.0 #define FXAA_QUALITY_P4 2.0 #define FXAA_QUALITY_P5 3.0 #define FXAA_QUALITY_P6 8.0 #endif #if (FXAA_QUALITY_PRESET == 25) #define FXAA_QUALITY_PS 8 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 2.0 #define FXAA_QUALITY_P3 2.0 #define FXAA_QUALITY_P4 2.0 #define FXAA_QUALITY_P5 2.0 #define FXAA_QUALITY_P6 4.0 #define FXAA_QUALITY_P7 8.0 #endif #if (FXAA_QUALITY_PRESET == 26) #define FXAA_QUALITY_PS 9 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 2.0 #define FXAA_QUALITY_P3 2.0 #define FXAA_QUALITY_P4 2.0 #define FXAA_QUALITY_P5 2.0 #define FXAA_QUALITY_P6 2.0 #define FXAA_QUALITY_P7 4.0 #define FXAA_QUALITY_P8 8.0 #endif #if (FXAA_QUALITY_PRESET == 27) #define FXAA_QUALITY_PS 10 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 2.0 #define FXAA_QUALITY_P3 2.0 #define FXAA_QUALITY_P4 2.0 #define FXAA_QUALITY_P5 2.0 #define FXAA_QUALITY_P6 2.0 #define FXAA_QUALITY_P7 2.0 #define FXAA_QUALITY_P8 4.0 #define FXAA_QUALITY_P9 8.0 #endif #if (FXAA_QUALITY_PRESET == 28) #define FXAA_QUALITY_PS 11 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 2.0 #define FXAA_QUALITY_P3 2.0 #define FXAA_QUALITY_P4 2.0 #define FXAA_QUALITY_P5 2.0 #define FXAA_QUALITY_P6 2.0 #define FXAA_QUALITY_P7 2.0 #define FXAA_QUALITY_P8 2.0 #define FXAA_QUALITY_P9 4.0 #define FXAA_QUALITY_P10 8.0 #endif #if (FXAA_QUALITY_PRESET == 29) #define FXAA_QUALITY_PS 12 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.5 #define FXAA_QUALITY_P2 2.0 #define FXAA_QUALITY_P3 2.0 #define FXAA_QUALITY_P4 2.0 #define FXAA_QUALITY_P5 2.0 #define FXAA_QUALITY_P6 2.0 #define FXAA_QUALITY_P7 2.0 #define FXAA_QUALITY_P8 2.0 #define FXAA_QUALITY_P9 2.0 #define FXAA_QUALITY_P10 4.0 #define FXAA_QUALITY_P11 8.0 #endif #if (FXAA_QUALITY_PRESET == 39) #define FXAA_QUALITY_PS 12 #define FXAA_QUALITY_P0 1.0 #define FXAA_QUALITY_P1 1.0 #define FXAA_QUALITY_P2 1.0 #define FXAA_QUALITY_P3 1.0 #define FXAA_QUALITY_P4 1.0 #define FXAA_QUALITY_P5 1.5 #define FXAA_QUALITY_P6 2.0 #define FXAA_QUALITY_P7 2.0 #define FXAA_QUALITY_P8 2.0 #define FXAA_QUALITY_P9 2.0 #define FXAA_QUALITY_P10 4.0 #define FXAA_QUALITY_P11 8.0 #endif #define FxaaBool bool #define FxaaFloat float #define FxaaFloat2 vec2 #define FxaaFloat3 vec3 #define FxaaFloat4 vec4 #define FxaaHalf float #define FxaaHalf2 vec2 #define FxaaHalf3 vec3 #define FxaaHalf4 vec4 #define FxaaInt2 vec2 #define FxaaTex sampler2D #define FxaaSat(x) clamp(x, 0.0, 1.0) #define FxaaTexTop(t, p) texture(t, p) #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; } FxaaFloat4 FxaaPixelShader( // // Use noperspective interpolation here (turn off perspective interpolation). // {xy} = center of pixel FxaaFloat2 pos, // // Input color texture. // {rgb_} = color in linear or perceptual color space // if (FXAA_GREEN_AS_LUMA == 0) // {___a} = luma in perceptual color space (not linear) FxaaTex tex, // // Only used on FXAA Quality. // This must be from a constant/uniform. // {x_} = 1.0/screenWidthInPixels // {_y} = 1.0/screenHeightInPixels FxaaFloat2 fxaaQualityRcpFrame, // // Only used on FXAA Quality. // This used to be the FXAA_QUALITY_SUBPIX define. // It is here now to allow easier tuning. // Choose the amount of sub-pixel aliasing removal. // This can effect sharpness. // 1.00 - upper limit (softer) // 0.75 - default amount of filtering // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) // 0.25 - almost off // 0.00 - completely off FxaaFloat fxaaQualitySubpix, // // Only used on FXAA Quality. // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define. // It is here now to allow easier tuning. // The minimum amount of local contrast required to apply algorithm. // 0.333 - too little (faster) // 0.250 - low quality // 0.166 - default // 0.125 - high quality // 0.063 - overkill (slower) FxaaFloat fxaaQualityEdgeThreshold, // // Only used on FXAA Quality. // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define. // It is here now to allow easier tuning. // Trims the algorithm from processing darks. // 0.0833 - upper limit (default, the start of visible unfiltered edges) // 0.0625 - high quality (faster) // 0.0312 - visible limit (slower) // Special notes when using FXAA_GREEN_AS_LUMA, // Likely want to set this to zero. // As colors that are mostly not-green // will appear very dark in the green channel! // Tune by looking at mostly non-green content, // then start at zero and increase until aliasing is a problem. FxaaFloat fxaaQualityEdgeThresholdMin ) { /*--------------------------------------------------------------------------*/ FxaaFloat2 posM; posM.x = pos.x; posM.y = pos.y; FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); #define lumaM rgbyM.y FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy)); FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy)); FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy)); FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); /*--------------------------------------------------------------------------*/ FxaaFloat maxSM = max(lumaS, lumaM); FxaaFloat minSM = min(lumaS, lumaM); FxaaFloat maxESM = max(lumaE, maxSM); FxaaFloat minESM = min(lumaE, minSM); FxaaFloat maxWN = max(lumaN, lumaW); FxaaFloat minWN = min(lumaN, lumaW); FxaaFloat rangeMax = max(maxWN, maxESM); FxaaFloat rangeMin = min(minWN, minESM); FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; FxaaFloat range = rangeMax - rangeMin; FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); FxaaBool earlyExit = range < rangeMaxClamped; /*--------------------------------------------------------------------------*/ if(earlyExit) return rgbyM; /*--------------------------------------------------------------------------*/ FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy)); FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy)); FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy)); FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); /*--------------------------------------------------------------------------*/ FxaaFloat lumaNS = lumaN + lumaS; FxaaFloat lumaWE = lumaW + lumaE; FxaaFloat subpixRcpRange = 1.0/range; FxaaFloat subpixNSWE = lumaNS + lumaWE; FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; /*--------------------------------------------------------------------------*/ FxaaFloat lumaNESE = lumaNE + lumaSE; FxaaFloat lumaNWNE = lumaNW + lumaNE; FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; /*--------------------------------------------------------------------------*/ FxaaFloat lumaNWSW = lumaNW + lumaSW; FxaaFloat lumaSWSE = lumaSW + lumaSE; FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; /*--------------------------------------------------------------------------*/ FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; FxaaFloat lengthSign = fxaaQualityRcpFrame.x; FxaaBool horzSpan = edgeHorz >= edgeVert; FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; /*--------------------------------------------------------------------------*/ if(!horzSpan) lumaN = lumaW; if(!horzSpan) lumaS = lumaE; if(horzSpan) lengthSign = fxaaQualityRcpFrame.y; FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM; /*--------------------------------------------------------------------------*/ FxaaFloat gradientN = lumaN - lumaM; FxaaFloat gradientS = lumaS - lumaM; FxaaFloat lumaNN = lumaN + lumaM; FxaaFloat lumaSS = lumaS + lumaM; FxaaBool pairN = abs(gradientN) >= abs(gradientS); FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); if(pairN) lengthSign = -lengthSign; FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); /*--------------------------------------------------------------------------*/ FxaaFloat2 posB; posB.x = posM.x; posB.y = posM.y; FxaaFloat2 offNP; offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; if(!horzSpan) posB.x += lengthSign * 0.5; if( horzSpan) posB.y += lengthSign * 0.5; /*--------------------------------------------------------------------------*/ FxaaFloat2 posN; posN.x = posB.x - offNP.x * FXAA_QUALITY_P0; posN.y = posB.y - offNP.y * FXAA_QUALITY_P0; FxaaFloat2 posP; posP.x = posB.x + offNP.x * FXAA_QUALITY_P0; posP.y = posB.y + offNP.y * FXAA_QUALITY_P0; FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0; FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); FxaaFloat subpixE = subpixC * subpixC; FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); /*--------------------------------------------------------------------------*/ if(!pairN) lumaNN = lumaSS; FxaaFloat gradientScaled = gradient * 1.0/4.0; FxaaFloat lumaMM = lumaM - lumaNN * 0.5; FxaaFloat subpixF = subpixD * subpixE; FxaaBool lumaMLTZero = lumaMM < 0.0; /*--------------------------------------------------------------------------*/ lumaEndN -= lumaNN * 0.5; lumaEndP -= lumaNN * 0.5; FxaaBool doneN = abs(lumaEndN) >= gradientScaled; FxaaBool doneP = abs(lumaEndP) >= gradientScaled; if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1; if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1; FxaaBool doneNP = (!doneN) || (!doneP); if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1; if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1; /*--------------------------------------------------------------------------*/ if(doneNP) { if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; doneN = abs(lumaEndN) >= gradientScaled; doneP = abs(lumaEndP) >= gradientScaled; if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2; if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2; doneNP = (!doneN) || (!doneP); if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2; if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2; /*--------------------------------------------------------------------------*/ #if (FXAA_QUALITY_PS > 3) if(doneNP) { if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; doneN = abs(lumaEndN) >= gradientScaled; doneP = abs(lumaEndP) >= gradientScaled; if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3; if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3; doneNP = (!doneN) || (!doneP); if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3; if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3; /*--------------------------------------------------------------------------*/ #if (FXAA_QUALITY_PS > 4) if(doneNP) { if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; doneN = abs(lumaEndN) >= gradientScaled; doneP = abs(lumaEndP) >= gradientScaled; if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4; if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4; doneNP = (!doneN) || (!doneP); if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4; if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4; /*--------------------------------------------------------------------------*/ #if (FXAA_QUALITY_PS > 5) if(doneNP) { if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; doneN = abs(lumaEndN) >= gradientScaled; doneP = abs(lumaEndP) >= gradientScaled; if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5; if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5; doneNP = (!doneN) || (!doneP); if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5; if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5; /*--------------------------------------------------------------------------*/ #if (FXAA_QUALITY_PS > 6) if(doneNP) { if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; doneN = abs(lumaEndN) >= gradientScaled; doneP = abs(lumaEndP) >= gradientScaled; if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6; if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6; doneNP = (!doneN) || (!doneP); if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6; if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6; /*--------------------------------------------------------------------------*/ #if (FXAA_QUALITY_PS > 7) if(doneNP) { if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; doneN = abs(lumaEndN) >= gradientScaled; doneP = abs(lumaEndP) >= gradientScaled; if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7; if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7; doneNP = (!doneN) || (!doneP); if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7; if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7; /*--------------------------------------------------------------------------*/ #if (FXAA_QUALITY_PS > 8) if(doneNP) { if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; doneN = abs(lumaEndN) >= gradientScaled; doneP = abs(lumaEndP) >= gradientScaled; if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8; if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8; doneNP = (!doneN) || (!doneP); if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8; if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8; /*--------------------------------------------------------------------------*/ #if (FXAA_QUALITY_PS > 9) if(doneNP) { if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; doneN = abs(lumaEndN) >= gradientScaled; doneP = abs(lumaEndP) >= gradientScaled; if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9; if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9; doneNP = (!doneN) || (!doneP); if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9; if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9; /*--------------------------------------------------------------------------*/ #if (FXAA_QUALITY_PS > 10) if(doneNP) { if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; doneN = abs(lumaEndN) >= gradientScaled; doneP = abs(lumaEndP) >= gradientScaled; if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10; if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10; doneNP = (!doneN) || (!doneP); if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10; if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10; /*--------------------------------------------------------------------------*/ #if (FXAA_QUALITY_PS > 11) if(doneNP) { if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; doneN = abs(lumaEndN) >= gradientScaled; doneP = abs(lumaEndP) >= gradientScaled; if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11; if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11; doneNP = (!doneN) || (!doneP); if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11; if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11; /*--------------------------------------------------------------------------*/ #if (FXAA_QUALITY_PS > 12) if(doneNP) { if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; doneN = abs(lumaEndN) >= gradientScaled; doneP = abs(lumaEndP) >= gradientScaled; if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12; if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12; doneNP = (!doneN) || (!doneP); if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12; if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12; /*--------------------------------------------------------------------------*/ } #endif /*--------------------------------------------------------------------------*/ } #endif /*--------------------------------------------------------------------------*/ } #endif /*--------------------------------------------------------------------------*/ } #endif /*--------------------------------------------------------------------------*/ } #endif /*--------------------------------------------------------------------------*/ } #endif /*--------------------------------------------------------------------------*/ } #endif /*--------------------------------------------------------------------------*/ } #endif /*--------------------------------------------------------------------------*/ } #endif /*--------------------------------------------------------------------------*/ } #endif /*--------------------------------------------------------------------------*/ } /*--------------------------------------------------------------------------*/ FxaaFloat dstN = posM.x - posN.x; FxaaFloat dstP = posP.x - posM.x; if(!horzSpan) dstN = posM.y - posN.y; if(!horzSpan) dstP = posP.y - posM.y; /*--------------------------------------------------------------------------*/ FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; FxaaFloat spanLength = (dstP + dstN); FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; FxaaFloat spanLengthRcp = 1.0/spanLength; /*--------------------------------------------------------------------------*/ FxaaBool directionN = dstN < dstP; FxaaFloat dst = min(dstN, dstP); FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; FxaaFloat subpixG = subpixF * subpixF; FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; FxaaFloat subpixH = subpixG * fxaaQualitySubpix; /*--------------------------------------------------------------------------*/ FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign; if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign; return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); } `;var LF=`uniform vec4 u_initialColor; #if TEXTURE_UNITS > 0 uniform sampler2D u_dayTextures[TEXTURE_UNITS]; uniform vec4 u_dayTextureTranslationAndScale[TEXTURE_UNITS]; uniform bool u_dayTextureUseWebMercatorT[TEXTURE_UNITS]; #ifdef APPLY_ALPHA uniform float u_dayTextureAlpha[TEXTURE_UNITS]; #endif #ifdef APPLY_DAY_NIGHT_ALPHA uniform float u_dayTextureNightAlpha[TEXTURE_UNITS]; uniform float u_dayTextureDayAlpha[TEXTURE_UNITS]; #endif #ifdef APPLY_SPLIT uniform float u_dayTextureSplit[TEXTURE_UNITS]; #endif #ifdef APPLY_BRIGHTNESS uniform float u_dayTextureBrightness[TEXTURE_UNITS]; #endif #ifdef APPLY_CONTRAST uniform float u_dayTextureContrast[TEXTURE_UNITS]; #endif #ifdef APPLY_HUE uniform float u_dayTextureHue[TEXTURE_UNITS]; #endif #ifdef APPLY_SATURATION uniform float u_dayTextureSaturation[TEXTURE_UNITS]; #endif #ifdef APPLY_GAMMA uniform float u_dayTextureOneOverGamma[TEXTURE_UNITS]; #endif #ifdef APPLY_IMAGERY_CUTOUT uniform vec4 u_dayTextureCutoutRectangles[TEXTURE_UNITS]; #endif #ifdef APPLY_COLOR_TO_ALPHA uniform vec4 u_colorsToAlpha[TEXTURE_UNITS]; #endif uniform vec4 u_dayTextureTexCoordsRectangle[TEXTURE_UNITS]; #endif #ifdef SHOW_REFLECTIVE_OCEAN uniform sampler2D u_waterMask; uniform vec4 u_waterMaskTranslationAndScale; uniform float u_zoomedOutOceanSpecularIntensity; #endif #ifdef SHOW_OCEAN_WAVES uniform sampler2D u_oceanNormalMap; #endif #if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) uniform vec2 u_lightingFadeDistance; #endif #ifdef TILE_LIMIT_RECTANGLE uniform vec4 u_cartographicLimitRectangle; #endif #ifdef GROUND_ATMOSPHERE uniform vec2 u_nightFadeDistance; #endif #ifdef ENABLE_CLIPPING_PLANES uniform highp sampler2D u_clippingPlanes; uniform mat4 u_clippingPlanesMatrix; uniform vec4 u_clippingPlanesEdgeStyle; #endif #ifdef ENABLE_CLIPPING_POLYGONS uniform highp sampler2D u_clippingDistance; in vec2 v_clippingPosition; flat in int v_regionIndex; #endif #if defined(GROUND_ATMOSPHERE) || defined(FOG) && defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) uniform float u_minimumBrightness; #endif #ifdef COLOR_CORRECT uniform vec3 u_hsbShift; // Hue, saturation, brightness #endif #ifdef HIGHLIGHT_FILL_TILE uniform vec4 u_fillHighlightColor; #endif #ifdef TRANSLUCENT uniform vec4 u_frontFaceAlphaByDistance; uniform vec4 u_backFaceAlphaByDistance; uniform vec4 u_translucencyRectangle; #endif #ifdef UNDERGROUND_COLOR uniform vec4 u_undergroundColor; uniform vec4 u_undergroundColorAlphaByDistance; #endif #ifdef ENABLE_VERTEX_LIGHTING uniform float u_lambertDiffuseMultiplier; uniform float u_vertexShadowDarkness; #endif in vec3 v_positionMC; in vec3 v_positionEC; in vec3 v_textureCoordinates; in vec3 v_normalMC; in vec3 v_normalEC; #ifdef APPLY_MATERIAL in float v_height; in float v_slope; in float v_aspect; #endif #if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) in float v_distance; #endif #if defined(GROUND_ATMOSPHERE) || defined(FOG) in vec3 v_atmosphereRayleighColor; in vec3 v_atmosphereMieColor; in float v_atmosphereOpacity; #endif #if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) float interpolateByDistance(vec4 nearFarScalar, float distance) { float startDistance = nearFarScalar.x; float startValue = nearFarScalar.y; float endDistance = nearFarScalar.z; float endValue = nearFarScalar.w; float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); return mix(startValue, endValue, t); } #endif #if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) || defined(APPLY_MATERIAL) vec4 alphaBlend(vec4 sourceColor, vec4 destinationColor) { return sourceColor * vec4(sourceColor.aaa, 1.0) + destinationColor * (1.0 - sourceColor.a); } #endif #ifdef TRANSLUCENT bool inTranslucencyRectangle() { return v_textureCoordinates.x > u_translucencyRectangle.x && v_textureCoordinates.x < u_translucencyRectangle.z && v_textureCoordinates.y > u_translucencyRectangle.y && v_textureCoordinates.y < u_translucencyRectangle.w; } #endif vec4 sampleAndBlend( vec4 previousColor, sampler2D textureToSample, vec2 tileTextureCoordinates, vec4 textureCoordinateRectangle, vec4 textureCoordinateTranslationAndScale, float textureAlpha, float textureNightAlpha, float textureDayAlpha, float textureBrightness, float textureContrast, float textureHue, float textureSaturation, float textureOneOverGamma, float split, vec4 colorToAlpha, float nightBlend) { // This crazy step stuff sets the alpha to 0.0 if this following condition is true: // tileTextureCoordinates.s < textureCoordinateRectangle.s || // tileTextureCoordinates.s > textureCoordinateRectangle.p || // tileTextureCoordinates.t < textureCoordinateRectangle.t || // tileTextureCoordinates.t > textureCoordinateRectangle.q // In other words, the alpha is zero if the fragment is outside the rectangle // covered by this texture. Would an actual 'if' yield better performance? vec2 alphaMultiplier = step(textureCoordinateRectangle.st, tileTextureCoordinates); textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; alphaMultiplier = step(vec2(0.0), textureCoordinateRectangle.pq - tileTextureCoordinates); textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; #if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) textureAlpha *= mix(textureDayAlpha, textureNightAlpha, nightBlend); #endif vec2 translation = textureCoordinateTranslationAndScale.xy; vec2 scale = textureCoordinateTranslationAndScale.zw; vec2 textureCoordinates = tileTextureCoordinates * scale + translation; vec4 value = texture(textureToSample, textureCoordinates); vec3 color = value.rgb; float alpha = value.a; #ifdef APPLY_COLOR_TO_ALPHA vec3 colorDiff = abs(color.rgb - colorToAlpha.rgb); colorDiff.r = czm_maximumComponent(colorDiff); alpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha); #endif #if !defined(APPLY_GAMMA) vec4 tempColor = czm_gammaCorrect(vec4(color, alpha)); color = tempColor.rgb; alpha = tempColor.a; #else color = pow(color, vec3(textureOneOverGamma)); #endif #ifdef APPLY_SPLIT float splitPosition = czm_splitPosition; // Split to the left if (split < 0.0 && gl_FragCoord.x > splitPosition) { alpha = 0.0; } // Split to the right else if (split > 0.0 && gl_FragCoord.x < splitPosition) { alpha = 0.0; } #endif #ifdef APPLY_BRIGHTNESS color = mix(vec3(0.0), color, textureBrightness); #endif #ifdef APPLY_CONTRAST color = mix(vec3(0.5), color, textureContrast); #endif #ifdef APPLY_HUE color = czm_hue(color, textureHue); #endif #ifdef APPLY_SATURATION color = czm_saturation(color, textureSaturation); #endif float sourceAlpha = alpha * textureAlpha; float outAlpha = mix(previousColor.a, 1.0, sourceAlpha); outAlpha += sign(outAlpha) - 1.0; vec3 outColor = mix(previousColor.rgb * previousColor.a, color, sourceAlpha) / outAlpha; // When rendering imagery for a tile in multiple passes, // some GPU/WebGL implementation combinations will not blend fragments in // additional passes correctly if their computation includes an unmasked // divide-by-zero operation, // even if it's not in the output or if the output has alpha zero. // // For example, without sanitization for outAlpha, // this renders without artifacts: // if (outAlpha == 0.0) { outColor = vec3(0.0); } // // but using czm_branchFreeTernary will cause portions of the tile that are // alpha-zero in the additional pass to render as black instead of blending // with the previous pass: // outColor = czm_branchFreeTernary(outAlpha == 0.0, vec3(0.0), outColor); // // So instead, sanitize against divide-by-zero, // store this state on the sign of outAlpha, and correct on return. return vec4(outColor, max(outAlpha, 0.0)); } vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend); vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float specularMapValue, float fade); const float fExposure = 2.0; vec3 computeEllipsoidPosition() { float mpp = czm_metersPerPixel(vec4(0.0, 0.0, -czm_currentFrustum.x, 1.0), 1.0); vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0); xy *= czm_viewport.zw * mpp * 0.5; vec3 direction = normalize(vec3(xy, -czm_currentFrustum.x)); czm_ray ray = czm_ray(vec3(0.0), direction); vec3 ellipsoid_center = czm_view[3].xyz; czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); vec3 ellipsoidPosition = czm_pointAlongRay(ray, intersection.start); return (czm_inverseView * vec4(ellipsoidPosition, 1.0)).xyz; } void main() { #ifdef TILE_LIMIT_RECTANGLE if (v_textureCoordinates.x < u_cartographicLimitRectangle.x || u_cartographicLimitRectangle.z < v_textureCoordinates.x || v_textureCoordinates.y < u_cartographicLimitRectangle.y || u_cartographicLimitRectangle.w < v_textureCoordinates.y) { discard; } #endif #ifdef ENABLE_CLIPPING_PLANES float clipDistance = clip(gl_FragCoord, u_clippingPlanes, u_clippingPlanesMatrix); #endif #if defined(SHOW_REFLECTIVE_OCEAN) || defined(ENABLE_DAYNIGHT_SHADING) || defined(HDR) vec3 normalMC = czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)); // normalized surface normal in model coordinates vec3 normalEC = czm_normal3D * normalMC; // normalized surface normal in eye coordinates #endif #if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) float nightBlend = 1.0 - clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0, 0.0, 1.0); #else float nightBlend = 0.0; #endif // The clamp below works around an apparent bug in Chrome Canary v23.0.1241.0 // where the fragment shader sees textures coordinates < 0.0 and > 1.0 for the // fragments on the edges of tiles even though the vertex shader is outputting // coordinates strictly in the 0-1 range. vec4 color = computeDayColor(u_initialColor, clamp(v_textureCoordinates, 0.0, 1.0), nightBlend); #ifdef SHOW_TILE_BOUNDARIES if (v_textureCoordinates.x < (1.0/256.0) || v_textureCoordinates.x > (255.0/256.0) || v_textureCoordinates.y < (1.0/256.0) || v_textureCoordinates.y > (255.0/256.0)) { color = vec4(1.0, 0.0, 0.0, 1.0); } #endif #if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) float cameraDist; if (czm_sceneMode == czm_sceneMode2D) { cameraDist = max(czm_frustumPlanes.x - czm_frustumPlanes.y, czm_frustumPlanes.w - czm_frustumPlanes.z) * 0.5; } else if (czm_sceneMode == czm_sceneModeColumbusView) { cameraDist = -czm_view[3].z; } else { cameraDist = length(czm_view[3]); } float fadeOutDist = u_lightingFadeDistance.x; float fadeInDist = u_lightingFadeDistance.y; if (czm_sceneMode != czm_sceneMode3D) { vec3 radii = czm_ellipsoidRadii; float maxRadii = max(radii.x, max(radii.y, radii.z)); fadeOutDist -= maxRadii; fadeInDist -= maxRadii; } float fade = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.0, 1.0); #else float fade = 0.0; #endif #ifdef SHOW_REFLECTIVE_OCEAN vec2 waterMaskTranslation = u_waterMaskTranslationAndScale.xy; vec2 waterMaskScale = u_waterMaskTranslationAndScale.zw; vec2 waterMaskTextureCoordinates = v_textureCoordinates.xy * waterMaskScale + waterMaskTranslation; waterMaskTextureCoordinates.y = 1.0 - waterMaskTextureCoordinates.y; float mask = texture(u_waterMask, waterMaskTextureCoordinates).r; if (mask > 0.0) { mat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC); vec2 ellipsoidTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC); vec2 ellipsoidFlippedTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC.zyx); vec2 textureCoordinates = mix(ellipsoidTextureCoordinates, ellipsoidFlippedTextureCoordinates, czm_morphTime * smoothstep(0.9, 0.95, normalMC.z)); color = computeWaterColor(v_positionEC, textureCoordinates, enuToEye, color, mask, fade); } #endif #ifdef APPLY_MATERIAL czm_materialInput materialInput; materialInput.st = v_textureCoordinates.st; materialInput.normalEC = normalize(v_normalEC); materialInput.positionToEyeEC = -v_positionEC; materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalize(v_normalEC)); materialInput.slope = v_slope; materialInput.height = v_height; materialInput.aspect = v_aspect; czm_material material = czm_getMaterial(materialInput); vec4 materialColor = vec4(material.diffuse, material.alpha); color = alphaBlend(materialColor, color); #endif #ifdef ENABLE_VERTEX_LIGHTING float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalize(v_normalEC)) * u_lambertDiffuseMultiplier + u_vertexShadowDarkness, 0.0, 1.0); vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); #elif defined(ENABLE_DAYNIGHT_SHADING) float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0 + 0.3, 0.0, 1.0); diffuseIntensity = mix(1.0, diffuseIntensity, fade); vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); #else vec4 finalColor = color; #endif #ifdef ENABLE_CLIPPING_PLANES vec4 clippingPlanesEdgeColor = vec4(1.0); clippingPlanesEdgeColor.rgb = u_clippingPlanesEdgeStyle.rgb; float clippingPlanesEdgeWidth = u_clippingPlanesEdgeStyle.a; if (clipDistance < clippingPlanesEdgeWidth) { finalColor = clippingPlanesEdgeColor; } #endif #ifdef ENABLE_CLIPPING_POLYGONS vec2 clippingPosition = v_clippingPosition; int regionIndex = v_regionIndex; clipPolygons(u_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex); #endif #ifdef HIGHLIGHT_FILL_TILE finalColor = vec4(mix(finalColor.rgb, u_fillHighlightColor.rgb, u_fillHighlightColor.a), finalColor.a); #endif #if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) vec3 atmosphereLightDirection = czm_sunDirectionWC; #else vec3 atmosphereLightDirection = czm_lightDirectionWC; #endif #if defined(GROUND_ATMOSPHERE) || defined(FOG) if (!czm_backFacing()) { bool dynamicLighting = false; #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) dynamicLighting = true; #endif vec3 rayleighColor; vec3 mieColor; float opacity; vec3 positionWC; vec3 lightDirection; // When the camera is far away (camera distance > nightFadeOutDistance), the scattering is computed in the fragment shader. // Otherwise, the scattering is computed in the vertex shader. #ifdef PER_FRAGMENT_GROUND_ATMOSPHERE positionWC = computeEllipsoidPosition(); lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); computeAtmosphereScattering( positionWC, lightDirection, rayleighColor, mieColor, opacity ); #else positionWC = v_positionMC; lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); rayleighColor = v_atmosphereRayleighColor; mieColor = v_atmosphereMieColor; opacity = v_atmosphereOpacity; #endif #ifdef COLOR_CORRECT const bool ignoreBlackPixels = true; rayleighColor = czm_applyHSBShift(rayleighColor, u_hsbShift, ignoreBlackPixels); mieColor = czm_applyHSBShift(mieColor, u_hsbShift, ignoreBlackPixels); #endif vec4 groundAtmosphereColor = computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity); // Fog is applied to tiles selected for fog, close to the Earth. #ifdef FOG vec3 fogColor = groundAtmosphereColor.rgb; // If there is lighting, apply that to the fog. #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) float darken = clamp(dot(normalize(czm_viewerPositionWC), atmosphereLightDirection), u_minimumBrightness, 1.0); fogColor *= darken; #endif #ifndef HDR fogColor.rgb = czm_acesTonemapping(fogColor.rgb); fogColor.rgb = czm_inverseGamma(fogColor.rgb); #endif const float modifier = 0.15; finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, modifier), finalColor.a); #else // Apply ground atmosphere. This happens when the camera is far away from the earth. // The transmittance is based on optical depth i.e. the length of segment of the ray inside the atmosphere. // This value is larger near the "circumference", as it is further away from the camera. We use it to // brighten up that area of the ground atmosphere. const float transmittanceModifier = 0.5; float transmittance = transmittanceModifier + clamp(1.0 - groundAtmosphereColor.a, 0.0, 1.0); vec3 finalAtmosphereColor = finalColor.rgb + groundAtmosphereColor.rgb * transmittance; #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) float fadeInDist = u_nightFadeDistance.x; float fadeOutDist = u_nightFadeDistance.y; float sunlitAtmosphereIntensity = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.05, 1.0); float darken = clamp(dot(normalize(positionWC), atmosphereLightDirection), 0.0, 1.0); vec3 darkenendGroundAtmosphereColor = mix(groundAtmosphereColor.rgb, finalAtmosphereColor.rgb, darken); finalAtmosphereColor = mix(darkenendGroundAtmosphereColor, finalAtmosphereColor, sunlitAtmosphereIntensity); #endif #ifndef HDR finalAtmosphereColor.rgb = vec3(1.0) - exp(-fExposure * finalAtmosphereColor.rgb); #else finalAtmosphereColor.rgb = czm_saturation(finalAtmosphereColor.rgb, 1.6); #endif finalColor.rgb = mix(finalColor.rgb, finalAtmosphereColor.rgb, fade); #endif } #endif #ifdef UNDERGROUND_COLOR if (czm_backFacing()) { float distanceFromEllipsoid = max(czm_eyeHeight, 0.0); float distance = max(v_distance - distanceFromEllipsoid, 0.0); float blendAmount = interpolateByDistance(u_undergroundColorAlphaByDistance, distance); vec4 undergroundColor = vec4(u_undergroundColor.rgb, u_undergroundColor.a * blendAmount); finalColor = alphaBlend(undergroundColor, finalColor); } #endif #ifdef TRANSLUCENT if (inTranslucencyRectangle()) { vec4 alphaByDistance = gl_FrontFacing ? u_frontFaceAlphaByDistance : u_backFaceAlphaByDistance; finalColor.a *= interpolateByDistance(alphaByDistance, v_distance); } #endif out_FragColor = finalColor; } #ifdef SHOW_REFLECTIVE_OCEAN float waveFade(float edge0, float edge1, float x) { float y = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); return pow(1.0 - y, 5.0); } float linearFade(float edge0, float edge1, float x) { return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); } // Based on water rendering by Jonas Wagner: // http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog // low altitude wave settings const float oceanFrequencyLowAltitude = 825000.0; const float oceanAnimationSpeedLowAltitude = 0.004; const float oceanOneOverAmplitudeLowAltitude = 1.0 / 2.0; const float oceanSpecularIntensity = 0.5; // high altitude wave settings const float oceanFrequencyHighAltitude = 125000.0; const float oceanAnimationSpeedHighAltitude = 0.008; const float oceanOneOverAmplitudeHighAltitude = 1.0 / 2.0; vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float maskValue, float fade) { vec3 positionToEyeEC = -positionEyeCoordinates; float positionToEyeECLength = length(positionToEyeEC); // The double normalize below works around a bug in Firefox on Android devices. vec3 normalizedPositionToEyeEC = normalize(normalize(positionToEyeEC)); // Fade out the waves as the camera moves far from the surface. float waveIntensity = waveFade(70000.0, 1000000.0, positionToEyeECLength); #ifdef SHOW_OCEAN_WAVES // high altitude waves float time = czm_frameNumber * oceanAnimationSpeedHighAltitude; vec4 noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyHighAltitude, time, 0.0); vec3 normalTangentSpaceHighAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeHighAltitude); // low altitude waves time = czm_frameNumber * oceanAnimationSpeedLowAltitude; noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyLowAltitude, time, 0.0); vec3 normalTangentSpaceLowAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeLowAltitude); // blend the 2 wave layers based on distance to surface float highAltitudeFade = linearFade(0.0, 60000.0, positionToEyeECLength); float lowAltitudeFade = 1.0 - linearFade(20000.0, 60000.0, positionToEyeECLength); vec3 normalTangentSpace = (highAltitudeFade * normalTangentSpaceHighAltitude) + (lowAltitudeFade * normalTangentSpaceLowAltitude); normalTangentSpace = normalize(normalTangentSpace); // fade out the normal perturbation as we move farther from the water surface normalTangentSpace.xy *= waveIntensity; normalTangentSpace = normalize(normalTangentSpace); #else vec3 normalTangentSpace = vec3(0.0, 0.0, 1.0); #endif vec3 normalEC = enuToEye * normalTangentSpace; const vec3 waveHighlightColor = vec3(0.3, 0.45, 0.6); // Use diffuse light to highlight the waves float diffuseIntensity = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * maskValue; vec3 diffuseHighlight = waveHighlightColor * diffuseIntensity * (1.0 - fade); #ifdef SHOW_OCEAN_WAVES // Where diffuse light is low or non-existent, use wave highlights based solely on // the wave bumpiness and no particular light direction. float tsPerturbationRatio = normalTangentSpace.z; vec3 nonDiffuseHighlight = mix(waveHighlightColor * 5.0 * (1.0 - tsPerturbationRatio), vec3(0.0), diffuseIntensity); #else vec3 nonDiffuseHighlight = vec3(0.0); #endif // Add specular highlights in 3D, and in all modes when zoomed in. float specularIntensity = czm_getSpecular(czm_lightDirectionEC, normalizedPositionToEyeEC, normalEC, 10.0); float surfaceReflectance = mix(0.0, mix(u_zoomedOutOceanSpecularIntensity, oceanSpecularIntensity, waveIntensity), maskValue); float specular = specularIntensity * surfaceReflectance; #ifdef HDR specular *= 1.4; float e = 0.2; float d = 3.3; float c = 1.7; vec3 color = imageryColor.rgb + (c * (vec3(e) + imageryColor.rgb * d) * (diffuseHighlight + nonDiffuseHighlight + specular)); #else vec3 color = imageryColor.rgb + diffuseHighlight + nonDiffuseHighlight + specular; #endif return vec4(color, imageryColor.a); } #endif // #ifdef SHOW_REFLECTIVE_OCEAN `;var NF=`#ifdef QUANTIZATION_BITS12 in vec4 compressed0; in float compressed1; #else in vec4 position3DAndHeight; in vec4 textureCoordAndEncodedNormals; #endif #ifdef GEODETIC_SURFACE_NORMALS in vec3 geodeticSurfaceNormal; #endif #ifdef EXAGGERATION uniform vec2 u_verticalExaggerationAndRelativeHeight; #endif uniform vec3 u_center3D; uniform mat4 u_modifiedModelView; uniform mat4 u_modifiedModelViewProjection; uniform vec4 u_tileRectangle; // Uniforms for 2D Mercator projection uniform vec2 u_southAndNorthLatitude; uniform vec2 u_southMercatorYAndOneOverHeight; out vec3 v_positionMC; out vec3 v_positionEC; out vec3 v_textureCoordinates; out vec3 v_normalMC; out vec3 v_normalEC; #ifdef APPLY_MATERIAL out float v_slope; out float v_aspect; out float v_height; #endif #if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) out float v_distance; #endif #if defined(FOG) || defined(GROUND_ATMOSPHERE) out vec3 v_atmosphereRayleighColor; out vec3 v_atmosphereMieColor; out float v_atmosphereOpacity; #endif #ifdef ENABLE_CLIPPING_POLYGONS uniform highp sampler2D u_clippingExtents; out vec2 v_clippingPosition; flat out int v_regionIndex; #endif // These functions are generated at runtime. vec4 getPosition(vec3 position, float height, vec2 textureCoordinates); float get2DYPositionFraction(vec2 textureCoordinates); vec4 getPosition3DMode(vec3 position, float height, vec2 textureCoordinates) { return u_modifiedModelViewProjection * vec4(position, 1.0); } float get2DMercatorYPositionFraction(vec2 textureCoordinates) { // The width of a tile at level 11, in radians and assuming a single root tile, is // 2.0 * czm_pi / pow(2.0, 11.0) // We want to just linearly interpolate the 2D position from the texture coordinates // when we're at this level or higher. The constant below is the expression // above evaluated and then rounded up at the 4th significant digit. const float maxTileWidth = 0.003068; float positionFraction = textureCoordinates.y; float southLatitude = u_southAndNorthLatitude.x; float northLatitude = u_southAndNorthLatitude.y; if (northLatitude - southLatitude > maxTileWidth) { float southMercatorY = u_southMercatorYAndOneOverHeight.x; float oneOverMercatorHeight = u_southMercatorYAndOneOverHeight.y; float currentLatitude = mix(southLatitude, northLatitude, textureCoordinates.y); currentLatitude = clamp(currentLatitude, -czm_webMercatorMaxLatitude, czm_webMercatorMaxLatitude); positionFraction = czm_latitudeToWebMercatorFraction(currentLatitude, southMercatorY, oneOverMercatorHeight); } return positionFraction; } float get2DGeographicYPositionFraction(vec2 textureCoordinates) { return textureCoordinates.y; } vec4 getPositionPlanarEarth(vec3 position, float height, vec2 textureCoordinates) { float yPositionFraction = get2DYPositionFraction(textureCoordinates); vec4 rtcPosition2D = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); return u_modifiedModelViewProjection * rtcPosition2D; } vec4 getPosition2DMode(vec3 position, float height, vec2 textureCoordinates) { return getPositionPlanarEarth(position, 0.0, textureCoordinates); } vec4 getPositionColumbusViewMode(vec3 position, float height, vec2 textureCoordinates) { return getPositionPlanarEarth(position, height, textureCoordinates); } vec4 getPositionMorphingMode(vec3 position, float height, vec2 textureCoordinates) { // We do not do RTC while morphing, so there is potential for jitter. // This is unlikely to be noticeable, though. vec3 position3DWC = position + u_center3D; float yPositionFraction = get2DYPositionFraction(textureCoordinates); vec4 position2DWC = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); vec4 morphPosition = czm_columbusViewMorph(position2DWC, vec4(position3DWC, 1.0), czm_morphTime); return czm_modelViewProjection * morphPosition; } #ifdef QUANTIZATION_BITS12 uniform vec2 u_minMaxHeight; uniform mat4 u_scaleAndBias; #endif void main() { #ifdef QUANTIZATION_BITS12 vec2 xy = czm_decompressTextureCoordinates(compressed0.x); vec2 zh = czm_decompressTextureCoordinates(compressed0.y); vec3 position = vec3(xy, zh.x); float height = zh.y; vec2 textureCoordinates = czm_decompressTextureCoordinates(compressed0.z); height = height * (u_minMaxHeight.y - u_minMaxHeight.x) + u_minMaxHeight.x; position = (u_scaleAndBias * vec4(position, 1.0)).xyz; #if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)) && defined(INCLUDE_WEB_MERCATOR_Y) || defined(APPLY_MATERIAL) float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; float encodedNormal = compressed1; #elif defined(INCLUDE_WEB_MERCATOR_Y) float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; float encodedNormal = 0.0; #elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) float webMercatorT = textureCoordinates.y; float encodedNormal = compressed0.w; #else float webMercatorT = textureCoordinates.y; float encodedNormal = 0.0; #endif #else // A single float per element vec3 position = position3DAndHeight.xyz; float height = position3DAndHeight.w; vec2 textureCoordinates = textureCoordAndEncodedNormals.xy; #if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)) && defined(INCLUDE_WEB_MERCATOR_Y) float webMercatorT = textureCoordAndEncodedNormals.z; float encodedNormal = textureCoordAndEncodedNormals.w; #elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) float webMercatorT = textureCoordinates.y; float encodedNormal = textureCoordAndEncodedNormals.z; #elif defined(INCLUDE_WEB_MERCATOR_Y) float webMercatorT = textureCoordAndEncodedNormals.z; float encodedNormal = 0.0; #else float webMercatorT = textureCoordinates.y; float encodedNormal = 0.0; #endif #endif vec3 position3DWC = position + u_center3D; #ifdef GEODETIC_SURFACE_NORMALS vec3 ellipsoidNormal = geodeticSurfaceNormal; #else vec3 ellipsoidNormal = normalize(position3DWC); #endif #if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) float exaggeration = u_verticalExaggerationAndRelativeHeight.x; float relativeHeight = u_verticalExaggerationAndRelativeHeight.y; float newHeight = (height - relativeHeight) * exaggeration + relativeHeight; // stop from going through center of earth float minRadius = min(min(czm_ellipsoidRadii.x, czm_ellipsoidRadii.y), czm_ellipsoidRadii.z); newHeight = max(newHeight, -minRadius); vec3 offset = ellipsoidNormal * (newHeight - height); position += offset; position3DWC += offset; height = newHeight; #endif gl_Position = getPosition(position, height, textureCoordinates); v_positionEC = (u_modifiedModelView * vec4(position, 1.0)).xyz; v_positionMC = position3DWC; // position in model coordinates v_textureCoordinates = vec3(textureCoordinates, webMercatorT); #if defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) vec3 normalMC = czm_octDecode(encodedNormal); #if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) vec3 projection = dot(normalMC, ellipsoidNormal) * ellipsoidNormal; vec3 rejection = normalMC - projection; normalMC = normalize(projection + rejection * exaggeration); #endif v_normalMC = normalMC; v_normalEC = czm_normal3D * v_normalMC; #endif #ifdef ENABLE_CLIPPING_POLYGONS vec2 sphericalLatLong = czm_approximateSphericalCoordinates(position3DWC); sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); vec2 minDistance = vec2(czm_infinity); v_clippingPosition = vec2(czm_infinity); v_regionIndex = -1; for (int regionIndex = 0; regionIndex < CLIPPING_POLYGON_REGIONS_LENGTH; regionIndex++) { vec4 extents = unpackClippingExtents(u_clippingExtents, regionIndex); vec2 rectUv = (sphericalLatLong.yx - extents.yx) * extents.wz; vec2 clamped = clamp(rectUv, vec2(0.0), vec2(1.0)); vec2 distance = abs(rectUv - clamped) * extents.wz; float threshold = 0.01; if (minDistance.x > distance.x || minDistance.y > distance.y) { minDistance = distance; v_clippingPosition = rectUv; if (rectUv.x > threshold && rectUv.y > threshold && rectUv.x < 1.0 - threshold && rectUv.y < 1.0 - threshold) { v_regionIndex = regionIndex; } } } #endif #if defined(FOG) || (defined(GROUND_ATMOSPHERE) && !defined(PER_FRAGMENT_GROUND_ATMOSPHERE)) bool dynamicLighting = false; #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) dynamicLighting = true; #endif #if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) vec3 atmosphereLightDirection = czm_sunDirectionWC; #else vec3 atmosphereLightDirection = czm_lightDirectionWC; #endif vec3 lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(position3DWC)); computeAtmosphereScattering( position3DWC, lightDirection, v_atmosphereRayleighColor, v_atmosphereMieColor, v_atmosphereOpacity ); #endif #if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) v_distance = length((czm_modelView3D * vec4(position3DWC, 1.0)).xyz); #endif #ifdef APPLY_MATERIAL float northPoleZ = czm_ellipsoidRadii.z; vec3 northPolePositionMC = vec3(0.0, 0.0, northPoleZ); vec3 vectorEastMC = normalize(cross(northPolePositionMC - v_positionMC, ellipsoidNormal)); float dotProd = abs(dot(ellipsoidNormal, v_normalMC)); v_slope = acos(dotProd); vec3 normalRejected = ellipsoidNormal * dotProd; vec3 normalProjected = v_normalMC - normalRejected; vec3 aspectVector = normalize(normalProjected); v_aspect = acos(dot(aspectVector, vectorEastMC)); float determ = dot(cross(vectorEastMC, aspectVector), ellipsoidNormal); v_aspect = czm_branchFreeTernary(determ < 0.0, 2.0 * czm_pi - v_aspect, v_aspect); v_height = height; #endif } `;var qS=`void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) { vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); float atmosphereInnerRadius = length(positionWC); computeScattering( primaryRay, length(cameraToPositionWC), lightDirection, atmosphereInnerRadius, rayleighColor, mieColor, opacity ); } `;var FF=`uniform sampler2D u_texture; in vec2 v_textureCoordinates; void main() { out_FragColor = texture(u_texture, v_textureCoordinates); } `;var BF=`in vec4 position; in float webMercatorT; uniform vec2 u_textureDimensions; out vec2 v_textureCoordinates; void main() { v_textureCoordinates = vec2(position.x, webMercatorT); gl_Position = czm_viewportOrthographic * (position * vec4(u_textureDimensions, 1.0, 1.0)); } `;var YS=`float interpolateByDistance(vec4 nearFarScalar, float distance) { float startDistance = nearFarScalar.x; float startValue = nearFarScalar.y; float endDistance = nearFarScalar.z; float endValue = nearFarScalar.w; float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); return mix(startValue, endValue, t); } void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity, out float underTranslucentGlobe) { float ellipsoidRadiiDifference = czm_ellipsoidRadii.x - czm_ellipsoidRadii.z; // Adjustment to the atmosphere radius applied based on the camera height. float distanceAdjustMin = czm_ellipsoidRadii.x / 4.0; float distanceAdjustMax = czm_ellipsoidRadii.x; float distanceAdjustModifier = ellipsoidRadiiDifference / 2.0; float distanceAdjust = distanceAdjustModifier * clamp((czm_eyeHeight - distanceAdjustMin) / (distanceAdjustMax - distanceAdjustMin), 0.0, 1.0); // Since atmosphere scattering assumes the atmosphere is a spherical shell, we compute an inner radius of the atmosphere best fit // for the position on the ellipsoid. float radiusAdjust = (ellipsoidRadiiDifference / 4.0) + distanceAdjust; float atmosphereInnerRadius = (length(czm_viewerPositionWC) - czm_eyeHeight) - radiusAdjust; // Setup the primary ray: from the camera position to the vertex position. vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); underTranslucentGlobe = 0.0; // Brighten the sky atmosphere under the Earth's atmosphere when translucency is enabled. #if defined(GLOBE_TRANSLUCENT) // Check for intersection with the inner radius of the atmopshere. czm_raySegment primaryRayEarthIntersect = czm_raySphereIntersectionInterval(primaryRay, vec3(0.0), atmosphereInnerRadius + radiusAdjust); if (primaryRayEarthIntersect.start > 0.0 && primaryRayEarthIntersect.stop > 0.0) { // Compute position on globe. vec3 direction = normalize(positionWC); czm_ray ellipsoidRay = czm_ray(positionWC, -direction); czm_raySegment ellipsoidIntersection = czm_rayEllipsoidIntersectionInterval(ellipsoidRay, vec3(0.0), czm_ellipsoidInverseRadii); vec3 onEarth = positionWC - (direction * ellipsoidIntersection.start); // Control the color using the camera angle. float angle = dot(normalize(czm_viewerPositionWC), normalize(onEarth)); // Control the opacity using the distance from Earth. opacity = interpolateByDistance(vec4(0.0, 1.0, czm_ellipsoidRadii.x, 0.0), length(czm_viewerPositionWC - onEarth)); vec3 horizonColor = vec3(0.1, 0.2, 0.3); vec3 nearColor = vec3(0.0); rayleighColor = mix(nearColor, horizonColor, exp(-angle) * opacity); // Set the traslucent flag to avoid alpha adjustment in computeFinalColor funciton. underTranslucentGlobe = 1.0; return; } #endif computeScattering( primaryRay, length(cameraToPositionWC), lightDirection, atmosphereInnerRadius, rayleighColor, mieColor, opacity ); // Alter the opacity based on how close the viewer is to the ground. // (0.0 = At edge of atmosphere, 1.0 = On ground) float cameraHeight = czm_eyeHeight + atmosphereInnerRadius; float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; opacity = clamp((atmosphereOuterRadius - cameraHeight) / (atmosphereOuterRadius - atmosphereInnerRadius), 0.0, 1.0); // Alter alpha based on time of day (0.0 = night , 1.0 = day) float nightAlpha = (u_radiiAndDynamicAtmosphereColor.z != 0.0) ? clamp(dot(normalize(positionWC), lightDirection), 0.0, 1.0) : 1.0; opacity *= pow(nightAlpha, 0.5); } `;var kF=`in vec3 v_outerPositionWC; uniform vec3 u_hsbShift; #ifndef PER_FRAGMENT_ATMOSPHERE in vec3 v_mieColor; in vec3 v_rayleighColor; in float v_opacity; in float v_translucent; #endif void main (void) { float lightEnum = u_radiiAndDynamicAtmosphereColor.z; vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(v_outerPositionWC, lightEnum); vec3 mieColor; vec3 rayleighColor; float opacity; float translucent; #ifdef PER_FRAGMENT_ATMOSPHERE computeAtmosphereScattering( v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity, translucent ); #else mieColor = v_mieColor; rayleighColor = v_rayleighColor; opacity = v_opacity; translucent = v_translucent; #endif vec4 color = computeAtmosphereColor(v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity); #ifndef HDR color.rgb = czm_acesTonemapping(color.rgb); color.rgb = czm_inverseGamma(color.rgb); #endif #ifdef COLOR_CORRECT const bool ignoreBlackPixels = true; color.rgb = czm_applyHSBShift(color.rgb, u_hsbShift, ignoreBlackPixels); #endif // For the parts of the sky atmosphere that are not behind a translucent globe, // we mix in the default opacity so that the sky atmosphere still appears at distance. // This is needed because the opacity in the sky atmosphere is initially adjusted based // on the camera height. if (translucent == 0.0) { color.a = mix(color.b, 1.0, color.a) * smoothstep(0.0, 1.0, czm_morphTime); } out_FragColor = color; } `;var VF=`in vec4 position; out vec3 v_outerPositionWC; #ifndef PER_FRAGMENT_ATMOSPHERE out vec3 v_mieColor; out vec3 v_rayleighColor; out float v_opacity; out float v_translucent; #endif void main(void) { vec4 positionWC = czm_model * position; float lightEnum = u_radiiAndDynamicAtmosphereColor.z; vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC.xyz, lightEnum); #ifndef PER_FRAGMENT_ATMOSPHERE computeAtmosphereScattering( positionWC.xyz, lightDirection, v_rayleighColor, v_mieColor, v_opacity, v_translucent ); #endif v_outerPositionWC = positionWC.xyz; gl_Position = czm_modelViewProjection * position; } `;var UF=`uniform samplerCube u_cubeMap; in vec3 v_texCoord; void main() { vec4 color = czm_textureCube(u_cubeMap, normalize(v_texCoord)); out_FragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime); } `;var zF=`in vec3 position; out vec3 v_texCoord; void main() { vec3 p = czm_viewRotation * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position)); gl_Position = czm_projection * vec4(p, 1.0); v_texCoord = position.xyz; } `;var HF=`uniform sampler2D u_texture; in vec2 v_textureCoordinates; void main() { vec4 color = texture(u_texture, v_textureCoordinates); out_FragColor = czm_gammaCorrect(color); } `;var GF=`uniform float u_radiusTS; in vec2 v_textureCoordinates; vec2 rotate(vec2 p, vec2 direction) { return vec2(p.x * direction.x - p.y * direction.y, p.x * direction.y + p.y * direction.x); } vec4 addBurst(vec2 position, vec2 direction, float lengthScalar) { vec2 rotatedPosition = rotate(position, direction) * vec2(25.0, 0.75); float radius = length(rotatedPosition) * lengthScalar; float burst = 1.0 - smoothstep(0.0, 0.55, radius); return vec4(burst); } void main() { float lengthScalar = 2.0 / sqrt(2.0); vec2 position = v_textureCoordinates - vec2(0.5); float radius = length(position) * lengthScalar; float surface = step(radius, u_radiusTS); vec4 color = vec4(vec2(1.0), surface + 0.2, surface); float glow = 1.0 - smoothstep(0.0, 0.55, radius); color.ba += mix(vec2(0.0), vec2(1.0), glow) * 0.75; vec4 burst = vec4(0.0); // The following loop has been manually unrolled for speed, to // avoid sin() and cos(). // //for (float i = 0.4; i < 3.2; i += 1.047) { // vec2 direction = vec2(sin(i), cos(i)); // burst += 0.4 * addBurst(position, direction, lengthScalar); // // direction = vec2(sin(i - 0.08), cos(i - 0.08)); // burst += 0.3 * addBurst(position, direction, lengthScalar); //} burst += 0.4 * addBurst(position, vec2(0.38942, 0.92106), lengthScalar); // angle == 0.4 burst += 0.4 * addBurst(position, vec2(0.99235, 0.12348), lengthScalar); // angle == 0.4 + 1.047 burst += 0.4 * addBurst(position, vec2(0.60327, -0.79754), lengthScalar); // angle == 0.4 + 1.047 * 2.0 burst += 0.3 * addBurst(position, vec2(0.31457, 0.94924), lengthScalar); // angle == 0.4 - 0.08 burst += 0.3 * addBurst(position, vec2(0.97931, 0.20239), lengthScalar); // angle == 0.4 + 1.047 - 0.08 burst += 0.3 * addBurst(position, vec2(0.66507, -0.74678), lengthScalar); // angle == 0.4 + 1.047 * 2.0 - 0.08 // End of manual loop unrolling. color += clamp(burst, vec4(0.0), vec4(1.0)) * 0.15; out_FragColor = clamp(color, vec4(0.0), vec4(1.0)); } `;var WF=`in vec2 direction; uniform float u_size; out vec2 v_textureCoordinates; void main() { vec4 position; if (czm_morphTime == 1.0) { position = vec4(czm_sunPositionWC, 1.0); } else { position = vec4(czm_sunPositionColumbusView.zxy, 1.0); } vec4 positionEC = czm_view * position; vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); vec2 halfSize = vec2(u_size * 0.5); halfSize *= ((direction * 2.0) - 1.0); gl_Position = czm_viewportOrthographic * vec4(positionWC.xy + halfSize, -positionWC.z, 1.0); v_textureCoordinates = direction; } `;var jF=` in vec2 v_textureCoordinates; void main() { czm_materialInput materialInput; materialInput.s = v_textureCoordinates.s; materialInput.st = v_textureCoordinates; materialInput.str = vec3(v_textureCoordinates, 0.0); materialInput.normalEC = vec3(0.0, 0.0, -1.0); czm_material material = czm_getMaterial(materialInput); out_FragColor = vec4(material.diffuse + material.emission, material.alpha); } `;var kat=new z;function Vat(e,t){let n=e.unionClippingRegions,i=e.length,o=cs.useFloatTexture(t),r=cs.getTextureResolution(e,t,kat),s=r.x,a=r.y,c=o?Hat(s,a):Gat(s,a);return c+=` `,c+=n?Uat(i):zat(i),c}function Uat(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) { vec4 position = czm_windowToEyeCoordinates(fragCoord); vec3 clipNormal = vec3(0.0); vec3 clipPosition = vec3(0.0); float clipAmount; float pixelWidth = czm_metersPerPixel(position); bool breakAndDiscard = false; for (int i = 0; i < ${e}; ++i) { vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); clipNormal = clippingPlane.xyz; clipPosition = -clippingPlane.w * clipNormal; float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount)); if (amount <= 0.0) { breakAndDiscard = true; break; } } if (breakAndDiscard) { discard; } return clipAmount; } `}function zat(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) { bool clipped = true; vec4 position = czm_windowToEyeCoordinates(fragCoord); vec3 clipNormal = vec3(0.0); vec3 clipPosition = vec3(0.0); float clipAmount = 0.0; float pixelWidth = czm_metersPerPixel(position); for (int i = 0; i < ${e}; ++i) { vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); clipNormal = clippingPlane.xyz; clipPosition = -clippingPlane.w * clipNormal; float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; clipAmount = max(amount, clipAmount); clipped = clipped && (amount <= 0.0); } if (clipped) { discard; } return clipAmount; } `}function Hat(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) { int pixY = clippingPlaneNumber / ${e}; int pixX = clippingPlaneNumber - (pixY * ${e}); float u = (float(pixX) + 0.5) * ${o}; float v = (float(pixY) + 0.5) * ${r}; vec4 plane = texture(packedClippingPlanes, vec2(u, v)); return czm_transformPlane(plane, transform); } `}function Gat(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) { int clippingPlaneStartIndex = clippingPlaneNumber * 2; int pixY = clippingPlaneStartIndex / ${e}; int pixX = clippingPlaneStartIndex - (pixY * ${e}); float u = (float(pixX) + 0.5) * ${o}; float v = (float(pixY) + 0.5) * ${r}; vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0; vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w); vec4 plane; plane.xyz = czm_octDecode(oct, 65535.0); plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + ${o}, v))); return czm_transformPlane(plane, transform); } `}var tg=Vat;function Wat(e,t,n,i,o,r){this.numberOfDayTextures=e,this.flags=t,this.material=n,this.shaderProgram=i,this.clippingShaderState=o,this.clippingPolygonShaderState=r}function ZX(){this.baseVertexShaderSource=void 0,this.baseFragmentShaderSource=void 0,this._shadersByTexturesFlags=[],this.material=void 0}function jat(e){let t="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPosition3DMode(position, height, textureCoordinates); }",n="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionColumbusViewMode(position, height, textureCoordinates); }",i="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionMorphingMode(position, height, textureCoordinates); }",o;switch(e){case ne.SCENE3D:o=t;break;case ne.SCENE2D:case ne.COLUMBUS_VIEW:o=n;break;case ne.MORPHING:o=i;break}return o}function qat(e){return e.webgl2?`void clipPolygons(highp sampler2D clippingDistance, int regionsLength, vec2 clippingPosition, int regionIndex) { czm_clipPolygons(clippingDistance, regionsLength, clippingPosition, regionIndex); }`:`void clipPolygons(highp sampler2D clippingDistance, int regionsLength, vec2 clippingPosition, int regionIndex) { }`}function Yat(e){return e.webgl2?`vec4 unpackClippingExtents(highp sampler2D extentsTexture, int index) { return czm_unpackClippingExtents(extentsTexture, index); }`:`vec4 unpackClippingExtents(highp sampler2D extentsTexture, int index) { return vec4(); }`}function Xat(e){return e?"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DMercatorYPositionFraction(textureCoordinates); }":"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DGeographicYPositionFraction(textureCoordinates); }"}ZX.prototype.getShaderProgram=function(e){let t=e.frameState,n=e.surfaceTile,i=e.numberOfDayTextures,o=e.applyBrightness,r=e.applyContrast,s=e.applyHue,a=e.applySaturation,c=e.applyGamma,u=e.applyAlpha,f=e.applyDayNightAlpha,d=e.applySplit,p=e.showReflectiveOcean,g=e.showOceanWaves,m=e.enableLighting,x=e.dynamicAtmosphereLighting,b=e.dynamicAtmosphereLightingFromSun,T=e.showGroundAtmosphere,C=e.perFragmentGroundAtmosphere,A=e.hasVertexNormals,E=e.useWebMercatorProjection,v=e.enableFog,D=e.enableClippingPlanes,O=e.clippingPlanes,I=e.enableClippingPolygons,L=e.clippingPolygons,N=e.clippedByBoundaries,_=e.hasImageryLayerCutout,S=e.colorCorrect,w=e.highlightFillTile,P=e.colorToAlpha,M=e.hasGeodeticSurfaceNormals,B=e.hasExaggeration,U=e.showUndergroundColor,V=e.translucent,G=0,k="",W=n.renderedMesh.encoding;W.quantization===js.BITS12&&(G=1,k="QUANTIZATION_BITS12");let j=0,K="";N&&(j=1,K="TILE_LIMIT_RECTANGLE");let Z=0,he="";_&&(Z=1,he="APPLY_IMAGERY_CUTOUT");let be=t.mode,re=be|o<<2|r<<3|s<<4|a<<5|c<<6|u<<7|p<<8|g<<9|m<<10|x<<11|b<<12|T<<13|C<<14|A<<15|E<<16|v<<17|G<<18|d<<19|D<<20|I<<21|j<<22|Z<<23|S<<24|w<<25|P<<26|M<<27|B<<28|U<<29|V<<30|f<<31,_e=0;l(O)&&O.length>0&&(_e=D?O.clippingPlanesState:0);let xe=0;l(L)&&L.length>0&&(xe=I?L.clippingPolygonsState:0);let Ce=n.surfaceShader;if(l(Ce)&&Ce.numberOfDayTextures===i&&Ce.flags===re&&Ce.material===this.material&&Ce.clippingShaderState===_e&&Ce.clippingPolygonShaderState===xe)return Ce.shaderProgram;let we=this._shadersByTexturesFlags[i];if(l(we)||(we=this._shadersByTexturesFlags[i]=[]),Ce=we[re],!l(Ce)||Ce.material!==this.material||Ce.clippingShaderState!==_e||Ce.clippingPolygonShaderState!==xe){let Oe=this.baseVertexShaderSource.clone(),ke=this.baseFragmentShaderSource.clone();_e!==0&&ke.sources.unshift(tg(O,t.context)),xe!==0&&(ke.sources.unshift(qat(t.context)),Oe.sources.unshift(Yat(t.context))),Oe.defines.push(k),ke.defines.push(`TEXTURE_UNITS ${i}`,K,he),o&&ke.defines.push("APPLY_BRIGHTNESS"),r&&ke.defines.push("APPLY_CONTRAST"),s&&ke.defines.push("APPLY_HUE"),a&&ke.defines.push("APPLY_SATURATION"),c&&ke.defines.push("APPLY_GAMMA"),u&&ke.defines.push("APPLY_ALPHA"),f&&ke.defines.push("APPLY_DAY_NIGHT_ALPHA"),p&&(ke.defines.push("SHOW_REFLECTIVE_OCEAN"),Oe.defines.push("SHOW_REFLECTIVE_OCEAN")),g&&ke.defines.push("SHOW_OCEAN_WAVES"),P&&ke.defines.push("APPLY_COLOR_TO_ALPHA"),U&&(Oe.defines.push("UNDERGROUND_COLOR"),ke.defines.push("UNDERGROUND_COLOR")),V&&(Oe.defines.push("TRANSLUCENT"),ke.defines.push("TRANSLUCENT")),m&&(A?(Oe.defines.push("ENABLE_VERTEX_LIGHTING"),ke.defines.push("ENABLE_VERTEX_LIGHTING")):(Oe.defines.push("ENABLE_DAYNIGHT_SHADING"),ke.defines.push("ENABLE_DAYNIGHT_SHADING"))),x&&(Oe.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),ke.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),b&&(Oe.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"),ke.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"))),T&&(Oe.defines.push("GROUND_ATMOSPHERE"),ke.defines.push("GROUND_ATMOSPHERE"),C&&(Oe.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"),ke.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"))),Oe.defines.push("INCLUDE_WEB_MERCATOR_Y"),ke.defines.push("INCLUDE_WEB_MERCATOR_Y"),v&&(Oe.defines.push("FOG"),ke.defines.push("FOG")),d&&ke.defines.push("APPLY_SPLIT"),D&&ke.defines.push("ENABLE_CLIPPING_PLANES"),I&&(ke.defines.push("ENABLE_CLIPPING_POLYGONS"),Oe.defines.push("ENABLE_CLIPPING_POLYGONS"),L.inverse&&ke.defines.push("CLIPPING_INVERSE"),ke.defines.push(`CLIPPING_POLYGON_REGIONS_LENGTH ${L.extentsCount}`),Oe.defines.push(`CLIPPING_POLYGON_REGIONS_LENGTH ${L.extentsCount}`)),S&&ke.defines.push("COLOR_CORRECT"),w&&ke.defines.push("HIGHLIGHT_FILL_TILE"),M&&Oe.defines.push("GEODETIC_SURFACE_NORMALS"),B&&Oe.defines.push("EXAGGERATION");let At=` vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend) { vec4 color = initialColor; `;_&&(At+=` vec4 cutoutAndColorResult; bool texelUnclipped; `);for(let rt=0;rt<i;++rt)_?At+=` cutoutAndColorResult = u_dayTextureCutoutRectangles[${rt}]; texelUnclipped = v_textureCoordinates.x < cutoutAndColorResult.x || cutoutAndColorResult.z < v_textureCoordinates.x || v_textureCoordinates.y < cutoutAndColorResult.y || cutoutAndColorResult.w < v_textureCoordinates.y; cutoutAndColorResult = sampleAndBlend( `:At+=` color = sampleAndBlend( `,At+=` color, u_dayTextures[${rt}], u_dayTextureUseWebMercatorT[${rt}] ? textureCoordinates.xz : textureCoordinates.xy, u_dayTextureTexCoordsRectangle[${rt}], u_dayTextureTranslationAndScale[${rt}], ${u?`u_dayTextureAlpha[${rt}]`:"1.0"}, ${f?`u_dayTextureNightAlpha[${rt}]`:"1.0"}, ${f?`u_dayTextureDayAlpha[${rt}]`:"1.0"}, ${o?`u_dayTextureBrightness[${rt}]`:"0.0"}, ${r?`u_dayTextureContrast[${rt}]`:"0.0"}, ${s?`u_dayTextureHue[${rt}]`:"0.0"}, ${a?`u_dayTextureSaturation[${rt}]`:"0.0"}, ${c?`u_dayTextureOneOverGamma[${rt}]`:"0.0"}, ${d?`u_dayTextureSplit[${rt}]`:"0.0"}, ${P?`u_colorsToAlpha[${rt}]`:"vec4(0.0)"}, nightBlend ); `,_&&(At+=` color = czm_branchFreeTernary(texelUnclipped, cutoutAndColorResult, color); `);At+=` return color; }`,ke.sources.push(At),Oe.sources.push(jat(be)),Oe.sources.push(Xat(E));let Bt=$t.fromCache({context:t.context,vertexShaderSource:Oe,fragmentShaderSource:ke,attributeLocations:W.getAttributeLocations()});Ce=we[re]=new Wat(i,re,this.material,Bt,_e,xe)}return n.surfaceShader=Ce,Ce.shaderProgram};ZX.prototype.destroy=function(){let e,t,n=this._shadersByTexturesFlags;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];if(!l(o))continue;for(e in o)o.hasOwnProperty(e)&&(t=o[e],l(t)&&t.shaderProgram.destroy())}return ue(this)};var qF=ZX;var Kat={UNLOADED:0,TRANSITIONING:1,RECEIVED:2,TEXTURE_LOADED:3,READY:4,FAILED:5,INVALID:6,PLACEHOLDER:7},ai=Object.freeze(Kat);var Zat={START:0,LOADING:1,DONE:2,FAILED:3},qs=Object.freeze(Zat);var $at={FAILED:0,UNLOADED:1,RECEIVING:2,RECEIVED:3,TRANSFORMING:4,TRANSFORMED:5,READY:6},so=Object.freeze($at);function er(){this.imagery=[],this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new oe(0,0,1,1),this.terrainData=void 0,this.vertexArray=void 0,this.tileBoundingRegion=void 0,this.occludeePointInScaledSpace=new h,this.boundingVolumeSourceTile=void 0,this.boundingVolumeIsFromMesh=!1,this.terrainState=so.UNLOADED,this.mesh=void 0,this.fill=void 0,this.pickBoundingSphere=new ae,this.surfaceShader=void 0,this.isClipped=!0,this.clippedByBoundaries=!1}Object.defineProperties(er.prototype,{eligibleForUnloading:{get:function(){let e=this.terrainState,n=!(e===so.RECEIVING||e===so.TRANSFORMING),i=this.imagery;for(let o=0,r=i.length;n&&o<r;++o){let s=i[o];n=!l(s.loadingImagery)||s.loadingImagery.state!==ai.TRANSITIONING}return n}},renderedMesh:{get:function(){if(l(this.vertexArray))return this.mesh;if(l(this.fill))return this.fill.mesh}}});var Qat=new fe;function $X(e,t,n,i,o,r){let s=e.getExaggeratedPosition(i,o,r);if(l(t)&&t!==ne.SCENE3D){let c=n.ellipsoid.cartesianToCartographic(s,Qat);s=n.project(c,r),s=h.fromElements(s.z,s.x,s.y,r)}return s}var Jat=new h,ect=new h,tct=new h;er.prototype.pick=function(e,t,n,i,o){let r=this.renderedMesh;if(!l(r))return;let s=r.vertices,a=r.indices,c=r.encoding,u=a.length,f=Number.MAX_VALUE;for(let d=0;d<u;d+=3){let p=a[d],g=a[d+1],m=a[d+2],x=$X(c,t,n,s,p,Jat),b=$X(c,t,n,s,g,ect),T=$X(c,t,n,s,m,tct),C=Qn.rayTriangleParametric(e,x,b,T,i);l(C)&&C<f&&C>=0&&(f=C)}return f!==Number.MAX_VALUE?pn.getPoint(e,f,o):void 0};er.prototype.freeResources=function(){l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0),this.terrainData=void 0,this.terrainState=so.UNLOADED,this.mesh=void 0,this.fill=this.fill&&this.fill.destroy();let e=this.imagery;for(let t=0,n=e.length;t<n;++t)e[t].freeResources();this.imagery.length=0,this.freeVertexArray()};er.prototype.freeVertexArray=function(){er._freeVertexArray(this.vertexArray),this.vertexArray=void 0,er._freeVertexArray(this.wireframeVertexArray),this.wireframeVertexArray=void 0};er.initialize=function(e,t,n){let i=e.data;l(i)||(i=e.data=new er),e.state===qs.START&&(nct(e,t,n),e.state=qs.LOADING)};er.processStateMachine=function(e,t,n,i,o,r,s){er.initialize(e,n,i);let a=e.data;if(e.state===qs.LOADING&&ict(e,t,n,i,o,r),s)return;let c=e.renderable;e.renderable=l(a.vertexArray);let u=a.terrainState===so.READY;e.upsampledFromParent=l(a.terrainData)&&a.terrainData.wasCreatedByUpsampling();let f=a.processImagery(e,n,t);if(u&&f){let d=e._loadedCallbacks,p={};for(let g in d)d.hasOwnProperty(g)&&(d[g](e)||(p[g]=d[g]));e._loadedCallbacks=p,e.state=qs.DONE}c&&(e.renderable=!0)};er.prototype.processImagery=function(e,t,n,i){let o=e.data,r=e.upsampledFromParent,s=!1,a=!0,c=o.imagery,u,f;for(u=0,f=c.length;u<f;++u){let d=c[u];if(!l(d.loadingImagery)){r=!1;continue}if(d.loadingImagery.state===ai.PLACEHOLDER){let g=d.loadingImagery.imageryLayer;if(g.ready){d.freeResources(),c.splice(u,1),g._createTileImagerySkeletons(e,t,u),--u,f=c.length;continue}else r=!1}let p=d.processStateMachine(e,n,i);a=a&&p,s=s||p||l(d.readyImagery),r=r&&l(d.loadingImagery)&&(d.loadingImagery.state===ai.FAILED||d.loadingImagery.state===ai.INVALID)}return e.upsampledFromParent=r,e.renderable=e.renderable&&(s||a),a};function o0e(e,t,n,i){let o=e.renderedMesh,r=o.vertices,s=o.encoding,a=r.length/s.stride,c=Ac.clone(s);c.hasGeodeticSurfaceNormals=t,c=Ac.clone(c);let u=c.stride,f=new Float32Array(a*u);t?s.addGeodeticSurfaceNormals(r,f,n):s.removeGeodeticSurfaceNormals(r,f),o.vertices=f,o.stride=u,o!==e.mesh?(er._freeVertexArray(e.fill.vertexArray),e.fill.vertexArray=er._createVertexArrayForMesh(i.context,o)):(er._freeVertexArray(e.vertexArray),e.vertexArray=er._createVertexArrayForMesh(i.context,o)),er._freeVertexArray(e.wireframeVertexArray),e.wireframeVertexArray=void 0}er.prototype.addGeodeticSurfaceNormals=function(e,t){o0e(this,!0,e,t)};er.prototype.removeGeodeticSurfaceNormals=function(e){o0e(this,!1,void 0,e)};er.prototype.updateExaggeration=function(e,t,n){let i=this,o=i.renderedMesh;if(o===void 0)return;let r=t.verticalExaggeration,s=t.verticalExaggerationRelativeHeight,a=r!==1,c=o.encoding,u=c.exaggeration!==r,f=c.exaggerationRelativeHeight!==s;if(u||f){if(u)if(a&&!c.hasGeodeticSurfaceNormals){let d=e.tilingScheme.ellipsoid;i.addGeodeticSurfaceNormals(d,t)}else!a&&c.hasGeodeticSurfaceNormals&&i.removeGeodeticSurfaceNormals(t);if(c.exaggeration=r,c.exaggerationRelativeHeight=s,n!==void 0){n._tileToUpdateHeights.push(e);let d=e.customData,p=d.length;for(let g=0;g<p;g++){let m=d[g];m.level=-1}}}};function nct(e,t,n){let i=t.getTileDataAvailable(e.x,e.y,e.level);if(!l(i)&&l(e.parent)){let o=e.parent,r=o.data;l(r)&&l(r.terrainData)&&(i=r.terrainData.isChildAvailable(o.x,o.y,e.x,e.y))}i===!1&&(e.data.terrainState=so.FAILED);for(let o=0,r=n.length;o<r;++o){let s=n.get(o);s.show&&s._createTileImagerySkeletons(e,t)}}function ict(e,t,n,i,o,r){let s=e.data,a=e.parent;if(s.terrainState===so.FAILED&&a!==void 0&&(a.data!==void 0&&a.data.terrainData!==void 0&&a.data.terrainData.canUpsample!==!1||er.processStateMachine(a,t,n,i,o,r,!0)),s.terrainState===so.FAILED&&oct(s,e,t,n,e.x,e.y,e.level),s.terrainState===so.UNLOADED&&rct(s,n,e.x,e.y,e.level),s.terrainState===so.RECEIVED&&act(s,t,n,e.x,e.y,e.level),s.terrainState===so.TRANSFORMED&&(cct(s,t.context,n,e.x,e.y,e.level,r),s.updateExaggeration(e,t,o)),s.terrainState>=so.RECEIVED&&s.waterMaskTexture===void 0&&n.hasWaterMask)if(s.terrainData.waterMask!==void 0)uct(t.context,s);else{let u=s._findAncestorTileWithTerrainData(e);l(u)&&l(u.data.waterMaskTexture)&&(s.waterMaskTexture=u.data.waterMaskTexture,++s.waterMaskTexture.referenceCount,s._computeWaterMaskTranslationAndScale(e,u,s.waterMaskTranslationAndScale))}}function oct(e,t,n,i,o,r,s){let a=t.parent;if(!a){t.state=qs.FAILED;return}let c=a.data.terrainData,u=a.x,f=a.y,d=a.level;if(!l(c))return;let p=c.upsample(i.tilingScheme,u,f,d,o,r,s);l(p)&&(e.terrainState=so.RECEIVING,Promise.resolve(p).then(function(g){l(g)&&(e.terrainData=g,e.terrainState=so.RECEIVED)}).catch(function(){e.terrainState=so.FAILED}))}function rct(e,t,n,i,o){function r(c){if(!l(c)){e.terrainState=so.UNLOADED,e.request=void 0;return}e.terrainData=c,e.terrainState=so.RECEIVED,e.request=void 0}function s(c){if(e.request.state===$n.CANCELLED){e.terrainData=void 0,e.terrainState=so.UNLOADED,e.request=void 0;return}e.terrainState=so.FAILED,e.request=void 0;let u=`Failed to obtain terrain tile X: ${n} Y: ${i} Level: ${o}. Error message: "${c}"`;t._requestError=vo.reportError(t._requestError,t,t.errorEvent,u,n,i,o),t._requestError.retry&&a()}function a(){let c=new qo({throttle:!1,throttleByServer:!0,type:os.TERRAIN});e.request=c;let u=t.requestTileGeometry(n,i,o,c);l(u)?(e.terrainState=so.RECEIVING,Promise.resolve(u).then(function(f){r(f)}).catch(function(f){s(f)})):(e.terrainState=so.UNLOADED,e.request=void 0)}a()}var sct={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0,throttle:!0};function act(e,t,n,i,o,r){let s=n.tilingScheme,a=sct;a.tilingScheme=s,a.x=i,a.y=o,a.level=r,a.exaggeration=t.verticalExaggeration,a.exaggerationRelativeHeight=t.verticalExaggerationRelativeHeight,a.throttle=!0;let u=e.terrainData.createMesh(a);l(u)&&(e.terrainState=so.TRANSFORMING,Promise.resolve(u).then(function(f){e.mesh=f,e.terrainState=so.TRANSFORMED}).catch(function(){e.terrainState=so.FAILED}))}er._createVertexArrayForMesh=function(e,t){let n=t.vertices,i=ct.createVertexBuffer({context:e,typedArray:n,usage:Fe.STATIC_DRAW}),o=t.encoding.getAttributes(i),r=t.indices.indexBuffers||{},s=r[e.id];if(!l(s)||s.isDestroyed()){let a=t.indices;s=ct.createIndexBuffer({context:e,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:Ne.fromSizeInBytes(a.BYTES_PER_ELEMENT)}),s.vertexArrayDestroyable=!1,s.referenceCount=1,r[e.id]=s,t.indices.indexBuffers=r}else++s.referenceCount;return new ei({context:e,attributes:o,indexBuffer:s})};er._freeVertexArray=function(e){if(l(e)){let t=e.indexBuffer;e.isDestroyed()||e.destroy(),l(t)&&!t.isDestroyed()&&l(t.referenceCount)&&(--t.referenceCount,t.referenceCount===0&&t.destroy())}};function cct(e,t,n,i,o,r,s){e.vertexArray=er._createVertexArrayForMesh(t,e.mesh),e.terrainState=so.READY,e.fill=e.fill&&e.fill.destroy(s)}function lct(e){let t=e.cache.tile_waterMaskData;if(!l(t)){let n=Dt.create({context:e,pixelFormat:nt.LUMINANCE,pixelDatatype:We.UNSIGNED_BYTE,source:{arrayBufferView:new Uint8Array([255]),width:1,height:1}});n.referenceCount=1;let i=new on({wrapS:An.CLAMP_TO_EDGE,wrapT:An.CLAMP_TO_EDGE,minificationFilter:nn.LINEAR,magnificationFilter:li.LINEAR});t={allWaterTexture:n,sampler:i,destroy:function(){this.allWaterTexture.destroy()}},e.cache.tile_waterMaskData=t}return t}function uct(e,t){let n=t.terrainData.waterMask,i=lct(e),o,r=n.length;if(r===1)if(n[0]!==0)o=i.allWaterTexture;else return;else{let s=Math.sqrt(r);o=Dt.create({context:e,pixelFormat:nt.LUMINANCE,pixelDatatype:We.UNSIGNED_BYTE,source:{width:s,height:s,arrayBufferView:n},sampler:i.sampler,flipY:!1}),o.referenceCount=0}++o.referenceCount,t.waterMaskTexture=o,oe.fromElements(0,0,1,1,t.waterMaskTranslationAndScale)}er.prototype._findAncestorTileWithTerrainData=function(e){let t=e.parent;for(;l(t)&&(!l(t.data)||!l(t.data.terrainData)||t.data.terrainData.wasCreatedByUpsampling());)t=t.parent;return t};er.prototype._computeWaterMaskTranslationAndScale=function(e,t,n){let i=t.rectangle,o=e.rectangle,r=o.width,s=o.height,a=r/i.width,c=s/i.height;return n.x=a*(o.west-i.west)/r,n.y=c*(o.south-i.south)/s,n.z=a,n.w=c,n};var sd=er;var fct="AAPKe2b57a40e4744c2e8595243dbdd7b2behCc4fIPuxORpch9ruOmWtyu3tsIxneD_O-1J2i9KAogQnE7_9Nl5gDhPJsKXsmqp",QX,dct="AAPKe5e6f1571ad74096bfacbdf289c5cdb687BUrehhWYnNo9tN4coC66_qhHDNruh3ygZV90buspkWdOqZUq6tb0kCb_dms9Ir",XS={};XS.defaultAccessToken=fct;XS.defaultWorldImageryServer=new De({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"});XS.defaultWorldHillshadeServer=new De({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer"});XS.defaultWorldOceanServer=new De({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer"});XS.getDefaultTokenCredit=function(e){if(e===dct){if(!l(QX)){let t='<b> This application is using a default ArcGIS access token. Please assign <i>Cesium.ArcGisMapService.defaultAccessToken</i> with an API key from your ArcGIS Developer account before using the ArcGIS tile services. You can sign up for a free ArcGIS Developer account at <a href="https://developers.arcgis.com/">https://developers.arcgis.com/</a>.</b>';QX=new Tt(t,!0)}return QX}};var Xu=XS;function JX(e){e=y(e,y.EMPTY_OBJECT),this._pixelsToCheck=e.pixelsToCheck,this._missingImagePixels=void 0,this._missingImageByteLength=void 0,this._isReady=!1;let t=De.createIfNeeded(e.missingImageUrl),n=this;function i(r){l(r.blob)&&(n._missingImageByteLength=r.blob.size);let s=bd(r);if(e.disableCheckIfAllPixelsAreTransparent){let a=!0,c=r.width,u=e.pixelsToCheck;for(let f=0,d=u.length;a&&f<d;++f){let p=u[f],g=p.x*4+p.y*c;s[g+3]>0&&(a=!1)}a&&(s=void 0)}n._missingImagePixels=s,n._isReady=!0}function o(){n._missingImagePixels=void 0,n._isReady=!0}t.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}).then(i).catch(o)}JX.prototype.isReady=function(){return this._isReady};JX.prototype.shouldDiscardImage=function(e){let t=this._pixelsToCheck,n=this._missingImagePixels;if(!l(n)||l(e.blob)&&e.blob.size!==this._missingImageByteLength)return!1;let i=bd(e),o=e.width;for(let r=0,s=t.length;r<s;++r){let a=t[r],c=a.x*4+a.y*o;for(let u=0;u<4;++u){let f=c+u;if(i[f]!==n[f])return!1}}return!0};var YF=JX;function eK(){this.name=void 0,this.description=void 0,this.position=void 0,this.data=void 0,this.imageryLayer=void 0}eK.prototype.configureNameFromProperties=function(e){let t=10,n;for(let i in e)if(e.hasOwnProperty(i)&&e[i]){let o=i.toLowerCase();t>1&&o==="name"?(t=1,n=i):t>2&&o==="title"?(t=2,n=i):t>3&&/name/i.test(i)?(t=3,n=i):t>4&&/title/i.test(i)&&(t=4,n=i)}l(n)&&(this.name=e[n])};eK.prototype.configureDescriptionFromProperties=function(e){function t(n){let i='<table class="cesium-infoBox-defaultTable">';for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];l(r)&&(typeof r=="object"?i+=`<tr><td>${o}</td><td>${t(r)}</td></tr>`:i+=`<tr><td>${o}</td><td>${r}</td></tr>`)}return i+="</table>",i}this.description=t(e)};var Rh=eK;function KS(){de.throwInstantiationError()}Object.defineProperties(KS.prototype,{rectangle:{get:de.throwInstantiationError},tileWidth:{get:de.throwInstantiationError},tileHeight:{get:de.throwInstantiationError},maximumLevel:{get:de.throwInstantiationError},minimumLevel:{get:de.throwInstantiationError},tilingScheme:{get:de.throwInstantiationError},tileDiscardPolicy:{get:de.throwInstantiationError},errorEvent:{get:de.throwInstantiationError},credit:{get:de.throwInstantiationError},proxy:{get:de.throwInstantiationError},hasAlphaChannel:{get:de.throwInstantiationError}});KS.prototype.getTileCredits=function(e,t,n){de.throwInstantiationError()};KS.prototype.requestImage=function(e,t,n,i){de.throwInstantiationError()};KS.prototype.pickFeatures=function(e,t,n,i,o){de.throwInstantiationError()};var hct=/\.ktx2$/i;KS.loadImage=function(e,t){let n=De.createIfNeeded(t);return hct.test(n.url)?Cl(n):l(e)&&l(e.tileDiscardPolicy)?n.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}):n.fetchImage({preferImageBitmap:!0,flipY:!0})};var fl=KS;var mct={SATELLITE:1,OCEANS:2,HILLSHADE:3},Oh=Object.freeze(mct);function r0e(e){this.useTiles=y(e.usePreCachedTilesIfAvailable,!0);let t=e.ellipsoid;this.tilingScheme=y(e.tilingScheme,new Ui({ellipsoid:t})),this.rectangle=y(e.rectangle,this.tilingScheme.rectangle),this.ellipsoid=t;let n=e.credit;typeof n=="string"&&(n=new Tt(n)),this.credit=n,this.tileCredits=void 0,this.tileDiscardPolicy=e.tileDiscardPolicy,this.tileWidth=y(e.tileWidth,256),this.tileHeight=y(e.tileHeight,256),this.maximumLevel=e.maximumLevel}r0e.prototype.build=function(e){e._useTiles=this.useTiles,e._tilingScheme=this.tilingScheme,e._rectangle=this.rectangle,e._credit=this.credit,e._tileCredits=this.tileCredits,e._tileDiscardPolicy=this.tileDiscardPolicy,e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,this.useTiles&&!l(this.tileDiscardPolicy)&&(e._tileDiscardPolicy=new YF({missingImageUrl:s0e(e,0,0,this.maximumLevel).url,pixelsToCheck:[new z(0,0),new z(200,20),new z(20,200),new z(80,110),new z(160,130)],disableCheckIfAllPixelsAreTransparent:!0}))};function pct(e,t){let n=e.tileInfo;if(!l(n))t.useTiles=!1;else{if(t.tileWidth=n.rows,t.tileHeight=n.cols,n.spatialReference.wkid===102100||n.spatialReference.wkid===102113)t.tilingScheme=new Zr({ellipsoid:t.ellipsoid});else if(e.tileInfo.spatialReference.wkid===4326)t.tilingScheme=new Ui({ellipsoid:t.ellipsoid});else{let i=`Tile spatial reference WKID ${e.tileInfo.spatialReference.wkid} is not supported.`;throw new le(i)}if(t.maximumLevel=e.tileInfo.lods.length-1,l(e.fullExtent)){if(l(e.fullExtent.spatialReference)&&l(e.fullExtent.spatialReference.wkid))if(e.fullExtent.spatialReference.wkid===102100||e.fullExtent.spatialReference.wkid===102113){let i=new Si,o=e.fullExtent,r=i.unproject(new h(Math.max(o.xmin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.max(o.ymin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0)),s=i.unproject(new h(Math.min(o.xmax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.min(o.ymax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0));t.rectangle=new se(r.longitude,r.latitude,s.longitude,s.latitude)}else if(e.fullExtent.spatialReference.wkid===4326)t.rectangle=se.fromDegrees(e.fullExtent.xmin,e.fullExtent.ymin,e.fullExtent.xmax,e.fullExtent.ymax);else{let i=`fullExtent.spatialReference WKID ${e.fullExtent.spatialReference.wkid} is not supported.`;throw new le(i)}}else t.rectangle=t.tilingScheme.rectangle;t.useTiles=!0}l(e.copyrightText)&&e.copyrightText.length>0&&(l(t.credit)?t.tileCredits=[new Tt(e.copyrightText)]:t.credit=new Tt(e.copyrightText))}function _ct(e,t){let n=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(n+=`: ${t.message}`),new le(n)}async function gct(e,t){let n=e.getDerivedResource({queryParameters:{f:"json"}});try{let i=await n.fetchJson();pct(i,t)}catch(i){_ct(e,i)}}function Km(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new Ui({ellipsoid:e.ellipsoid})),this._useTiles=y(e.usePreCachedTilesIfAvailable,!0),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._layers=e.layers,this._credit=e.credit,this._tileCredits=void 0;let t=e.credit;typeof t=="string"&&(t=new Tt(t)),this.enablePickFeatures=y(e.enablePickFeatures,!0),this._errorEvent=new pe}Km.fromBasemapType=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n,i,o;switch(e){case Oh.SATELLITE:{n=y(t.token,Xu.defaultAccessToken),i=De.createIfNeeded(Xu.defaultWorldImageryServer),i.appendForwardSlash();let r=Xu.getDefaultTokenCredit(n);l(r)&&(o=Tt.clone(r))}break;case Oh.OCEANS:{n=y(t.token,Xu.defaultAccessToken),i=De.createIfNeeded(Xu.defaultWorldOceanServer),i.appendForwardSlash();let r=Xu.getDefaultTokenCredit(n);l(r)&&(o=Tt.clone(r))}break;case Oh.HILLSHADE:{n=y(t.token,Xu.defaultAccessToken),i=De.createIfNeeded(Xu.defaultWorldHillshadeServer),i.appendForwardSlash();let r=Xu.getDefaultTokenCredit(n);l(r)&&(o=Tt.clone(r))}break;default:}return Km.fromUrl(i,{...t,token:n,credit:o,usePreCachedTilesIfAvailable:!0})};function s0e(e,t,n,i,o){let r;if(e._useTiles)r=e._resource.getDerivedResource({url:`tile/${i}/${n}/${t}`,request:o});else{let s=e._tilingScheme.tileXYToNativeRectangle(t,n,i),c={bbox:`${s.west},${s.south},${s.east},${s.north}`,size:`${e._tileWidth},${e._tileHeight}`,format:"png32",transparent:!0,f:"image"};e._tilingScheme.projection instanceof Ci?(c.bboxSR=4326,c.imageSR=4326):(c.bboxSR=3857,c.imageSR=3857),e.layers&&(c.layers=`show:${e.layers}`),r=e._resource.getDerivedResource({url:"export",request:o,queryParameters:c})}return r}Object.defineProperties(Km.prototype,{url:{get:function(){return this._resource._url}},token:{get:function(){return this._resource.queryParameters.token}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},usingPrecachedTiles:{get:function(){return this._useTiles}},hasAlphaChannel:{get:function(){return!0}},layers:{get:function(){return this._layers}}});Km.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=De.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&n.setQueryParameters({token:t.token});let i=new Km(t);i._resource=n;let o=new r0e(t);return y(t.usePreCachedTilesIfAvailable,!0)&&await gct(n,o),o.build(i),i};Km.prototype.getTileCredits=function(e,t,n){return this._tileCredits};Km.prototype.requestImage=function(e,t,n,i){return fl.loadImage(this,s0e(this,e,t,n,i))};Km.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures)return;let r=this._tilingScheme.tileXYToNativeRectangle(e,t,n),s,a,c;if(this._tilingScheme.projection instanceof Ci)s=R.toDegrees(i),a=R.toDegrees(o),c="4326";else{let p=this._tilingScheme.projection.project(new fe(i,o,0));s=p.x,a=p.y,c="3857"}let u="visible";l(this._layers)&&(u+=`:${this._layers}`);let f={f:"json",tolerance:2,geometryType:"esriGeometryPoint",geometry:`${s},${a}`,mapExtent:`${r.west},${r.south},${r.east},${r.north}`,imageDisplay:`${this._tileWidth},${this._tileHeight},96`,sr:c,layers:u};return this._resource.getDerivedResource({url:"identify",queryParameters:f}).fetchJson().then(function(p){let g=[],m=p.results;if(!l(m))return g;for(let x=0;x<m.length;++x){let b=m[x],T=new Rh;if(T.data=b,T.name=b.value,T.properties=b.attributes,T.configureDescriptionFromProperties(b.attributes),b.geometryType==="esriGeometryPoint"&&b.geometry){let C=b.geometry.spatialReference&&b.geometry.spatialReference.wkid?b.geometry.spatialReference.wkid:4326;if(C===4326||C===4283)T.position=fe.fromDegrees(b.geometry.x,b.geometry.y,b.geometry.z);else if(C===102100||C===900913||C===3857){let A=new Si;T.position=A.unproject(new h(b.geometry.x,b.geometry.y,b.geometry.z))}}g.push(T)}return g})};Km._metadataCache={};var ng=Km;var yct={AERIAL:"Aerial",AERIAL_WITH_LABELS:"AerialWithLabels",AERIAL_WITH_LABELS_ON_DEMAND:"AerialWithLabelsOnDemand",ROAD:"Road",ROAD_ON_DEMAND:"RoadOnDemand",CANVAS_DARK:"CanvasDark",CANVAS_LIGHT:"CanvasLight",CANVAS_GRAY:"CanvasGray",ORDNANCE_SURVEY:"OrdnanceSurvey",COLLINS_BART:"CollinsBart"},ZS=Object.freeze(yct);function XF(e){}XF.prototype.isReady=function(){return!0};XF.prototype.shouldDiscardImage=function(e){return XF.EMPTY_IMAGE===e};var W8;Object.defineProperties(XF,{EMPTY_IMAGE:{get:function(){return l(W8)||(W8=new Image,W8.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),W8}}});var $S=XF;function a0e(e){this.tileWidth=void 0,this.tileHeight=void 0,this.maximumLevel=void 0,this.imageUrlSubdomains=void 0,this.imageUrlTemplate=void 0,this.attributionList=void 0}a0e.prototype.build=function(e){e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,e._imageUrlSubdomains=this.imageUrlSubdomains,e._imageUrlTemplate=this.imageUrlTemplate;let t=e._attributionList=this.attributionList;t||(t=[]),e._attributionList=t;for(let n=0,i=t.length;n<i;++n){let o=t[n];if(o.credit instanceof Tt)break;o.credit=new Tt(o.attribution);let r=o.coverageAreas;for(let s=0,a=o.coverageAreas.length;s<a;++s){let c=r[s],u=c.bbox;c.bbox=new se(R.toRadians(u[1]),R.toRadians(u[0]),R.toRadians(u[3]),R.toRadians(u[2]))}}};function xct(e,t){if(e.resourceSets.length!==1)throw new le("metadata does not specify one resource in resourceSets");let n=e.resourceSets[0].resources[0];t.tileWidth=n.imageWidth,t.tileHeight=n.imageHeight,t.maximumLevel=n.zoomMax-1,t.imageUrlSubdomains=n.imageUrlSubdomains,t.imageUrlTemplate=n.imageUrl,t.attributionList=n.imageryProviders}function bct(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i+=`: ${t.message}`),vo.reportError(void 0,n,l(n)?n._errorEvent:void 0,i,void 0,void 0,void 0,t),new le(i)}async function Tct(e,t,n){let i=e.url,o=vs._metadataCache[i];l(o)||(o=e.fetchJsonp("jsonp"),vs._metadataCache[i]=o);try{let r=await o;return xct(r,t)}catch(r){bct(e,r,n)}}function vs(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._mapStyle=y(e.mapStyle,ZS.AERIAL),this._mapLayer=e.mapLayer,this._culture=y(e.culture,""),this._key=e.key,this._tileDiscardPolicy=e.tileDiscardPolicy,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new $S),this._proxy=e.proxy,this._credit=new Tt(`<a href="https://www.microsoft.com/en-us/maps/product/enduserterms"><img src="${vs.logoUrl}" title="Bing Imagery"/></a>`),this._tilingScheme=new Zr({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:e.ellipsoid}),this._tileWidth=void 0,this._tileHeight=void 0,this._maximumLevel=void 0,this._imageUrlTemplate=void 0,this._imageUrlSubdomains=void 0,this._attributionList=void 0,this._errorEvent=new pe}Object.defineProperties(vs.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},key:{get:function(){return this._key}},mapStyle:{get:function(){return this._mapStyle}},mapLayer:{get:function(){return this._mapLayer}},culture:{get:function(){return this._culture}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return l(this.mapLayer)}}});vs.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.tileProtocol;l(n)?n.length>0&&n[n.length-1]===":"&&(n=n.substr(0,n.length-1)):n=document.location.protocol==="http:"?"http":"https";let i=y(t.mapStyle,ZS.AERIAL),o=De.createIfNeeded(e);o.appendForwardSlash();let r={incl:"ImageryProviders",key:t.key,uriScheme:n};l(t.mapLayer)&&(r.mapLayer=t.mapLayer),l(t.culture)&&(r.culture=t.culture);let s=o.getDerivedResource({url:`REST/v1/Imagery/Metadata/${i}`,queryParameters:r}),a=new vs(t);a._resource=o;let c=new a0e(t);return await Tct(s,c),c.build(a),a};var Act=new se;vs.prototype.getTileCredits=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(e,t,n,Act);return Sct(this._attributionList,n,i)};vs.prototype.requestImage=function(e,t,n,i){let o=fl.loadImage(this,Cct(this,e,t,n,i));if(l(o))return o.catch(function(r){return l(r.blob)&&r.blob.size===0?$S.EMPTY_IMAGE:Promise.reject(r)})};vs.prototype.pickFeatures=function(e,t,n,i,o){};vs.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;e&r&&(s|=1),t&r&&(s|=2),i+=s}return i};vs.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let o=i;o>=0;--o){let r=1<<o,s=+e[i-o];s&1&&(t|=r),s&2&&(n|=r)}return{x:t,y:n,level:i}};vs._logoUrl=void 0;Object.defineProperties(vs,{logoUrl:{get:function(){return l(vs._logoUrl)||(vs._logoUrl=en("Assets/Images/bing_maps_credit.png")),vs._logoUrl},set:function(e){vs._logoUrl=e}}});function Cct(e,t,n,i,o){let r=e._imageUrlTemplate,s=e._imageUrlSubdomains,a=(t+n+i)%s.length;return e._resource.getDerivedResource({url:r,request:o,templateValues:{quadkey:vs.tileXYToQuadKey(t,n,i),subdomain:s[a],culture:e._culture},queryParameters:{n:"z"}})}var Ect=new se;function Sct(e,t,n){++t;let i=[];for(let o=0,r=e.length;o<r;++o){let s=e[o],a=s.coverageAreas,c=!1;for(let u=0,f=s.coverageAreas.length;!c&&u<f;++u){let d=a[u];if(t>=d.zoomMin&&t<=d.zoomMax){let p=se.intersection(n,d.bbox,Ect);l(p)&&(c=!0)}}c&&i.push(s.credit)}return i}vs._metadataCache={};var KF=vs;var c0e=/{[^}]+}/g,l0e={x:Pct,y:Rct,z:Lct,s:Nct,reverseX:Ict,reverseY:Oct,reverseZ:Mct,westDegrees:Fct,southDegrees:Bct,eastDegrees:kct,northDegrees:Vct,westProjected:Uct,southProjected:zct,eastProjected:Hct,northProjected:Gct,width:Wct,height:jct},vct=_t(l0e,{i:qct,j:Yct,reverseI:Xct,reverseJ:Kct,longitudeDegrees:$ct,latitudeDegrees:Qct,longitudeProjected:Jct,latitudeProjected:elt,format:nlt});function ZF(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new pe;let t=De.createIfNeeded(e.url),n=De.createIfNeeded(e.pickFeaturesUrl);this._resource=t,this._urlSchemeZeroPadding=e.urlSchemeZeroPadding,this._getFeatureInfoFormats=e.getFeatureInfoFormats,this._pickFeaturesResource=n;let i=e.subdomains;Array.isArray(i)?i=i.slice():l(i)&&i.length>0?i=i.split(""):i=["a","b","c"],this._subdomains=i,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new Zr({ellipsoid:e.ellipsoid})),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._rectangle=se.intersection(this._rectangle,this._tilingScheme.rectangle),this._tileDiscardPolicy=e.tileDiscardPolicy;let o=e.credit;typeof o=="string"&&(o=new Tt(o)),this._credit=o,this._hasAlphaChannel=y(e.hasAlphaChannel,!0);let r=e.customTags,s=_t(l0e,r),a=_t(vct,r);this._tags=s,this._pickFeaturesTags=a,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this.enablePickFeatures=y(e.enablePickFeatures,!0)}Object.defineProperties(ZF.prototype,{url:{get:function(){return this._resource.url}},urlSchemeZeroPadding:{get:function(){return this._urlSchemeZeroPadding}},pickFeaturesUrl:{get:function(){return this._pickFeaturesResource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return this._hasAlphaChannel}}});ZF.prototype.getTileCredits=function(e,t,n){};ZF.prototype.requestImage=function(e,t,n,i){return fl.loadImage(this,wct(this,e,t,n,i))};ZF.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures||!l(this._pickFeaturesResource)||this._getFeatureInfoFormats.length===0)return;let r=0,s=this;function a(u,f){return u.callback(f)}function c(){if(r>=s._getFeatureInfoFormats.length)return Promise.resolve([]);let u=s._getFeatureInfoFormats[r],f=Dct(s,e,t,n,i,o,u.format);return++r,u.type==="json"?f.fetchJson().then(u.callback).catch(c):u.type==="xml"?f.fetchXML().then(u.callback).catch(c):u.type==="text"||u.type==="html"?f.fetchText().then(u.callback).catch(c):f.fetch({responseType:u.format}).then(a.bind(void 0,u)).catch(c)}return c()};var j8=!1,Ku=new se,q8=!1,$F=new se;function wct(e,t,n,i,o){j8=!1,q8=!1;let r=e._resource,s=r.getUrlComponent(!0),a=e._tags,c={},u=s.match(c0e);return l(u)&&u.forEach(function(f){let d=f.substring(1,f.length-1);l(a[d])&&(c[d]=a[d](e,t,n,i))}),r.getDerivedResource({request:o,templateValues:c})}var tK=!1,JS=new z,nK=!1;function Dct(e,t,n,i,o,r,s){j8=!1,q8=!1,tK=!1,nK=!1;let a=e._pickFeaturesResource,c=a.getUrlComponent(!0),u=e._pickFeaturesTags,f={},d=c.match(c0e);return l(d)&&d.forEach(function(p){let g=p.substring(1,p.length-1);l(u[g])&&(f[g]=u[g](e,t,n,i,o,r,s))}),a.getDerivedResource({templateValues:f})}function ev(e,t,n){if(e&&e.urlSchemeZeroPadding&&e.urlSchemeZeroPadding.hasOwnProperty(t)){let i=e.urlSchemeZeroPadding[t];if(typeof i=="string"){let o=i.length;o>1&&(n=n.length>=o?n:new Array(o-n.toString().length+1).join("0")+n)}}return n}function Pct(e,t,n,i){return ev(e,"{x}",t)}function Ict(e,t,n,i){let o=e.tilingScheme.getNumberOfXTilesAtLevel(i)-t-1;return ev(e,"{reverseX}",o)}function Rct(e,t,n,i){return ev(e,"{y}",n)}function Oct(e,t,n,i){let o=e.tilingScheme.getNumberOfYTilesAtLevel(i)-n-1;return ev(e,"{reverseY}",o)}function Mct(e,t,n,i){let o=e.maximumLevel,r=l(o)&&i<o?o-i-1:i;return ev(e,"{reverseZ}",r)}function Lct(e,t,n,i){return ev(e,"{z}",i)}function Nct(e,t,n,i){let o=(t+n+i)%e._subdomains.length;return e._subdomains[o]}function Y8(e,t,n,i){j8||(e.tilingScheme.tileXYToRectangle(t,n,i,Ku),Ku.west=R.toDegrees(Ku.west),Ku.south=R.toDegrees(Ku.south),Ku.east=R.toDegrees(Ku.east),Ku.north=R.toDegrees(Ku.north),j8=!0)}function Fct(e,t,n,i){return Y8(e,t,n,i),Ku.west}function Bct(e,t,n,i){return Y8(e,t,n,i),Ku.south}function kct(e,t,n,i){return Y8(e,t,n,i),Ku.east}function Vct(e,t,n,i){return Y8(e,t,n,i),Ku.north}function X8(e,t,n,i){q8||(e.tilingScheme.tileXYToNativeRectangle(t,n,i,$F),q8=!0)}function Uct(e,t,n,i){return X8(e,t,n,i),$F.west}function zct(e,t,n,i){return X8(e,t,n,i),$F.south}function Hct(e,t,n,i){return X8(e,t,n,i),$F.east}function Gct(e,t,n,i){return X8(e,t,n,i),$F.north}function Wct(e,t,n,i){return e.tileWidth}function jct(e,t,n,i){return e.tileHeight}function qct(e,t,n,i,o,r,s){return K8(e,t,n,i,o,r),JS.x}function Yct(e,t,n,i,o,r,s){return K8(e,t,n,i,o,r),JS.y}function Xct(e,t,n,i,o,r,s){return K8(e,t,n,i,o,r),e.tileWidth-JS.x-1}function Kct(e,t,n,i,o,r,s){return K8(e,t,n,i,o,r),e.tileHeight-JS.y-1}var Zct=new se,QS=new h;function K8(e,t,n,i,o,r,s){if(tK)return;iK(e,t,n,i,o,r);let a=QS,c=e.tilingScheme.tileXYToNativeRectangle(t,n,i,Zct);JS.x=e.tileWidth*(a.x-c.west)/c.width|0,JS.y=e.tileHeight*(c.north-a.y)/c.height|0,tK=!0}function $ct(e,t,n,i,o,r,s){return R.toDegrees(o)}function Qct(e,t,n,i,o,r,s){return R.toDegrees(r)}function Jct(e,t,n,i,o,r,s){return iK(e,t,n,i,o,r),QS.x}function elt(e,t,n,i,o,r,s){return iK(e,t,n,i,o,r),QS.y}var tlt=new fe;function iK(e,t,n,i,o,r,s){if(!nK){if(e.tilingScheme.projection instanceof Ci)QS.x=R.toDegrees(o),QS.y=R.toDegrees(r);else{let a=tlt;a.longitude=o,a.latitude=r,e.tilingScheme.projection.project(a,QS)}nK=!0}}function nlt(e,t,n,i,o,r,s){return s}var Ba=ZF;function ad(e){Ba.call(this,e)}ad._requestMetadata=async function(e,t,n,i){try{let o=await n.fetchXML();return ad._metadataSuccess(o,e,t,n,i)}catch(o){if(o instanceof Yh)return ad._metadataFailure(e,t);throw o}};ad.fromUrl=async function(e,t){let n=De.createIfNeeded(e);n.appendForwardSlash();let i=n,o=n.getDerivedResource({url:"tilemapresource.xml"});t=y(t,y.EMPTY_OBJECT);let r=await ad._requestMetadata(t,i,o);return new ad(r)};l(Object.create)&&(ad.prototype=Object.create(Ba.prototype),ad.prototype.constructor=ad);function u0e(e,t){return e.west<t.rectangle.west&&(e.west=t.rectangle.west),e.east>t.rectangle.east&&(e.east=t.rectangle.east),e.south<t.rectangle.south&&(e.south=t.rectangle.south),e.north>t.rectangle.north&&(e.north=t.rectangle.north),e}function f0e(e,t,n){let i=e.positionToTileXY(se.southwest(t),n),o=e.positionToTileXY(se.northeast(t),n);return(Math.abs(o.x-i.x)+1)*(Math.abs(o.y-i.y)+1)>4?0:n}ad._metadataSuccess=function(e,t,n,i,o){let r=/tileformat/i,s=/tileset/i,a=/tilesets/i,c=/boundingbox/i,u,f,d,p=[],g=e.childNodes[0].childNodes;for(let I=0;I<g.length;I++)if(r.test(g.item(I).nodeName))u=g.item(I);else if(a.test(g.item(I).nodeName)){d=g.item(I);let L=g.item(I).childNodes;for(let N=0;N<L.length;N++)s.test(L.item(N).nodeName)&&p.push(L.item(N))}else c.test(g.item(I).nodeName)&&(f=g.item(I));let m;if(!l(d)||!l(f))throw m=`Unable to find expected tilesets or bbox attributes in ${i.url}.`,l(o)&&vo.reportError(void 0,o,o.errorEvent,m),new le(m);let x=y(t.fileExtension,u.getAttribute("extension")),b=y(t.tileWidth,parseInt(u.getAttribute("width"),10)),T=y(t.tileHeight,parseInt(u.getAttribute("height"),10)),C=y(t.minimumLevel,parseInt(p[0].getAttribute("order"),10)),A=y(t.maximumLevel,parseInt(p[p.length-1].getAttribute("order"),10)),E=d.getAttribute("profile"),v=t.tilingScheme;if(!l(v))if(E==="geodetic"||E==="global-geodetic")v=new Ui({ellipsoid:t.ellipsoid});else if(E==="mercator"||E==="global-mercator")v=new Zr({ellipsoid:t.ellipsoid});else throw m=`${i.url} specifies an unsupported profile attribute, ${E}.`,l(o)&&vo.reportError(void 0,o,o.errorEvent,m),new le(m);let D=se.clone(t.rectangle);if(!l(D)){let I,L,N,_;y(t.flipXY,!1)?(N=new z(parseFloat(f.getAttribute("miny")),parseFloat(f.getAttribute("minx"))),_=new z(parseFloat(f.getAttribute("maxy")),parseFloat(f.getAttribute("maxx")))):(N=new z(parseFloat(f.getAttribute("minx")),parseFloat(f.getAttribute("miny"))),_=new z(parseFloat(f.getAttribute("maxx")),parseFloat(f.getAttribute("maxy"))));let w=E==="geodetic"||E==="mercator";if(v.projection instanceof Ci||w)I=fe.fromDegrees(N.x,N.y),L=fe.fromDegrees(_.x,_.y);else{let P=v.projection;I=P.unproject(N),L=P.unproject(_)}D=new se(I.longitude,I.latitude,L.longitude,L.latitude)}return D=u0e(D,v),C=f0e(v,D,C),{url:n.getDerivedResource({url:`{z}/{x}/{reverseY}.${x}`}),tilingScheme:v,rectangle:D,tileWidth:b,tileHeight:T,minimumLevel:C,maximumLevel:A,tileDiscardPolicy:t.tileDiscardPolicy,credit:t.credit}};ad._metadataFailure=function(e,t){let n=y(e.fileExtension,"png"),i=y(e.tileWidth,256),o=y(e.tileHeight,256),r=e.maximumLevel,s=l(e.tilingScheme)?e.tilingScheme:new Zr({ellipsoid:e.ellipsoid}),a=y(e.rectangle,s.rectangle);a=u0e(a,s);let c=f0e(s,a,e.minimumLevel);return{url:t.getDerivedResource({url:`{z}/{x}/{reverseY}.${n}`}),tilingScheme:s,rectangle:a,tileWidth:i,tileHeight:o,minimumLevel:c,maximumLevel:r,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit}};var v0=ad;function d0e(e){this.channel=e.channel,this.ellipsoid=e.ellipsoid,this.tilingScheme=void 0,this.version=void 0}d0e.prototype.build=function(e){e._channel=this.channel,e._version=this.version,e._tilingScheme=this.tilingScheme};function ilt(e,t){let n;try{n=JSON.parse(e)}catch{n=JSON.parse(e.replace(/([\[\{,])[\n\r ]*([A-Za-z0-9]+)[\n\r ]*:/g,'$1"$2":'))}let i;for(let o=0;o<n.layers.length;o++)if(n.layers[o].id===t.channel){i=n.layers[o];break}if(!l(i)){let o=`Could not find layer with channel (id) of ${t.channel}.`;throw new le(o)}if(!l(i.version)){let o=`Could not find a version in channel (id) ${t.channel}.`;throw new le(o)}if(t.version=i.version,l(n.projection)&&n.projection==="flat")t.tilingScheme=new Ui({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new se(-Math.PI,-Math.PI,Math.PI,Math.PI),ellipsoid:t.ellipsoid});else if(!l(n.projection)||n.projection==="mercator")t.tilingScheme=new Zr({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:t.ellipsoid});else{let o=`Unsupported projection ${n.projection}.`;throw new le(o)}return!0}function olt(e,t,n){let i=`An error occurred while accessing ${t.url}.`;throw l(e)&&l(e.message)&&(i+=`: ${e.message}`),vo.reportError(void 0,n,l(n)?n._errorEvent:void 0,i),new le(i)}async function rlt(e,t,n){try{let i=await e.fetchText();ilt(i,t)}catch(i){olt(i,e,n)}}function eu(e){e=y(e,{}),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1.9,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._channel=e.channel,this._requestType="ImageryMaps",this._credit=new Tt(`<a href="http://www.google.com/enterprise/mapsearth/products/earthenterprise.html"><img src="${eu.logoUrl}" title="Google Imagery"/></a>`),this._tilingScheme=void 0,this._version=void 0,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=e.maximumLevel,this._errorEvent=new pe}Object.defineProperties(eu.prototype,{url:{get:function(){return this._url}},path:{get:function(){return this._path}},proxy:{get:function(){return this._resource.proxy}},channel:{get:function(){return this._channel}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},version:{get:function(){return this._version}},requestType:{get:function(){return this._requestType}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});eu.fromUrl=async function(e,t,n){n=y(n,{});let i=y(n.path,"/default_map"),o=De.createIfNeeded(e).getDerivedResource({url:i[0]==="/"?i.substring(1):i});o.appendForwardSlash();let r=o.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),s=new d0e(n);s.channel=t,await rlt(r,s);let a=new eu(n);return s.build(a),a._resource=o,a._url=e,a._path=i,a};eu.prototype.getTileCredits=function(e,t,n){};eu.prototype.requestImage=function(e,t,n,i){let o=this._resource.getDerivedResource({url:"query",request:i,queryParameters:{request:this._requestType,channel:this._channel,version:this._version,x:e,y:t,z:n+1}});return fl.loadImage(this,o)};eu.prototype.pickFeatures=function(e,t,n,i,o){};eu._logoUrl=void 0;Object.defineProperties(eu,{logoUrl:{get:function(){return l(eu._logoUrl)||(eu._logoUrl=en("Assets/Images/google_earth_credit.png")),eu._logoUrl},set:function(e){eu._logoUrl=e}}});var QF=eu;var slt=/\/$/,h0e=new Tt('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function tv(e){e=y(e,y.EMPTY_OBJECT);let t=e.mapId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=De.createIfNeeded(y(e.url,"https://{s}.tiles.mapbox.com/v4/"));this._mapId=t,this._accessToken=n;let o=y(e.format,"png");/\./.test(o)||(o=`.${o}`),this._format=o;let r=i.getUrlComponent();slt.test(r)||(r+="/"),r+=`${t}/{z}/{x}/{y}${this._format}`,i.url=r,i.setQueryParameters({access_token:n});let s;l(e.credit)?(s=e.credit,typeof s=="string"&&(s=new Tt(s))):s=h0e,this._resource=i,this._imageryProvider=new Ba({url:i,credit:s,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(tv.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});tv.prototype.getTileCredits=function(e,t,n){};tv.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};tv.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};tv._defaultCredit=h0e;var JF=tv;function kT(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=y(e.rectangle,se.MAX_VALUE),n=new Ui({rectangle:t,numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});this._tilingScheme=n,this._image=void 0,this._texture=void 0,this._hasError=!1,this._errorEvent=new pe;let i=e.credit;typeof i=="string"&&(i=new Tt(i)),this._credit=i;let o=De.createIfNeeded(e.url);this._resource=o,this._tileWidth=e.tileWidth,this._tileHeight=e.tileHeight}Object.defineProperties(kT.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return 0}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});function alt(e,t,n,i){let o=`Failed to load image ${e.url}`;l(t)&&l(t.message)&&(o+=`: ${t.message}`);let r=vo.reportError(i,n,l(n)?n._errorEvent:void 0,o,0,0,0,t);if(r.retry)return oK(e,n,r);throw l(n)&&(n._hasError=!0),new le(o)}async function oK(e,t,n){try{return await fl.loadImage(null,e)}catch(i){return alt(e,i,t,n)}}kT.fromUrl=async function(e,t){let n=De.createIfNeeded(e),i=await oK(n);t=y(t,y.EMPTY_OBJECT);let o=new kT({...t,url:e,tileWidth:i.width,tileHeight:i.height});return o._image=i,o};kT.prototype.getTileCredits=function(e,t,n){};kT.prototype.requestImage=async function(e,t,n,i){if(!this._hasError&&!l(this._image)){let o=await oK(this._resource,this);return this._image=o,vo.reportSuccess(this._errorEvent),o}return this._image};kT.prototype.pickFeatures=function(e,t,n,i,o){};var e2=kT;function clt(e,t,n){this.type=e,l(t)||(e==="json"?t="application/json":e==="xml"?t="text/xml":e==="html"?t="text/html":e==="text"&&(t="text/plain")),this.format=t,l(n)||(e==="json"?n=llt:e==="xml"?n=hlt:(e==="html"||e==="text")&&(n=m0e)),this.callback=n}function llt(e){let t=[],n=e.features;for(let i=0;i<n.length;++i){let o=n[i],r=new Rh;if(r.data=o,r.properties=o.properties,r.configureNameFromProperties(o.properties),r.configureDescriptionFromProperties(o.properties),l(o.geometry)&&o.geometry.type==="Point"){let s=o.geometry.coordinates[0],a=o.geometry.coordinates[1];r.position=fe.fromDegrees(s,a)}t.push(r)}return t}var rK="http://www.mapinfo.com/mxp",ult="http://www.esri.com/wms",flt="http://www.opengis.net/wfs",dlt="http://www.opengis.net/gml";function hlt(e){let t=e.documentElement;if(t.localName==="MultiFeatureCollection"&&t.namespaceURI===rK)return mlt(e);if(t.localName==="FeatureInfoResponse"&&t.namespaceURI===ult)return plt(e);if(t.localName==="FeatureCollection"&&t.namespaceURI===flt)return _lt(e);if(t.localName==="ServiceExceptionReport")throw new le(new XMLSerializer().serializeToString(t));return t.localName==="msGMLOutput"?glt(e):ylt(e)}function mlt(e){let t=[],i=e.documentElement.getElementsByTagNameNS(rK,"Feature");for(let o=0;o<i.length;++o){let r=i[o],s={},a=r.getElementsByTagNameNS(rK,"Val");for(let u=0;u<a.length;++u){let f=a[u];if(f.hasAttribute("ref")){let d=f.getAttribute("ref"),p=f.textContent.trim();s[d]=p}}let c=new Rh;c.data=r,c.properties=s,c.configureNameFromProperties(s),c.configureDescriptionFromProperties(s),t.push(c)}return t}function plt(e){let t=e.documentElement,n=[],i,o=t.getElementsByTagNameNS("*","FIELDS");if(o.length>0)for(let r=0;r<o.length;++r){let s=o[r];i={};let a=s.attributes;for(let c=0;c<a.length;++c){let u=a[c];i[u.name]=u.value}n.push(Z8(s,i))}else{let r=t.getElementsByTagNameNS("*","FeatureInfo");for(let s=0;s<r.length;++s){let a=r[s];i={};let c=a.childNodes;for(let u=0;u<c.length;++u){let f=c[u];f.nodeType===Node.ELEMENT_NODE&&(i[f.localName]=f.textContent)}n.push(Z8(a,i))}}return n}function _lt(e){let t=[],i=e.documentElement.getElementsByTagNameNS(dlt,"featureMember");for(let o=0;o<i.length;++o){let r=i[o],s={};sK(r,s),t.push(Z8(r,s))}return t}function glt(e){let t=[],n,i=e.documentElement.childNodes;for(let r=0;r<i.length;r++)if(i[r].nodeType===Node.ELEMENT_NODE){n=i[r];break}if(!l(n))throw new le("Unable to find first child of the feature info xml document");let o=n.childNodes;for(let r=0;r<o.length;++r){let s=o[r];if(s.nodeType===Node.ELEMENT_NODE){let a={};sK(s,a),t.push(Z8(s,a))}}return t}function sK(e,t){let n=!0;for(let i=0;i<e.childNodes.length;++i){let o=e.childNodes[i];o.nodeType===Node.ELEMENT_NODE&&(n=!1),!(o.localName==="Point"||o.localName==="LineString"||o.localName==="Polygon"||o.localName==="boundedBy")&&o.hasChildNodes()&&sK(o,t)&&(t[o.localName]=o.textContent)}return n}function Z8(e,t){let n=new Rh;return n.data=e,n.properties=t,n.configureNameFromProperties(t),n.configureDescriptionFromProperties(t),n}function ylt(e){let t=new XMLSerializer().serializeToString(e),n=document.createElement("div"),i=document.createElement("pre");i.textContent=t,n.appendChild(i);let o=new Rh;return o.data=e,o.description=n.innerHTML,[o]}var xlt=/<body>\s*<\/body>/im,blt=/<ServiceExceptionReport([\s\S]*)<\/ServiceExceptionReport>/im,Tlt=/<title>([\s\S]*)<\/title>/im;function m0e(e){if(xlt.test(e)||blt.test(e))return;let t,n=Tlt.exec(e);n&&n.length>1&&(t=n[1]);let i=new Rh;return i.name=t,i.description=e,i.data=e,[i]}var VT=clt;function t2(e){e=y(e,y.EMPTY_OBJECT),this._tileCache={},this._tilesRequestedForInterval=[];let t=this._clock=e.clock;this._times=e.times,this._requestImageFunction=e.requestImageFunction,this._reloadFunction=e.reloadFunction,this._currentIntervalIndex=-1,t.onTick.addEventListener(this._clockOnTick,this),this._clockOnTick(t)}Object.defineProperties(t2.prototype,{clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._clockOnTick(e),this._reloadFunction())}},times:{get:function(){return this._times},set:function(e){this._times!==e&&(this._times=e,this._clockOnTick(this._clock),this._reloadFunction())}},currentInterval:{get:function(){return this._times.get(this._currentIntervalIndex)}}});t2.prototype.getFromCache=function(e,t,n,i){let o=p0e(e,t,n),r,s=this._tileCache[this._currentIntervalIndex];if(l(s)&&l(s[o])){let a=s[o];r=a.promise.catch(function(c){throw i.state=a.request.state,c}),delete s[o]}return r};t2.prototype.checkApproachingInterval=function(e,t,n,i){let o=p0e(e,t,n),r=this._tilesRequestedForInterval,s=_0e(this),a={key:o,priorityFunction:i.priorityFunction};(!l(s)||!g0e(this,a,s))&&r.push(a),r.length>=512&&r.splice(0,256)};t2.prototype._clockOnTick=function(e){let t=e.currentTime,i=this._times.indexOf(t),o=this._currentIntervalIndex;if(i!==o){let s=this._tileCache[o];for(let a in s)s.hasOwnProperty(a)&&s[a].request.cancel();delete this._tileCache[o],this._tilesRequestedForInterval=[],this._currentIntervalIndex=i,this._reloadFunction();return}let r=_0e(this);if(l(r)){let s=this._tilesRequestedForInterval,a=!0;for(;a&&s.length!==0;){let c=s.pop();a=g0e(this,c,r),a||s.push(c)}}};function p0e(e,t,n){return`${e}-${t}-${n}`}function Alt(e){let t=e.split("-");if(t.length===3)return{x:Number(t[0]),y:Number(t[1]),level:Number(t[2])}}function _0e(e){let t=e._times;if(!l(t))return;let n=e._clock,i=n.currentTime,o=n.canAnimate&&n.shouldAnimate,r=n.multiplier;if(!o&&r!==0)return;let s,a=t.indexOf(i);if(a<0)return;let c=t.get(a);return r>0?(s=J.secondsDifference(c.stop,i),++a):(s=J.secondsDifference(c.start,i),--a),s/=r,a>=0&&s<=5?t.get(a):void 0}function g0e(e,t,n){let i=e._times.indexOf(n.start),o=e._tileCache,r=o[i];l(r)||(r=o[i]={});let s=t.key;if(l(r[s]))return!0;let a=Alt(s),c=new qo({throttle:!1,throttleByServer:!0,type:os.IMAGERY,priorityFunction:t.priorityFunction}),u=e._requestImageFunction(a.x,a.y,a.level,c,n);return l(u)?(r[s]={promise:u,request:c},!0):!1}var UT=t2;var Clt=[3034,3035,3042,3043,3044],Elt=[4471,4559];function Mh(e){if(e=y(e,y.EMPTY_OBJECT),l(e.times)&&!l(e.clock))throw new de("options.times was specified, so options.clock is required.");this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._getFeatureInfoUrl=y(e.getFeatureInfoUrl,e.url);let t=De.createIfNeeded(e.url),n=De.createIfNeeded(this._getFeatureInfoUrl);t.setQueryParameters(Mh.DefaultParameters,!0),n.setQueryParameters(Mh.GetFeatureInfoDefaultParameters,!0),l(e.parameters)&&t.setQueryParameters(y0e(e.parameters)),l(e.getFeatureInfoParameters)&&n.setQueryParameters(y0e(e.getFeatureInfoParameters));let i=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new UT({clock:e.clock,times:e.times,requestImageFunction:function(s,a,c,u,f){return x0e(i,s,a,c,u,f)},reloadFunction:function(){l(i._reload)&&i._reload()}}));let o={};if(o.layers=e.layers,o.bbox="{westProjected},{southProjected},{eastProjected},{northProjected}",o.width="{width}",o.height="{height}",parseFloat(t.queryParameters.version)>=1.3){o.crs=y(e.crs,e.tilingScheme&&e.tilingScheme.projection instanceof Si?"EPSG:3857":"CRS:84");let s=o.crs.split(":");if(s[0]==="EPSG"&&s.length===2){let a=Number(s[1]);(a>=4e3&&a<5e3&&!Elt.includes(a)||Clt.includes(a))&&(o.bbox="{southProjected},{westProjected},{northProjected},{eastProjected}")}}else o.srs=y(e.srs,e.tilingScheme&&e.tilingScheme.projection instanceof Si?"EPSG:3857":"EPSG:4326");t.setQueryParameters(o,!0),n.setQueryParameters(o,!0);let r={query_layers:e.layers,info_format:"{format}"};parseFloat(n.queryParameters.version)>=1.3?(r.i="{i}",r.j="{j}"):(r.x="{i}",r.y="{j}"),n.setQueryParameters(r,!0),this._resource=t,this._pickFeaturesResource=n,this._layers=e.layers,this._tileProvider=new Ba({url:t,pickFeaturesUrl:n,tilingScheme:y(e.tilingScheme,new Ui({ellipsoid:e.ellipsoid})),rectangle:e.rectangle,tileWidth:e.tileWidth,tileHeight:e.tileHeight,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,subdomains:e.subdomains,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit,getFeatureInfoFormats:y(e.getFeatureInfoFormats,Mh.DefaultGetFeatureInfoFormats),enablePickFeatures:e.enablePickFeatures})}function x0e(e,t,n,i,o,r){let s=l(r)?r.data:void 0,a=e._tileProvider;return l(s)&&a._resource.setQueryParameters(s),a.requestImage(t,n,i,o)}function Slt(e,t,n,i,o,r,s){let a=l(s)?s.data:void 0,c=e._tileProvider;return l(a)&&c._pickFeaturesResource.setQueryParameters(a),c.pickFeatures(t,n,i,o,r)}Object.defineProperties(Mh.prototype,{url:{get:function(){return this._resource._url}},proxy:{get:function(){return this._resource.proxy}},layers:{get:function(){return this._layers}},tileWidth:{get:function(){return this._tileProvider.tileWidth}},tileHeight:{get:function(){return this._tileProvider.tileHeight}},maximumLevel:{get:function(){return this._tileProvider.maximumLevel}},minimumLevel:{get:function(){return this._tileProvider.minimumLevel}},tilingScheme:{get:function(){return this._tileProvider.tilingScheme}},rectangle:{get:function(){return this._tileProvider.rectangle}},tileDiscardPolicy:{get:function(){return this._tileProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._tileProvider.errorEvent}},credit:{get:function(){return this._tileProvider.credit}},hasAlphaChannel:{get:function(){return this._tileProvider.hasAlphaChannel}},enablePickFeatures:{get:function(){return this._tileProvider.enablePickFeatures},set:function(e){this._tileProvider.enablePickFeatures=e}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},getFeatureInfoUrl:{get:function(){return this._getFeatureInfoUrl}}});Mh.prototype.getTileCredits=function(e,t,n){return this._tileProvider.getTileCredits(e,t,n)};Mh.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=x0e(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};Mh.prototype.pickFeatures=function(e,t,n,i,o){let r=this._timeDynamicImagery,s=l(r)?r.currentInterval:void 0;return Slt(this,e,t,n,i,o,s)};Mh.DefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetMap",styles:"",format:"image/jpeg"});Mh.GetFeatureInfoDefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetFeatureInfo"});Mh.DefaultGetFeatureInfoFormats=Object.freeze([Object.freeze(new VT("json","application/json")),Object.freeze(new VT("xml","text/xml")),Object.freeze(new VT("text","text/html"))]);function y0e(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n]);return t}var n2=Mh;var vlt=Object.freeze({service:"WMTS",version:"1.0.0",request:"GetTile"});function i2(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=De.createIfNeeded(e.url),n=e.style,i=e.tileMatrixSetID,o=t.url,r=o.match(/{/g);if(!l(r)||r.length===1&&/{s}/.test(o))t.setQueryParameters(vlt),this._useKvp=!0;else{let d={style:n,Style:n,TileMatrixSet:i};t.setTemplateValues(d),this._useKvp=!1}this._resource=t,this._layer=e.layer,this._style=n,this._tileMatrixSetID=i,this._tileMatrixLabels=e.tileMatrixLabels,this._format=y(e.format,"image/jpeg"),this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Zr({ellipsoid:e.ellipsoid}),this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._dimensions=e.dimensions;let s=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new UT({clock:e.clock,times:e.times,requestImageFunction:function(d,p,g,m,x){return b0e(s,d,p,g,m,x)},reloadFunction:function(){l(s._reload)&&s._reload()}}));let a=this._tilingScheme.positionToTileXY(se.southwest(this._rectangle),this._minimumLevel),c=this._tilingScheme.positionToTileXY(se.northeast(this._rectangle),this._minimumLevel),u=(Math.abs(c.x-a.x)+1)*(Math.abs(c.y-a.y)+1);this._errorEvent=new pe;let f=e.credit;this._credit=typeof f=="string"?new Tt(f):f,this._subdomains=e.subdomains,Array.isArray(this._subdomains)?this._subdomains=this._subdomains.slice():l(this._subdomains)&&this._subdomains.length>0?this._subdomains=this._subdomains.split(""):this._subdomains=["a","b","c"]}function b0e(e,t,n,i,o,r){let s=e._tileMatrixLabels,a=l(s)?s[i]:i.toString(),c=e._subdomains,u=e._dimensions,f=l(r)?r.data:void 0,d,p;if(!e._useKvp)p={TileMatrix:a,TileRow:n.toString(),TileCol:t.toString(),s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({request:o}),d.setTemplateValues(p),l(u)&&d.setTemplateValues(u),l(f)&&d.setTemplateValues(f);else{let g={};g.tilematrix=a,g.layer=e._layer,g.style=e._style,g.tilerow=n,g.tilecol=t,g.tilematrixset=e._tileMatrixSetID,g.format=e._format,l(u)&&(g=_t(g,u)),l(f)&&(g=_t(g,f)),p={s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({queryParameters:g,request:o}),d.setTemplateValues(p)}return fl.loadImage(e,d)}Object.defineProperties(i2.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},format:{get:function(){return this._format}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},dimensions:{get:function(){return this._dimensions},set:function(e){this._dimensions!==e&&(this._dimensions=e,l(this._reload)&&this._reload())}}});i2.prototype.getTileCredits=function(e,t,n){};i2.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=b0e(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};i2.prototype.pickFeatures=function(e,t,n,i,o){};var o2=i2;var wlt={ARCGIS_MAPSERVER:ng.fromUrl,BING:async(e,t)=>KF.fromUrl(e,t),GOOGLE_EARTH:async(e,t)=>{let n=t.channel;return delete t.channel,QF.fromUrl(e,n,t)},MAPBOX:(e,t)=>new JF({url:e,...t}),SINGLE_TILE:e2.fromUrl,TMS:v0.fromUrl,URL_TEMPLATE:(e,t)=>new Ba({url:e,...t}),WMS:(e,t)=>new n2({url:e,...t}),WMTS:(e,t)=>new o2({url:e,...t})};function Zm(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileCredits=void 0,this._errorEvent=new pe}Object.defineProperties(Zm.prototype,{rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},proxy:{get:function(){}}});Zm.fromAssetId=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=_u._createEndpointResource(e,t),i=e.toString()+t.accessToken+t.server,o=Zm._endpointCache[i];l(o)||(o=n.fetchJson(),Zm._endpointCache[i]=o);let r=await o;if(r.type!=="IMAGERY")throw new le(`Cesium ion asset ${e} is not an imagery asset.`);let s,a=r.externalType;if(!l(a))s=await v0.fromUrl(new _u(r,n));else{let u=wlt[a];if(!l(u))throw new le(`Unrecognized Cesium ion imagery type: ${a}`);let f={...r.options},d=f.url;delete f.url,s=await u(d,f)}let c=new Zm(t);return s.errorEvent.addEventListener(function(u){u.provider=c,c._errorEvent.raiseEvent(u)}),c._tileCredits=_u.getCreditsFromEndpoint(r,n),c._imageryProvider=s,c};Zm.prototype.getTileCredits=function(e,t,n){let i=this._imageryProvider.getTileCredits(e,t,n);return l(i)?this._tileCredits.concat(i):this._tileCredits};Zm.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};Zm.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};Zm._endpointCache={};var ig=Zm;var Dlt={AERIAL:2,AERIAL_WITH_LABELS:3,ROAD:4},og=Object.freeze(Dlt);function Plt(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.style,og.AERIAL);return ig.fromAssetId(t)}var rg=Plt;function nv(e,t,n,i,o){if(this.imageryLayer=e,this.x=t,this.y=n,this.level=i,this.request=void 0,i!==0){let r=t/2|0,s=n/2|0,a=i-1;this.parent=e.getImageryFromCache(r,s,a)}this.state=ai.UNLOADED,this.imageUrl=void 0,this.image=void 0,this.texture=void 0,this.textureWebMercator=void 0,this.credits=void 0,this.referenceCount=0,!l(o)&&e.ready&&(o=e.imageryProvider.tilingScheme.tileXYToRectangle(t,n,i)),this.rectangle=o}nv.createPlaceholder=function(e){let t=new nv(e,0,0,0);return t.addReference(),t.state=ai.PLACEHOLDER,t};nv.prototype.addReference=function(){++this.referenceCount};nv.prototype.releaseReference=function(){return--this.referenceCount,this.referenceCount===0?(this.imageryLayer.removeImageryFromCache(this),l(this.parent)&&this.parent.releaseReference(),l(this.image)&&l(this.image.destroy)&&this.image.destroy(),l(this.texture)&&this.texture.destroy(),l(this.textureWebMercator)&&this.texture!==this.textureWebMercator&&this.textureWebMercator.destroy(),ue(this),0):this.referenceCount};nv.prototype.processStateMachine=function(e,t,n){this.state===ai.UNLOADED&&!n&&(this.state=ai.TRANSITIONING,this.imageryLayer._requestImagery(this)),this.state===ai.RECEIVED&&(this.state=ai.TRANSITIONING,this.imageryLayer._createTexture(e.context,this));let i=this.state===ai.READY&&t&&!this.texture;(this.state===ai.TEXTURE_LOADED||i)&&(this.state=ai.TRANSITIONING,this.imageryLayer._reprojectTexture(e,this,t))};var iv=nv;function aK(e,t,n){this.readyImagery=void 0,this.loadingImagery=e,this.textureCoordinateRectangle=t,this.textureTranslationAndScale=void 0,this.useWebMercatorT=n}aK.prototype.freeResources=function(){l(this.readyImagery)&&this.readyImagery.releaseReference(),l(this.loadingImagery)&&this.loadingImagery.releaseReference()};aK.prototype.processStateMachine=function(e,t,n){let i=this.loadingImagery,o=i.imageryLayer;if(i.processStateMachine(t,!this.useWebMercatorT,n),i.state===ai.READY)return l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=this.loadingImagery,this.loadingImagery=void 0,this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this),!0;let r=i.parent,s;for(;l(r)&&(r.state!==ai.READY||!this.useWebMercatorT&&!l(r.texture));)r.state!==ai.FAILED&&r.state!==ai.INVALID&&(s=s||r),r=r.parent;return this.readyImagery!==r&&(l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=r,l(r)&&(r.addReference(),this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this))),i.state===ai.FAILED||i.state===ai.INVALID?l(s)?(s.processStateMachine(t,!this.useWebMercatorT,n),!1):!0:!1};var ov=aK;function _i(e,t){this._imageryProvider=e,this._readyEvent=new pe,this._errorEvent=new pe,t=y(t,y.EMPTY_OBJECT),e=y(e,y.EMPTY_OBJECT),this.alpha=y(t.alpha,y(e._defaultAlpha,1)),this.nightAlpha=y(t.nightAlpha,y(e._defaultNightAlpha,1)),this.dayAlpha=y(t.dayAlpha,y(e._defaultDayAlpha,1)),this.brightness=y(t.brightness,y(e._defaultBrightness,_i.DEFAULT_BRIGHTNESS)),this.contrast=y(t.contrast,y(e._defaultContrast,_i.DEFAULT_CONTRAST)),this.hue=y(t.hue,y(e._defaultHue,_i.DEFAULT_HUE)),this.saturation=y(t.saturation,y(e._defaultSaturation,_i.DEFAULT_SATURATION)),this.gamma=y(t.gamma,y(e._defaultGamma,_i.DEFAULT_GAMMA)),this.splitDirection=y(t.splitDirection,_i.DEFAULT_SPLIT),this.minificationFilter=y(t.minificationFilter,y(e._defaultMinificationFilter,_i.DEFAULT_MINIFICATION_FILTER)),this.magnificationFilter=y(t.magnificationFilter,y(e._defaultMagnificationFilter,_i.DEFAULT_MAGNIFICATION_FILTER)),this.show=y(t.show,!0),this._minimumTerrainLevel=t.minimumTerrainLevel,this._maximumTerrainLevel=t.maximumTerrainLevel,this._rectangle=y(t.rectangle,se.MAX_VALUE),this._maximumAnisotropy=t.maximumAnisotropy,this._imageryCache={},this._skeletonPlaceholder=new ov(iv.createPlaceholder(this)),this._show=!0,this._layerIndex=-1,this._isBaseLayer=!1,this._requestImageError=void 0,this._reprojectComputeCommands=[],this.cutoutRectangle=t.cutoutRectangle,this.colorToAlpha=t.colorToAlpha,this.colorToAlphaThreshold=y(t.colorToAlphaThreshold,_i.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD)}Object.defineProperties(_i.prototype,{imageryProvider:{get:function(){return this._imageryProvider}},ready:{get:function(){return l(this._imageryProvider)}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},rectangle:{get:function(){return this._rectangle}}});_i.DEFAULT_BRIGHTNESS=1;_i.DEFAULT_CONTRAST=1;_i.DEFAULT_HUE=0;_i.DEFAULT_SATURATION=1;_i.DEFAULT_GAMMA=1;_i.DEFAULT_SPLIT=Qc.NONE;_i.DEFAULT_MINIFICATION_FILTER=nn.LINEAR;_i.DEFAULT_MAGNIFICATION_FILTER=li.LINEAR;_i.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD=.004;_i.fromProviderAsync=function(e,t){let n=new _i(void 0,t);return Llt(n,Promise.resolve(e)),n};_i.fromWorldImagery=function(e){return e=y(e,y.EMPTY_OBJECT),_i.fromProviderAsync(rg({style:e.style}),e)};_i.prototype.isBaseLayer=function(){return this._isBaseLayer};_i.prototype.isDestroyed=function(){return!1};_i.prototype.destroy=function(){return ue(this)};var C0e=new se,T0e=new se,cK=new se,E0e=new se;_i.prototype.getImageryRectangle=function(){let e=this._imageryProvider,t=this._rectangle;return se.intersection(e.rectangle,t)};_i.prototype._createTileImagerySkeletons=function(e,t,n){let i=e.data;if(!l(t)||l(this._minimumTerrainLevel)&&e.level<this._minimumTerrainLevel||l(this._maximumTerrainLevel)&&e.level>this._maximumTerrainLevel)return!1;l(n)||(n=i.imagery.length);let o=this._imageryProvider;if(!this.ready)return this._skeletonPlaceholder.loadingImagery.addReference(),i.imagery.splice(n,0,this._skeletonPlaceholder),!0;let r=o.tilingScheme.projection instanceof Si&&e.rectangle.north<Si.MaximumLatitude&&e.rectangle.south>-Si.MaximumLatitude,s=se.intersection(o.rectangle,this._rectangle,C0e),a=se.intersection(e.rectangle,s,T0e);if(!l(a)){if(!this.isBaseLayer())return!1;let w=s,P=e.rectangle;a=T0e,P.south>=w.north?a.north=a.south=w.north:P.north<=w.south?a.north=a.south=w.south:(a.south=Math.max(P.south,w.south),a.north=Math.min(P.north,w.north)),P.west>=w.east?a.west=a.east=w.east:P.east<=w.west?a.west=a.east=w.west:(a.west=Math.max(P.west,w.west),a.east=Math.min(P.east,w.east))}let c=0;a.south>0?c=a.south:a.north<0&&(c=a.north);let f=1*t.getLevelMaximumGeometricError(e.level),d=Olt(this,f,c);d=Math.max(0,d);let p=o.maximumLevel;if(d>p&&(d=p),l(o.minimumLevel)){let w=o.minimumLevel;d<w&&(d=w)}let g=o.tilingScheme,m=g.positionToTileXY(se.northwest(a),d),x=g.positionToTileXY(se.southeast(a),d),b=e.rectangle.width/512,T=e.rectangle.height/512,C=g.tileXYToRectangle(m.x,m.y,d);Math.abs(C.south-e.rectangle.north)<T&&m.y<x.y&&++m.y,Math.abs(C.east-e.rectangle.west)<b&&m.x<x.x&&++m.x;let A=g.tileXYToRectangle(x.x,x.y,d);Math.abs(A.north-e.rectangle.south)<T&&x.y>m.y&&--x.y,Math.abs(A.west-e.rectangle.east)<b&&x.x>m.x&&--x.x;let E=se.clone(e.rectangle,E0e),v=g.tileXYToRectangle(m.x,m.y,d),D=se.intersection(v,s,cK),O;r?(g.rectangleToNativeRectangle(E,E),g.rectangleToNativeRectangle(v,v),g.rectangleToNativeRectangle(D,D),g.rectangleToNativeRectangle(s,s),O=g.tileXYToNativeRectangle.bind(g),b=E.width/512,T=E.height/512):O=g.tileXYToRectangle.bind(g);let I,L=0,N=1,_;!this.isBaseLayer()&&Math.abs(D.west-E.west)>=b&&(L=Math.min(1,(D.west-E.west)/E.width)),!this.isBaseLayer()&&Math.abs(D.north-E.north)>=T&&(N=Math.max(0,(D.north-E.south)/E.height));let S=N;for(let w=m.x;w<=x.x;w++)if(I=L,v=O(w,m.y,d),D=se.simpleIntersection(v,s,cK),!!l(D)){L=Math.min(1,(D.east-E.west)/E.width),w===x.x&&(this.isBaseLayer()||Math.abs(D.east-E.east)<b)&&(L=1),N=S;for(let P=m.y;P<=x.y;P++){if(_=N,v=O(w,P,d),D=se.simpleIntersection(v,s,cK),!l(D))continue;N=Math.max(0,(D.south-E.south)/E.height),P===x.y&&(this.isBaseLayer()||Math.abs(D.south-E.south)<T)&&(N=0);let M=new oe(I,N,L,_),B=this.getImageryFromCache(w,P,d);i.imagery.splice(n,0,new ov(B,M,r)),++n}}return!0};_i.prototype._calculateTextureTranslationAndScale=function(e,t){let n=t.readyImagery.rectangle,i=e.rectangle;if(t.useWebMercatorT){let c=t.readyImagery.imageryLayer.imageryProvider.tilingScheme;n=c.rectangleToNativeRectangle(n,C0e),i=c.rectangleToNativeRectangle(i,E0e)}let o=i.width,r=i.height,s=o/n.width,a=r/n.height;return new oe(s*(i.west-n.west)/o,a*(i.south-n.south)/r,s,a)};_i.prototype._requestImagery=function(e){let t=this._imageryProvider,n=this;function i(s){if(!l(s))return o();e.image=s,e.state=ai.RECEIVED,e.request=void 0,vo.reportSuccess(n._requestImageError)}function o(s){if(e.request.state===$n.CANCELLED){e.state=ai.UNLOADED,e.request=void 0;return}e.state=ai.FAILED,e.request=void 0;let a=`Failed to obtain image tile X: ${e.x} Y: ${e.y} Level: ${e.level}.`;n._requestImageError=vo.reportError(n._requestImageError,t,t.errorEvent,a,e.x,e.y,e.level,s),n._requestImageError.retry&&r()}function r(){let s=new qo({throttle:!1,throttleByServer:!0,type:os.IMAGERY});e.request=s,e.state=ai.TRANSITIONING;let a=t.requestImage(e.x,e.y,e.level,s);if(!l(a)){e.state=ai.UNLOADED,e.request=void 0;return}l(t.getTileCredits)&&(e.credits=t.getTileCredits(e.x,e.y,e.level)),a.then(function(c){i(c)}).catch(function(c){o(c)})}r()};_i.prototype._createTextureWebGL=function(e,t){let n=new on({minificationFilter:this.minificationFilter,magnificationFilter:this.magnificationFilter}),i=t.image;return l(i.internalFormat)?new Dt({context:e,pixelFormat:i.internalFormat,width:i.width,height:i.height,source:{arrayBufferView:i.bufferView},sampler:n}):new Dt({context:e,source:i,pixelFormat:this._imageryProvider.hasAlphaChannel?nt.RGBA:nt.RGB,sampler:n})};_i.prototype._createTexture=function(e,t){let n=this._imageryProvider,i=t.image;if(l(n.tileDiscardPolicy)){let r=n.tileDiscardPolicy;if(l(r)){if(!r.isReady()){t.state=ai.RECEIVED;return}if(r.shouldDiscardImage(i)){t.state=ai.INVALID;return}}}let o=this._createTextureWebGL(e,t);n.tilingScheme.projection instanceof Si?t.textureWebMercator=o:t.texture=o,t.image=void 0,t.state=ai.TEXTURE_LOADED};function A0e(e,t,n){return`${e}:${t}:${n}`}_i.prototype._finalizeReprojectTexture=function(e,t){let n=this.minificationFilter,i=this.magnificationFilter;if(n===nn.LINEAR&&i===li.LINEAR&&!nt.isCompressedFormat(t.pixelFormat)&&R.isPowerOfTwo(t.width)&&R.isPowerOfTwo(t.height)){n=nn.LINEAR_MIPMAP_LINEAR;let r=Nt.maximumTextureFilterAnisotropy,s=Math.min(r,y(this._maximumAnisotropy,r)),a=A0e(n,i,s),c=e.cache.imageryLayerMipmapSamplers;l(c)||(c={},e.cache.imageryLayerMipmapSamplers=c);let u=c[a];l(u)||(u=c[a]=new on({wrapS:An.CLAMP_TO_EDGE,wrapT:An.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i,maximumAnisotropy:s})),t.generateMipmap(Qh.NICEST),t.sampler=u}else{let r=A0e(n,i,0),s=e.cache.imageryLayerNonMipmapSamplers;l(s)||(s={},e.cache.imageryLayerNonMipmapSamplers=s);let a=s[r];l(a)||(a=s[r]=new on({wrapS:An.CLAMP_TO_EDGE,wrapT:An.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i})),t.sampler=a}};_i.prototype._reprojectTexture=function(e,t,n){let i=t.textureWebMercator||t.texture,o=t.rectangle,r=e.context;if(n=y(n,!0),n&&!(this._imageryProvider.tilingScheme.projection instanceof Ci)&&o.width/i.width>1e-5){let s=this;t.addReference();let a=new Dl({persists:!0,owner:this,preExecute:function(c){Rlt(c,r,i,t.rectangle)},postExecute:function(c){t.texture=c,s._finalizeReprojectTexture(r,c),t.state=ai.READY,t.releaseReference()},canceled:function(){t.state=ai.TEXTURE_LOADED,t.releaseReference()}});this._reprojectComputeCommands.push(a)}else n&&(t.texture=i),this._finalizeReprojectTexture(r,i),t.state=ai.READY};_i.prototype.queueReprojectionCommands=function(e){let t=this._reprojectComputeCommands,n=t.length;for(let i=0;i<n;++i)e.commandList.push(t[i]);t.length=0};_i.prototype.cancelReprojections=function(){this._reprojectComputeCommands.forEach(function(e){l(e.canceled)&&e.canceled()}),this._reprojectComputeCommands.length=0};_i.prototype.getImageryFromCache=function(e,t,n,i){let o=S0e(e,t,n),r=this._imageryCache[o];return l(r)||(r=new iv(this,e,t,n,i),this._imageryCache[o]=r),r.addReference(),r};_i.prototype.removeImageryFromCache=function(e){let t=S0e(e.x,e.y,e.level);delete this._imageryCache[t]};function S0e(e,t,n){return JSON.stringify([e,t,n])}var $8={u_textureDimensions:function(){return this.textureDimensions},u_texture:function(){return this.texture},textureDimensions:new z,texture:void 0},Ilt=Vt.supportsTypedArrays()?new Float32Array(2*64):void 0;function Rlt(e,t,n,i){let o=t.cache.imageryLayer_reproject;if(!l(o)){o=t.cache.imageryLayer_reproject={vertexArray:void 0,shaderProgram:void 0,sampler:void 0,destroy:function(){l(this.framebuffer)&&this.framebuffer.destroy(),l(this.vertexArray)&&this.vertexArray.destroy(),l(this.shaderProgram)&&this.shaderProgram.destroy()}};let b=new Float32Array(2*64*2),T=0;for(let D=0;D<64;++D){let O=D/63;b[T++]=0,b[T++]=O,b[T++]=1,b[T++]=O}let C={position:0,webMercatorT:1},A=Kr.getRegularGridIndices(2,64),E=ct.createIndexBuffer({context:t,typedArray:A,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT});o.vertexArray=new ei({context:t,attributes:[{index:C.position,vertexBuffer:ct.createVertexBuffer({context:t,typedArray:b,usage:Fe.STATIC_DRAW}),componentsPerAttribute:2},{index:C.webMercatorT,vertexBuffer:ct.createVertexBuffer({context:t,sizeInBytes:64*2*4,usage:Fe.STREAM_DRAW}),componentsPerAttribute:1}],indexBuffer:E});let v=new ze({sources:[BF]});o.shaderProgram=$t.fromCache({context:t,vertexShaderSource:v,fragmentShaderSource:FF,attributeLocations:C}),o.sampler=new on({wrapS:An.CLAMP_TO_EDGE,wrapT:An.CLAMP_TO_EDGE,minificationFilter:nn.LINEAR,magnificationFilter:li.LINEAR})}n.sampler=o.sampler;let r=n.width,s=n.height;$8.textureDimensions.x=r,$8.textureDimensions.y=s,$8.texture=n;let a=Math.sin(i.south),c=.5*Math.log((1+a)/(1-a));a=Math.sin(i.north);let f=1/(.5*Math.log((1+a)/(1-a))-c),d=new Dt({context:t,width:r,height:s,pixelFormat:n.pixelFormat,pixelDatatype:n.pixelDatatype,preMultiplyAlpha:n.preMultiplyAlpha});R.isPowerOfTwo(r)&&R.isPowerOfTwo(s)&&d.generateMipmap(Qh.NICEST);let p=i.south,g=i.north,m=Ilt,x=0;for(let b=0;b<64;++b){let T=b/63,C=R.lerp(p,g,T);a=Math.sin(C);let E=(.5*Math.log((1+a)/(1-a))-c)*f;m[x++]=E,m[x++]=E}o.vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(m),e.shaderProgram=o.shaderProgram,e.outputTexture=d,e.uniformMap=$8,e.vertexArray=o.vertexArray}function Olt(e,t,n){let i=e._imageryProvider,o=i.tilingScheme,r=o.ellipsoid,s=e._imageryProvider.tilingScheme.projection instanceof Ci?1:Math.cos(n),a=o.rectangle,u=r.maximumRadius*a.width*s/(i.tileWidth*o.getNumberOfXTilesAtLevel(0))/t,f=Math.log(u)/Math.log(2);return Math.round(f)|0}function Mlt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function Llt(e,t){let n;try{if(n=await Promise.resolve(t),e.isDestroyed())return;e._imageryProvider=n,e._readyEvent.raiseEvent(n)}catch(i){Mlt(e._errorEvent,i)}}var da=_i;var v0e={NONE:0,CULLED:1,RENDERED:2,REFINED:3,RENDERED_AND_KICKED:6,REFINED_AND_KICKED:7,CULLED_BUT_NEEDED:9,wasKicked:function(e){return e>=v0e.RENDERED_AND_KICKED},originalResult:function(e){return e&3},kick:function(e){return e|4}},Kn=v0e;function sv(e){this.tile=e,this.frameLastUpdated=void 0,this.westMeshes=[],this.westTiles=[],this.southMeshes=[],this.southTiles=[],this.eastMeshes=[],this.eastTiles=[],this.northMeshes=[],this.northTiles=[],this.southwestMesh=void 0,this.southwestTile=void 0,this.southeastMesh=void 0,this.southeastTile=void 0,this.northwestMesh=void 0,this.northwestTile=void 0,this.northeastMesh=void 0,this.northeastTile=void 0,this.changedThisFrame=!0,this.visitedFrame=void 0,this.enqueuedFrame=void 0,this.mesh=void 0,this.vertexArray=void 0,this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new oe}sv.prototype.update=function(e,t,n){this.changedThisFrame&&(M0e(e,t,this.tile,n),this.changedThisFrame=!1)};sv.prototype.destroy=function(e){this._destroyVertexArray(e),l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0)};sv.prototype._destroyVertexArray=function(e){l(this.vertexArray)&&(l(e)?e.push(this.vertexArray):sd._freeVertexArray(this.vertexArray),this.vertexArray=void 0)};var Nlt=new cy;sv.updateFillTiles=function(e,t,n,i){let o=e._quadtree,r=o._levelZeroTiles,s=o._lastSelectionFrameNumber,a=Nlt;a.clear();for(let u=0;u<t.length;++u){let f=t[u];l(f.data.vertexArray)&&a.enqueue(t[u])}let c=a.dequeue();for(;c!==void 0;){let u=c.findTileToWest(r),f=c.findTileToSouth(r),d=c.findTileToEast(r),p=c.findTileToNorth(r);ws(e,n,c,u,s,_n.EAST,!1,a,i),ws(e,n,c,f,s,_n.NORTH,!1,a,i),ws(e,n,c,d,s,_n.WEST,!1,a,i),ws(e,n,c,p,s,_n.SOUTH,!1,a,i);let g=u.findTileToNorth(r),m=u.findTileToSouth(r),x=d.findTileToNorth(r),b=d.findTileToSouth(r);ws(e,n,c,g,s,_n.SOUTHEAST,!1,a,i),ws(e,n,c,x,s,_n.SOUTHWEST,!1,a,i),ws(e,n,c,m,s,_n.NORTHEAST,!1,a,i),ws(e,n,c,b,s,_n.NORTHWEST,!1,a,i),c=a.dequeue()}};function ws(e,t,n,i,o,r,s,a,c){if(i===void 0)return;let u=i;for(;u&&(u._lastSelectionResultFrame!==o||Kn.wasKicked(u._lastSelectionResult)||Kn.originalResult(u._lastSelectionResult)===Kn.CULLED);){if(s)return;let f=u.parent;if(r>=_n.NORTHWEST&&f!==void 0)switch(r){case _n.NORTHWEST:u=u===f.northwestChild?f:void 0;break;case _n.NORTHEAST:u=u===f.northeastChild?f:void 0;break;case _n.SOUTHWEST:u=u===f.southwestChild?f:void 0;break;case _n.SOUTHEAST:u=u===f.southeastChild?f:void 0;break}else u=f}if(u!==void 0){if(u._lastSelectionResult===Kn.RENDERED){if(l(u.data.vertexArray))return;Flt(e,t,n,u,r,o,a,c);return}if(Kn.originalResult(i._lastSelectionResult)!==Kn.CULLED)switch(r){case _n.WEST:ws(e,t,n,i.northwestChild,o,r,!0,a,c),ws(e,t,n,i.southwestChild,o,r,!0,a,c);break;case _n.EAST:ws(e,t,n,i.southeastChild,o,r,!0,a,c),ws(e,t,n,i.northeastChild,o,r,!0,a,c);break;case _n.SOUTH:ws(e,t,n,i.southwestChild,o,r,!0,a,c),ws(e,t,n,i.southeastChild,o,r,!0,a,c);break;case _n.NORTH:ws(e,t,n,i.northeastChild,o,r,!0,a,c),ws(e,t,n,i.northwestChild,o,r,!0,a,c);break;case _n.NORTHWEST:ws(e,t,n,i.northwestChild,o,r,!0,a,c);break;case _n.NORTHEAST:ws(e,t,n,i.northeastChild,o,r,!0,a,c);break;case _n.SOUTHWEST:ws(e,t,n,i.southwestChild,o,r,!0,a,c);break;case _n.SOUTHEAST:ws(e,t,n,i.southeastChild,o,r,!0,a,c);break;default:throw new de("Invalid edge")}}}function Flt(e,t,n,i,o,r,s,a){let c=i.data;if(c.fill===void 0)c.fill=new sv(i);else if(c.fill.visitedFrame===r)return;c.fill.enqueuedFrame!==r&&(c.fill.enqueuedFrame=r,c.fill.changedThisFrame=!1,s.enqueue(i)),Blt(e,t,n,i,o,a)}function Blt(e,t,n,i,o,r){let s=i.data.fill,a,c=n.data.fill;l(c)?(c.visitedFrame=t.frameNumber,c.changedThisFrame&&(M0e(e,t,n,r),c.changedThisFrame=!1),a=n.data.fill.mesh):a=n.data.mesh;let u,f;switch(o){case _n.WEST:u=s.westMeshes,f=s.westTiles;break;case _n.SOUTH:u=s.southMeshes,f=s.southTiles;break;case _n.EAST:u=s.eastMeshes,f=s.eastTiles;break;case _n.NORTH:u=s.northMeshes,f=s.northTiles;break;case _n.NORTHWEST:s.changedThisFrame=s.changedThisFrame||s.northwestMesh!==a,s.northwestMesh=a,s.northwestTile=n;return;case _n.NORTHEAST:s.changedThisFrame=s.changedThisFrame||s.northeastMesh!==a,s.northeastMesh=a,s.northeastTile=n;return;case _n.SOUTHWEST:s.changedThisFrame=s.changedThisFrame||s.southwestMesh!==a,s.southwestMesh=a,s.southwestTile=n;return;case _n.SOUTHEAST:s.changedThisFrame=s.changedThisFrame||s.southeastMesh!==a,s.southeastMesh=a,s.southeastTile=n;return}if(n.level<=i.level){s.changedThisFrame=s.changedThisFrame||u[0]!==a||u.length!==1,u[0]=a,f[0]=n,u.length=1,f.length=1;return}let d,p,g,m,x=n.rectangle,b,T=i.rectangle;switch(o){case _n.WEST:for(b=(T.north-T.south)*R.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!R.greaterThan(x.north,m.south,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!R.greaterThanOrEquals(x.south,m.north,b));++p);break;case _n.SOUTH:for(b=(T.east-T.west)*R.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!R.lessThan(x.west,m.east,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!R.lessThanOrEquals(x.east,m.west,b));++p);break;case _n.EAST:for(b=(T.north-T.south)*R.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!R.lessThan(x.south,m.north,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!R.lessThanOrEquals(x.north,m.south,b));++p);break;case _n.NORTH:for(b=(T.east-T.west)*R.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!R.greaterThan(x.east,m.west,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!R.greaterThanOrEquals(x.west,m.east,b));++p);break}p-d===1?(s.changedThisFrame=s.changedThisFrame||u[d]!==a,u[d]=a,f[d]=n):(s.changedThisFrame=!0,u.splice(d,p-d,a),f.splice(d,p-d,n))}var zT=new fe,klt=new fe,rv=new h,dK=new h,lK=new z,uK=new z,Zu=new z;function oH(){this.height=0,this.encodedNormal=new z}function Q8(e,t,n,i,o,r,s,a,c){if(l(o))return o;let u;if(l(r)&&l(s))u=(r.height+s.height)*.5;else if(l(r))u=r.height;else if(l(s))u=s.height;else if(l(a))u=a.height;else{let d=e.tile.data.tileBoundingRegion,p=0,g=0;l(d)&&(p=d.minimumHeight,g=d.maximumHeight),u=(p+g)*.5}return L0e(e,t,n,i,u,c),c}var Vlt={minimumHeight:0,maximumHeight:0},Ult=new h,w0e=new oH,D0e=new oH,P0e=new oH,I0e=new oH,zlt=typeof Uint8Array<"u"?new Uint8Array(9*9):void 0,Hlt={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0};function M0e(e,t,n,i){sd.initialize(n,e.terrainProvider,e._imageryLayers);let o=n.data,r=o.fill,s=n.rectangle,a=t.verticalExaggeration,c=t.verticalExaggerationRelativeHeight,u=a!==1,f=n.tilingScheme.ellipsoid,d=eH(r,f,0,1,r.northwestTile,r.northwestMesh,r.northTiles,r.northMeshes,r.westTiles,r.westMeshes,P0e),p=eH(r,f,0,0,r.southwestTile,r.southwestMesh,r.westTiles,r.westMeshes,r.southTiles,r.southMeshes,w0e),g=eH(r,f,1,0,r.southeastTile,r.southeastMesh,r.southTiles,r.southMeshes,r.eastTiles,r.eastMeshes,D0e),m=eH(r,f,1,1,r.northeastTile,r.northeastMesh,r.eastTiles,r.eastMeshes,r.northTiles,r.northMeshes,I0e);d=Q8(r,f,0,1,d,p,m,g,P0e),p=Q8(r,f,0,0,p,d,g,m,w0e),g=Q8(r,f,1,1,g,p,m,d,D0e),m=Q8(r,f,1,1,m,g,d,p,I0e);let x=p.height,b=g.height,T=d.height,C=m.height,A=Math.min(x,b,T,C),E=Math.max(x,b,T,C),v=(A+E)*.5,D,O,I=e.getLevelMaximumGeometricError(n.level),L=f.maximumRadius-I,N=Math.acos(L/f.maximumRadius)*4;if(N*=1.5,s.width>N&&E-A<=I){let w=new Fa({width:9,height:9,buffer:zlt,structure:{heightOffset:E}}),P=Hlt;P.tilingScheme=n.tilingScheme,P.x=n.x,P.y=n.y,P.level=n.level,P.exaggeration=a,P.exaggerationRelativeHeight=c,r.mesh=w._createMeshSync(P)}else{let w=u,P=se.center(s,klt);P.height=v;let M=f.cartographicToCartesian(P,Ult),B=new Ac(M,void 0,void 0,void 0,void 0,!0,!0,w,a,c),U=5,V;for(V=r.westMeshes,D=0,O=V.length;D<O;++D)U+=V[D].eastIndicesNorthToSouth.length;for(V=r.southMeshes,D=0,O=V.length;D<O;++D)U+=V[D].northIndicesWestToEast.length;for(V=r.eastMeshes,D=0,O=V.length;D<O;++D)U+=V[D].westIndicesSouthToNorth.length;for(V=r.northMeshes,D=0,O=V.length;D<O;++D)U+=V[D].southIndicesEastToWest.length;let G=Vlt;G.minimumHeight=A,G.maximumHeight=E;let k=B.stride,Y=new Float32Array(U*k),W=0,Q=W;W=J8(f,s,B,Y,W,0,1,d.height,d.encodedNormal,1,G),W=nH(r,f,B,Y,W,r.westTiles,r.westMeshes,_n.EAST,G);let j=W;W=J8(f,s,B,Y,W,0,0,p.height,p.encodedNormal,0,G),W=nH(r,f,B,Y,W,r.southTiles,r.southMeshes,_n.NORTH,G);let K=W;W=J8(f,s,B,Y,W,1,0,g.height,g.encodedNormal,0,G),W=nH(r,f,B,Y,W,r.eastTiles,r.eastMeshes,_n.WEST,G);let Z=W;W=J8(f,s,B,Y,W,1,1,m.height,m.encodedNormal,1,G),W=nH(r,f,B,Y,W,r.northTiles,r.northMeshes,_n.SOUTH,G),A=G.minimumHeight,E=G.maximumHeight;let he=Sn.fromRectangle(s,A,E,n.tilingScheme.ellipsoid),be=Si.geodeticLatitudeToMercatorAngle(s.south),re=1/(Si.geodeticLatitudeToMercatorAngle(s.north)-be),_e=(Si.geodeticLatitudeToMercatorAngle(P.latitude)-be)*re,xe=f.geodeticSurfaceNormalCartographic(zT,dK),Ce=Mn.octEncode(xe,lK),we=W;B.encode(Y,W*k,he.center,z.fromElements(.5,.5,Zu),v,Ce,_e,xe),++W;let Oe=W,ke=Oe<256?1:2,At=(Oe-1)*3,Bt=At*ke,rt=(Y.length-Oe*k)*Float32Array.BYTES_PER_ELEMENT,Qe;if(rt>=Bt){let Ae=Oe*k*Float32Array.BYTES_PER_ELEMENT;Qe=Oe<256?new Uint8Array(Y.buffer,Ae,At):new Uint16Array(Y.buffer,Ae,At)}else Qe=Oe<256?new Uint8Array(At):new Uint16Array(At);Y=new Float32Array(Y.buffer,0,Oe*k);let Kt=0;for(D=0;D<Oe-2;++D)Qe[Kt++]=we,Qe[Kt++]=D,Qe[Kt++]=D+1;Qe[Kt++]=we,Qe[Kt++]=D,Qe[Kt++]=0;let ht=[];for(D=j;D>=Q;--D)ht.push(D);let mt=[];for(D=K;D>=j;--D)mt.push(D);let Zt=[];for(D=Z;D>=K;--D)Zt.push(D);let me=[];for(me.push(0),D=we-1;D>=Z;--D)me.push(D);r.mesh=new od(B.center,Y,Qe,At,Oe,A,E,ae.fromOrientedBoundingBox(he),Klt(e,he.center,s,A,E),B.stride,he,B,ht,mt,Zt,me)}let _=t.context;r._destroyVertexArray(i),r.vertexArray=sd._createVertexArrayForMesh(_,r.mesh),o.processImagery(n,e.terrainProvider,t,!0);let S=r.waterMaskTexture;if(r.waterMaskTexture=void 0,e.terrainProvider.hasWaterMask){let w=o._findAncestorTileWithTerrainData(n);l(w)&&l(w.data.waterMaskTexture)&&(r.waterMaskTexture=w.data.waterMaskTexture,++r.waterMaskTexture.referenceCount,o._computeWaterMaskTranslationAndScale(n,w,r.waterMaskTranslationAndScale))}l(S)&&(--S.referenceCount,S.referenceCount===0&&S.destroy())}function J8(e,t,n,i,o,r,s,a,c,u,f){let d=zT;d.longitude=R.lerp(t.west,t.east,r),d.latitude=R.lerp(t.south,t.north,s),d.height=a;let p=e.cartographicToCartesian(d,rv),g;n.hasGeodeticSurfaceNormals&&(g=e.geodeticSurfaceNormal(p,dK));let m=uK;return m.x=r,m.y=s,n.encode(i,o*n.stride,p,m,a,c,u,g),f.minimumHeight=Math.min(f.minimumHeight,a),f.maximumHeight=Math.max(f.maximumHeight,a),o+1}var iH=new se;function r2(e,t,n,i){let o=e.rectangle,r=t.rectangle;t.x===0&&n.x===1&&e.x===e.tilingScheme.getNumberOfXTilesAtLevel(e.level)-1?(o=se.clone(e.rectangle,iH),o.west-=R.TWO_PI,o.east-=R.TWO_PI):e.x===0&&n.x===0&&t.x===t.tilingScheme.getNumberOfXTilesAtLevel(t.level)-1&&(o=se.clone(e.rectangle,iH),o.west+=R.TWO_PI,o.east+=R.TWO_PI);let s=o.east-o.west,a=(r.west-o.west)/s,c=(r.east-o.west)/s,u=o.north-o.south,f=(r.south-o.south)/u,d=(r.north-o.south)/u,p=(n.x-a)/(c-a),g=(n.y-f)/(d-f);return Math.abs(p)<Math.EPSILON5?p=0:Math.abs(p-1)<Math.EPSILON5&&(p=1),Math.abs(g)<Math.EPSILON5?g=0:Math.abs(g-1)<Math.EPSILON5&&(g=1),i.x=p,i.y=g,i}var Glt=new z;function fK(e,t,n,i,o){let r=e.encoding,s=e.vertices;if(o.height=r.decodeHeight(s,t),r.hasVertexNormals)r.getOctEncodedNormal(s,t,o.encodedNormal);else{let a=o.encodedNormal;a.x=0,a.y=0}}var Wlt=new z,jlt=new h;function qlt(e,t,n,i,o,r,s,a,c,u){let f=i.encoding,d=i.vertices,p=r2(t,n,f.decodeTextureCoordinates(d,o,Zu),Zu),g=r2(t,n,f.decodeTextureCoordinates(d,r,uK),uK),m;c?m=(s-p.x)/(g.x-p.x):m=(a-p.y)/(g.y-p.y);let x=f.decodeHeight(d,o),b=f.decodeHeight(d,r),T=n.rectangle;zT.longitude=R.lerp(T.west,T.east,s),zT.latitude=R.lerp(T.south,T.north,a),u.height=zT.height=R.lerp(x,b,m);let C;if(f.hasVertexNormals){let A=f.getOctEncodedNormal(d,o,Glt),E=f.getOctEncodedNormal(d,r,Wlt),v=Mn.octDecode(A.x,A.y,rv),D=Mn.octDecode(E.x,E.y,jlt);C=h.lerp(v,D,m,rv),h.normalize(C,C),Mn.octEncode(C,u.encodedNormal)}else C=e.geodeticSurfaceNormalCartographic(zT,rv),Mn.octEncode(C,u.encodedNormal)}function L0e(e,t,n,i,o,r){r.height=o;let s=t.geodeticSurfaceNormalCartographic(zT,rv);Mn.octEncode(s,r.encodedNormal)}function eH(e,t,n,i,o,r,s,a,c,u,f){if(O0e(e,t,a,s,!1,n,i,f)||O0e(e,t,u,c,!0,n,i,f))return f;let p;if(hK(o,r))return n===0?i===0?p=r.eastIndicesNorthToSouth[0]:p=r.southIndicesEastToWest[0]:i===0?p=r.northIndicesWestToEast[0]:p=r.westIndicesSouthToNorth[0],fK(r,p,n,i,f),f;let g;if(n===0?i===0?g=tH(e.westMeshes,e.westTiles,_n.EAST,e.southMeshes,e.southTiles,_n.NORTH,n,i):g=tH(e.northMeshes,e.northTiles,_n.SOUTH,e.westMeshes,e.westTiles,_n.EAST,n,i):i===0?g=tH(e.southMeshes,e.southTiles,_n.NORTH,e.eastMeshes,e.eastTiles,_n.WEST,n,i):g=tH(e.eastMeshes,e.eastTiles,_n.WEST,e.northMeshes,e.northTiles,_n.SOUTH,n,i),l(g))return L0e(e,t,n,i,g,f),f}function tH(e,t,n,i,o,r,s,a){let c=R0e(e,t,!1,n,s,a),u=R0e(i,o,!0,r,s,a);return l(c)&&l(u)?(c+u)*.5:l(c)?c:u}function nH(e,t,n,i,o,r,s,a,c){for(let u=0;u<r.length;++u)o=Ylt(e,t,n,i,o,r[u],s[u],a,c);return o}function Ylt(e,t,n,i,o,r,s,a,c){let u=r.rectangle;a===_n.EAST&&e.tile.x===0?(u=se.clone(r.rectangle,iH),u.west-=R.TWO_PI,u.east-=R.TWO_PI):a===_n.WEST&&r.x===0&&(u=se.clone(r.rectangle,iH),u.west+=R.TWO_PI,u.east+=R.TWO_PI);let f=e.tile.rectangle,d,p;o>0&&(n.decodeTextureCoordinates(i,o-1,Zu),d=Zu.x,p=Zu.y);let g,m;switch(a){case _n.WEST:g=s.westIndicesSouthToNorth,m=!1;break;case _n.NORTH:g=s.northIndicesWestToEast,m=!0;break;case _n.EAST:g=s.eastIndicesNorthToSouth,m=!1;break;case _n.SOUTH:g=s.southIndicesEastToWest,m=!0;break}let x=r,b=e.tile,T=s.encoding,C=s.vertices,A=n.stride,E,v;T.hasWebMercatorT&&(E=Si.geodeticLatitudeToMercatorAngle(f.south),v=1/(Si.geodeticLatitudeToMercatorAngle(f.north)-E));for(let D=0;D<g.length;++D){let O=g[D],I=T.decodeTextureCoordinates(C,O,Zu);r2(x,b,I,I);let L=I.x,N=I.y,_=m?L:N;if(_<0||_>1||Math.abs(L-d)<R.EPSILON5&&Math.abs(N-p)<R.EPSILON5)continue;let S=Math.abs(L)<R.EPSILON5||Math.abs(L-1)<R.EPSILON5,w=Math.abs(N)<R.EPSILON5||Math.abs(N-1)<R.EPSILON5;if(S&&w)continue;let P=T.decodePosition(C,O,rv),M=T.decodeHeight(C,O),B;T.hasVertexNormals?B=T.getOctEncodedNormal(C,O,lK):(B=lK,B.x=0,B.y=0);let U=N;if(T.hasWebMercatorT){let G=R.lerp(f.south,f.north,N);U=(Si.geodeticLatitudeToMercatorAngle(G)-E)*v}let V;n.hasGeodeticSurfaceNormals&&(V=t.geodeticSurfaceNormal(P,dK)),n.encode(i,o*A,P,I,M,B,U,V),c.minimumHeight=Math.min(c.minimumHeight,M),c.maximumHeight=Math.max(c.maximumHeight,M),++o}return o}function R0e(e,t,n,i,o,r){let s,a,c;n?(s=0,a=e.length,c=1):(s=e.length-1,a=-1,c=-1);for(let u=s;u!==a;u+=c){let f=e[u],d=t[u];if(!hK(d,f))continue;let p;switch(i){case _n.WEST:p=f.westIndicesSouthToNorth;break;case _n.SOUTH:p=f.southIndicesEastToWest;break;case _n.EAST:p=f.eastIndicesNorthToSouth;break;case _n.NORTH:p=f.northIndicesWestToEast;break}let g=p[n?0:p.length-1];if(l(g))return f.encoding.decodeHeight(f.vertices,g)}}function hK(e,t){return l(t)&&(!l(e.data.fill)||!e.data.fill.changedThisFrame)}function O0e(e,t,n,i,o,r,s,a){let c,u,f,d,p,g=i[o?0:n.length-1],m=n[o?0:n.length-1];if(hK(g,m)&&(r===0?s===0?(c=o?m.northIndicesWestToEast:m.eastIndicesNorthToSouth,u=o,f=o):(c=o?m.eastIndicesNorthToSouth:m.southIndicesEastToWest,u=!o,f=!1):s===0?(c=o?m.westIndicesSouthToNorth:m.northIndicesWestToEast,u=!o,f=!0):(c=o?m.southIndicesEastToWest:m.westIndicesSouthToNorth,u=o,f=!o),c.length>0)){d=o?0:c.length-1,p=c[d],m.encoding.decodeTextureCoordinates(m.vertices,p,Zu);let x=r2(g,e.tile,Zu,Zu);if(x.x===r&&x.y===s)return fK(m,p,r,s,a),!0;if(d=Do(c,u?r:s,function(b,T){m.encoding.decodeTextureCoordinates(m.vertices,b,Zu);let C=r2(g,e.tile,Zu,Zu);return f?u?C.x-r:C.y-s:u?r-C.x:s-C.y}),d<0){if(d=~d,d>0&&d<c.length)return qlt(t,g,e.tile,m,c[d-1],c[d],r,s,u,a),!0}else return fK(m,c[d],r,s,a),!0}return!1}var Xlt=[new h,new h,new h,new h];function Klt(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=Xlt;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}var av=sv;function tr(e){this.lightingFadeOutDistance=65e5,this.lightingFadeInDistance=9e6,this.hasWaterMask=!1,this.oceanNormalMap=void 0,this.zoomedOutOceanSpecularIntensity=.5,this.enableLighting=!1,this.dynamicAtmosphereLighting=!1,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!1,this.shadows=yn.RECEIVE_ONLY,this.vertexShadowDarkness=.3,this.fillHighlightColor=void 0,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this.undergroundColor=void 0,this.undergroundColorAlphaByDistance=void 0,this.lambertDiffuseMultiplier=0,this.materialUniformMap=void 0,this._materialUniformMap=void 0,this._quadtree=void 0,this._terrainProvider=e.terrainProvider,this._imageryLayers=e.imageryLayers,this._surfaceShaderSet=e.surfaceShaderSet,this._renderState=void 0,this._blendRenderState=void 0,this._disableCullingRenderState=void 0,this._disableCullingBlendRenderState=void 0,this._errorEvent=new pe,this._removeLayerAddedListener=this._imageryLayers.layerAdded.addEventListener(tr.prototype._onLayerAdded,this),this._removeLayerRemovedListener=this._imageryLayers.layerRemoved.addEventListener(tr.prototype._onLayerRemoved,this),this._removeLayerMovedListener=this._imageryLayers.layerMoved.addEventListener(tr.prototype._onLayerMoved,this),this._removeLayerShownListener=this._imageryLayers.layerShownOrHidden.addEventListener(tr.prototype._onLayerShownOrHidden,this),this._imageryLayersUpdatedEvent=new pe,this._layerOrderChanged=!1,this._tilesToRenderByTextureCount=[],this._drawCommands=[],this._uniformMaps=[],this._usedDrawCommands=0,this._vertexArraysToDestroy=[],this._debug={wireframe:!1,boundingSphereTile:void 0},this._baseColor=void 0,this._firstPassInitialColor=void 0,this.baseColor=new H(0,0,.5,1),this._clippingPlanes=void 0,this._clippingPolygons=void 0,this.cartographicLimitRectangle=se.clone(se.MAX_VALUE),this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1,this._oldVerticalExaggeration=void 0,this._oldVerticalExaggerationRelativeHeight=void 0}Object.defineProperties(tr.prototype,{baseColor:{get:function(){return this._baseColor},set:function(e){this._baseColor=e,this._firstPassInitialColor=oe.fromColor(e,this._firstPassInitialColor)}},quadtree:{get:function(){return this._quadtree},set:function(e){this._quadtree=e}},tilingScheme:{get:function(){if(l(this._terrainProvider))return this._terrainProvider.tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},imageryLayersUpdatedEvent:{get:function(){return this._imageryLayersUpdatedEvent}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){this._terrainProvider!==e&&(this._terrainProvider=e,l(this._quadtree)&&this._quadtree.invalidateAllTiles())}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){cs.setOwner(e,this,"_clippingPlanes")}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){Gd.setOwner(e,this,"_clippingPolygons")}}});function Zlt(e,t){let n=e.loadingImagery;l(n)||(n=e.readyImagery);let i=t.loadingImagery;return l(i)||(i=t.readyImagery),n.imageryLayer._layerIndex-i.imageryLayer._layerIndex}tr.prototype.update=function(e){this._imageryLayers._update()};function $lt(e,t){let n=t.creditDisplay,i=e._terrainProvider;l(i)&&l(i.credit)&&n.addCreditToNextFrame(i.credit);let o=e._imageryLayers;for(let r=0,s=o.length;r<s;++r){let a=o.get(r);a.ready&&a.show&&l(a.imageryProvider.credit)&&n.addCreditToNextFrame(a.imageryProvider.credit)}}tr.prototype.initialize=function(e){this._imageryLayers.queueReprojectionCommands(e),this._layerOrderChanged&&(this._layerOrderChanged=!1,this._quadtree.forEachLoadedTile(function(i){i.data.imagery.sort(Zlt)})),$lt(this,e);let t=this._vertexArraysToDestroy,n=t.length;for(let i=0;i<n;++i)sd._freeVertexArray(t[i]);t.length=0};tr.prototype.beginUpdate=function(e){let t=this._tilesToRenderByTextureCount;for(let o=0,r=t.length;o<r;++o){let s=t[o];l(s)&&(s.length=0)}let n=this._clippingPlanes;l(n)&&n.enabled&&n.update(e);let i=this._clippingPolygons;l(i)&&i.enabled&&(i.update(e),i.queueCommands(e)),this._usedDrawCommands=0,this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1};tr.prototype.endUpdate=function(e){if(!l(this._renderState)){this._renderState=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:tc.LESS}}),this._blendRenderState=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:tc.LESS_OR_EQUAL},blending:un.ALPHA_BLEND});let s=He(this._renderState,!0);s.cull.enabled=!1,this._disableCullingRenderState=Ve.fromCache(s),s=He(this._blendRenderState,!0),s.cull.enabled=!1,this._disableCullingBlendRenderState=Ve.fromCache(s)}this._hasFillTilesThisFrame&&this._hasLoadedTilesThisFrame&&av.updateFillTiles(this,this._quadtree._tilesToRender,e,this._vertexArraysToDestroy);let t=this.quadtree,n=e.verticalExaggeration,i=e.verticalExaggerationRelativeHeight,o=this._oldVerticalExaggeration!==n||this._oldVerticalExaggerationRelativeHeight!==i;this._oldVerticalExaggeration=n,this._oldVerticalExaggerationRelativeHeight=i,o&&t.forEachLoadedTile(function(s){s.data.updateExaggeration(s,e,t)});let r=this._tilesToRenderByTextureCount;for(let s=0,a=r.length;s<a;++s){let c=r[s];if(l(c))for(let u=0,f=c.length;u<f;++u){let d=c[u],p=d.data.tileBoundingRegion;Tut(this,d,e),e.minimumTerrainHeight=Math.min(e.minimumTerrainHeight,p.minimumHeight)}}};function V0e(e,t){let n=t.globeTranslucencyState;if(n.translucent){let i=e.renderState.blending.enabled;n.pushDerivedCommands(e,i,t)}else t.commandList.push(e)}tr.prototype.updateForPick=function(e){let t=this._drawCommands;for(let n=0,i=this._usedDrawCommands;n<i;++n)V0e(t[n],e)};tr.prototype.cancelReprojections=function(){this._imageryLayers.cancelReprojections()};tr.prototype.getLevelMaximumGeometricError=function(e){return l(this._terrainProvider)?this._terrainProvider.getLevelMaximumGeometricError(e):0};tr.prototype.loadTile=function(e,t){let n=t.data,i=!0,o;l(n)&&(i=n.boundingVolumeSourceTile!==t||t._lastSelectionResult===Kn.CULLED_BUT_NEEDED,o=n.terrainState),sd.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i),n=t.data,i&&o!==t.data.terrainState&&this.computeTileVisibility(t,e,this.quadtree.occluders)!==fr.NONE&&n.boundingVolumeSourceTile===t&&(i=!1,sd.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i))};var Qlt=new ae,U0e=new se,Jlt=new se,eut=new fe;function sH(e,t){if(t.west<t.east)return t;let n=se.clone(t,Jlt);return se.center(e,eut).longitude>0?n.east=R.PI:n.west=-R.PI,n}function z0e(e,t){if(t.cameraUnderground||t.globeTranslucencyState.translucent)return!0;if(e.backFaceCulling)return!1;let n=e._clippingPlanes;if(l(n)&&n.enabled)return!0;let i=e._clippingPolygons;return!!(l(i)&&i.enabled||!se.equals(e.cartographicLimitRectangle,se.MAX_VALUE))}tr.prototype.computeTileVisibility=function(e,t,n){let i=this.computeDistanceToTile(e,t);e._distance=i;let o=z0e(this,t);if(t.fog.enabled&&!o&&R.fog(i,t.fog.density)>=1)return fr.NONE;let r=e.data,s=r.tileBoundingRegion;if(r.boundingVolumeSourceTile===void 0)return fr.PARTIAL;let a=t.cullingVolume,c=s.boundingVolume;l(c)||(c=s.boundingSphere),r.clippedByBoundaries=!1;let u=sH(e.rectangle,this.cartographicLimitRectangle),f=se.simpleIntersection(u,e.rectangle,U0e);if(!l(f))return fr.NONE;if(se.equals(f,e.rectangle)||(r.clippedByBoundaries=!0),t.mode!==ne.SCENE3D&&(c=Qlt,ae.fromRectangleWithHeights2D(e.rectangle,t.mapProjection,s.minimumHeight,s.maximumHeight,c),h.fromElements(c.center.z,c.center.x,c.center.y,c.center),t.mode===ne.MORPHING&&l(r.renderedMesh)&&(c=ae.union(s.boundingSphere,c,c))),!l(c))return fr.PARTIAL;let d=this._clippingPlanes;if(l(d)&&d.enabled){let b=d.computeIntersectionWithBoundingVolume(c);if(e.isClipped=b!==Gt.INSIDE,b===Gt.OUTSIDE)return fr.NONE}let p=this._clippingPolygons;if(l(p)&&p.enabled){let b=p.computeIntersectionWithBoundingVolume(s);e.isClipped=b!==Gt.OUTSIDE}let g,m=a.computeVisibility(c);if(m===Gt.OUTSIDE?g=fr.NONE:m===Gt.INTERSECTING?g=fr.PARTIAL:m===Gt.INSIDE&&(g=fr.FULL),g===fr.NONE)return g;let x=t.mode===ne.SCENE3D&&t.camera.frustum instanceof rn;if(t.mode===ne.SCENE3D&&!x&&l(n)&&!o){let b=r.occludeePointInScaledSpace;return!l(b)||n.ellipsoid.isScaledSpacePointVisiblePossiblyUnderEllipsoid(b,s.minimumHeight)?g:fr.NONE}return g};tr.prototype.canRefine=function(e){return l(e.data.terrainData)?!0:this.terrainProvider.getTileDataAvailable(e.x*2,e.y*2,e.level+1)!==void 0};var tut=[],nut=[];tr.prototype.canRenderWithoutLosingDetail=function(e,t){let n=e.data,i=tut;i.length=this._imageryLayers.length;let o=!1,r=!1,s;l(n)&&(o=n.terrainState===so.READY,r=!0,s=n.imagery);let a,c;for(a=0,c=i.length;a<c;++a)i[a]=r;if(l(s))for(a=0,c=s.length;a<c;++a){let d=s[a],p=d.loadingImagery,g=!l(p)||p.state===ai.FAILED||p.state===ai.INVALID,m=(d.loadingImagery||d.readyImagery).imageryLayer._layerIndex;i[m]=g&&i[m]}let u=this.quadtree._lastSelectionFrameNumber,f=nut;for(f.length=0,f.push(e.southwestChild,e.southeastChild,e.northwestChild,e.northeastChild);f.length>0;){let d=f.pop(),p=d._lastSelectionResultFrame===u?d._lastSelectionResult:Kn.NONE;if(p===Kn.RENDERED){let g=d.data;if(!l(g))continue;if(!o&&d.data.terrainState===so.READY)return!1;let m=d.data.imagery;for(a=0,c=m.length;a<c;++a){let x=m[a],b=x.loadingImagery,T=!l(b)||b.state===ai.FAILED||b.state===ai.INVALID,C=(x.loadingImagery||x.readyImagery).imageryLayer._layerIndex;if(T&&!i[C])return!1}}else p===Kn.REFINED&&f.push(d.southwestChild,d.southeastChild,d.northwestChild,d.northeastChild)}return!0};var iut=new h;tr.prototype.computeTileLoadPriority=function(e,t){let n=e.data;if(n===void 0)return 0;let i=n.tileBoundingRegion.boundingVolume;if(i===void 0)return 0;let o=t.camera.positionWC,r=t.camera.directionWC,s=h.subtract(i.center,o,iut),a=h.magnitude(s);return a<R.EPSILON5?0:(h.divideByScalar(s,a,s),(1-h.dot(s,r))*e._distance)};var N0e=new F,rH=new F,out=new oe,rut=new oe,sut=new oe,aut=new h,F0e=new h,cut=new h,lut=new h;tr.prototype.showTileThisFrame=function(e,t){let n=0,i=e.data.imagery;for(let a=0,c=i.length;a<c;++a){let u=i[a];l(u.readyImagery)&&u.readyImagery.imageryLayer.alpha!==0&&++n}let o=this._tilesToRenderByTextureCount[n];l(o)||(o=[],this._tilesToRenderByTextureCount[n]=o),o.push(e);let r=e.data;l(r.vertexArray)?this._hasLoadedTilesThisFrame=!0:this._hasFillTilesThisFrame=!0;let s=this._debug;++s.tilesRendered,s.texturesRendered+=n};var uut=[new h,new h,new h,new h];function B0e(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=uut;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}tr.prototype.computeDistanceToTile=function(e,t){fut(e,this,t);let n=e.data;if(n.boundingVolumeSourceTile===void 0)return 9999999999;let o=n.tileBoundingRegion,r=o.minimumHeight,s=o.maximumHeight;if(n.boundingVolumeSourceTile!==e){let c=t.camera.positionCartographic.height,u=Math.abs(c-r),f=Math.abs(c-s);u>f?(o.minimumHeight=r,o.maximumHeight=r):(o.minimumHeight=s,o.maximumHeight=s)}let a=o.distanceToCamera(t);return o.minimumHeight=r,o.maximumHeight=s,a};function fut(e,t,n){let i=e.data;i===void 0&&(i=e.data=new sd);let o=e.tilingScheme.ellipsoid;i.tileBoundingRegion===void 0&&(i.tileBoundingRegion=new Vf({computeBoundingVolumes:!1,rectangle:e.rectangle,ellipsoid:o,minimumHeight:0,maximumHeight:0}));let r=i.tileBoundingRegion,s=r.minimumHeight,a=r.maximumHeight,c=!1,u=e,f=i.mesh,d=i.terrainData;if(f!==void 0&&f.minimumHeight!==void 0&&f.maximumHeight!==void 0)r.minimumHeight=f.minimumHeight,r.maximumHeight=f.maximumHeight,c=!0;else if(d!==void 0&&d._minimumHeight!==void 0&&d._maximumHeight!==void 0)r.minimumHeight=d._minimumHeight,r.maximumHeight=d._maximumHeight;else{r.minimumHeight=Number.NaN,r.maximumHeight=Number.NaN;let p=e.parent;for(;p!==void 0;){let g=p.data;if(g!==void 0){let m=g.mesh,x=g.terrainData;if(m!==void 0&&m.minimumHeight!==void 0&&m.maximumHeight!==void 0){r.minimumHeight=m.minimumHeight,r.maximumHeight=m.maximumHeight;break}else if(x!==void 0&&x._minimumHeight!==void 0&&x._maximumHeight!==void 0){r.minimumHeight=x._minimumHeight,r.maximumHeight=x._maximumHeight;break}}p=p.parent}u=p}if(u!==void 0){let p=n.verticalExaggeration,g=n.verticalExaggerationRelativeHeight;if(p!==1&&(c=!1,r.minimumHeight=pr.getHeight(r.minimumHeight,p,g),r.maximumHeight=pr.getHeight(r.maximumHeight,p,g)),c)i.boundingVolumeIsFromMesh||(r._orientedBoundingBox=Sn.clone(f.orientedBoundingBox,r._orientedBoundingBox),r._boundingSphere=ae.clone(f.boundingSphere3D,r._boundingSphere),i.occludeePointInScaledSpace=h.clone(f.occludeePointInScaledSpace,i.occludeePointInScaledSpace),l(i.occludeePointInScaledSpace)||(i.occludeePointInScaledSpace=B0e(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace)));else{let x=r._orientedBoundingBox===void 0||r._boundingSphere===void 0;(r.minimumHeight!==s||r.maximumHeight!==a||x)&&(r.computeBoundingVolumes(o),i.occludeePointInScaledSpace=B0e(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace))}i.boundingVolumeSourceTile=u,i.boundingVolumeIsFromMesh=c}else i.boundingVolumeSourceTile=void 0,i.boundingVolumeIsFromMesh=!1}tr.prototype.isDestroyed=function(){return!1};tr.prototype.destroy=function(){return this._tileProvider=this._tileProvider&&this._tileProvider.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._clippingPolygons=this._clippingPolygons&&this._clippingPolygons.destroy(),this._removeLayerAddedListener=this._removeLayerAddedListener&&this._removeLayerAddedListener(),this._removeLayerRemovedListener=this._removeLayerRemovedListener&&this._removeLayerRemovedListener(),this._removeLayerMovedListener=this._removeLayerMovedListener&&this._removeLayerMovedListener(),this._removeLayerShownListener=this._removeLayerShownListener&&this._removeLayerShownListener(),ue(this)};function dut(e,t,n){return function(i){let o,r,s=-1,a=i.data.imagery,c=a.length,u;for(u=0;u<c;++u)if(o=a[u],r=y(o.readyImagery,o.loadingImagery),r.imageryLayer===t){s=u;break}if(s!==-1){let f=s+e;if(o=a[f],r=l(o)?y(o.readyImagery,o.loadingImagery):void 0,!l(r)||r.imageryLayer!==t)return!t._createTileImagerySkeletons(i,n,f);for(u=s;u<f;++u)a[u].freeResources();a.splice(s,e)}return!0}}tr.prototype._onLayerAdded=function(e,t){if(!this.isDestroyed()&&e.show){let n=this._terrainProvider,i=this,o=this._imageryLayersUpdatedEvent,r=function(){e._imageryCache={},i._quadtree.forEachLoadedTile(function(s){if(l(s._loadedCallbacks[e._layerIndex]))return;let a,c=s.data.imagery,u=c.length,f=-1,d=0;for(a=0;a<u;++a){let g=c[a];if(y(g.readyImagery,g.loadingImagery).imageryLayer===e)f===-1&&(f=a),++d;else if(f!==-1)break}if(f===-1)return;let p=f+d;e._createTileImagerySkeletons(s,n,p)&&(s._loadedCallbacks[e._layerIndex]=dut(d,e,n),s.state=qs.LOADING)})};if(e.ready){let s=e.imageryProvider;s._reload=r}this._quadtree.forEachLoadedTile(function(s){e._createTileImagerySkeletons(s,n)&&(s.state=qs.LOADING,s.level!==0&&(s._lastSelectionResultFrame!==i.quadtree._lastSelectionFrameNumber||s._lastSelectionResult!==Kn.RENDERED)&&(s.renderable=!1))}),this._layerOrderChanged=!0,o.raiseEvent()}};tr.prototype._onLayerRemoved=function(e,t){this._quadtree.forEachLoadedTile(function(n){let i=n.data.imagery,o=-1,r=0;for(let s=0,a=i.length;s<a;++s){let c=i[s],u=c.loadingImagery;if(l(u)||(u=c.readyImagery),u.imageryLayer===e)o===-1&&(o=s),c.freeResources(),++r;else if(o!==-1)break}o!==-1&&i.splice(o,r)}),l(e.imageryProvider)&&(e.imageryProvider._reload=void 0),this._imageryLayersUpdatedEvent.raiseEvent()};tr.prototype._onLayerMoved=function(e,t,n){this._layerOrderChanged=!0,this._imageryLayersUpdatedEvent.raiseEvent()};tr.prototype._onLayerShownOrHidden=function(e,t,n){n?this._onLayerAdded(e,t):this._onLayerRemoved(e,t)};var hut=new F,mut=new F;function k0e(e,t){let n={u_initialColor:function(){return this.properties.initialColor},u_fillHighlightColor:function(){return this.properties.fillHighlightColor},u_zoomedOutOceanSpecularIntensity:function(){return this.properties.zoomedOutOceanSpecularIntensity},u_oceanNormalMap:function(){return this.properties.oceanNormalMap},u_atmosphereLightIntensity:function(){return this.properties.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return this.properties.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return this.properties.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return this.properties.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return this.properties.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return this.properties.atmosphereMieAnisotropy},u_lightingFadeDistance:function(){return this.properties.lightingFadeDistance},u_nightFadeDistance:function(){return this.properties.nightFadeDistance},u_center3D:function(){return this.properties.center3D},u_verticalExaggerationAndRelativeHeight:function(){return this.properties.verticalExaggerationAndRelativeHeight},u_tileRectangle:function(){return this.properties.tileRectangle},u_modifiedModelView:function(){let i=e.context.uniformState.view,o=F.multiplyByPoint(i,this.properties.rtc,F0e);return F.setTranslation(i,o,N0e),N0e},u_modifiedModelViewProjection:function(){let i=e.context.uniformState.view,o=e.context.uniformState.projection,r=F.multiplyByPoint(i,this.properties.rtc,F0e);return F.setTranslation(i,r,rH),F.multiply(o,rH,rH),rH},u_dayTextures:function(){return this.properties.dayTextures},u_dayTextureTranslationAndScale:function(){return this.properties.dayTextureTranslationAndScale},u_dayTextureTexCoordsRectangle:function(){return this.properties.dayTextureTexCoordsRectangle},u_dayTextureUseWebMercatorT:function(){return this.properties.dayTextureUseWebMercatorT},u_dayTextureAlpha:function(){return this.properties.dayTextureAlpha},u_dayTextureNightAlpha:function(){return this.properties.dayTextureNightAlpha},u_dayTextureDayAlpha:function(){return this.properties.dayTextureDayAlpha},u_dayTextureBrightness:function(){return this.properties.dayTextureBrightness},u_dayTextureContrast:function(){return this.properties.dayTextureContrast},u_dayTextureHue:function(){return this.properties.dayTextureHue},u_dayTextureSaturation:function(){return this.properties.dayTextureSaturation},u_dayTextureOneOverGamma:function(){return this.properties.dayTextureOneOverGamma},u_dayIntensity:function(){return this.properties.dayIntensity},u_southAndNorthLatitude:function(){return this.properties.southAndNorthLatitude},u_southMercatorYAndOneOverHeight:function(){return this.properties.southMercatorYAndOneOverHeight},u_waterMask:function(){return this.properties.waterMask},u_waterMaskTranslationAndScale:function(){return this.properties.waterMaskTranslationAndScale},u_minMaxHeight:function(){return this.properties.minMaxHeight},u_scaleAndBias:function(){return this.properties.scaleAndBias},u_dayTextureSplit:function(){return this.properties.dayTextureSplit},u_dayTextureCutoutRectangles:function(){return this.properties.dayTextureCutoutRectangles},u_clippingPlanes:function(){let i=t._clippingPlanes;return l(i)&&l(i.texture)?i.texture:e.context.defaultTexture},u_cartographicLimitRectangle:function(){return this.properties.localizedCartographicLimitRectangle},u_clippingPlanesMatrix:function(){let i=t._clippingPlanes,o=l(i)?F.multiply(e.context.uniformState.view,i.modelMatrix,hut):F.IDENTITY;return F.inverseTranspose(o,mut)},u_clippingPlanesEdgeStyle:function(){let i=this.properties.clippingPlanesEdgeColor;return i.alpha=this.properties.clippingPlanesEdgeWidth,i},u_clippingDistance:function(){let i=t._clippingPolygons.clippingTexture;return l(i)?i:e.context.defaultTexture},u_clippingExtents:function(){let i=t._clippingPolygons.extentsTexture;return l(i)?i:e.context.defaultTexture},u_minimumBrightness:function(){return e.fog.minimumBrightness},u_hsbShift:function(){return this.properties.hsbShift},u_colorsToAlpha:function(){return this.properties.colorsToAlpha},u_frontFaceAlphaByDistance:function(){return this.properties.frontFaceAlphaByDistance},u_backFaceAlphaByDistance:function(){return this.properties.backFaceAlphaByDistance},u_translucencyRectangle:function(){return this.properties.localizedTranslucencyRectangle},u_undergroundColor:function(){return this.properties.undergroundColor},u_undergroundColorAlphaByDistance:function(){return this.properties.undergroundColorAlphaByDistance},u_lambertDiffuseMultiplier:function(){return this.properties.lambertDiffuseMultiplier},u_vertexShadowDarkness:function(){return this.properties.vertexShadowDarkness},properties:{initialColor:new oe(0,0,.5,1),fillHighlightColor:new H(0,0,0,0),zoomedOutOceanSpecularIntensity:.5,oceanNormalMap:void 0,lightingFadeDistance:new z(65e5,9e6),nightFadeDistance:new z(1e7,4e7),atmosphereLightIntensity:10,atmosphereRayleighCoefficient:new h(55e-7,13e-6,284e-7),atmosphereMieCoefficient:new h(21e-6,21e-6,21e-6),atmosphereRayleighScaleHeight:1e4,atmosphereMieScaleHeight:3200,atmosphereMieAnisotropy:.9,hsbShift:new h,center3D:void 0,rtc:new h,modifiedModelView:new F,tileRectangle:new oe,verticalExaggerationAndRelativeHeight:new z(1,0),dayTextures:[],dayTextureTranslationAndScale:[],dayTextureTexCoordsRectangle:[],dayTextureUseWebMercatorT:[],dayTextureAlpha:[],dayTextureNightAlpha:[],dayTextureDayAlpha:[],dayTextureBrightness:[],dayTextureContrast:[],dayTextureHue:[],dayTextureSaturation:[],dayTextureOneOverGamma:[],dayTextureSplit:[],dayTextureCutoutRectangles:[],dayIntensity:0,colorsToAlpha:[],southAndNorthLatitude:new z,southMercatorYAndOneOverHeight:new z,waterMask:void 0,waterMaskTranslationAndScale:new oe,minMaxHeight:new z,scaleAndBias:new F,clippingPlanesEdgeColor:H.clone(H.WHITE),clippingPlanesEdgeWidth:0,localizedCartographicLimitRectangle:new oe,frontFaceAlphaByDistance:new oe,backFaceAlphaByDistance:new oe,localizedTranslucencyRectangle:new oe,undergroundColor:H.clone(H.TRANSPARENT),undergroundColorAlphaByDistance:new oe,lambertDiffuseMultiplier:0,vertexShadowDarkness:0}};return l(t.materialUniformMap)?_t(n,t.materialUniformMap):n}function put(e,t,n){let i=n.data,o,r;if(l(i.vertexArray)?(o=i.mesh,r=i.vertexArray):l(i.fill)&&l(i.fill.vertexArray)&&(o=i.fill.mesh,r=i.fill.vertexArray),!(!l(o)||!l(r))){if(l(i.wireframeVertexArray)){if(i.wireframeVertexArray.mesh===o)return;i.wireframeVertexArray.destroy(),i.wireframeVertexArray=void 0}i.wireframeVertexArray=_ut(e,r,o),i.wireframeVertexArray.mesh=o}}function _ut(e,t,n){let o={indices:n.indices,primitiveType:Le.TRIANGLES};Nn.toWireframe(o);let r=o.indices,s=ct.createIndexBuffer({context:e,typedArray:r,usage:Fe.STATIC_DRAW,indexDatatype:Ne.fromSizeInBytes(r.BYTES_PER_ELEMENT)});return new ei({context:e,attributes:t._attributes,indexBuffer:s})}var H0e,G0e,aH;(function(){let e=new xt({geometry:Cd.fromDimensions({dimensions:new h(2,2,2)})}),t=new xt({geometry:new y_({radius:1})}),n=new F,i,o;function r(s){return new vn({geometryInstances:s,appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1})}H0e=function(s,a){return s===i||(aH(),i=s,n=F.fromRotationTranslation(s.halfAxes,s.center,n),e.modelMatrix=n,e.attributes.color=zt.fromColor(a),o=r(e)),o},G0e=function(s,a){return s===i||(aH(),i=s,n=F.fromTranslation(s.center,n),n=F.multiplyByUniformScale(n,s.radius,n),t.modelMatrix=n,t.attributes.color=zt.fromColor(a),o=r(t)),o},aH=function(){l(o)&&(o.destroy(),o=void 0,i=void 0)}})();var gut=new oe(0,0,0,0),yut={frameState:void 0,surfaceTile:void 0,numberOfDayTextures:void 0,applyBrightness:void 0,applyContrast:void 0,applyHue:void 0,applySaturation:void 0,applyGamma:void 0,applyAlpha:void 0,applyDayNightAlpha:void 0,applySplit:void 0,showReflectiveOcean:void 0,showOceanWaves:void 0,enableLighting:void 0,dynamicAtmosphereLighting:void 0,dynamicAtmosphereLightingFromSun:void 0,showGroundAtmosphere:void 0,perFragmentGroundAtmosphere:void 0,hasVertexNormals:void 0,useWebMercatorProjection:void 0,enableFog:void 0,enableClippingPlanes:void 0,clippingPlanes:void 0,enableClippingPolygons:void 0,clippingPolygons:void 0,clippedByBoundaries:void 0,hasImageryLayerCutout:void 0,colorCorrect:void 0,colorToAlpha:void 0,hasGeodeticSurfaceNormals:void 0,hasExaggeration:void 0},xut=H.TRANSPARENT,but=new Mt;function Tut(e,t,n){let i=t.data;l(i.vertexArray)||(i.fill===void 0&&(i.fill=new av(t)),i.fill.update(e,n));let o=n.creditDisplay,r=i.terrainData;if(l(r)&&l(r.credits)){let me=r.credits;for(let Ae=0,Ut=me.length;Ae<Ut;++Ae)o.addCreditToNextFrame(me[Ae])}let s=Nt.maximumTextureImageUnits,a=i.waterMaskTexture,c=i.waterMaskTranslationAndScale;!l(a)&&l(i.fill)&&(a=i.fill.waterMaskTexture,c=i.fill.waterMaskTranslationAndScale);let u=n.cameraUnderground,f=n.globeTranslucencyState,d=f.translucent,p=f.frontFaceAlphaByDistance,g=f.backFaceAlphaByDistance,m=f.rectangle,x=y(e.undergroundColor,xut),b=y(e.undergroundColorAlphaByDistance,but),T=z0e(e,n)&&n.mode===ne.SCENE3D&&x.alpha>0&&(b.nearValue>0||b.farValue>0),C=e.lambertDiffuseMultiplier,A=e.vertexShadowDarkness,E=e.hasWaterMask&&l(a),v=e.oceanNormalMap,D=E&&l(v),O=e.terrainProvider,I=l(O)&&e.terrainProvider.hasVertexNormals,L=n.fog.enabled&&n.fog.renderable&&!u,N=e.showGroundAtmosphere&&n.mode===ne.SCENE3D,_=yn.castShadows(e.shadows)&&!d,S=yn.receiveShadows(e.shadows)&&!d,w=e.hueShift,P=e.saturationShift,M=e.brightnessShift,B=!(R.equalsEpsilon(w,0,R.EPSILON7)&&R.equalsEpsilon(P,0,R.EPSILON7)&&R.equalsEpsilon(M,0,R.EPSILON7)),U=!1;if(N){let me=h.magnitude(n.camera.positionWC),Ae=e.nightFadeOutDistance;U=me>Ae}E&&--s,D&&--s,l(n.shadowState)&&n.shadowState.shadowsEnabled&&--s,l(e.clippingPlanes)&&e.clippingPlanes.enabled&&--s,l(e.clippingPolygons)&&e.clippingPolygons.enabled&&(--s,--s),s-=f.numberOfTextureUniforms;let V=i.renderedMesh,G=V.center,k=V.encoding,Y=i.tileBoundingRegion,W=n.verticalExaggeration,Q=n.verticalExaggerationRelativeHeight,j=W!==1,K=k.hasGeodeticSurfaceNormals,Z=out,he=0,be=0,re=0,_e=0,xe=!1;if(n.mode!==ne.SCENE3D){let me=n.mapProjection,Ae=me.project(se.southwest(t.rectangle),cut),Ut=me.project(se.northeast(t.rectangle),lut);if(Z.x=Ae.x,Z.y=Ae.y,Z.z=Ut.x,Z.w=Ut.y,n.mode!==ne.MORPHING&&(G=aut,G.x=0,G.y=(Z.z+Z.x)*.5,G.z=(Z.w+Z.y)*.5,Z.x-=G.y,Z.y-=G.z,Z.z-=G.y,Z.w-=G.z),n.mode===ne.SCENE2D&&k.quantization===js.BITS12){let ut=1/(Math.pow(2,12)-1)*.5,Ai=(Z.z-Z.x)*ut,po=(Z.w-Z.y)*ut;Z.x-=Ai,Z.y-=po,Z.z+=Ai,Z.w+=po}me instanceof Si&&(he=t.rectangle.south,be=t.rectangle.north,re=Si.geodeticLatitudeToMercatorAngle(he),_e=1/(Si.geodeticLatitudeToMercatorAngle(be)-re),xe=!0)}let Ce=yut;Ce.frameState=n,Ce.surfaceTile=i,Ce.showReflectiveOcean=E,Ce.showOceanWaves=D,Ce.enableLighting=e.enableLighting,Ce.dynamicAtmosphereLighting=e.dynamicAtmosphereLighting,Ce.dynamicAtmosphereLightingFromSun=e.dynamicAtmosphereLightingFromSun,Ce.showGroundAtmosphere=N,Ce.atmosphereLightIntensity=e.atmosphereLightIntensity,Ce.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,Ce.atmosphereMieCoefficient=e.atmosphereMieCoefficient,Ce.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,Ce.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,Ce.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,Ce.perFragmentGroundAtmosphere=U,Ce.hasVertexNormals=I,Ce.useWebMercatorProjection=xe,Ce.clippedByBoundaries=i.clippedByBoundaries,Ce.hasGeodeticSurfaceNormals=K,Ce.hasExaggeration=j;let we=i.imagery,Oe=0,ke=we.length,At=e.showSkirts&&!u&&!d,Bt=e.backFaceCulling&&!u&&!d,rt=Bt?e._renderState:e._disableCullingRenderState,Qe=Bt?e._blendRenderState:e._disableCullingBlendRenderState,Kt=rt,ht=e._firstPassInitialColor,mt=n.context;if(l(e._debug.boundingSphereTile)||aH(),e._materialUniformMap!==e.materialUniformMap){e._materialUniformMap=e.materialUniformMap;let me=e._drawCommands.length;for(let Ae=0;Ae<me;++Ae)e._uniformMaps[Ae]=k0e(n,e)}do{let me=0,Ae,Ut;if(e._drawCommands.length<=e._usedDrawCommands?(Ae=new Ze,Ae.owner=t,Ae.cull=!1,Ae.boundingVolume=new ae,Ae.orientedBoundingBox=void 0,Ut=k0e(n,e),e._drawCommands.push(Ae),e._uniformMaps.push(Ut)):(Ae=e._drawCommands[e._usedDrawCommands],Ut=e._uniformMaps[e._usedDrawCommands]),Ae.owner=t,++e._usedDrawCommands,t===e._debug.boundingSphereTile){let xa=Y.boundingVolume,Wa=Y.boundingSphere;l(xa)?H0e(xa,H.RED).update(n):l(Wa)&&G0e(Wa,H.RED).update(n)}let ut=Ut.properties;oe.clone(ht,ut.initialColor),ut.oceanNormalMap=v,ut.lightingFadeDistance.x=e.lightingFadeOutDistance,ut.lightingFadeDistance.y=e.lightingFadeInDistance,ut.nightFadeDistance.x=e.nightFadeOutDistance,ut.nightFadeDistance.y=e.nightFadeInDistance,ut.atmosphereLightIntensity=e.atmosphereLightIntensity,ut.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,ut.atmosphereMieCoefficient=e.atmosphereMieCoefficient,ut.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,ut.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,ut.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,ut.zoomedOutOceanSpecularIntensity=e.zoomedOutOceanSpecularIntensity;let Ai=u?g:p,po=u?p:g;l(Ai)&&(oe.fromElements(Ai.near,Ai.nearValue,Ai.far,Ai.farValue,ut.frontFaceAlphaByDistance),oe.fromElements(po.near,po.nearValue,po.far,po.farValue,ut.backFaceAlphaByDistance)),oe.fromElements(b.near,b.nearValue,b.far,b.farValue,ut.undergroundColorAlphaByDistance),H.clone(x,ut.undergroundColor),ut.lambertDiffuseMultiplier=C,ut.vertexShadowDarkness=A;let hs=!l(i.vertexArray)&&l(e.fillHighlightColor)&&e.fillHighlightColor.alpha>0;hs&&H.clone(e.fillHighlightColor,ut.fillHighlightColor),ut.verticalExaggerationAndRelativeHeight.x=W,ut.verticalExaggerationAndRelativeHeight.y=Q,ut.center3D=V.center,h.clone(G,ut.rtc),oe.clone(Z,ut.tileRectangle),ut.southAndNorthLatitude.x=he,ut.southAndNorthLatitude.y=be,ut.southMercatorYAndOneOverHeight.x=re,ut.southMercatorYAndOneOverHeight.y=_e;let es=rut,Ur=sH(t.rectangle,e.cartographicLimitRectangle),Wo=sut,Be=sH(t.rectangle,m);h.fromElements(w,P,M,ut.hsbShift);let Ke=t.rectangle,Xe=1/Ke.width,Ye=1/Ke.height;es.x=(Ur.west-Ke.west)*Xe,es.y=(Ur.south-Ke.south)*Ye,es.z=(Ur.east-Ke.west)*Xe,es.w=(Ur.north-Ke.south)*Ye,oe.clone(es,ut.localizedCartographicLimitRectangle),Wo.x=(Be.west-Ke.west)*Xe,Wo.y=(Be.south-Ke.south)*Ye,Wo.z=(Be.east-Ke.west)*Xe,Wo.w=(Be.north-Ke.south)*Ye,oe.clone(Wo,ut.localizedTranslucencyRectangle);let ft=L&&R.fog(t._distance,n.fog.density)>R.EPSILON3;B=B&&(ft||N);let Wt=!1,wn=!1,qn=!1,_o=!1,za=!1,ya=!1,or=!1,Zi=!1,Ps=!1,ts=!1;for(;me<s&&Oe<ke;){let xa=we[Oe],Wa=xa.readyImagery;if(++Oe,!l(Wa)||Wa.imageryLayer.alpha===0)continue;let rf=xa.useWebMercatorT?Wa.textureWebMercator:Wa.texture,Tr=Wa.imageryLayer;l(xa.textureTranslationAndScale)||(xa.textureTranslationAndScale=Tr._calculateTextureTranslationAndScale(t,xa)),ut.dayTextures[me]=rf,ut.dayTextureTranslationAndScale[me]=xa.textureTranslationAndScale,ut.dayTextureTexCoordsRectangle[me]=xa.textureCoordinateRectangle,ut.dayTextureUseWebMercatorT[me]=xa.useWebMercatorT,ut.dayTextureAlpha[me]=Tr.alpha,ya=ya||ut.dayTextureAlpha[me]!==1,ut.dayTextureNightAlpha[me]=Tr.nightAlpha,or=or||ut.dayTextureNightAlpha[me]!==1,ut.dayTextureDayAlpha[me]=Tr.dayAlpha,or=or||ut.dayTextureDayAlpha[me]!==1,ut.dayTextureBrightness[me]=Tr.brightness,Wt=Wt||ut.dayTextureBrightness[me]!==da.DEFAULT_BRIGHTNESS,ut.dayTextureContrast[me]=Tr.contrast,wn=wn||ut.dayTextureContrast[me]!==da.DEFAULT_CONTRAST,ut.dayTextureHue[me]=Tr.hue,qn=qn||ut.dayTextureHue[me]!==da.DEFAULT_HUE,ut.dayTextureSaturation[me]=Tr.saturation,_o=_o||ut.dayTextureSaturation[me]!==da.DEFAULT_SATURATION,ut.dayTextureOneOverGamma[me]=1/Tr.gamma,za=za||ut.dayTextureOneOverGamma[me]!==1/da.DEFAULT_GAMMA,ut.dayTextureSplit[me]=Tr.splitDirection,Zi=Zi||ut.dayTextureSplit[me]!==0;let sf=ut.dayTextureCutoutRectangles[me];if(l(sf)||(sf=ut.dayTextureCutoutRectangles[me]=new oe),oe.clone(oe.ZERO,sf),l(Tr.cutoutRectangle)){let ns=sH(Ke,Tr.cutoutRectangle),jt=se.simpleIntersection(ns,Ke,U0e);Ps=l(jt)||Ps,sf.x=(ns.west-Ke.west)*Xe,sf.y=(ns.south-Ke.south)*Ye,sf.z=(ns.east-Ke.west)*Xe,sf.w=(ns.north-Ke.south)*Ye}let af=ut.colorsToAlpha[me];l(af)||(af=ut.colorsToAlpha[me]=new oe);let W0=l(Tr.colorToAlpha)&&Tr.colorToAlphaThreshold>0;if(ts=ts||W0,W0){let ns=Tr.colorToAlpha;af.x=ns.red,af.y=ns.green,af.z=ns.blue,af.w=Tr.colorToAlphaThreshold}else af.w=-1;if(l(Wa.credits)){let ns=Wa.credits;for(let jt=0,Se=ns.length;jt<Se;++jt)o.addCreditToNextFrame(ns[jt])}++me}ut.dayTextures.length=me,ut.waterMask=a,oe.clone(c,ut.waterMaskTranslationAndScale),ut.minMaxHeight.x=k.minimumHeight,ut.minMaxHeight.y=k.maximumHeight,F.clone(k.matrix,ut.scaleAndBias);let Mc=e._clippingPlanes,Lo=l(Mc)&&Mc.enabled&&t.isClipped;Lo&&(ut.clippingPlanesEdgeColor=H.clone(Mc.edgeColor,ut.clippingPlanesEdgeColor),ut.clippingPlanesEdgeWidth=Mc.edgeWidth);let br=e._clippingPolygons,Ha=l(br)&&br.enabled&&t.isClipped;Ce.numberOfDayTextures=me,Ce.applyBrightness=Wt,Ce.applyContrast=wn,Ce.applyHue=qn,Ce.applySaturation=_o,Ce.applyGamma=za,Ce.applyAlpha=ya,Ce.applyDayNightAlpha=or,Ce.applySplit=Zi,Ce.enableFog=ft,Ce.enableClippingPlanes=Lo,Ce.clippingPlanes=Mc,Ce.enableClippingPolygons=Ha,Ce.clippingPolygons=br,Ce.hasImageryLayerCutout=Ps,Ce.colorCorrect=B,Ce.highlightFillTile=hs,Ce.colorToAlpha=ts,Ce.showUndergroundColor=T,Ce.translucent=d;let Xs=i.renderedMesh.indices.length;At||(Xs=i.renderedMesh.indexCountWithoutSkirts),Ae.shaderProgram=e._surfaceShaderSet.getShaderProgram(Ce),Ae.castShadows=_,Ae.receiveShadows=S,Ae.renderState=Kt,Ae.primitiveType=Le.TRIANGLES,Ae.vertexArray=i.vertexArray||i.fill.vertexArray,Ae.count=Xs,Ae.uniformMap=Ut,Ae.pass=Ee.GLOBE,e._debug.wireframe&&(put(mt,e,t),l(i.wireframeVertexArray)&&(Ae.vertexArray=i.wireframeVertexArray,Ae.primitiveType=Le.LINES,Ae.count=Xs*2));let Ga=Ae.boundingVolume,Tg=Ae.orientedBoundingBox;n.mode!==ne.SCENE3D?(ae.fromRectangleWithHeights2D(t.rectangle,n.mapProjection,Y.minimumHeight,Y.maximumHeight,Ga),h.fromElements(Ga.center.z,Ga.center.x,Ga.center.y,Ga.center),n.mode===ne.MORPHING&&(Ga=ae.union(Y.boundingSphere,Ga,Ga))):(Ae.boundingVolume=ae.clone(Y.boundingSphere,Ga),Ae.orientedBoundingBox=Sn.clone(Y.boundingVolume,Tg)),Ae.dirty=!0,d&&f.updateDerivedCommands(Ae,n),V0e(Ae,n),Kt=Qe,ht=gut}while(Oe<ke)}var s2=tr;function W0e(){this._enabled=!1,this._frontFaceAlpha=1,this._frontFaceAlphaByDistance=void 0,this._backFaceAlpha=1,this._backFaceAlphaByDistance=void 0,this._rectangle=se.clone(se.MAX_VALUE)}Object.defineProperties(W0e.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabled=e}},frontFaceAlpha:{get:function(){return this._frontFaceAlpha},set:function(e){this._frontFaceAlpha=e}},frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance},set:function(e){this._frontFaceAlphaByDistance=Mt.clone(e,this._frontFaceAlphaByDistance)}},backFaceAlpha:{get:function(){return this._backFaceAlpha},set:function(e){this._backFaceAlpha=e}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance},set:function(e){this._backFaceAlphaByDistance=Mt.clone(e,this._backFaceAlphaByDistance)}},rectangle:{get:function(){return this._rectangle},set:function(e){l(e)||(e=se.clone(se.MAX_VALUE)),se.clone(e,this._rectangle)}}});var a2=W0e;function Ds(){this._layers=[],this.layerAdded=new pe,this.layerRemoved=new pe,this.layerMoved=new pe,this.layerShownOrHidden=new pe}Object.defineProperties(Ds.prototype,{length:{get:function(){return this._layers.length}}});Ds.prototype.add=function(e,t){l(t)?this._layers.splice(t,0,e):(t=this._layers.length,this._layers.push(e)),this._update(),this.layerAdded.raiseEvent(e,t);let i=e.readyEvent.addEventListener(()=>{this.layerShownOrHidden.raiseEvent(e,e._layerIndex,e.show),i()})};Ds.prototype.addImageryProvider=function(e,t){let n=new da(e);return this.add(n,t),n};Ds.prototype.remove=function(e,t){t=y(t,!0);let n=this._layers.indexOf(e);return n!==-1?(this._layers.splice(n,1),this._update(),this.layerRemoved.raiseEvent(e,n),t&&e.destroy(),!0):!1};Ds.prototype.removeAll=function(e){e=y(e,!0);let t=this._layers;for(let n=0,i=t.length;n<i;n++){let o=t[n];this.layerRemoved.raiseEvent(o,n),e&&o.destroy()}this._layers=[]};Ds.prototype.contains=function(e){return this.indexOf(e)!==-1};Ds.prototype.indexOf=function(e){return this._layers.indexOf(e)};Ds.prototype.get=function(e){return this._layers[e]};function cH(e,t){return e.indexOf(t)}function j0e(e,t,n){let i=e._layers;if(t=R.clamp(t,0,i.length-1),n=R.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,e._update(),e.layerMoved.raiseEvent(o,n,t)}Ds.prototype.raise=function(e){let t=cH(this._layers,e);j0e(this,t,t+1)};Ds.prototype.lower=function(e){let t=cH(this._layers,e);j0e(this,t,t-1)};Ds.prototype.raiseToTop=function(e){let t=cH(this._layers,e);t!==this._layers.length-1&&(this._layers.splice(t,1),this._layers.push(e),this._update(),this.layerMoved.raiseEvent(e,this._layers.length-1,t))};Ds.prototype.lowerToBottom=function(e){let t=cH(this._layers,e);t!==0&&(this._layers.splice(t,1),this._layers.splice(0,0,e),this._update(),this.layerMoved.raiseEvent(e,0,t))};var Aut=new se;function q0e(e,t,n,i){let o=e.globe._surface._tilesToRender,r;for(let a=0;!l(r)&&a<o.length;++a){let c=o[a];se.contains(c.rectangle,t)&&(r=c)}if(!l(r))return;let s=r.data.imagery;for(let a=s.length-1;a>=0;--a){let c=s[a],u=c.readyImagery;if(!l(u)||!u.imageryLayer.ready)continue;let f=u.imageryLayer.imageryProvider;if(n&&!l(f.pickFeatures)||!se.contains(u.rectangle,t))continue;let d=Aut,p=1/1024;d.west=R.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.x-p),d.east=R.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.z+p),d.south=R.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.y-p),d.north=R.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.w+p),se.contains(d,t)&&i(u)}}Ds.prototype.pickImageryLayers=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),o=[];if(q0e(t,i,!1,function(r){o.push(r.imageryLayer)}),o.length!==0)return o};Ds.prototype.pickImageryLayerFeatures=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),o=[],r=[];if(q0e(t,i,!0,function(s){if(!s.imageryLayer.ready)return;let c=s.imageryLayer.imageryProvider.pickFeatures(s.x,s.y,s.level,i.longitude,i.latitude);l(c)&&(o.push(c),r.push(s.imageryLayer))}),o.length!==0)return Promise.all(o).then(function(s){let a=[];for(let c=0;c<s.length;++c){let u=s[c],f=r[c];if(l(u)&&u.length>0)for(let d=0;d<u.length;++d){let p=u[d];p.imageryLayer=f,l(p.position)||(p.position=i),a.push(p)}}return a})};Ds.prototype.queueReprojectionCommands=function(e){let t=this._layers;for(let n=0,i=t.length;n<i;++n)t[n].queueReprojectionCommands(e)};Ds.prototype.cancelReprojections=function(){let e=this._layers;for(let t=0,n=e.length;t<n;++t)e[t].cancelReprojections()};Ds.prototype.isDestroyed=function(){return!1};Ds.prototype.destroy=function(){return this.removeAll(!0),ue(this)};Ds.prototype._update=function(){let e=!0,t=this._layers,n,i,o,r;for(o=0,r=t.length;o<r;++o)i=t[o],i._layerIndex=o,i.show?(i._isBaseLayer=e,e=!1):i._isBaseLayer=!1,i.show!==i._show&&(l(i._show)&&(l(n)||(n=[]),n.push(i)),i._show=i.show);if(l(n))for(o=0,r=n.length;o<r;++o)i=n[o],this.layerShownOrHidden.raiseEvent(i,i._layerIndex,i.show)};var c2=Ds;function Y0e(e){this._ellipsoid=new D_(e.ellipsoid,h.ZERO)}Object.defineProperties(Y0e.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var l2=Y0e;function dl(e){this._tilingScheme=e.tilingScheme,this._x=e.x,this._y=e.y,this._level=e.level,this._parent=e.parent,this._rectangle=this._tilingScheme.tileXYToRectangle(this._x,this._y,this._level),this._southwestChild=void 0,this._southeastChild=void 0,this._northwestChild=void 0,this._northeastChild=void 0,this.replacementPrevious=void 0,this.replacementNext=void 0,this._distance=0,this._loadPriority=0,this._customData=[],this._frameUpdated=void 0,this._lastSelectionResult=Kn.NONE,this._lastSelectionResultFrame=void 0,this._loadedCallbacks={},this.state=qs.START,this.renderable=!1,this.upsampledFromParent=!1,this.data=void 0}dl.createLevelZeroTiles=function(e){let t=e.getNumberOfXTilesAtLevel(0),n=e.getNumberOfYTilesAtLevel(0),i=new Array(t*n),o=0;for(let r=0;r<n;++r)for(let s=0;s<t;++s)i[o++]=new dl({tilingScheme:e,x:s,y:r,level:0});return i};dl.prototype._updateCustomData=function(e,t,n){let i=this.customData,o,r,s;if(l(t)&&l(n)){for(i=i.filter(function(a){return n.indexOf(a)===-1}),this._customData=i,s=this._rectangle,o=0;o<t.length;++o)r=t[o],se.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=e}else{let a=this._parent;if(l(a)&&this._frameUpdated!==a._frameUpdated){i.length=0,s=this._rectangle;let c=a.customData;for(o=0;o<c.length;++o)r=c[o],se.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=a._frameUpdated}}};Object.defineProperties(dl.prototype,{tilingScheme:{get:function(){return this._tilingScheme}},x:{get:function(){return this._x}},y:{get:function(){return this._y}},level:{get:function(){return this._level}},parent:{get:function(){return this._parent}},rectangle:{get:function(){return this._rectangle}},children:{get:function(){return[this.northwestChild,this.northeastChild,this.southwestChild,this.southeastChild]}},southwestChild:{get:function(){return l(this._southwestChild)||(this._southwestChild=new dl({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2+1,level:this.level+1,parent:this})),this._southwestChild}},southeastChild:{get:function(){return l(this._southeastChild)||(this._southeastChild=new dl({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2+1,level:this.level+1,parent:this})),this._southeastChild}},northwestChild:{get:function(){return l(this._northwestChild)||(this._northwestChild=new dl({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2,level:this.level+1,parent:this})),this._northwestChild}},northeastChild:{get:function(){return l(this._northeastChild)||(this._northeastChild=new dl({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2,level:this.level+1,parent:this})),this._northeastChild}},customData:{get:function(){return this._customData}},needsLoading:{get:function(){return this.state<qs.DONE}},eligibleForUnloading:{get:function(){let e=!0;return l(this.data)&&(e=this.data.eligibleForUnloading,l(e)||(e=!0)),e}}});dl.prototype.findLevelZeroTile=function(e,t,n){let i=this.tilingScheme.getNumberOfXTilesAtLevel(0);if(t<0?t+=i:t>=i&&(t-=i),!(n<0||n>=this.tilingScheme.getNumberOfYTilesAtLevel(0)))return e.filter(function(o){return o.x===t&&o.y===n})[0]};dl.prototype.findTileToWest=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x-1,this.y);if(t.southeastChild===this)return t.southwestChild;if(t.northeastChild===this)return t.northwestChild;let n=t.findTileToWest(e);if(n!==void 0)return t.southwestChild===this?n.southeastChild:n.northeastChild};dl.prototype.findTileToEast=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x+1,this.y);if(t.southwestChild===this)return t.southeastChild;if(t.northwestChild===this)return t.northeastChild;let n=t.findTileToEast(e);if(n!==void 0)return t.southeastChild===this?n.southwestChild:n.northwestChild};dl.prototype.findTileToSouth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y+1);if(t.northwestChild===this)return t.southwestChild;if(t.northeastChild===this)return t.southeastChild;let n=t.findTileToSouth(e);if(n!==void 0)return t.southwestChild===this?n.northwestChild:n.northeastChild};dl.prototype.findTileToNorth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y-1);if(t.southwestChild===this)return t.northwestChild;if(t.southeastChild===this)return t.northeastChild;let n=t.findTileToNorth(e);if(n!==void 0)return t.northwestChild===this?n.southwestChild:n.southeastChild};dl.prototype.freeResources=function(){this.state=qs.START,this.renderable=!1,this.upsampledFromParent=!1,l(this.data)&&l(this.data.freeResources)&&this.data.freeResources(),lH(this._southwestChild),this._southwestChild=void 0,lH(this._southeastChild),this._southeastChild=void 0,lH(this._northwestChild),this._northwestChild=void 0,lH(this._northeastChild),this._northeastChild=void 0};function lH(e){l(e)&&e.freeResources()}var u2=dl;function uH(){this.head=void 0,this.tail=void 0,this.count=0,this._lastBeforeStartOfFrame=void 0}uH.prototype.markStartOfRenderFrame=function(){this._lastBeforeStartOfFrame=this.head};uH.prototype.trimTiles=function(e){let t=this.tail,n=!0;for(;n&&l(this._lastBeforeStartOfFrame)&&this.count>e&&l(t);){n=t!==this._lastBeforeStartOfFrame;let i=t.replacementPrevious;t.eligibleForUnloading&&(t.freeResources(),X0e(this,t)),t=i}};function X0e(e,t){let n=t.replacementPrevious,i=t.replacementNext;t===e._lastBeforeStartOfFrame&&(e._lastBeforeStartOfFrame=i),t===e.head?e.head=i:n.replacementNext=i,t===e.tail?e.tail=n:i.replacementPrevious=n,t.replacementPrevious=void 0,t.replacementNext=void 0,--e.count}uH.prototype.markTileRendered=function(e){let t=this.head;if(t===e){e===this._lastBeforeStartOfFrame&&(this._lastBeforeStartOfFrame=e.replacementNext);return}if(++this.count,!l(t)){e.replacementPrevious=void 0,e.replacementNext=void 0,this.head=e,this.tail=e;return}(l(e.replacementPrevious)||l(e.replacementNext))&&X0e(this,e),e.replacementPrevious=void 0,e.replacementNext=t,t.replacementPrevious=e,this.head=e};var f2=uH;function cd(e){this._tileProvider=e.tileProvider,this._tileProvider.quadtree=this,this._debug={enableDebugOutput:!1,maxDepth:0,maxDepthVisited:0,tilesVisited:0,tilesCulled:0,tilesRendered:0,tilesWaitingForChildren:0,lastMaxDepth:-1,lastMaxDepthVisited:-1,lastTilesVisited:-1,lastTilesCulled:-1,lastTilesRendered:-1,lastTilesWaitingForChildren:-1,suspendLodUpdate:!1};let n=this._tileProvider.tilingScheme.ellipsoid;this._tilesToRender=[],this._tileLoadQueueHigh=[],this._tileLoadQueueMedium=[],this._tileLoadQueueLow=[],this._tileReplacementQueue=new f2,this._levelZeroTiles=void 0,this._loadQueueTimeSlice=5,this._tilesInvalidated=!1,this._addHeightCallbacks=[],this._removeHeightCallbacks=[],this._tileToUpdateHeights=[],this._lastTileIndex=0,this._updateHeightsTimeSlice=2,this._cameraPositionCartographic=void 0,this._cameraReferenceFrameOriginCartographic=void 0,this.maximumScreenSpaceError=y(e.maximumScreenSpaceError,2),this.tileCacheSize=y(e.tileCacheSize,100),this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this._occluders=new l2({ellipsoid:n}),this._tileLoadProgressEvent=new pe,this._lastTileLoadQueueLength=0,this._lastSelectionFrameNumber=void 0}Object.defineProperties(cd.prototype,{tileProvider:{get:function(){return this._tileProvider}},tileLoadProgressEvent:{get:function(){return this._tileLoadProgressEvent}},occluders:{get:function(){return this._occluders}}});cd.prototype.invalidateAllTiles=function(){this._tilesInvalidated=!0};function Cut(e){let t=e._tileReplacementQueue;t.head=void 0,t.tail=void 0,t.count=0,Z0e(e);let n=e._levelZeroTiles;if(l(n))for(let i=0;i<n.length;++i){let r=n[i].customData,s=r.length;for(let a=0;a<s;++a){let c=r[a];c.level=0,e._addHeightCallbacks.push(c)}n[i].freeResources()}e._levelZeroTiles=void 0,e._tileProvider.cancelReprojections()}cd.prototype.forEachLoadedTile=function(e){let t=this._tileReplacementQueue.head;for(;l(t);)t.state!==qs.START&&e(t),t=t.replacementNext};cd.prototype.forEachRenderedTile=function(e){let t=this._tilesToRender;for(let n=0,i=t.length;n<i;++n)e(t[n])};cd.prototype.updateHeight=function(e,t){let n=this,i={positionOnEllipsoidSurface:void 0,positionCartographic:e,level:-1,callback:t};return i.removeFunc=function(){let o=n._addHeightCallbacks,r=o.length;for(let s=0;s<r;++s)if(o[s]===i){o.splice(s,1);break}n._removeHeightCallbacks.push(i),i.callback&&(i.callback=void 0)},n._addHeightCallbacks.push(i),i.removeFunc};cd.prototype.update=function(e){l(this._tileProvider.update)&&this._tileProvider.update(e)};function Z0e(e){let t=e._debug;t.maxDepth=0,t.maxDepthVisited=0,t.tilesVisited=0,t.tilesCulled=0,t.tilesRendered=0,t.tilesWaitingForChildren=0,e._tileLoadQueueHigh.length=0,e._tileLoadQueueMedium.length=0,e._tileLoadQueueLow.length=0}cd.prototype.beginFrame=function(e){e.passes.render&&(this._tilesInvalidated&&(Cut(this),this._tilesInvalidated=!1),this._tileProvider.initialize(e),Z0e(this),!this._debug.suspendLodUpdate&&this._tileReplacementQueue.markStartOfRenderFrame())};cd.prototype.render=function(e){let t=e.passes,n=this._tileProvider;t.render&&(n.beginUpdate(e),wut(this,e),But(this,e),n.endUpdate(e)),t.pick&&this._tilesToRender.length>0&&n.updateForPick(e)};function Eut(e,t){let n=e._tileLoadQueueHigh.length+e._tileLoadQueueMedium.length+e._tileLoadQueueLow.length;if(n!==e._lastTileLoadQueueLength||e._tilesInvalidated){let o=pe.prototype.raiseEvent.bind(e._tileLoadProgressEvent,n);t.afterRender.push(()=>(o(),!0)),e._lastTileLoadQueueLength=n}let i=e._debug;i.enableDebugOutput&&!i.suspendLodUpdate&&(i.maxDepth=e._tilesToRender.reduce(function(o,r){return Math.max(o,r.level)},-1),i.tilesRendered=e._tilesToRender.length,(i.tilesVisited!==i.lastTilesVisited||i.tilesRendered!==i.lastTilesRendered||i.tilesCulled!==i.lastTilesCulled||i.maxDepth!==i.lastMaxDepth||i.tilesWaitingForChildren!==i.lastTilesWaitingForChildren||i.maxDepthVisited!==i.lastMaxDepthVisited)&&(console.log(`Visited ${i.tilesVisited}, Rendered: ${i.tilesRendered}, Culled: ${i.tilesCulled}, Max Depth Rendered: ${i.maxDepth}, Max Depth Visited: ${i.maxDepthVisited}, Waiting for children: ${i.tilesWaitingForChildren}`),i.lastTilesVisited=i.tilesVisited,i.lastTilesRendered=i.tilesRendered,i.lastTilesCulled=i.tilesCulled,i.lastMaxDepth=i.maxDepth,i.lastTilesWaitingForChildren=i.tilesWaitingForChildren,i.lastMaxDepthVisited=i.maxDepthVisited))}cd.prototype.endFrame=function(e){!e.passes.render||e.mode===ne.MORPHING||(Mut(this,e),Fut(this,e),Eut(this,e))};cd.prototype.isDestroyed=function(){return!1};cd.prototype.destroy=function(){this._tileProvider=this._tileProvider&&this._tileProvider.destroy()};var h2,K0e=new fe;function Sut(e,t){let n=se.center(e.rectangle,K0e),i=n.longitude-h2.longitude,o=n.latitude-h2.latitude;n=se.center(t.rectangle,K0e);let r=n.longitude-h2.longitude,s=n.latitude-h2.latitude;return i*i+o*o-(r*r+s*s)}var vut=new h,d2=[];function wut(e,t){let n=e._debug;if(n.suspendLodUpdate)return;let i=e._tilesToRender;i.length=0;let o,r=e._tileProvider;if(!l(e._levelZeroTiles)){let x=r.tilingScheme;if(l(x)){let b=r.tilingScheme;e._levelZeroTiles=u2.createLevelZeroTiles(b);let T=e._levelZeroTiles.length;if(d2.length<T)for(d2=new Array(T),o=0;o<T;++o)d2[o]===void 0&&(d2[o]=new m2)}else return}e._occluders.ellipsoid.cameraPosition=t.camera.positionWC;let s,a=e._levelZeroTiles,c=a.length>1?e._occluders:void 0;h2=t.camera.positionCartographic,a.sort(Sut);let u=e._addHeightCallbacks,f=e._removeHeightCallbacks,d=t.frameNumber,p;if(u.length>0||f.length>0){for(o=0,p=a.length;o<p;++o)s=a[o],s._updateCustomData(d,u,f);u.length=0,f.length=0}let g=t.camera;e._cameraPositionCartographic=g.positionCartographic;let m=F.getTranslation(g.transform,vut);for(e._cameraReferenceFrameOriginCartographic=e.tileProvider.tilingScheme.ellipsoid.cartesianToCartographic(m,e._cameraReferenceFrameOriginCartographic),o=0,p=a.length;o<p;++o)s=a[o],e._tileReplacementQueue.markTileRendered(s),s.renderable?ka(e,s,r,t,c,!1,d2[o]):(sg(e,e._tileLoadQueueHigh,s,t),++n.tilesWaitingForChildren);e._lastSelectionFrameNumber=d}function sg(e,t,n,i){n.needsLoading&&(e.tileProvider.computeTileLoadPriority!==void 0&&(n._loadPriority=e.tileProvider.computeTileLoadPriority(n,i)),t.push(n))}function m2(){this.allAreRenderable=!0,this.anyWereRenderedLastFrame=!1,this.notYetRenderableCount=0}function $0e(){this.southwest=new m2,this.southeast=new m2,this.northwest=new m2,this.northeast=new m2}$0e.prototype.combine=function(e){let t=this.southwest,n=this.southeast,i=this.northwest,o=this.northeast;e.allAreRenderable=t.allAreRenderable&&n.allAreRenderable&&i.allAreRenderable&&o.allAreRenderable,e.anyWereRenderedLastFrame=t.anyWereRenderedLastFrame||n.anyWereRenderedLastFrame||i.anyWereRenderedLastFrame||o.anyWereRenderedLastFrame,e.notYetRenderableCount=t.notYetRenderableCount+n.notYetRenderableCount+i.notYetRenderableCount+o.notYetRenderableCount};var _K=new Array(31);for(let e=0;e<_K.length;++e)_K[e]=new $0e;function Dut(e,t,n,i,o){let r=e._debug;++r.tilesVisited,e._tileReplacementQueue.markTileRendered(n),n._updateCustomData(t.frameNumber),n.level>r.maxDepthVisited&&(r.maxDepthVisited=n.level);let s=Rut(e,t,n)<e.maximumScreenSpaceError,a=n.southwestChild,c=n.southeastChild,u=n.northwestChild,f=n.northeastChild,d=e._lastSelectionFrameNumber,p=n._lastSelectionResultFrame===d?n._lastSelectionResult:Kn.NONE,g=e.tileProvider;if(s||i){let m=Kn.originalResult(p)===Kn.RENDERED,x=Kn.originalResult(p)===Kn.CULLED||p===Kn.NONE,b=n.state===qs.DONE,T=m||x||b;if(T||l(g.canRenderWithoutLosingDetail)&&(T=g.canRenderWithoutLosingDetail(n)),T){s&&sg(e,e._tileLoadQueueMedium,n,t),fH(e,n),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Kn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Kn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}i=!0,s&&sg(e,e._tileLoadQueueHigh,n,t)}if(g.canRefine(n)){if(a.upsampledFromParent&&c.upsampledFromParent&&u.upsampledFromParent&&f.upsampledFromParent){fH(e,n),sg(e,e._tileLoadQueueMedium,n,t),e._tileReplacementQueue.markTileRendered(a),e._tileReplacementQueue.markTileRendered(c),e._tileReplacementQueue.markTileRendered(u),e._tileReplacementQueue.markTileRendered(f),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Kn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Kn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Kn.REFINED;let x=e._tilesToRender.length,b=e._tileLoadQueueLow.length,T=e._tileLoadQueueMedium.length,C=e._tileLoadQueueHigh.length,A=e._tileToUpdateHeights.length;if(Put(e,a,c,u,f,t,i,o),x!==e._tilesToRender.length){let E=o.allAreRenderable,v=o.anyWereRenderedLastFrame,D=o.notYetRenderableCount,O=!1;if(!E&&!v){let I=e._tilesToRender;for(let N=x;N<I.length;++N){let _=I[N];for(;_!==void 0&&_._lastSelectionResult!==Kn.KICKED&&_!==n;)_._lastSelectionResult=Kn.kick(_._lastSelectionResult),_=_.parent}e._tilesToRender.length=x,e._tileToUpdateHeights.length=A,fH(e,n),n._lastSelectionResult=Kn.RENDERED;let L=p===Kn.RENDERED;!L&&D>e.loadingDescendantLimit&&(e._tileLoadQueueLow.length=b,e._tileLoadQueueMedium.length=T,e._tileLoadQueueHigh.length=C,sg(e,e._tileLoadQueueMedium,n,t),o.notYetRenderableCount=n.renderable?0:1,O=!0),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=L,L||e._tileToUpdateHeights.push(n),++r.tilesWaitingForChildren}e.preloadAncestors&&!O&&sg(e,e._tileLoadQueueLow,n,t)}return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Kn.RENDERED,fH(e,n),sg(e,e._tileLoadQueueHigh,n,t),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Kn.RENDERED,o.notYetRenderableCount=n.renderable?0:1}function Put(e,t,n,i,o,r,s,a){let c=r.camera.positionCartographic,u=e._tileProvider,f=e._occluders,d=_K[t.level],p=d.southwest,g=d.southeast,m=d.northwest,x=d.northeast;c.longitude<t.rectangle.east?c.latitude<t.rectangle.north?(ka(e,t,u,r,f,s,p),ka(e,n,u,r,f,s,g),ka(e,i,u,r,f,s,m),ka(e,o,u,r,f,s,x)):(ka(e,i,u,r,f,s,m),ka(e,t,u,r,f,s,p),ka(e,o,u,r,f,s,x),ka(e,n,u,r,f,s,g)):c.latitude<t.rectangle.north?(ka(e,n,u,r,f,s,g),ka(e,t,u,r,f,s,p),ka(e,o,u,r,f,s,x),ka(e,i,u,r,f,s,m)):(ka(e,o,u,r,f,s,x),ka(e,i,u,r,f,s,m),ka(e,n,u,r,f,s,g),ka(e,t,u,r,f,s,p)),d.combine(a)}function Iut(e,t){let n=t.rectangle;return l(e._cameraPositionCartographic)&&se.contains(n,e._cameraPositionCartographic)||l(e._cameraReferenceFrameOriginCartographic)&&se.contains(n,e._cameraReferenceFrameOriginCartographic)}function ka(e,t,n,i,o,r,s){if(n.computeTileVisibility(t,i,o)!==fr.NONE)return Dut(e,i,t,r,s);if(++e._debug.tilesCulled,e._tileReplacementQueue.markTileRendered(t),s.allAreRenderable=!0,s.anyWereRenderedLastFrame=!1,s.notYetRenderableCount=0,Iut(e,t)){(!l(t.data)||!l(t.data.vertexArray))&&sg(e,e._tileLoadQueueMedium,t,i);let a=e._lastSelectionFrameNumber,c=t._lastSelectionResultFrame===a?t._lastSelectionResult:Kn.NONE;c!==Kn.CULLED_BUT_NEEDED&&c!==Kn.RENDERED&&e._tileToUpdateHeights.push(t),t._lastSelectionResult=Kn.CULLED_BUT_NEEDED}else e.preloadSiblings||t.level===0?(sg(e,e._tileLoadQueueLow,t,i),t._lastSelectionResult=Kn.CULLED):t._lastSelectionResult=Kn.CULLED;t._lastSelectionResultFrame=i.frameNumber}function Rut(e,t,n){if(t.mode===ne.SCENE2D||t.camera.frustum instanceof rn||t.camera.frustum instanceof Er)return Out(e,t,n);let i=e._tileProvider.getLevelMaximumGeometricError(n.level),o=n._distance,r=t.context.drawingBufferHeight,s=t.camera.frustum.sseDenominator,a=i*r/(o*s);return t.fog.enabled&&(a-=R.fog(o,t.fog.density)*t.fog.sse),a/=t.pixelRatio,a}function Out(e,t,n){let o=t.camera.frustum,r=o.offCenterFrustum;l(r)&&(o=r);let s=t.context,a=s.drawingBufferWidth,c=s.drawingBufferHeight,u=e._tileProvider.getLevelMaximumGeometricError(n.level),f=Math.max(o.top-o.bottom,o.right-o.left)/Math.max(a,c),d=u/f;return t.fog.enabled&&t.mode!==ne.SCENE2D&&(d-=R.fog(n._distance,t.fog.density)*t.fog.sse),d/=t.pixelRatio,d}function fH(e,t){e._tilesToRender.push(t)}function Mut(e,t){let n=e._tileLoadQueueHigh,i=e._tileLoadQueueMedium,o=e._tileLoadQueueLow;if(n.length===0&&i.length===0&&o.length===0)return;e._tileReplacementQueue.trimTiles(e.tileCacheSize);let r=pi()+e._loadQueueTimeSlice,s=e._tileProvider,a=mK(e,t,s,r,n,!1);a=mK(e,t,s,r,i,a),mK(e,t,s,r,o,a)}function Lut(e,t){return e._loadPriority-t._loadPriority}function mK(e,t,n,i,o,r){n.computeTileLoadPriority!==void 0&&o.sort(Lut);for(let s=0,a=o.length;s<a&&(pi()<i||!r);++s){let c=o[s];e._tileReplacementQueue.markTileRendered(c),n.loadTile(t,c),r=!0}return r}var cv=new pn,pK=new fe,w0=new h,Nut=[];function Fut(e,t){if(!l(e.tileProvider.tilingScheme))return;let n=Nut;n.length=0;let i=e._tileToUpdateHeights,o=pi(),r=e._updateHeightsTimeSlice,s=o+r,a=t.mode,c=t.mapProjection,u=e.tileProvider.tilingScheme.ellipsoid,f;for(;i.length>0;){let d=i[0];if(!l(d.data)||!l(d.data.mesh)){let x=d._lastSelectionResultFrame===e._lastSelectionFrameNumber?d._lastSelectionResult:Kn.NONE;(x===Kn.RENDERED||x===Kn.CULLED_BUT_NEEDED)&&n.push(d),i.shift(),e._lastTileIndex=0;continue}let p=d.customData,g=p.length,m=!1;for(f=e._lastTileIndex;f<g;++f){let x=p[f],b=d.data.terrainData,T=l(b)&&b.wasCreatedByUpsampling();if(d.level>x.level&&!T){if(l(x.positionOnEllipsoidSurface)||(x.positionOnEllipsoidSurface=h.fromRadians(x.positionCartographic.longitude,x.positionCartographic.latitude,0,u)),a===ne.SCENE3D){let A=u.geodeticSurfaceNormal(x.positionOnEllipsoidSurface,cv.direction),E=u.getSurfaceNormalIntersectionWithZAxis(x.positionOnEllipsoidSurface,11500,cv.origin);if(!l(E)){let v=0;l(d.data.tileBoundingRegion)&&(v=d.data.tileBoundingRegion.minimumHeight);let D=Math.min(v,-11500),O=h.multiplyByScalar(A,Math.abs(D)+1,w0);h.subtract(x.positionOnEllipsoidSurface,O,cv.origin)}}else fe.clone(x.positionCartographic,pK),pK.height=-11500,c.project(pK,w0),h.fromElements(w0.z,w0.x,w0.y,w0),h.clone(w0,cv.origin),h.clone(h.UNIT_X,cv.direction);let C=d.data.pick(cv,a,c,!1,w0);l(C)&&(l(x.callback)&&x.callback(C),x.level=d.level)}if(pi()>=s){m=!0;break}}if(m){e._lastTileIndex=f;break}else e._lastTileIndex=0,i.shift()}for(f=0;f<n.length;f++)i.push(n[f])}function But(e,t){let n=e._tileProvider,i=e._tilesToRender;for(let o=0,r=i.length;o<r;++o){let s=i[o];n.showTileThisFrame(s,t)}}var p2=cd;function Lh(e){e=y(e,te.WGS84);let t=new qm({ellipsoid:e}),n=new c2;this._ellipsoid=e,this._imageryLayerCollection=n,this._surfaceShaderSet=new qF,this._material=void 0,this._surface=new p2({tileProvider:new s2({terrainProvider:t,imageryLayers:n,surfaceShaderSet:this._surfaceShaderSet})}),this._terrainProvider=t,this._terrainProviderChanged=new pe,this._undergroundColor=H.clone(H.BLACK),this._undergroundColorAlphaByDistance=new Mt(e.maximumRadius/1e3,0,e.maximumRadius/5,1),this._translucency=new a2,yK(this),this.show=!0,this._oceanNormalMapResourceDirty=!0,this._oceanNormalMapResource=new De({url:en("Assets/Textures/waterNormalsSmall.jpg")}),this.maximumScreenSpaceError=2,this.tileCacheSize=100,this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this.fillHighlightColor=void 0,this.enableLighting=!1,this.lambertDiffuseMultiplier=.9,this.dynamicAtmosphereLighting=!0,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!0,this.atmosphereLightIntensity=10,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.lightingFadeOutDistance=1e7,this.lightingFadeInDistance=2e7,this.nightFadeOutDistance=1e7,this.nightFadeInDistance=5e7,this.showWaterEffect=!0,this.depthTestAgainstTerrain=!1,this.shadows=yn.RECEIVE_ONLY,this.atmosphereHueShift=0,this.atmosphereSaturationShift=0,this.atmosphereBrightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this._oceanNormalMap=void 0,this._zoomedOutOceanSpecularIntensity=void 0,this.vertexShadowDarkness=.3}Object.defineProperties(Lh.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},imageryLayers:{get:function(){return this._imageryLayerCollection}},imageryLayersUpdatedEvent:{get:function(){return this._surface.tileProvider.imageryLayersUpdatedEvent}},tilesLoaded:{get:function(){return l(this._surface)?this._surface._tileLoadQueueHigh.length===0&&this._surface._tileLoadQueueMedium.length===0&&this._surface._tileLoadQueueLow.length===0:!0}},baseColor:{get:function(){return this._surface.tileProvider.baseColor},set:function(e){this._surface.tileProvider.baseColor=e}},clippingPlanes:{get:function(){return this._surface.tileProvider.clippingPlanes},set:function(e){this._surface.tileProvider.clippingPlanes=e}},clippingPolygons:{get:function(){return this._surface.tileProvider.clippingPolygons},set:function(e){this._surface.tileProvider.clippingPolygons=e}},cartographicLimitRectangle:{get:function(){return this._surface.tileProvider.cartographicLimitRectangle},set:function(e){l(e)||(e=se.clone(se.MAX_VALUE)),this._surface.tileProvider.cartographicLimitRectangle=e}},oceanNormalMapUrl:{get:function(){return this._oceanNormalMapResource.url},set:function(e){this._oceanNormalMapResource.url=e,this._oceanNormalMapResourceDirty=!0}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){e!==this._terrainProvider&&(this._terrainProvider=e,this._terrainProviderChanged.raiseEvent(e),l(this._material)&&yK(this))}},terrainProviderChanged:{get:function(){return this._terrainProviderChanged}},tileLoadProgressEvent:{get:function(){return this._surface.tileLoadProgressEvent}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,yK(this))}},undergroundColor:{get:function(){return this._undergroundColor},set:function(e){this._undergroundColor=H.clone(e,this._undergroundColor)}},undergroundColorAlphaByDistance:{get:function(){return this._undergroundColorAlphaByDistance},set:function(e){this._undergroundColorAlphaByDistance=Mt.clone(e,this._undergroundColorAlphaByDistance)}},translucency:{get:function(){return this._translucency}}});function yK(e){let t=[],n=l(e._material)&&(l(e._material.shaderSource.match(/slope/))||l(e._material.shaderSource.match("normalEC"))),i=[eg,qS];l(e._material)&&(!n||e._terrainProvider.requestVertexNormals)?(i.push(e._material.shaderSource),t.push("APPLY_MATERIAL"),e._surface._tileProvider.materialUniformMap=e._material._uniforms):e._surface._tileProvider.materialUniformMap=void 0,i.push(LF),e._surfaceShaderSet.baseVertexShaderSource=new ze({sources:[eg,qS,NF],defines:t}),e._surfaceShaderSet.baseFragmentShaderSource=new ze({sources:i,defines:t}),e._surfaceShaderSet.material=e._material}function kut(e){return function(t,n){let i=ae.distanceSquaredTo(t.pickBoundingSphere,e),o=ae.distanceSquaredTo(n.pickBoundingSphere,e);return i-o}}var Vut=[],Uut={start:0,stop:0};Lh.prototype.pickWorldCoordinates=function(e,t,n,i){n=y(n,!0);let o=t.mode,r=t.mapProjection,s=Vut;s.length=0;let a=this._surface._tilesToRender,c=a.length,u,f;for(f=0;f<c;++f){u=a[f];let p=u.data;if(!l(p))continue;let g=p.pickBoundingSphere;if(o!==ne.SCENE3D)p.pickBoundingSphere=g=ae.fromRectangleWithHeights2D(u.rectangle,r,p.tileBoundingRegion.minimumHeight,p.tileBoundingRegion.maximumHeight,g),h.fromElements(g.center.z,g.center.x,g.center.y,g.center);else if(l(p.renderedMesh))ae.clone(p.tileBoundingRegion.boundingSphere,g);else continue;let m=Qn.raySphere(e,g,Uut);l(m)&&s.push(p)}s.sort(kut(e.origin));let d;for(c=s.length,f=0;f<c&&(d=s[f].pick(e,t.mode,t.mapProjection,n,i),!l(d));++f);return d};var zut=new fe;Lh.prototype.pick=function(e,t,n){if(n=this.pickWorldCoordinates(e,t,!0,n),l(n)&&t.mode!==ne.SCENE3D){n=h.fromElements(n.y,n.z,n.x,n);let i=t.mapProjection.unproject(n,zut);n=t.globe.ellipsoid.cartographicToCartesian(i,n)}return n};var Hut=new h,Q0e=new h,Gut=new fe,Wut=new pn;function gK(e,t){return l(e)&&se.contains(e.rectangle,t)?e:void 0}Lh.prototype.getHeight=function(e){let t=this._surface._levelZeroTiles;if(!l(t))return;let n,i,o=t.length;for(i=0;i<o&&(n=t[i],!se.contains(n.rectangle,e));++i);if(i>=o)return;let r=n;for(;l(n);)n=gK(n._southwestChild,e)||gK(n._southeastChild,e)||gK(n._northwestChild,e)||n._northeastChild,l(n)&&l(n.data)&&l(n.data.renderedMesh)&&(r=n);if(n=r,!l(n)||!l(n.data)||!l(n.data.renderedMesh))return;let s=this._surface._tileProvider.tilingScheme.projection,a=this._surface._tileProvider.tilingScheme.ellipsoid,c=h.fromRadians(e.longitude,e.latitude,0,a,Hut),u=Wut,f=a.geodeticSurfaceNormal(c,u.direction),d=a.getSurfaceNormalIntersectionWithZAxis(c,11500,u.origin);if(!l(d)){let g;l(n.data.tileBoundingRegion)&&(g=n.data.tileBoundingRegion.minimumHeight);let m=Math.min(y(g,0),-11500),x=h.multiplyByScalar(f,Math.abs(m)+1,Q0e);h.subtract(c,x,u.origin)}let p=n.data.pick(u,void 0,s,!1,Q0e);if(l(p))return a.cartesianToCartographic(p,Gut).height};Lh.prototype.update=function(e){this.show&&e.passes.render&&this._surface.update(e)};Lh.prototype.beginFrame=function(e){let t=this._surface,n=t.tileProvider,i=this.terrainProvider,o=this.showWaterEffect&&l(i)&&i.hasWaterMask&&i.hasWaterMask;if(o&&this._oceanNormalMapResourceDirty){this._oceanNormalMapResourceDirty=!1;let a=this._oceanNormalMapResource,c=a.url;if(l(c)){let u=this;a.fetchImage().then(function(f){c===u._oceanNormalMapResource.url&&(u._oceanNormalMap=u._oceanNormalMap&&u._oceanNormalMap.destroy(),u._oceanNormalMap=new Dt({context:e.context,source:f}))})}else this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy()}let r=e.passes,s=e.mode;r.render&&(this.showGroundAtmosphere?this._zoomedOutOceanSpecularIntensity=.4:this._zoomedOutOceanSpecularIntensity=.5,t.maximumScreenSpaceError=this.maximumScreenSpaceError,t.tileCacheSize=this.tileCacheSize,t.loadingDescendantLimit=this.loadingDescendantLimit,t.preloadAncestors=this.preloadAncestors,t.preloadSiblings=this.preloadSiblings,n.terrainProvider=this.terrainProvider,n.lightingFadeOutDistance=this.lightingFadeOutDistance,n.lightingFadeInDistance=this.lightingFadeInDistance,n.nightFadeOutDistance=this.nightFadeOutDistance,n.nightFadeInDistance=this.nightFadeInDistance,n.zoomedOutOceanSpecularIntensity=s===ne.SCENE3D?this._zoomedOutOceanSpecularIntensity:0,n.hasWaterMask=o,n.oceanNormalMap=this._oceanNormalMap,n.enableLighting=this.enableLighting,n.dynamicAtmosphereLighting=this.dynamicAtmosphereLighting,n.dynamicAtmosphereLightingFromSun=this.dynamicAtmosphereLightingFromSun,n.showGroundAtmosphere=this.showGroundAtmosphere,n.atmosphereLightIntensity=this.atmosphereLightIntensity,n.atmosphereRayleighCoefficient=this.atmosphereRayleighCoefficient,n.atmosphereMieCoefficient=this.atmosphereMieCoefficient,n.atmosphereRayleighScaleHeight=this.atmosphereRayleighScaleHeight,n.atmosphereMieScaleHeight=this.atmosphereMieScaleHeight,n.atmosphereMieAnisotropy=this.atmosphereMieAnisotropy,n.shadows=this.shadows,n.hueShift=this.atmosphereHueShift,n.saturationShift=this.atmosphereSaturationShift,n.brightnessShift=this.atmosphereBrightnessShift,n.fillHighlightColor=this.fillHighlightColor,n.showSkirts=this.showSkirts,n.backFaceCulling=this.backFaceCulling,n.vertexShadowDarkness=this.vertexShadowDarkness,n.undergroundColor=this._undergroundColor,n.undergroundColorAlphaByDistance=this._undergroundColorAlphaByDistance,n.lambertDiffuseMultiplier=this.lambertDiffuseMultiplier,t.beginFrame(e))};Lh.prototype.render=function(e){this.show&&(l(this._material)&&this._material.update(e.context),this._surface.render(e))};Lh.prototype.endFrame=function(e){this.show&&e.passes.render&&this._surface.endFrame(e)};Lh.prototype.isDestroyed=function(){return!1};Lh.prototype.destroy=function(){return this._surfaceShaderSet=this._surfaceShaderSet&&this._surfaceShaderSet.destroy(),this._surface=this._surface&&this._surface.destroy(),this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy(),ue(this)};var _2=Lh;var xK={position:0};function dH(e){e=y(e,y.EMPTY_OBJECT),this.center=h.clone(y(e.center,h.ZERO)),this._center=new h,this.radii=h.clone(e.radii),this._radii=new h,this._oneOverEllipsoidRadiiSquared=new h,this._boundingSphere=new ae,this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=new F,this._computedModelMatrix=new F,this.show=y(e.show,!0),this.material=y(e.material,Vi.fromType(Vi.ColorType)),this._material=void 0,this._translucent=void 0,this.id=e.id,this._id=void 0,this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.onlySunLighting=y(e.onlySunLighting,!1),this._onlySunLighting=!1,this._depthTestEnabled=y(e.depthTestEnabled,!0),this._useLogDepth=!1,this._sp=void 0,this._rs=void 0,this._va=void 0,this._pickSP=void 0,this._pickId=void 0,this._colorCommand=new Ze({owner:y(e._owner,this)}),this._pickCommand=new Ze({owner:y(e._owner,this),pickOnly:!0});let t=this;this._uniforms={u_radii:function(){return t.radii},u_oneOverEllipsoidRadiiSquared:function(){return t._oneOverEllipsoidRadiiSquared}},this._pickUniforms={czm_pickColor:function(){return t._pickId.color}}}function jut(e){let t=e.cache.ellipsoidPrimitive_vertexArray;if(l(t))return t;let n=Al.createGeometry(Al.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Ie.POSITION_ONLY}));return t=ei.fromGeometry({context:e,geometry:n,attributeLocations:xK,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),e.cache.ellipsoidPrimitive_vertexArray=t,t}dH.prototype.update=function(e){if(!this.show||e.mode!==ne.SCENE3D||!l(this.center)||!l(this.radii))return;let t=e.context,n=this.material.isTranslucent(),i=this._translucent!==n;(!l(this._rs)||i)&&(this._translucent=n,this._rs=Ve.fromCache({cull:{enabled:!0,face:hi.FRONT},depthTest:{enabled:this._depthTestEnabled},depthMask:!n&&t.fragmentDepth,blending:n?un.ALPHA_BLEND:void 0})),l(this._va)||(this._va=jut(t));let o=!1,r=this.radii;if(!h.equals(this._radii,r)){h.clone(r,this._radii);let x=this._oneOverEllipsoidRadiiSquared;x.x=1/(r.x*r.x),x.y=1/(r.y*r.y),x.z=1/(r.z*r.z),o=!0}(!F.equals(this.modelMatrix,this._modelMatrix)||!h.equals(this.center,this._center))&&(F.clone(this.modelMatrix,this._modelMatrix),h.clone(this.center,this._center),F.multiplyByTranslation(this.modelMatrix,this.center,this._computedModelMatrix),o=!0),o&&(h.clone(h.ZERO,this._boundingSphere.center),this._boundingSphere.radius=h.maximumComponent(r),ae.transform(this._boundingSphere,this._computedModelMatrix,this._boundingSphere));let s=this._material!==this.material;this._material=this.material,this._material.update(t);let a=this.onlySunLighting!==this._onlySunLighting;this._onlySunLighting=this.onlySunLighting;let c=e.useLogDepth,u=this._useLogDepth!==c;this._useLogDepth=c;let f=this._colorCommand,d,p;(s||a||i||u)&&(d=new ze({sources:[jS]}),p=new ze({sources:[this.material.shaderSource,WS]}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._sp=$t.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:xK}),f.vertexArray=this._va,f.renderState=this._rs,f.shaderProgram=this._sp,f.uniformMap=_t(this._uniforms,this.material._uniforms),f.executeInClosestFrustum=n);let g=e.commandList,m=e.passes;if(m.render&&(f.boundingVolume=this._boundingSphere,f.debugShowBoundingVolume=this.debugShowBoundingVolume,f.modelMatrix=this._computedModelMatrix,f.pass=n?Ee.TRANSLUCENT:Ee.OPAQUE,g.push(f)),m.pick){let x=this._pickCommand;(!l(this._pickId)||this._id!==this.id)&&(this._id=this.id,this._pickId=this._pickId&&this._pickId.destroy(),this._pickId=t.createPickId({primitive:this,id:this.id})),(s||a||!l(this._pickSP)||u)&&(d=new ze({sources:[jS]}),p=new ze({sources:[this.material.shaderSource,WS],pickColorQualifier:"uniform"}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._pickSP=$t.replaceCache({context:t,shaderProgram:this._pickSP,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:xK}),x.vertexArray=this._va,x.renderState=this._rs,x.shaderProgram=this._pickSP,x.uniformMap=_t(_t(this._uniforms,this._pickUniforms),this.material._uniforms),x.executeInClosestFrustum=n),x.boundingVolume=this._boundingSphere,x.modelMatrix=this._computedModelMatrix,x.pass=n?Ee.TRANSLUCENT:Ee.OPAQUE,g.push(x)}};dH.prototype.isDestroyed=function(){return!1};dH.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._pickSP=this._pickSP&&this._pickSP.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var g2=dH;function y2(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureUrl;l(t)||(t=en("Assets/Textures/moonSmall.jpg")),this.show=y(e.show,!0),this.textureUrl=t,this._ellipsoid=y(e.ellipsoid,te.MOON),this.onlySunLighting=y(e.onlySunLighting,!0),this._ellipsoidPrimitive=new g2({radii:this.ellipsoid.radii,material:Vi.fromType(Vi.ImageType),depthTestEnabled:!1,_owner:this}),this._ellipsoidPrimitive.material.translucent=!1,this._axes=new dF}Object.defineProperties(y2.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var hH=new $,qut=new $,Yut=new h,mH=[];y2.prototype.update=function(e){if(!this.show)return;let t=this._ellipsoidPrimitive;t.material.uniforms.image=this.textureUrl,t.onlySunLighting=this.onlySunLighting;let n=e.time;l(wt.computeIcrfToFixedMatrix(n,hH))||wt.computeTemeToPseudoFixedMatrix(n,hH);let i=this._axes.evaluate(n,qut);$.transpose(i,i),$.multiply(hH,i,i);let o=h0.computeMoonPositionInEarthInertialFrame(n,Yut);$.multiplyByVector(hH,o,o),F.fromRotationTranslation(i,o,t.modelMatrix);let r=e.commandList;return e.commandList=mH,mH.length=0,t.update(e),e.commandList=r,mH.length===1?mH[0]:void 0};y2.prototype.isDestroyed=function(){return!1};y2.prototype.destroy=function(){return this._ellipsoidPrimitive=this._ellipsoidPrimitive&&this._ellipsoidPrimitive.destroy(),ue(this)};var x2=y2;var b2={NONE:0,SCENE_LIGHT:1,SUNLIGHT:2};b2.fromGlobeFlags=function(e){return e.enableLighting&&e.dynamicAtmosphereLighting?e.dynamicAtmosphereLightingFromSun?b2.SUNLIGHT:b2.SCENE_LIGHT:b2.NONE};var HT=Object.freeze(b2);function Xut(){this.lightIntensity=10,this.rayleighCoefficient=new h(55e-7,13e-6,284e-7),this.mieCoefficient=new h(21e-6,21e-6,21e-6),this.rayleighScaleHeight=1e4,this.mieScaleHeight=3200,this.mieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.dynamicLighting=HT.NONE}var T2=Xut;function A2(){this._colorTexture=void 0,this._drawCommand=void 0}Object.defineProperties(A2.prototype,{colorTexture:{get:function(){return this._colorTexture}}});function Kut(e,t,n){let i=t.createViewportQuadCommand(EF,{framebuffer:n,renderState:Ve.fromCache({viewport:new Ge(0,0,256,256)})});e._drawCommand=i}A2.prototype.update=function(e){if(!l(this._colorTexture)){let t=e.context,n=new Dt({context:t,width:256,height:256,pixelFormat:nt.RGBA,pixelDatatype:We.UNSIGNED_BYTE,sampler:on.NEAREST});this._colorTexture=n;let i=new ta({context:t,colorTextures:[n],destroyAttachments:!1});Kut(this,t,i),this._drawCommand.execute(t),i.destroy(),this._drawCommand.shaderProgram=this._drawCommand.shaderProgram&&this._drawCommand.shaderProgram.destroy()}};A2.prototype.isDestroyed=function(){return!1};A2.prototype.destroy=function(){return this._colorTexture=this._colorTexture&&this._colorTexture.destroy(),ue(this)};var C2=A2;var nxe={};function Zut(e,t,n){let i,o,r;if(e instanceof Ti){let s=Math.tan(.5*e.fovy);return i=e.near,o=e.near*s,r=e.aspectRatio*o,Math.max(t*i/r,n*i/o)}else if(e instanceof ul)return i=e.near,o=e.top,r=e.right,Math.max(t*i/r,n*i/o);return Math.max(t,n)}var $ut=new h,J0e=new h;function ixe(e,t,n,i){if(l(i)&&n(.5)>i){let o=n(0),r=n(1),s=n(.5),a=s-o,c=s-r;return function(u){let f=n(u);if(u<=.5){let p=(f-o)/a;return R.lerp(e,-R.PI_OVER_TWO,p)}let d=(f-r)/c;return R.lerp(-R.PI_OVER_TWO,t,1-d)}}return function(o){return R.lerp(e,t,o)}}function TK(e,t,n,i,o){let r=o,s=Math.max(n,i);if(!l(r)){let a=e.position,c=t,u=e.up,f=e.right,d=e.frustum,p=h.subtract(a,c,$ut),g=h.magnitude(h.multiplyByScalar(u,h.dot(p,u),J0e)),m=h.magnitude(h.multiplyByScalar(f,h.dot(p,f),J0e));r=Math.min(Zut(d,g,m)*.2,1e9)}if(s<r){let u=-Math.pow((r-n)*1e6,.125),f=Math.pow((r-i)*1e6,1/8);return function(d){let p=d*(f-u)+u;return-Math.pow(p,8)/1e6+r}}return function(a){return R.lerp(n,i,a)}}function E2(e,t){return R.equalsEpsilon(e,R.TWO_PI,R.EPSILON11)&&(e=0),t>e+Math.PI?e+=R.TWO_PI:t<e-Math.PI&&(e-=R.TWO_PI),e}var oxe=new h;function Qut(e,t,n,i,o,r,s,a){let c=e.camera,u=h.clone(c.position,oxe),f=c.pitch,d=E2(c.heading,i),p=E2(c.roll,r),g=TK(c,n,u.z,n.z,s),m=ixe(f,o,g,a);function x(b){let T=b.time/t;c.setView({orientation:{heading:R.lerp(d,i,T),pitch:m(T),roll:R.lerp(p,r,T)}}),z.lerp(u,n,T,c.position),c.position.z=g(T)}return x}function Jut(e,t){e.longitude<t.longitude?e.longitude+=R.TWO_PI:t.longitude+=R.TWO_PI}function eft(e,t){let n=e.longitude-t.longitude;n<-R.PI?e.longitude+=R.TWO_PI:n>R.PI&&(t.longitude+=R.TWO_PI)}var tft=new fe,nft=new fe;function ift(e,t,n,i,o,r,s,a,c,u){let f=e.camera,p=e.mapProjection.ellipsoid,g=fe.clone(f.positionCartographic,tft),m=f.pitch,x=E2(f.heading,i),b=E2(f.roll,r),T=p.cartesianToCartographic(n,nft);g.longitude=R.zeroToTwoPi(g.longitude),T.longitude=R.zeroToTwoPi(T.longitude);let C=!1;if(l(a)){let D=R.zeroToTwoPi(a),O=Math.min(g.longitude,T.longitude),I=Math.max(g.longitude,T.longitude),L=D>=O&&D<=I;if(l(c)){let N=Math.abs(g.longitude-T.longitude),_=R.TWO_PI-N;(L?N:_)<(L?_:N)*c&&!L&&(C=!0)}else L||(C=!0)}C?Jut(g,T):eft(g,T);let A=TK(f,n,g.height,T.height,s),E=ixe(m,o,A,u);function v(){let D=g.longitude,O=T.longitude,I=g.latitude,L=T.latitude;return function(_){let S=_.time/t,w=h.fromRadians(R.lerp(D,O,S),R.lerp(I,L,S),A(S),p);f.setView({destination:w,orientation:{heading:R.lerp(x,i,S),pitch:E(S),roll:R.lerp(b,r,S)}})}}return v()}function oft(e,t,n,i,o,r,s){let a=e.camera,c=h.clone(a.position,oxe),u=E2(a.heading,i),f=a.frustum.right-a.frustum.left,d=TK(a,n,f,n.z,s);function p(g){let m=g.time/t;a.setView({orientation:{heading:R.lerp(u,i,m)}}),z.lerp(c,n,m,a.position);let x=d(m),b=a.frustum,T=b.top/b.right,C=(x-(b.right-b.left))*.5;b.right+=C,b.left-=C,b.top=T*b.right,b.bottom=-b.top}return p}var exe=new fe,rft=new h;function bK(e,t){return{startObject:{},stopObject:{},duration:0,complete:e,cancel:t}}function txe(e,t){function n(){typeof t=="function"&&t(),e.enableInputs=!0}return n}nxe.createTween=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.destination,i=e.mode;if(i===ne.MORPHING)return bK();let o=y(t.convert,!0),r=e.mapProjection,s=r.ellipsoid,a=t.maximumHeight,c=t.flyOverLongitude,u=t.flyOverLongitudeWeight,f=t.pitchAdjustHeight,d=t.easingFunction;o&&i!==ne.SCENE3D&&(s.cartesianToCartographic(n,exe),n=r.project(exe,rft));let p=e.camera,g=t.endTransform;l(g)&&p._setTransform(g);let m=t.duration;l(m)||(m=Math.ceil(h.distance(p.position,n)/1e6)+2,m=Math.min(m,3));let x=y(t.heading,0),b=y(t.pitch,-R.PI_OVER_TWO),T=y(t.roll,0),C=e.screenSpaceCameraController;C.enableInputs=!1;let A=txe(C,t.complete),E=txe(C,t.cancel),v=p.frustum,D=e.mode===ne.SCENE2D;if(D=D&&z.equalsEpsilon(p.position,n,R.EPSILON6),D=D&&R.equalsEpsilon(Math.max(v.right-v.left,v.top-v.bottom),n.z,R.EPSILON6),D=D||e.mode!==ne.SCENE2D&&h.equalsEpsilon(n,p.position,R.EPSILON10),D=D&&R.equalsEpsilon(R.negativePiToPi(x),R.negativePiToPi(p.heading),R.EPSILON10)&&R.equalsEpsilon(R.negativePiToPi(b),R.negativePiToPi(p.pitch),R.EPSILON10)&&R.equalsEpsilon(R.negativePiToPi(T),R.negativePiToPi(p.roll),R.EPSILON10),D)return bK(A,E);let O=new Array(4);if(O[ne.SCENE2D]=oft,O[ne.SCENE3D]=ift,O[ne.COLUMBUS_VIEW]=Qut,m<=0)return bK(function(){O[i](e,1,n,x,b,T,a,c,u,f)({time:1}),typeof A=="function"&&A()},E);let I=O[i](e,m,n,x,b,T,a,c,u,f);if(!l(d)){let L=p.positionCartographic.height,N=i===ne.SCENE3D?s.cartesianToCartographic(n).height:n.z;L>N&&L>11500?d=Br.CUBIC_OUT:d=Br.QUINTIC_IN_OUT}return{duration:m,easingFunction:d,startObject:{time:0},stopObject:{time:m},update:I,complete:A,cancel:E}};var S2=nxe;var sft={ROTATE:0,INFINITE_SCROLL:1},tu=Object.freeze(sft);function Jt(e){this._scene=e,this._transform=F.clone(F.IDENTITY),this._invTransform=F.clone(F.IDENTITY),this._actualTransform=F.clone(F.IDENTITY),this._actualInvTransform=F.clone(F.IDENTITY),this._transformChanged=!1,this.position=new h,this._position=new h,this._positionWC=new h,this._positionCartographic=new fe,this._oldPositionWC=void 0,this.positionWCDeltaMagnitude=0,this.positionWCDeltaMagnitudeLastFrame=0,this.timeSinceMoved=0,this._lastMovedTimestamp=0,this.direction=new h,this._direction=new h,this._directionWC=new h,this.up=new h,this._up=new h,this._upWC=new h,this.right=new h,this._right=new h,this._rightWC=new h,this.frustum=new Ti,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=R.toRadians(60),this.defaultMoveAmount=1e5,this.defaultLookAmount=Math.PI/60,this.defaultRotateAmount=Math.PI/3600,this.defaultZoomAmount=1e5,this.constrainedAxis=void 0,this.maximumZoomFactor=1.5,this._moveStart=new pe,this._moveEnd=new pe,this._changed=new pe,this._changedPosition=void 0,this._changedDirection=void 0,this._changedFrustum=void 0,this._changedHeading=void 0,this._changedRoll=void 0,this.percentageChanged=.5,this._viewMatrix=new F,this._invViewMatrix=new F,dxe(this),this._mode=ne.SCENE3D,this._modeChanged=!0;let t=e.mapProjection;this._projection=t,this._maxCoord=t.project(new fe(Math.PI,R.PI_OVER_TWO)),this._max2Dfrustum=void 0,Exe(this,Jt.DEFAULT_VIEW_RECTANGLE,this.position,!0);let n=h.magnitude(this.position);n+=n*Jt.DEFAULT_VIEW_FACTOR,h.normalize(this.position,this.position),h.multiplyByScalar(this.position,n,this.position)}Jt.TRANSFORM_2D=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);Jt.TRANSFORM_2D_INVERSE=F.inverseTransformation(Jt.TRANSFORM_2D,new F);Jt.DEFAULT_VIEW_RECTANGLE=se.fromDegrees(-95,-20,-70,90);Jt.DEFAULT_VIEW_FACTOR=.5;Jt.DEFAULT_OFFSET=new Qf(0,-R.PI_OVER_FOUR,0);function dxe(e){F.computeView(e._position,e._direction,e._up,e._right,e._viewMatrix),F.multiply(e._viewMatrix,e._actualInvTransform,e._viewMatrix),F.inverseTransformation(e._viewMatrix,e._invViewMatrix)}function aft(e){if(!l(e._oldPositionWC))e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC);else{e.positionWCDeltaMagnitudeLastFrame=e.positionWCDeltaMagnitude;let t=h.subtract(e.positionWC,e._oldPositionWC,e._oldPositionWC);e.positionWCDeltaMagnitude=h.magnitude(t),e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC),e.positionWCDeltaMagnitude>0?(e.timeSinceMoved=0,e._lastMovedTimestamp=pi()):e.timeSinceMoved=Math.max(pi()-e._lastMovedTimestamp,0)/1e3}}Jt.prototype.canPreloadFlight=function(){return l(this._currentFlight)&&this._mode!==ne.SCENE2D};Jt.prototype._updateCameraChanged=function(){let e=this;if(aft(e),e._changed.numberOfListeners===0)return;let t=e.percentageChanged,n=e.heading;l(e._changedHeading)||(e._changedHeading=n);let i=Math.abs(e._changedHeading-n)%R.TWO_PI;i=i>R.PI?R.TWO_PI-i:i;let o=i/Math.PI;o>t&&(e._changedHeading=n);let r=e.roll;l(e._changedRoll)||(e._changedRoll=r);let s=Math.abs(e._changedRoll-r)%R.TWO_PI;s=s>R.PI?R.TWO_PI-s:s;let a=s/Math.PI;if(a>t&&(e._changedRoll=r),(a>t||o>t)&&e._changed.raiseEvent(Math.max(a,o)),e._mode===ne.SCENE2D){if(!l(e._changedFrustum)){e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone();return}let p=e.position,g=e._changedPosition,m=e.frustum,x=e._changedFrustum,b=p.x+m.left,T=p.x+m.right,C=g.x+x.left,A=g.x+x.right,E=p.y+m.bottom,v=p.y+m.top,D=g.y+x.bottom,O=g.y+x.top,I=Math.max(b,C),L=Math.min(T,A),N=Math.max(E,D),_=Math.min(v,O),S;if(I>=L||N>=v)S=1;else{let w=x;b<C&&T>A&&E<D&&v>O&&(w=m),S=1-(L-I)*(_-N)/((w.right-w.left)*(w.top-w.bottom))}S>t&&(e._changed.raiseEvent(S),e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone(e._changedFrustum));return}if(!l(e._changedDirection)){e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection);return}let c=R.acosClamped(h.dot(e.directionWC,e._changedDirection)),u;l(e.frustum.fovy)?u=c/(e.frustum.fovy*.5):u=c;let d=h.distance(e.positionWC,e._changedPosition)/e.positionCartographic.height;(u>t||d>t)&&(e._changed.raiseEvent(Math.max(u,d)),e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection))};function cft(e){wt.basisTo2D(e._projection,e._transform,e._actualTransform)}var lft=new fe,uft=new h,pH=new h,fft=new oe,dft=new oe,hft=new oe,mft=new oe,pft=new oe;function _ft(e){let t=e._projection,n=t.ellipsoid,i=F.getColumn(e._transform,3,fft),o=n.cartesianToCartographic(i,lft),r=t.project(o,uft),s=dft;s.x=r.z,s.y=r.x,s.z=r.y,s.w=1;let a=oe.clone(oe.UNIT_X,pft),c=oe.add(F.getColumn(e._transform,0,pH),i,pH);n.cartesianToCartographic(c,o),t.project(o,r);let u=hft;u.x=r.z,u.y=r.x,u.z=r.y,u.w=0,h.subtract(u,s,u),u.x=0;let f=mft;if(h.magnitudeSquared(u)>R.EPSILON10)h.cross(a,u,f);else{let d=oe.add(F.getColumn(e._transform,1,pH),i,pH);n.cartesianToCartographic(d,o),t.project(o,r),f.x=r.z,f.y=r.x,f.z=r.y,f.w=0,h.subtract(f,s,f),f.x=0,h.magnitudeSquared(f)<R.EPSILON10&&(oe.clone(oe.UNIT_Y,u),oe.clone(oe.UNIT_Z,f))}h.cross(f,a,u),h.normalize(u,u),h.cross(a,u,f),h.normalize(f,f),F.setColumn(e._actualTransform,0,u,e._actualTransform),F.setColumn(e._actualTransform,1,f,e._actualTransform),F.setColumn(e._actualTransform,2,a,e._actualTransform),F.setColumn(e._actualTransform,3,s,e._actualTransform)}var AK=new h;function wc(e){let t=e._mode,n=!1,i=0;t===ne.SCENE2D&&(i=e.frustum.right-e.frustum.left,n=i!==e._positionCartographic.height);let o=e._position,r=!h.equals(o,e.position)||n;r&&(o=h.clone(e.position,e._position));let s=e._direction,a=!h.equals(s,e.direction);a&&(h.normalize(e.direction,e.direction),s=h.clone(e.direction,e._direction));let c=e._up,u=!h.equals(c,e.up);u&&(h.normalize(e.up,e.up),c=h.clone(e.up,e._up));let f=e._right,d=!h.equals(f,e.right);d&&(h.normalize(e.right,e.right),f=h.clone(e.right,e._right));let p=e._transformChanged||e._modeChanged;e._transformChanged=!1,p&&(F.inverseTransformation(e._transform,e._invTransform),e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D?F.equals(F.IDENTITY,e._transform)?F.clone(Jt.TRANSFORM_2D,e._actualTransform):e._mode===ne.COLUMBUS_VIEW?cft(e):_ft(e):F.clone(e._transform,e._actualTransform),F.inverseTransformation(e._actualTransform,e._actualInvTransform),e._modeChanged=!1);let g=e._actualTransform;if(r||p)if(e._positionWC=F.multiplyByPoint(g,o,e._positionWC),t===ne.SCENE3D||t===ne.MORPHING)e._positionCartographic=e._projection.ellipsoid.cartesianToCartographic(e._positionWC,e._positionCartographic);else{let m=AK;m.x=e._positionWC.y,m.y=e._positionWC.z,m.z=e._positionWC.x,t===ne.SCENE2D&&(m.z=i),e._projection.unproject(m,e._positionCartographic)}if(a||u||d){let m=h.dot(s,h.cross(c,f,AK));if(Math.abs(1-m)>R.EPSILON2){let x=1/h.magnitudeSquared(c),b=h.dot(c,s)*x,T=h.multiplyByScalar(s,b,AK);c=h.normalize(h.subtract(c,T,e._up),e._up),h.clone(c,e.up),f=h.cross(s,c,e._right),h.clone(f,e.right)}}(a||p)&&(e._directionWC=F.multiplyByPointAsVector(g,s,e._directionWC),h.normalize(e._directionWC,e._directionWC)),(u||p)&&(e._upWC=F.multiplyByPointAsVector(g,c,e._upWC),h.normalize(e._upWC,e._upWC)),(d||p)&&(e._rightWC=F.multiplyByPointAsVector(g,f,e._rightWC),h.normalize(e._rightWC,e._rightWC)),(r||a||u||d||p)&&dxe(e)}function hxe(e,t){let n;return R.equalsEpsilon(Math.abs(e.z),1,R.EPSILON3)?n=Math.atan2(t.y,t.x)-R.PI_OVER_TWO:n=Math.atan2(e.y,e.x)-R.PI_OVER_TWO,R.TWO_PI-R.zeroToTwoPi(n)}function mxe(e){return R.PI_OVER_TWO-R.acosClamped(e.z)}function pxe(e,t,n){let i=0;return R.equalsEpsilon(Math.abs(e.z),1,R.EPSILON3)||(i=Math.atan2(-n.z,t.z),i=R.zeroToTwoPi(i+R.TWO_PI)),i}var yH=new F,xH=new F;Object.defineProperties(Jt.prototype,{transform:{get:function(){return this._transform}},inverseTransform:{get:function(){return wc(this),this._invTransform}},viewMatrix:{get:function(){return wc(this),this._viewMatrix}},inverseViewMatrix:{get:function(){return wc(this),this._invViewMatrix}},positionCartographic:{get:function(){return wc(this),this._positionCartographic}},positionWC:{get:function(){return wc(this),this._positionWC}},directionWC:{get:function(){return wc(this),this._directionWC}},upWC:{get:function(){return wc(this),this._upWC}},rightWC:{get:function(){return wc(this),this._rightWC}},heading:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,yH),n=wt.eastNorthUpToFixedFrame(this.positionWC,e,xH);this._setTransform(n);let i=hxe(this.direction,this.up);return this._setTransform(t),i}}},pitch:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,yH),n=wt.eastNorthUpToFixedFrame(this.positionWC,e,xH);this._setTransform(n);let i=mxe(this.direction);return this._setTransform(t),i}}},roll:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,yH),n=wt.eastNorthUpToFixedFrame(this.positionWC,e,xH);this._setTransform(n);let i=pxe(this.direction,this.up,this.right);return this._setTransform(t),i}}},moveStart:{get:function(){return this._moveStart}},moveEnd:{get:function(){return this._moveEnd}},changed:{get:function(){return this._changed}}});Jt.prototype.update=function(e){let t=!1;if(e!==this._mode&&(this._mode=e,this._modeChanged=e!==ne.MORPHING,t=this._mode===ne.SCENE2D),t){let n=this._max2Dfrustum=this.frustum.clone(),i=2,o=n.top/n.right;n.right=this._maxCoord.x*i,n.left=-n.right,n.top=o*n.right,n.bottom=-n.top}this._mode===ne.SCENE2D&&xxe(this,this.position)};var gft=new h,yft=new h,xft=new h;Jt.prototype._setTransform=function(e){let t=h.clone(this.positionWC,gft),n=h.clone(this.upWC,yft),i=h.clone(this.directionWC,xft);F.clone(e,this._transform),this._transformChanged=!0,wc(this);let o=this._actualInvTransform;F.multiplyByPoint(o,t,this.position),F.multiplyByPointAsVector(o,i,this.direction),F.multiplyByPointAsVector(o,n,this.up),h.cross(this.direction,this.up,this.right),wc(this)};var bft=new z,Tft=new pn,Aft=new h,Cft=new h;function _xe(e){if(!F.equals(F.IDENTITY,e.transform))return h.magnitude(e.position);let t=e._scene,n=t.globe,i=bft;i.x=t.drawingBufferWidth/2,i.y=t.drawingBufferHeight/2;let o;if(l(n)){let a=e.getPickRay(i,Tft);o=n.pickWorldCoordinates(a,t,!0,Aft)}let r;t.pickPositionSupported&&(r=t.pickPositionWorldCoordinates(i,Cft));let s;if(l(o)||l(r)){let a=l(r)?h.distance(r,e.positionWC):Number.POSITIVE_INFINITY,c=l(o)?h.distance(o,e.positionWC):Number.POSITIVE_INFINITY;s=Math.min(a,c)}else s=Math.max(e.positionCartographic.height,0);return s}Jt.prototype._adjustOrthographicFrustum=function(e){this.frustum instanceof rn&&(!e&&this._positionCartographic.height<15e4||(this.frustum.width=_xe(this)))};var bH=new h,wK=new F,Eft=new F,DK=new Me,PK=new $,gxe=new fe;function Sft(e,t,n){let i=F.clone(e.transform,wK),o=wt.eastNorthUpToFixedFrame(t,e._projection.ellipsoid,Eft);e._setTransform(o),h.clone(h.ZERO,e.position),n.heading=n.heading-R.PI_OVER_TWO;let r=Me.fromHeadingPitchRoll(n,DK),s=$.fromQuaternion(r,PK);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(i),e._adjustOrthographicFrustum(!0)}function vft(e,t,n,i){let o=F.clone(e.transform,wK);if(e._setTransform(F.IDENTITY),!h.equals(t,e.positionWC)){if(i){let a=e._projection,c=a.ellipsoid.cartesianToCartographic(t,gxe);t=a.project(c,bH)}h.clone(t,e.position)}n.heading=n.heading-R.PI_OVER_TWO;let r=Me.fromHeadingPitchRoll(n,DK),s=$.fromQuaternion(r,PK);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(o),e._adjustOrthographicFrustum(!0)}function wft(e,t,n,i){let o=F.clone(e.transform,wK);if(e._setTransform(F.IDENTITY),!h.equals(t,e.positionWC)){if(i){let c=e._projection,u=c.ellipsoid.cartesianToCartographic(t,gxe);t=c.project(u,bH)}z.clone(t,e.position);let r=-t.z*.5,s=-r,a=e.frustum;if(s>r){let c=a.top/a.right;a.right=s,a.left=r,a.top=a.right*c,a.bottom=-a.top}}if(e._scene.mapMode2D===tu.ROTATE){n.heading=n.heading-R.PI_OVER_TWO,n.pitch=-R.PI_OVER_TWO,n.roll=0;let r=Me.fromHeadingPitchRoll(n,DK),s=$.fromQuaternion(r,PK);$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right)}e._setTransform(o)}var Dft=new h,Pft=new h,Ift=new h;function yxe(e,t,n,i){let o=h.clone(n.direction,Dft),r=h.clone(n.up,Pft);if(e._scene.mode===ne.SCENE3D){let a=e._projection.ellipsoid,c=wt.eastNorthUpToFixedFrame(t,a,yH),u=F.inverseTransformation(c,xH);F.multiplyByPointAsVector(u,o,o),F.multiplyByPointAsVector(u,r,r)}let s=h.cross(o,r,Ift);return i.heading=hxe(o,r),i.pitch=mxe(o),i.roll=pxe(o,r,s),i}var vK={destination:void 0,orientation:{direction:void 0,up:void 0,heading:void 0,pitch:void 0,roll:void 0},convert:void 0,endTransform:void 0},lv=new $a;Jt.prototype.setView=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.orientation,y.EMPTY_OBJECT),n=this._mode;if(n===ne.MORPHING)return;l(e.endTransform)&&this._setTransform(e.endTransform);let i=y(e.convert,!0),o=y(e.destination,h.clone(this.positionWC,bH));l(o)&&l(o.west)&&(o=this.getRectangleCameraCoordinates(o,bH),i=!1),l(t.direction)&&(t=yxe(this,o,t,vK.orientation)),lv.heading=y(t.heading,0),lv.pitch=y(t.pitch,-R.PI_OVER_TWO),lv.roll=y(t.roll,0),n===ne.SCENE3D?Sft(this,o,lv):n===ne.SCENE2D?wft(this,o,lv,i):vft(this,o,lv,i)};var Rft=new h;Jt.prototype.flyHome=function(e){let t=this._mode;if(t===ne.MORPHING&&this._scene.completeMorph(),t===ne.SCENE2D)this.flyTo({destination:Jt.DEFAULT_VIEW_RECTANGLE,duration:e,endTransform:F.IDENTITY});else if(t===ne.SCENE3D){let n=this.getRectangleCameraCoordinates(Jt.DEFAULT_VIEW_RECTANGLE),i=h.magnitude(n);i+=i*Jt.DEFAULT_VIEW_FACTOR,h.normalize(n,n),h.multiplyByScalar(n,i,n),this.flyTo({destination:n,duration:e,endTransform:F.IDENTITY})}else if(t===ne.COLUMBUS_VIEW){let n=this._projection.ellipsoid.maximumRadius,i=new h(0,-1,1);i=h.multiplyByScalar(h.normalize(i,i),5*n,i),this.flyTo({destination:i,duration:e,orientation:{heading:0,pitch:-Math.acos(h.normalize(i,Rft).z),roll:0},endTransform:F.IDENTITY,convert:!1})}};Jt.prototype.worldToCameraCoordinates=function(e,t){return l(t)||(t=new oe),wc(this),F.multiplyByVector(this._actualInvTransform,e,t)};Jt.prototype.worldToCameraCoordinatesPoint=function(e,t){return l(t)||(t=new h),wc(this),F.multiplyByPoint(this._actualInvTransform,e,t)};Jt.prototype.worldToCameraCoordinatesVector=function(e,t){return l(t)||(t=new h),wc(this),F.multiplyByPointAsVector(this._actualInvTransform,e,t)};Jt.prototype.cameraToWorldCoordinates=function(e,t){return l(t)||(t=new oe),wc(this),F.multiplyByVector(this._actualTransform,e,t)};Jt.prototype.cameraToWorldCoordinatesPoint=function(e,t){return l(t)||(t=new h),wc(this),F.multiplyByPoint(this._actualTransform,e,t)};Jt.prototype.cameraToWorldCoordinatesVector=function(e,t){return l(t)||(t=new h),wc(this),F.multiplyByPointAsVector(this._actualTransform,e,t)};function xxe(e,t){let n=e._scene.mapMode2D===tu.ROTATE,i=e._maxCoord.x,o=e._maxCoord.y,r,s;n?(s=i,r=-s):(s=t.x-i*2,r=t.x+i*2),t.x>i&&(t.x=s),t.x<-i&&(t.x=r),t.y>o&&(t.y=o),t.y<-o&&(t.y=-o)}var rxe=new h;Jt.prototype.move=function(e,t){let n=this.position;h.multiplyByScalar(e,t,rxe),h.add(n,rxe,n),this._mode===ne.SCENE2D&&xxe(this,n),this._adjustOrthographicFrustum(!0)};Jt.prototype.moveForward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?TH(this,e):this.move(this.direction,e)};Jt.prototype.moveBackward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?TH(this,-e):this.move(this.direction,-e)};Jt.prototype.moveUp=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,e)};Jt.prototype.moveDown=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,-e)};Jt.prototype.moveRight=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,e)};Jt.prototype.moveLeft=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,-e)};Jt.prototype.lookLeft=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,-e)};Jt.prototype.lookRight=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,e)};Jt.prototype.lookUp=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,-e)};Jt.prototype.lookDown=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,e)};var Oft=new Me,Mft=new $;Jt.prototype.look=function(e,t){let n=y(t,this.defaultLookAmount),i=Me.fromAxisAngle(e,-n,Oft),o=$.fromQuaternion(i,Mft),r=this.direction,s=this.up,a=this.right;$.multiplyByVector(o,r,r),$.multiplyByVector(o,s,s),$.multiplyByVector(o,a,a)};Jt.prototype.twistLeft=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,e)};Jt.prototype.twistRight=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,-e)};var Lft=new Me,Nft=new $;Jt.prototype.rotate=function(e,t){let n=y(t,this.defaultRotateAmount),i=Me.fromAxisAngle(e,-n,Lft),o=$.fromQuaternion(i,Nft);$.multiplyByVector(o,this.position,this.position),$.multiplyByVector(o,this.direction,this.direction),$.multiplyByVector(o,this.up,this.up),h.cross(this.direction,this.up,this.right),h.cross(this.right,this.direction,this.up),this._adjustOrthographicFrustum(!1)};Jt.prototype.rotateDown=function(e){e=y(e,this.defaultRotateAmount),bxe(this,e)};Jt.prototype.rotateUp=function(e){e=y(e,this.defaultRotateAmount),bxe(this,-e)};var Fft=new h,Bft=new h,kft=new h,sxe=new h;function bxe(e,t){let n=e.position;if(l(e.constrainedAxis)&&!h.equalsEpsilon(e.position,h.ZERO,R.EPSILON2)){let i=h.normalize(n,Fft),o=h.equalsEpsilon(i,e.constrainedAxis,R.EPSILON2),r=h.equalsEpsilon(i,h.negate(e.constrainedAxis,sxe),R.EPSILON2);if(!o&&!r){let s=h.normalize(e.constrainedAxis,Bft),a=h.dot(i,s),c=R.acosClamped(a);t>0&&t>c&&(t=c-R.EPSILON4),a=h.dot(i,h.negate(s,sxe)),c=R.acosClamped(a),t<0&&-t>c&&(t=-c+R.EPSILON4);let u=h.cross(s,i,kft);e.rotate(u,t)}else(o&&t<0||r&&t>0)&&e.rotate(e.right,t)}else e.rotate(e.right,t)}Jt.prototype.rotateRight=function(e){e=y(e,this.defaultRotateAmount),Txe(this,-e)};Jt.prototype.rotateLeft=function(e){e=y(e,this.defaultRotateAmount),Txe(this,e)};function Txe(e,t){l(e.constrainedAxis)?e.rotate(e.constrainedAxis,t):e.rotate(e.up,t)}function TH(e,t){let n=e.frustum,i;if(t=t*.5,Math.abs(n.top)+Math.abs(n.bottom)>Math.abs(n.left)+Math.abs(n.right)){let o=n.top-t,r=n.bottom+t,s=e._maxCoord.y;e._scene.mapMode2D===tu.ROTATE&&(s*=e.maximumZoomFactor),r>s&&(r=s,o=-s),o<=r&&(o=1,r=-1),i=n.right/n.top,n.top=o,n.bottom=r,n.right=n.top*i,n.left=-n.right}else{let o=n.right-t,r=n.left+t,s=e._maxCoord.x;e._scene.mapMode2D===tu.ROTATE&&(s*=e.maximumZoomFactor),o>s&&(o=s,r=-s),o<=r&&(o=1,r=-1),i=n.top/n.right,n.right=o,n.left=r,n.top=n.right*i,n.bottom=-n.top}}function Axe(e,t){e.move(e.direction,t)}Jt.prototype.zoomIn=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?TH(this,e):Axe(this,e)};Jt.prototype.zoomOut=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?TH(this,-e):Axe(this,-e)};Jt.prototype.getMagnitude=function(){if(this._mode===ne.SCENE3D)return h.magnitude(this.position);if(this._mode===ne.COLUMBUS_VIEW)return Math.abs(this.position.z);if(this._mode===ne.SCENE2D)return Math.max(this.frustum.right-this.frustum.left,this.frustum.top-this.frustum.bottom)};var Vft=new F;Jt.prototype.lookAt=function(e,t){let n=wt.eastNorthUpToFixedFrame(e,te.WGS84,Vft);this.lookAtTransform(n,t)};var Uft=new h,zft=new Me,Hft=new Me,Gft=new $;function Cxe(e,t,n){t=R.clamp(t,-R.PI_OVER_TWO,R.PI_OVER_TWO),e=R.zeroToTwoPi(e)-R.PI_OVER_TWO;let i=Me.fromAxisAngle(h.UNIT_Y,-t,zft),o=Me.fromAxisAngle(h.UNIT_Z,-e,Hft),r=Me.multiply(o,i,o),s=$.fromQuaternion(r,Gft),a=h.clone(h.UNIT_X,Uft);return $.multiplyByVector(s,a,a),h.negate(a,a),h.multiplyByScalar(a,n,a),a}Jt.prototype.lookAtTransform=function(e,t){if(this._setTransform(e),!l(t))return;let n;if(l(t.heading)?n=Cxe(t.heading,t.pitch,t.range):n=t,this._mode===ne.SCENE2D){z.clone(z.ZERO,this.position),h.negate(n,this.up),this.up.z=0,h.magnitudeSquared(this.up)<R.EPSILON10&&h.clone(h.UNIT_Y,this.up),h.normalize(this.up,this.up),this._setTransform(F.IDENTITY),h.negate(h.UNIT_Z,this.direction),h.cross(this.direction,this.up,this.right),h.normalize(this.right,this.right);let i=this.frustum,o=i.top/i.right;i.right=h.magnitude(n)*.5,i.left=-i.right,i.top=o*i.right,i.bottom=-i.top,this._setTransform(e);return}h.clone(n,this.position),h.negate(this.position,this.direction),h.normalize(this.direction,this.direction),h.cross(this.direction,h.UNIT_Z,this.right),h.magnitudeSquared(this.right)<R.EPSILON10&&h.clone(h.UNIT_X,this.right),h.normalize(this.right,this.right),h.cross(this.right,this.direction,this.up),h.normalize(this.up,this.up),this._adjustOrthographicFrustum(!0)};var v2=new fe,Wft=new fe,jft=new h,qft=new h,Yft=new h,Xft=new h,Kft=new h,Zft=new h,$ft=new h,CK=new h,Qft={direction:new h,right:new h,up:new h},axe;function vc(e,t,n,i){return Math.abs(h.dot(t,n))/i-h.dot(e,n)}function Exe(e,t,n,i){let o=e._projection.ellipsoid,r=i?e:Qft,s=t.north,a=t.south,c=t.east,u=t.west;u>c&&(c+=R.TWO_PI);let f=(u+c)*.5,d;if(a<-R.PI_OVER_TWO+R.RADIANS_PER_DEGREE&&s>R.PI_OVER_TWO-R.RADIANS_PER_DEGREE)d=0;else{let L=v2;L.longitude=f,L.latitude=s,L.height=0;let N=Wft;N.longitude=f,N.latitude=a,N.height=0;let _=axe;(!l(_)||_.ellipsoid!==o)&&(axe=_=new Sp(void 0,void 0,o)),_.setEndPoints(L,N),d=_.interpolateUsingFraction(.5,v2).latitude}let p=v2;p.longitude=f,p.latitude=d,p.height=0;let g=o.cartographicToCartesian(p,$ft),m=v2;m.longitude=c,m.latitude=s;let x=o.cartographicToCartesian(m,jft);m.longitude=u;let b=o.cartographicToCartesian(m,Yft);m.longitude=f;let T=o.cartographicToCartesian(m,Kft);m.latitude=a;let C=o.cartographicToCartesian(m,Zft);m.longitude=c;let A=o.cartographicToCartesian(m,Xft);m.longitude=u;let E=o.cartographicToCartesian(m,qft);h.subtract(b,g,b),h.subtract(A,g,A),h.subtract(x,g,x),h.subtract(E,g,E),h.subtract(T,g,T),h.subtract(C,g,C);let v=o.geodeticSurfaceNormal(g,r.direction);h.negate(v,v);let D=h.cross(v,h.UNIT_Z,r.right);h.normalize(D,D);let O=h.cross(D,v,r.up),I;if(e.frustum instanceof rn){let L=Math.max(h.distance(x,b),h.distance(A,E)),N=Math.max(h.distance(x,A),h.distance(b,E)),_,S,w=e.frustum._offCenterFrustum,P=w.right/w.top,M=N*P;L>M?(_=L,S=_/P):(S=N,_=M),I=Math.max(_,S)}else{let L=Math.tan(e.frustum.fovy*.5),N=e.frustum.aspectRatio*L;if(I=Math.max(vc(v,O,b,L),vc(v,O,A,L),vc(v,O,x,L),vc(v,O,E,L),vc(v,O,T,L),vc(v,O,C,L),vc(v,D,b,N),vc(v,D,A,N),vc(v,D,x,N),vc(v,D,E,N),vc(v,D,T,N),vc(v,D,C,N)),a<0&&s>0){let _=v2;_.longitude=u,_.latitude=0,_.height=0;let S=o.cartographicToCartesian(_,CK);h.subtract(S,g,S),I=Math.max(I,vc(v,O,S,L),vc(v,D,S,N)),_.longitude=c,S=o.cartographicToCartesian(_,CK),h.subtract(S,g,S),I=Math.max(I,vc(v,O,S,L),vc(v,D,S,N))}}return h.add(g,h.multiplyByScalar(v,-I,CK),n)}var Jft=new fe,edt=new h,tdt=new h;function ndt(e,t,n){let i=e._projection;t.west>t.east&&(t=se.MAX_VALUE);let o=e._actualTransform,r=e._actualInvTransform,s=Jft;s.longitude=t.east,s.latitude=t.north;let a=i.project(s,edt);F.multiplyByPoint(o,a,a),F.multiplyByPoint(r,a,a),s.longitude=t.west,s.latitude=t.south;let c=i.project(s,tdt);if(F.multiplyByPoint(o,c,c),F.multiplyByPoint(r,c,c),n.x=(a.x-c.x)*.5+c.x,n.y=(a.y-c.y)*.5+c.y,l(e.frustum.fovy)){let u=Math.tan(e.frustum.fovy*.5),f=e.frustum.aspectRatio*u;n.z=Math.max((a.x-c.x)/f,(a.y-c.y)/u)*.5}else{let u=a.x-c.x,f=a.y-c.y;n.z=Math.max(u,f)}return n}var idt=new fe,odt=new h,rdt=new h;function sdt(e,t,n){let i=e._projection,o=t.east;t.west>t.east&&(e._scene.mapMode2D===tu.INFINITE_SCROLL?o+=R.TWO_PI:(t=se.MAX_VALUE,o=t.east));let r=idt;r.longitude=o,r.latitude=t.north;let s=i.project(r,odt);r.longitude=t.west,r.latitude=t.south;let a=i.project(r,rdt),c=Math.abs(s.x-a.x)*.5,u=Math.abs(s.y-a.y)*.5,f,d,p=e.frustum.right/e.frustum.top,g=u*p;return c>g?(f=c,d=f/p):(d=u,f=g),u=Math.max(2*f,2*d),n.x=(s.x-a.x)*.5+a.x,n.y=(s.y-a.y)*.5+a.y,r=i.unproject(n,r),r.height=u,n=i.project(r,n),n}Jt.prototype.getRectangleCameraCoordinates=function(e,t){let n=this._mode;if(l(t)||(t=new h),n===ne.SCENE3D)return Exe(this,e,t);if(n===ne.COLUMBUS_VIEW)return ndt(this,e,t);if(n===ne.SCENE2D)return sdt(this,e,t)};var adt=new pn;function cdt(e,t,n,i){n=y(n,te.WGS84);let o=e.getPickRay(t,adt),r=Qn.rayEllipsoid(o,n);if(!r)return;let s=r.start>0?r.start:r.stop;return pn.getPoint(o,s,i)}var ldt=new pn;function udt(e,t,n,i){let r=e.getPickRay(t,ldt).origin;r=h.fromElements(r.y,r.z,0,r);let s=n.unproject(r);if(!(s.latitude<-R.PI_OVER_TWO||s.latitude>R.PI_OVER_TWO))return n.ellipsoid.cartographicToCartesian(s,i)}var fdt=new pn;function ddt(e,t,n,i){let o=e.getPickRay(t,fdt),r=-o.origin.x/o.direction.x;pn.getPoint(o,r,i);let s=n.unproject(new h(i.y,i.z,0));if(!(s.latitude<-R.PI_OVER_TWO||s.latitude>R.PI_OVER_TWO||s.longitude<-Math.PI||s.longitude>Math.PI))return n.ellipsoid.cartographicToCartesian(s,i)}Jt.prototype.pickEllipsoid=function(e,t,n){let i=this._scene.canvas;if(!(i.clientWidth===0||i.clientHeight===0)){if(l(n)||(n=new h),t=y(t,te.WGS84),this._mode===ne.SCENE3D)n=cdt(this,e,t,n);else if(this._mode===ne.SCENE2D)n=udt(this,e,this._projection,n);else if(this._mode===ne.COLUMBUS_VIEW)n=ddt(this,e,this._projection,n);else return;return n}};var hdt=new h,mdt=new h,pdt=new h;function _dt(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=Math.tan(e.frustum.fovy*.5),a=e.frustum.aspectRatio*s,c=e.frustum.near,u=2/o*t.x-1,f=2/r*(r-t.y)-1,d=e.positionWC;h.clone(d,n.origin);let p=h.multiplyByScalar(e.directionWC,c,hdt);h.add(d,p,p);let g=h.multiplyByScalar(e.rightWC,u*c*a,mdt),m=h.multiplyByScalar(e.upWC,f*c*s,pdt),x=h.add(p,g,n.direction);return h.add(x,m,x),h.subtract(x,d,x),h.normalize(x,x),n}var _H=new h;function gdt(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=e.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2/o*t.x-1;c*=(s.right-s.left)*.5;let u=2/r*(r-t.y)-1;u*=(s.top-s.bottom)*.5;let f=n.origin;return h.clone(e.position,f),h.multiplyByScalar(e.right,c,_H),h.add(_H,f,f),h.multiplyByScalar(e.up,u,_H),h.add(_H,f,f),h.clone(e.directionWC,n.direction),(e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D)&&h.fromElements(n.origin.z,n.origin.x,n.origin.y,n.origin),n}Jt.prototype.getPickRay=function(e,t){l(t)||(t=new pn);let n=this._scene.canvas;if(n.clientWidth<=0||n.clientHeight<=0)return;let i=this.frustum;return l(i.aspectRatio)&&l(i.fov)&&l(i.near)?_dt(this,e,t):gdt(this,e,t)};var ydt=new h,xdt=new h;Jt.prototype.distanceToBoundingSphere=function(e){let t=h.subtract(this.positionWC,e.center,ydt),n=h.multiplyByScalar(this.directionWC,h.dot(t,this.directionWC),xdt);return Math.max(0,h.magnitude(n)-e.radius)};var bdt=new z;Jt.prototype.getPixelSize=function(e,t,n){let i=this.distanceToBoundingSphere(e),o=this.frustum.getPixelDimensions(t,n,i,this._scene.pixelRatio,bdt);return Math.max(o.x,o.y)};function Tdt(e,t,n,i,o,r){let s=h.clone(t);n.y>i?s.y-=n.y-i:n.y<-i&&(s.y+=-i-n.y),n.z>o?s.z-=n.z-o:n.z<-o&&(s.z+=-o-n.z);function a(c){let u=h.lerp(t,s,c.time,new h);e.worldToCameraCoordinatesPoint(u,e.position)}return{easingFunction:Br.EXPONENTIAL_OUT,startObject:{time:0},stopObject:{time:1},duration:r,update:a}}var Adt=new h,cxe=new h,Cdt=new h,Edt=new h;function Sdt(e,t){let n=e.position,i=e.direction,o=e.worldToCameraCoordinatesVector(h.UNIT_X,Adt),r=-h.dot(o,n)/h.dot(o,i),s=h.add(n,h.multiplyByScalar(i,r,cxe),cxe);e.cameraToWorldCoordinatesPoint(s,s),n=e.cameraToWorldCoordinatesPoint(e.position,Cdt);let a=Math.tan(e.frustum.fovy*.5),c=e.frustum.aspectRatio*a,u=h.magnitude(h.subtract(n,s,Edt)),f=c*u,d=a*u,p=e._maxCoord.x,g=e._maxCoord.y,m=Math.max(f-p,p),x=Math.max(d-g,g);if(n.z<-m||n.z>m||n.y<-x||n.y>x){let b=s.y<-m||s.y>m,T=s.z<-x||s.z>x;if(b||T)return Tdt(e,n,s,m,x,t)}}Jt.prototype.createCorrectPositionTween=function(e){if(this._mode===ne.COLUMBUS_VIEW)return Sdt(this,e)};var vdt=new h,Ys={destination:void 0,heading:void 0,pitch:void 0,roll:void 0,duration:void 0,complete:void 0,cancel:void 0,endTransform:void 0,maximumHeight:void 0,easingFunction:void 0};Jt.prototype.cancelFlight=function(){l(this._currentFlight)&&(this._currentFlight.cancelTween(),this._currentFlight=void 0)};Jt.prototype.completeFlight=function(){if(l(this._currentFlight)){this._currentFlight.cancelTween();let e={destination:void 0,orientation:{heading:void 0,pitch:void 0,roll:void 0}};e.destination=Ys.destination,e.orientation.heading=Ys.heading,e.orientation.pitch=Ys.pitch,e.orientation.roll=Ys.roll,this.setView(e),l(this._currentFlight.complete)&&this._currentFlight.complete(),this._currentFlight=void 0}};Jt.prototype.flyTo=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.destination;if(this._mode===ne.MORPHING)return;this.cancelFlight();let i=t instanceof se;i&&(t=this.getRectangleCameraCoordinates(t,vdt));let o=y(e.orientation,y.EMPTY_OBJECT);if(l(o.direction)&&(o=yxe(this,t,o,vK.orientation)),l(e.duration)&&e.duration<=0){let f=vK;f.destination=e.destination,f.orientation.heading=o.heading,f.orientation.pitch=o.pitch,f.orientation.roll=o.roll,f.convert=e.convert,f.endTransform=e.endTransform,this.setView(f),typeof e.complete=="function"&&e.complete();return}let r=this,s;Ys.destination=t,Ys.heading=o.heading,Ys.pitch=o.pitch,Ys.roll=o.roll,Ys.duration=e.duration,Ys.complete=function(){s===r._currentFlight&&(r._currentFlight=void 0),l(e.complete)&&e.complete()},Ys.cancel=e.cancel,Ys.endTransform=e.endTransform,Ys.convert=i?!1:e.convert,Ys.maximumHeight=e.maximumHeight,Ys.pitchAdjustHeight=e.pitchAdjustHeight,Ys.flyOverLongitude=e.flyOverLongitude,Ys.flyOverLongitudeWeight=e.flyOverLongitudeWeight,Ys.easingFunction=e.easingFunction;let a=this._scene,c=S2.createTween(a,Ys);if(c.duration===0){typeof c.complete=="function"&&c.complete();return}s=a.tweens.add(c),this._currentFlight=s;let u=this._scene.preloadFlightCamera;this._mode!==ne.SCENE2D&&(l(u)||(u=Jt.clone(this)),u.setView({destination:t,orientation:o}),this._scene.preloadFlightCullingVolume=u.frustum.computeCullingVolume(u.positionWC,u.directionWC,u.upWC))};function wdt(e,t){let n=e.frustum,i=Math.tan(n.fovy*.5),o=n.aspectRatio*i;return Math.max(t/o,t/i)}function Ddt(e,t){let n=e.frustum,i=n.offCenterFrustum;l(i)&&(n=i);let o,r,s=n.right/n.top,a=t*s;return t>a?(o=t,r=o/s):(r=t,o=a),Math.max(o,r)*1.5}var Pdt=100;function Sxe(e,t,n){n=Qf.clone(l(n)?n:Jt.DEFAULT_OFFSET);let i=e._scene.screenSpaceCameraController.minimumZoomDistance,o=e._scene.screenSpaceCameraController.maximumZoomDistance,r=n.range;if(!l(r)||r===0){let s=t.radius;s===0?n.range=Pdt:e.frustum instanceof rn||e._mode===ne.SCENE2D?n.range=Ddt(e,s):n.range=wdt(e,s),n.range=R.clamp(n.range,i,o)}return n}Jt.prototype.viewBoundingSphere=function(e,t){t=Sxe(this,e,t),this.lookAt(e.center,t)};var Idt=new F,Rdt=new h,Odt=new h,Mdt=new h,Ldt=new h,Ndt=new oe,Fdt=new Me,Bdt=new $;Jt.prototype.flyToBoundingSphere=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=this._mode===ne.SCENE2D||this._mode===ne.COLUMBUS_VIEW;this._setTransform(F.IDENTITY);let i=Sxe(this,e,t.offset),o;n?o=h.multiplyByScalar(h.UNIT_Z,i.range,Rdt):o=Cxe(i.heading,i.pitch,i.range);let r=wt.eastNorthUpToFixedFrame(e.center,te.WGS84,Idt);F.multiplyByPoint(r,o,o);let s,a;if(!n){if(s=h.subtract(e.center,o,Odt),h.normalize(s,s),a=F.multiplyByPointAsVector(r,h.UNIT_Z,Mdt),1-Math.abs(h.dot(s,a))<R.EPSILON6){let u=Me.fromAxisAngle(s,i.heading,Fdt),f=$.fromQuaternion(u,Bdt);h.fromCartesian4(F.getColumn(r,1,Ndt),a),$.multiplyByVector(f,a,a)}let c=h.cross(s,a,Ldt);h.cross(c,s,a),h.normalize(a,a)}this.flyTo({destination:o,orientation:{direction:s,up:a},duration:t.duration,complete:t.complete,cancel:t.cancel,endTransform:t.endTransform,maximumHeight:t.maximumHeight,easingFunction:t.easingFunction,flyOverLongitude:t.flyOverLongitude,flyOverLongitudeWeight:t.flyOverLongitudeWeight,pitchAdjustHeight:t.pitchAdjustHeight})};var lxe=new h,uxe=new h,EK=new h,fxe=new h,w2=[new h,new h,new h,new h];function kdt(e,t){let n=t.radii,i=e.positionWC,o=h.multiplyComponents(t.oneOverRadii,i,lxe),r=h.magnitude(o),s=h.normalize(o,uxe),a,c;h.equalsEpsilon(s,h.UNIT_Z,R.EPSILON10)?(a=new h(0,1,0),c=new h(0,0,1)):(a=h.normalize(h.cross(h.UNIT_Z,s,EK),EK),c=h.normalize(h.cross(s,a,fxe),fxe));let u=Math.sqrt(h.magnitudeSquared(o)-1),f=h.multiplyByScalar(s,1/r,lxe),d=u/r,p=h.multiplyByScalar(a,d,uxe),g=h.multiplyByScalar(c,d,EK),m=h.add(f,g,w2[0]);h.subtract(m,p,m),h.multiplyComponents(n,m,m);let x=h.subtract(f,g,w2[1]);h.subtract(x,p,x),h.multiplyComponents(n,x,x);let b=h.subtract(f,g,w2[2]);h.add(b,p,b),h.multiplyComponents(n,b,b);let T=h.add(f,g,w2[3]);return h.add(T,p,T),h.multiplyComponents(n,T,T),w2}var SK=new z,Vdt=new h,D0=[new fe,new fe,new fe,new fe];function gH(e,t,n,i,o,r){SK.x=e,SK.y=t;let s=i.pickEllipsoid(SK,o,Vdt);return l(s)?(D0[n]=o.cartesianToCartographic(s,D0[n]),1):(D0[n]=o.cartesianToCartographic(r[n],D0[n]),0)}Jt.prototype.computeViewRectangle=function(e,t){e=y(e,te.WGS84);let n=this.frustum.computeCullingVolume(this.positionWC,this.directionWC,this.upWC),i=new ae(h.ZERO,e.maximumRadius);if(n.computeVisibility(i)===Gt.OUTSIDE)return;let r=this._scene.canvas,s=r.clientWidth,a=r.clientHeight,c=0,u=kdt(this,e);if(c+=gH(0,0,0,this,e,u),c+=gH(0,a,1,this,e,u),c+=gH(s,a,2,this,e,u),c+=gH(s,0,3,this,e,u),c<2)return se.MAX_VALUE;t=se.fromCartographicArray(D0,t);let f=0,d=D0[3].longitude;for(let p=0;p<4;++p){let g=D0[p].longitude,m=Math.abs(g-d);m>R.PI?f+=R.TWO_PI-m:f+=m,d=g}return R.equalsEpsilon(Math.abs(f),R.TWO_PI,R.EPSILON9)&&(t.west=-R.PI,t.east=R.PI,D0[0].latitude>=0?t.north=R.PI_OVER_TWO:t.south=-R.PI_OVER_TWO),t};Jt.prototype.switchToPerspectiveFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof Ti)return;let e=this._scene;this.frustum=new Ti,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=R.toRadians(60)};Jt.prototype.switchToOrthographicFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof rn)return;let e=_xe(this),t=this._scene;this.frustum=new rn,this.frustum.aspectRatio=t.drawingBufferWidth/t.drawingBufferHeight,this.frustum.width=e};Jt.clone=function(e,t){return l(t)||(t=new Jt(e._scene)),h.clone(e.position,t.position),h.clone(e.direction,t.direction),h.clone(e.up,t.up),h.clone(e.right,t.right),F.clone(e._transform,t.transform),t._transformChanged=!0,t.frustum=e.frustum.clone(),t};var ao=Jt;function Udt(e){this.pass=e.pass,this.commandList=e.commandList,this.camera=e.camera,this.cullingVolume=e.cullingVolume,this.ready=!1}var ld=Udt;var Ixe=wo(au(),1),vxe=576,zdt=100,D2="#ffffff",IK="#48b";function Rxe(e,t){this.credit=e,this.count=y(t,1)}function Hdt(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i];if(Tt.equals(o,t))return!0}return!1}function Gdt(e){let t=e._previousCesiumCredit,n=e._currentCesiumCredit;Tt.equals(n,t)||(l(t)&&e._cesiumCreditContainer.removeChild(t.element),l(n)&&e._cesiumCreditContainer.appendChild(n.element),e._previousCesiumCredit=n)}var Oxe="cesium-credit-delimiter";function wxe(e){let t=document.createElement("span");return t.textContent=e,t.className=Oxe,t}function Dxe(e,t){if(l(t)){let n=document.createElement(t);n._creditId=e._creditId,n.appendChild(e),e=n}return e}function Pxe(e,t,n,i){let o=e.childNodes,r=-1;t.sort(function(s,a){return a.count-s.count});for(let s=0;s<t.length;++s){let a=t[s].credit;if(l(a)){if(r=s,l(n)&&(r*=2,s>0)){let u=r-1;if(o.length<=u)e.appendChild(wxe(n));else{let f=o[u];f.className!==Oxe&&e.replaceChild(wxe(n),f)}}let c=a.element;if(o.length<=r)e.appendChild(Dxe(c,i));else{let u=o[r];u._creditId!==a._id&&e.replaceChild(Dxe(c,i),u)}}}for(++r;r<o.length;)e.removeChild(o[r])}function Wdt(e){let t=e._lightboxCredits,n=e.viewport.clientWidth,i=e.viewport.clientHeight;n!==e._lastViewportWidth&&(n<vxe?(t.className="cesium-credit-lightbox cesium-credit-lightbox-mobile",t.style.marginTop="0"):(t.className="cesium-credit-lightbox cesium-credit-lightbox-expanded",t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`),e._lastViewportWidth=n),n>=vxe&&i!==e._lastViewportHeight&&(t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`,e._lastViewportHeight=i)}function Dc(e,t){let n=`${e} {`;for(let i in t)t.hasOwnProperty(i)&&(n+=`${i}: ${t[i]}; `);return n+=` } `,n}function jdt(e){let t="";t+=Dc(".cesium-credit-lightbox-overlay",{display:"none","z-index":"1",position:"absolute",top:"0",left:"0",width:"100%",height:"100%","background-color":"rgba(80, 80, 80, 0.8)"}),t+=Dc(".cesium-credit-lightbox",{"background-color":"#303336",color:D2,position:"relative","min-height":`${zdt}px`,margin:"auto"}),t+=Dc(".cesium-credit-lightbox > ul > li a, .cesium-credit-lightbox > ul > li a:visited",{color:D2}),t+=Dc(".cesium-credit-lightbox > ul > li a:hover",{color:IK}),t+=Dc(".cesium-credit-lightbox.cesium-credit-lightbox-expanded",{border:"1px solid #444","border-radius":"5px","max-width":"370px"}),t+=Dc(".cesium-credit-lightbox.cesium-credit-lightbox-mobile",{height:"100%",width:"100%"}),t+=Dc(".cesium-credit-lightbox-title",{padding:"20px 20px 0 20px"}),t+=Dc(".cesium-credit-lightbox-close",{"font-size":"18pt",cursor:"pointer",position:"absolute",top:"0",right:"6px",color:D2}),t+=Dc(".cesium-credit-lightbox-close:hover",{color:IK}),t+=Dc(".cesium-credit-lightbox > ul",{margin:"0",padding:"12px 20px 12px 40px","font-size":"13px"}),t+=Dc(".cesium-credit-lightbox > ul > li",{"padding-bottom":"6px"}),t+=Dc(".cesium-credit-lightbox > ul > li *",{padding:"0",margin:"0"}),t+=Dc(".cesium-credit-expand-link",{"padding-left":"5px",cursor:"pointer","text-decoration":"underline",color:D2}),t+=Dc(".cesium-credit-expand-link:hover",{color:IK}),t+=Dc(".cesium-credit-text",{color:D2}),t+=Dc(".cesium-credit-textContainer *, .cesium-credit-logoContainer *",{display:"inline"});function n(r){if(r.shadowRoot)return r.shadowRoot;if(r.getRootNode){let s=r.getRootNode();if(s instanceof ShadowRoot)return s}}let i=y(n(e),document.head),o=document.createElement("style");o.innerHTML=t,i.appendChild(o)}function dr(e,t,n){let i=this;n=y(n,document.body);let o=document.createElement("div");o.className="cesium-credit-lightbox-overlay",n.appendChild(o);let r=document.createElement("div");r.className="cesium-credit-lightbox",o.appendChild(r);function s(m){r.contains(m.target)||i.hideLightbox()}o.addEventListener("click",s,!1);let a=document.createElement("div");a.className="cesium-credit-lightbox-title",a.textContent="Data provided by:",r.appendChild(a);let c=document.createElement("a");c.onclick=this.hideLightbox.bind(this),c.innerHTML="×",c.className="cesium-credit-lightbox-close",r.appendChild(c);let u=document.createElement("ul");r.appendChild(u);let f=document.createElement("div");f.className="cesium-credit-logoContainer",f.style.display="inline",e.appendChild(f);let d=document.createElement("div");d.className="cesium-credit-textContainer",d.style.display="inline",e.appendChild(d);let p=document.createElement("a");p.className="cesium-credit-expand-link",p.onclick=this.showLightbox.bind(this),p.textContent="Data attribution",e.appendChild(p),jdt(e);let g=Tt.clone(dr.cesiumCredit);this._delimiter=y(t," \u2022 "),this._screenContainer=d,this._cesiumCreditContainer=f,this._lastViewportHeight=void 0,this._lastViewportWidth=void 0,this._lightboxCredits=r,this._creditList=u,this._lightbox=o,this._hideLightbox=s,this._expandLink=p,this._expanded=!1,this._staticCredits=[],this._cesiumCredit=g,this._previousCesiumCredit=void 0,this._currentCesiumCredit=g,this._creditDisplayElementPool=[],this._creditDisplayElementIndex=0,this._currentFrameCredits={screenCredits:new bt,lightboxCredits:new bt},this._defaultCredit=void 0,this.viewport=n,this.container=e}function Mxe(e,t,n,i){i=y(i,1);let o=t.get(n.id);if(l(o))o.count<Number.MAX_VALUE&&(o.count+=i);else{let r=e._creditDisplayElementPool,s=e._creditDisplayElementPoolIndex;s<r.length?(o=r[s],o.credit=n,o.count=i):(o=new Rxe(n,i),r.push(o)),++e._creditDisplayElementPoolIndex,t.set(n.id,o)}}dr.prototype.addCreditToNextFrame=function(e){if(e.isIon()){l(this._defaultCredit)||(this._defaultCredit=Tt.clone(Lxe())),this._currentCesiumCredit=this._defaultCredit;return}let t;e.showOnScreen?t=this._currentFrameCredits.screenCredits:t=this._currentFrameCredits.lightboxCredits,Mxe(this,t,e)};dr.prototype.addStaticCredit=function(e){let t=this._staticCredits;Hdt(t,e)||t.push(e)};dr.prototype.removeStaticCredit=function(e){let t=this._staticCredits,n=t.indexOf(e);n!==-1&&t.splice(n,1)};dr.prototype.showLightbox=function(){this._lightbox.style.display="block",this._expanded=!0};dr.prototype.hideLightbox=function(){this._lightbox.style.display="none",this._expanded=!1};dr.prototype.update=function(){this._expanded&&Wdt(this)};dr.prototype.beginFrame=function(){let e=this._currentFrameCredits;this._creditDisplayElementPoolIndex=0;let t=e.screenCredits,n=e.lightboxCredits;t.removeAll(),n.removeAll();let i=this._staticCredits;for(let o=0;o<i.length;++o){let r=i[o],s=r.showOnScreen?t:n;r.isIon()&&Tt.equals(dr.cesiumCredit,this._cesiumCredit)||Mxe(this,s,r,Number.MAX_VALUE)}Tt.equals(dr.cesiumCredit,this._cesiumCredit)||(this._cesiumCredit=Tt.clone(dr.cesiumCredit)),this._currentCesiumCredit=this._cesiumCredit};dr.prototype.endFrame=function(){let e=this._currentFrameCredits.screenCredits.values;Pxe(this._screenContainer,e,this._delimiter,void 0);let t=this._currentFrameCredits.lightboxCredits.values;this._expandLink.style.display=t.length>0?"inline":"none",Pxe(this._creditList,t,void 0,"li"),Gdt(this)};dr.prototype.destroy=function(){return this._lightbox.removeEventListener("click",this._hideLightbox,!1),this.container.removeChild(this._cesiumCreditContainer),this.container.removeChild(this._screenContainer),this.container.removeChild(this._expandLink),this.viewport.removeChild(this._lightbox),ue(this)};dr.prototype.isDestroyed=function(){return!1};dr._cesiumCredit=void 0;dr._cesiumCreditInitialized=!1;var AH;function Lxe(){if(!l(AH)){let e=en("Assets/Images/ion-credit.png");e.indexOf("http://")!==0&&e.indexOf("https://")!==0&&e.indexOf("data:")!==0&&(e=new Ixe.default(e).path()),AH=new Tt(`<a href="https://cesium.com/" target="_blank"><img src="${e}" title="Cesium ion"/></a>`,!0)}return dr._cesiumCreditInitialized||(dr._cesiumCredit=AH,dr._cesiumCreditInitialized=!0),AH}Object.defineProperties(dr,{cesiumCredit:{get:function(){return Lxe(),dr._cesiumCredit},set:function(e){dr._cesiumCredit=e,dr._cesiumCreditInitialized=!0}}});dr.CreditDisplayElement=Rxe;var P2=dr;function CH(e){e=y(e,y.EMPTY_OBJECT),this._camera=e.camera,this._frustumSplits=e.frustumSplits,this._color=y(e.color,H.CYAN),this._updateOnChange=y(e.updateOnChange,!0),this.show=y(e.show,!0),this.id=e.id,this._id=void 0,this._outlinePrimitives=[],this._planesPrimitives=[]}var qdt=new h,Ydt=new $,Xdt=new Me,Kdt=new Ti,Zdt=new ul,$dt=new rn,Qdt=new Er,Jdt=new H,eht=[1,1e5];CH.prototype.update=function(e){if(!this.show)return;let t=this._planesPrimitives,n=this._outlinePrimitives,i,o;if(this._updateOnChange){for(o=t.length,i=0;i<o;++i)n[i]=n[i]&&n[i].destroy(),t[i]=t[i]&&t[i].destroy();t.length=0,n.length=0}if(t.length===0){let r=this._camera,s=r.frustum,a;s instanceof Ti?a=Kdt:s instanceof ul?a=Zdt:s instanceof rn?a=$dt:a=Qdt,a=s.clone(a);let c,u=this._frustumSplits;!l(u)||u.length<=1?(u=eht,u[0]=this._camera.frustum.near,u[1]=this._camera.frustum.far,c=1):c=u.length-1;let f=r.positionWC,d=r.directionWC,p=r.upWC,g=r.rightWC;g=h.negate(g,qdt);let m=Ydt;$.setColumn(m,0,g,m),$.setColumn(m,1,p,m),$.setColumn(m,2,d,m);let x=Me.fromRotationMatrix(m,Xdt);for(t.length=n.length=c,i=0;i<c;++i)a.near=u[i],a.far=u[i+1],t[i]=new vn({geometryInstances:new xt({geometry:new IT({origin:f,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:zt.fromColor(H.fromAlpha(this._color,.1,Jdt))},id:this.id,pickPrimitive:this}),appearance:new cn({translucent:!0,flat:!0}),asynchronous:!1}),n[i]=new vn({geometryInstances:new xt({geometry:new cF({origin:f,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:zt.fromColor(this._color)},id:this.id,pickPrimitive:this}),appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1})}for(o=t.length,i=0;i<o;++i)n[i].update(e),t[i].update(e)};CH.prototype.isDestroyed=function(){return!1};CH.prototype.destroy=function(){let e=this._planesPrimitives.length;for(let t=0;t<e;++t)this._outlinePrimitives[t]=this._outlinePrimitives[t]&&this._outlinePrimitives[t].destroy(),this._planesPrimitives[t]=this._planesPrimitives[t]&&this._planesPrimitives[t].destroy();return ue(this)};var $m=CH;function R2(e){this._rs=void 0,this._sp=void 0,this._va=void 0,this._command=void 0,this._mode=void 0,this._useLogDepth=!1,this._ellipsoidOffset=y(e,0)}var I2=Vt.supportsTypedArrays()?new Float32Array(12):[],Nxe=new h,Fxe=new h,RK=new h,Bxe=new h,EH=new h;function tht(e,t){let n=e.radii,i=t.camera,o,r,s;if(i.frustum instanceof rn)o=h.ZERO,r=i.rightWC,s=i.upWC;else{let d=i.positionWC,p=h.multiplyComponents(e.oneOverRadii,d,Nxe),g=h.normalize(p,Fxe),m=h.normalize(h.cross(h.UNIT_Z,p,RK),RK),x=h.normalize(h.cross(g,m,Bxe),Bxe),b=h.magnitude(p),T=Math.sqrt(b*b-1);o=h.multiplyByScalar(g,1/b,Nxe);let C=T/b;r=h.multiplyByScalar(m,C,Fxe),s=h.multiplyByScalar(x,C,RK)}let a=h.add(o,s,EH);h.subtract(a,r,a),h.multiplyComponents(n,a,a),h.pack(a,I2,0);let c=h.subtract(o,s,EH);h.subtract(c,r,c),h.multiplyComponents(n,c,c),h.pack(c,I2,3);let u=h.add(o,s,EH);h.add(u,r,u),h.multiplyComponents(n,u,u),h.pack(u,I2,6);let f=h.subtract(o,s,EH);return h.add(f,r,f),h.multiplyComponents(n,f,f),h.pack(f,I2,9),I2}R2.prototype.update=function(e){if(this._mode=e.mode,e.mode!==ne.SCENE3D)return;let t=e.context,n=e.mapProjection.ellipsoid.radii,i=new te(n.x+this._ellipsoidOffset,n.y+this._ellipsoidOffset,n.z+this._ellipsoidOffset),o=e.useLogDepth;if(l(this._command)||(this._rs=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0},colorMask:{red:!1,green:!1,blue:!1,alpha:!1}}),this._command=new Ze({renderState:this._rs,boundingVolume:new ae(h.ZERO,i.maximumRadius),pass:Ee.OPAQUE,owner:this})),!l(this._sp)||this._useLogDepth!==o){this._useLogDepth=o;let s=new ze({sources:[OF]}),a=new ze({sources:[RF]});o&&(a.defines.push("LOG_DEPTH"),s.defines.push("LOG_DEPTH")),this._sp=$t.replaceCache({shaderProgram:this._sp,context:t,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:{position:0}}),this._command.shaderProgram=this._sp}let r=tht(i,e);if(l(this._va))this._va.getAttribute(0).vertexBuffer.copyFromArrayView(r);else{let s=new st({attributes:{position:new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})},indices:[0,1,2,2,1,3],primitiveType:Le.TRIANGLES});this._va=ei.fromGeometry({context:t,geometry:s,attributeLocations:{position:0},bufferUsage:Fe.DYNAMIC_DRAW}),this._command.vertexArray=this._va}};R2.prototype.execute=function(e,t){this._mode===ne.SCENE3D&&this._command.execute(e,t)};R2.prototype.isDestroyed=function(){return!1};R2.prototype.destroy=function(){this._sp=this._sp&&this._sp.destroy(),this._va=this._va&&this._va.destroy()};var O2=R2;function M2(){}var nht=/\bgl_FragDepth\b/,iht=/\bdiscard\b/;function oht(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"depthOnly");if(!l(n)){let i=t._attributeLocations,o=t.fragmentShaderSource,r,s=!1,a=o.sources,c=a.length;for(r=0;r<c;++r)if(nht.test(a[r])||iht.test(a[r])){s=!0;break}let u=!1,f=o.defines;for(c=f.length,r=0;r<c;++r)if(f[r]==="LOG_DEPTH"){u=!0;break}let d;!s&&!u?(d=`void main() { out_FragColor = vec4(1.0); } `,o=new ze({sources:[d]})):!s&&u&&(d=`void main() { out_FragColor = vec4(1.0); czm_writeLogDepth(); } `,o=new ze({defines:["LOG_DEPTH"],sources:[d]})),n=e.shaderCache.createDerivedShaderProgram(t,"depthOnly",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:i})}return n}function rht(e,t){let n=e._depthOnlyRenderStateCache,i=n[t.id];if(!l(i)){let o=Ve.getState(t);o.depthMask=!0,o.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i=Ve.fromCache(o),n[t.id]=i}return i}M2.createDepthOnlyDerivedCommand=function(e,t,n,i){l(i)||(i={});let o,r;return l(i.depthOnlyCommand)&&(o=i.depthOnlyCommand.shaderProgram,r=i.depthOnlyCommand.renderState),i.depthOnlyCommand=Ze.shallowClone(t,i.depthOnlyCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.depthOnlyCommand.shaderProgram=oht(n,t.shaderProgram),i.depthOnlyCommand.renderState=rht(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.depthOnlyCommand.shaderProgram=o,i.depthOnlyCommand.renderState=r),i};var sht=/\s+czm_writeLogDepth\(/,aht=/\s+czm_vertexLogDepth\(/;function cht(e,t){if(t.fragmentShaderSource.defines.indexOf("LOG_DEPTH_READ_ONLY")>=0)return t;let i=e.shaderCache.getDerivedShaderProgram(t,"logDepth");if(!l(i)){let o=t._attributeLocations,r=t.vertexShaderSource.clone(),s=t.fragmentShaderSource.clone();r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("LOG_DEPTH"),s.defines=l(s.defines)?s.defines.slice(0):[],s.defines.push("LOG_DEPTH");let a,c,u=!1,f=r.sources,d=f.length;for(a=0;a<d;++a)if(aht.test(f[a])){u=!0;break}if(!u){for(a=0;a<d;++a)f[a]=ze.replaceMain(f[a],"czm_log_depth_main");c=` void main() { czm_log_depth_main(); czm_vertexLogDepth(); } `,f.push(c)}for(f=s.sources,d=f.length,u=!1,a=0;a<d;++a)sht.test(f[a])&&(u=!0);s.defines.indexOf("LOG_DEPTH_WRITE")!==-1&&(u=!0);let p="";if(!u){for(a=0;a<d;a++)f[a]=ze.replaceMain(f[a],"czm_log_depth_main");p+=` void main() { czm_log_depth_main(); czm_writeLogDepth(); } `}f.push(p),i=e.shaderCache.createDerivedShaderProgram(t,"logDepth",{vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o})}return i}M2.createLogDepthCommand=function(e,t,n){l(n)||(n={});let i;return l(n.command)&&(i=n.command.shaderProgram),n.command=Ze.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=cht(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};function lht(e,t,n){let i=e.shaderCache.getDerivedShaderProgram(t,"pick");if(!l(i)){let o=t._attributeLocations,r=t.fragmentShaderSource,s=r.sources,a=s.length,u=s.some(p=>p.includes("out_FragData"))?"out_FragData_0":"out_FragColor",f=`void main () { czm_non_pick_main(); if (${u}.a == 0.0) { discard; } ${u} = ${n}; } `,d=new Array(a+1);for(let p=0;p<a;++p)d[p]=ze.replaceMain(s[p],"czm_non_pick_main");d[a]=f,r=new ze({sources:d,defines:r.defines}),i=e.shaderCache.createDerivedShaderProgram(t,"pick",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:r,attributeLocations:o})}return i}function uht(e,t){let n=e.picking.pickRenderStateCache,i=n[t.id];if(!l(i)){let o=Ve.getState(t);o.blending.enabled=!1,o.depthMask=!0,i=Ve.fromCache(o),n[t.id]=i}return i}M2.createPickDerivedCommand=function(e,t,n,i){l(i)||(i={});let o,r;return l(i.pickCommand)&&(o=i.pickCommand.shaderProgram,r=i.pickCommand.renderState),i.pickCommand=Ze.shallowClone(t,i.pickCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.pickCommand.shaderProgram=lht(n,t.shaderProgram,t.pickId),i.pickCommand.renderState=uht(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.pickCommand.shaderProgram=o,i.pickCommand.renderState=r),i};function fht(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"HDR");if(!l(n)){let i=t._attributeLocations,o=t.vertexShaderSource.clone(),r=t.fragmentShaderSource.clone();o.defines=l(o.defines)?o.defines.slice(0):[],o.defines.push("HDR"),r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("HDR"),n=e.shaderCache.createDerivedShaderProgram(t,"HDR",{vertexShaderSource:o,fragmentShaderSource:r,attributeLocations:i})}return n}M2.createHdrCommand=function(e,t,n){l(n)||(n={});let i;return l(n.command)&&(i=n.command.shaderProgram),n.command=Ze.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=fht(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};var ag=M2;function SH(e){this._scene=e,this._lastAlpha=void 0,this._lastBeta=void 0,this._lastGamma=void 0,this._alpha=void 0,this._beta=void 0,this._gamma=void 0;let t=this;function n(i){let o=i.alpha;if(!l(o)){t._alpha=void 0,t._beta=void 0,t._gamma=void 0;return}t._alpha=R.toRadians(o),t._beta=R.toRadians(i.beta),t._gamma=R.toRadians(i.gamma)}window.addEventListener("deviceorientation",n,!1),this._removeListener=function(){window.removeEventListener("deviceorientation",n,!1)}}var dht=new Me,kxe=new Me,hht=new $;function mht(e,t,n,i){let o=e.direction,r=e.right,s=e.up,a=Me.fromAxisAngle(o,n,kxe),c=Me.fromAxisAngle(r,i,dht),u=Me.multiply(c,a,c),f=Me.fromAxisAngle(s,t,kxe);Me.multiply(f,u,u);let d=$.fromQuaternion(u,hht);$.multiplyByVector(d,r,r),$.multiplyByVector(d,s,s),$.multiplyByVector(d,o,o)}SH.prototype.update=function(){if(!l(this._alpha))return;l(this._lastAlpha)||(this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma);let e=this._lastAlpha-this._alpha,t=this._lastBeta-this._beta,n=this._lastGamma-this._gamma;mht(this._scene.camera,-e,t,n),this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma};SH.prototype.isDestroyed=function(){return!1};SH.prototype.destroy=function(){return this._removeListener(),ue(this)};var L2=SH;function Vxe(){this.enabled=!0,this.renderable=!0,this.density=2e-4,this.screenSpaceErrorFactor=2,this.minimumBrightness=.03}var vH=[359.393,800.749,1275.6501,2151.1192,3141.7763,4777.5198,6281.2493,12364.307,15900.765,49889.0549,78026.8259,99260.7344,120036.3873,151011.0158,156091.1953,203849.3112,274866.9803,319916.3149,493552.0528,628733.5874],Qm=[2e-5,2e-4,1e-4,7e-5,5e-5,4e-5,3e-5,19e-6,1e-5,85e-7,62e-7,58e-7,53e-7,52e-7,51e-7,42e-7,4e-6,34e-7,26e-7,22e-7];for(let e=0;e<Qm.length;++e)Qm[e]*=1e6;var Uxe=Qm[1],OK=Qm[Qm.length-1];for(let e=0;e<Qm.length;++e)Qm[e]=(Qm[e]-OK)/(Uxe-OK);var ha=0;function pht(e){let t=vH,n=t.length;if(e<t[0])return ha=0,ha;if(e>t[n-1])return ha=n-2,ha;if(e>=t[ha]){if(ha+1<n&&e<t[ha+1])return ha;if(ha+2<n&&e<t[ha+2])return++ha,ha}else if(ha-1>=0&&e>=t[ha-1])return--ha,ha;let i;for(i=0;i<n-2&&!(e>=t[i]&&e<t[i+1]);++i);return ha=i,ha}var _ht=new h;Vxe.prototype.update=function(e){if(!(e.fog.enabled=this.enabled))return;e.fog.renderable=this.renderable;let n=e.camera,i=n.positionCartographic;if(!l(i)||i.height>8e5||e.mode!==ne.SCENE3D){e.fog.enabled=!1,e.fog.density=0;return}let o=i.height,r=pht(o),s=R.clamp((o-vH[r])/(vH[r+1]-vH[r]),0,1),a=R.lerp(Qm[r],Qm[r+1],s),c=this.density*1e6,u=c/Uxe*OK;a=a*(c-u)*1e-6;let f=h.normalize(n.positionWC,_ht),d=Math.abs(h.dot(n.directionWC,f));a*=1-d,e.fog.density=a,e.fog.sse=this.screenSpaceErrorFactor,e.fog.minimumBrightness=this.minimumBrightness};var N2=Vxe;function ght(e,t,n){this.context=e,this.commandList=[],this.shadowMaps=[],this.brdfLutGenerator=void 0,this.environmentMap=void 0,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this.specularEnvironmentMapsMaximumLOD=void 0,this.mode=ne.SCENE3D,this.morphTime=ne.getMorphTime(ne.SCENE3D),this.frameNumber=0,this.newFrame=!1,this.time=void 0,this.jobScheduler=n,this.mapProjection=void 0,this.camera=void 0,this.cameraUnderground=!1,this.globeTranslucencyState=void 0,this.cullingVolume=void 0,this.occluder=void 0,this.maximumScreenSpaceError=void 0,this.pixelRatio=1,this.passes={render:!1,pick:!1,pickVoxel:!1,depth:!1,postProcess:!1,offscreen:!1},this.creditDisplay=t,this.afterRender=[],this.scene3DOnly=!1,this.fog={enabled:!1,renderable:!1,density:void 0,sse:void 0,minimumBrightness:void 0},this.atmosphere=void 0,this.verticalExaggeration=1,this.verticalExaggerationRelativeHeight=0,this.shadowState={shadowsEnabled:!0,shadowMaps:[],lightShadowMaps:[],nearPlane:1,farPlane:5e3,closestObjectSize:1e3,lastDirtyTime:0,outOfView:!0},this.splitPosition=0,this.frustumSplits=[],this.backgroundColor=void 0,this.light=void 0,this.minimumDisableDepthTestDistance=void 0,this.invertClassification=!1,this.invertClassificationColor=void 0,this.useLogDepth=!1,this.tilesetPassState=void 0,this.minimumTerrainHeight=0}var F2=ght;var ma={OPAQUE_FRONT_FACE:0,OPAQUE_BACK_FACE:1,DEPTH_ONLY_FRONT_FACE:2,DEPTH_ONLY_BACK_FACE:3,DEPTH_ONLY_FRONT_AND_BACK_FACE:4,TRANSLUCENT_FRONT_FACE:5,TRANSLUCENT_BACK_FACE:6,TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:7,TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:8,PICK_FRONT_FACE:9,PICK_BACK_FACE:10,DERIVED_COMMANDS_MAXIMUM_LENGTH:11},GT=ma.DERIVED_COMMANDS_MAXIMUM_LENGTH,Zxe=["opaqueFrontFaceCommand","opaqueBackFaceCommand","depthOnlyFrontFaceCommand","depthOnlyBackFaceCommand","depthOnlyFrontAndBackFaceCommand","translucentFrontFaceCommand","translucentBackFaceCommand","translucentFrontFaceManualDepthTestCommand","translucentBackFaceManualDepthTestCommand","pickFrontFaceCommand","pickBackFaceCommand"];function WT(){this._frontFaceAlphaByDistance=new Mt(0,1,0,1),this._backFaceAlphaByDistance=new Mt(0,1,0,1),this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._requiresManualDepthTest=!1,this._sunVisibleThroughGlobe=!1,this._environmentVisible=!1,this._useDepthPlane=!1,this._numberOfTextureUniforms=0,this._globeTranslucencyFramebuffer=void 0,this._rectangle=se.clone(se.MAX_VALUE),this._derivedCommandKey=0,this._derivedCommandsDirty=!1,this._derivedCommandPacks=void 0,this._derivedCommandTypes=new Array(GT),this._derivedBlendCommandTypes=new Array(GT),this._derivedPickCommandTypes=new Array(GT),this._derivedCommandTypesToUpdate=new Array(GT),this._derivedCommandsLength=0,this._derivedBlendCommandsLength=0,this._derivedPickCommandsLength=0,this._derivedCommandsToUpdateLength=0}Object.defineProperties(WT.prototype,{frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance}},translucent:{get:function(){return this._frontFaceTranslucent}},sunVisibleThroughGlobe:{get:function(){return this._sunVisibleThroughGlobe}},environmentVisible:{get:function(){return this._environmentVisible}},useDepthPlane:{get:function(){return this._useDepthPlane}},numberOfTextureUniforms:{get:function(){return this._numberOfTextureUniforms}},rectangle:{get:function(){return this._rectangle}}});WT.prototype.update=function(e){let t=e.globe;if(!l(t)||!t.show){this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._sunVisibleThroughGlobe=!0,this._environmentVisible=!0,this._useDepthPlane=!1;return}this._frontFaceAlphaByDistance=zxe(t.translucency.enabled,t.translucency.frontFaceAlpha,t.translucency.frontFaceAlphaByDistance,this._frontFaceAlphaByDistance),this._backFaceAlphaByDistance=zxe(t.translucency.enabled,t.translucency.backFaceAlpha,t.translucency.backFaceAlphaByDistance,this._backFaceAlphaByDistance),this._frontFaceTranslucent=Hxe(t.translucency.enabled,this._frontFaceAlphaByDistance,t),this._backFaceTranslucent=Hxe(t.translucency.enabled,this._backFaceAlphaByDistance,t),this._requiresManualDepthTest=Tht(this,e,t),this._sunVisibleThroughGlobe=yht(this,e),this._environmentVisible=xht(this,e),this._useDepthPlane=bht(this,e),this._numberOfTextureUniforms=Aht(this),this._rectangle=se.clone(t.translucency.rectangle,this._rectangle),Cht(this,e)};function zxe(e,t,n,i){return e?l(n)?(Mt.clone(n,i),i.nearValue*=t,i.farValue*=t,i):(i.nearValue=t,i.farValue=t,i):(i.nearValue=1,i.farValue=1,i)}function Hxe(e,t,n){return e&&(n.baseColor.alpha<1||t.nearValue<1||t.farValue<1)}function yht(e,t){let n=e._frontFaceTranslucent,i=e._backFaceTranslucent;return n&&(t.cameraUnderground||i)}function xht(e,t){return!t.cameraUnderground||e._frontFaceTranslucent}function bht(e,t){return!t.cameraUnderground&&!e._frontFaceTranslucent}function Tht(e,t,n){return e._frontFaceTranslucent&&!e._backFaceTranslucent&&!n.depthTestAgainstTerrain&&t.mode!==ne.SCENE2D&&t.context.depthTexture}function Aht(e){let t=0;return e._frontFaceTranslucent&&++t,e._requiresManualDepthTest&&++t,t}function Cht(e,t){e._derivedCommandsLength=MK(e,t,!1,!1,e._derivedCommandTypes),e._derivedBlendCommandsLength=MK(e,t,!0,!1,e._derivedBlendCommandTypes),e._derivedPickCommandsLength=MK(e,t,!1,!0,e._derivedPickCommandTypes);let n,i=0;for(n=0;n<e._derivedCommandsLength;++n)i|=1<<e._derivedCommandTypes[n];for(n=0;n<e._derivedBlendCommandsLength;++n)i|=1<<e._derivedBlendCommandTypes[n];for(n=0;n<e._derivedPickCommandsLength;++n)i|=1<<e._derivedPickCommandTypes[n];let o=0;for(n=0;n<GT;++n)(i&1<<n)>0&&(e._derivedCommandTypesToUpdate[o++]=n);e._derivedCommandsToUpdateLength=o;let r=i!==e._derivedCommandKey;e._derivedCommandKey=i,e._derivedCommandsDirty=r,!l(e._derivedCommandPacks)&&e._frontFaceTranslucent&&(e._derivedCommandPacks=kht())}function MK(e,t,n,i,o){let r=0,s=e._frontFaceTranslucent,a=e._backFaceTranslucent;if(!s)return r;let c=t.cameraUnderground,u=e._requiresManualDepthTest,f=i?ma.PICK_FRONT_FACE:u?ma.TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:ma.TRANSLUCENT_FRONT_FACE,d=i?ma.PICK_BACK_FACE:u?ma.TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:ma.TRANSLUCENT_BACK_FACE;return t.mode===ne.SCENE2D?(o[r++]=ma.DEPTH_ONLY_FRONT_FACE,o[r++]=f,r):(a?(n||(o[r++]=ma.DEPTH_ONLY_FRONT_AND_BACK_FACE),c?(o[r++]=f,o[r++]=d):(o[r++]=d,o[r++]=f)):c?(n||(o[r++]=ma.DEPTH_ONLY_BACK_FACE),o[r++]=ma.OPAQUE_FRONT_FACE,o[r++]=d):(n||(o[r++]=ma.DEPTH_ONLY_FRONT_FACE),o[r++]=ma.OPAQUE_BACK_FACE,o[r++]=f),r)}function ud(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function Gxe(e,t){return e.indexOf(t)>-1}function Eht(e,t){ud(e.defines,"TRANSLUCENT"),ud(t.defines,"TRANSLUCENT")}function Sht(e,t){ud(e.defines,"GROUND_ATMOSPHERE"),ud(t.defines,"GROUND_ATMOSPHERE"),ud(e.defines,"FOG"),ud(t.defines,"FOG"),ud(e.defines,"TRANSLUCENT"),ud(t.defines,"TRANSLUCENT")}function LK(e,t){if(Gxe(t.defines,"TILE_LIMIT_RECTANGLE")||Gxe(t.defines,"ENABLE_CLIPPING_PLANES"))return;let n=`void main() { out_FragColor = vec4(1.0); } `;t.sources=[n]}function NK(e,t){let n=t.sources,i=n.length;for(let r=0;r<i;++r)n[r]=ze.replaceMain(n[r],"czm_globe_translucency_main");n.push(` uniform sampler2D u_classificationTexture; void main() { vec2 st = gl_FragCoord.xy / czm_viewport.zw; #ifdef MANUAL_DEPTH_TEST float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); if (logDepthOrDepth != 0.0) { vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); float depthEC = eyeCoordinate.z / eyeCoordinate.w; if (v_positionEC.z < depthEC) { discard; } } #endif czm_globe_translucency_main(); vec4 classificationColor = texture(u_classificationTexture, st); if (classificationColor.a > 0.0) { // Reverse premultiplication process to get the correct composited result of the classification primitives classificationColor.rgb /= classificationColor.a; } out_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + out_FragColor * (1.0 - classificationColor.a); } `)}function $xe(e,t){NK(e,t),ud(e.defines,"GROUND_ATMOSPHERE"),ud(t.defines,"GROUND_ATMOSPHERE"),ud(e.defines,"FOG"),ud(t.defines,"FOG")}function vht(e,t){NK(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function wht(e,t){$xe(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function Wxe(e,t){let n=`uniform sampler2D u_classificationTexture; void main() { vec2 st = gl_FragCoord.xy / czm_viewport.zw; vec4 pickColor = texture(u_classificationTexture, st); if (pickColor == vec4(0.0)) { discard; } out_FragColor = pickColor; } `;t.sources=[n]}function Dht(e,t,n,i,o,r){if(!l(o))return t;if(!i&&l(n))return n;let s=e.shaderCache.getDerivedShaderProgram(t,r);if(!l(s)){let a=t._attributeLocations,c=t.vertexShaderSource.clone(),u=t.fragmentShaderSource.clone();c.defines=l(c.defines)?c.defines.slice(0):[],u.defines=l(u.defines)?u.defines.slice(0):[],o(c,u),s=e.shaderCache.createDerivedShaderProgram(t,r,{vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:a})}return s}function Pht(e){e.cull.face=hi.BACK,e.cull.enabled=!0}function Iht(e){e.cull.face=hi.FRONT,e.cull.enabled=!0}function Rht(e){e.cull.face=hi.BACK,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Oht(e){e.cull.face=hi.FRONT,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Mht(e){e.cull.enabled=!1,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function jxe(e){e.cull.face=hi.BACK,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function qxe(e){e.cull.face=hi.FRONT,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function Lht(e){e.cull.face=hi.BACK,e.cull.enabled=!0,e.blending.enabled=!1}function Nht(e){e.cull.face=hi.FRONT,e.cull.enabled=!0,e.blending.enabled=!1}function Fht(e,t,n,i,o){if(!l(i))return e;if(!n&&l(t))return t;let r=o[e.id];if(!l(r)){let s=Ve.getState(e);i(s),r=Ve.fromCache(s),o[e.id]=r}return r}function uv(e){return{u_classificationTexture:function(){return e._globeTranslucencyFramebuffer.classificationTexture}}}function Bht(e,t,n,i,o){return l(o)?!i&&l(n)?n:_t(t,o(e),!1):t}function Nh(e){this.pass=e.pass,this.pickOnly=e.pickOnly,this.getShaderProgramFunction=e.getShaderProgramFunction,this.getRenderStateFunction=e.getRenderStateFunction,this.getUniformMapFunction=e.getUniformMapFunction,this.renderStateCache={}}function kht(){return[new Nh({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:Eht,getRenderStateFunction:Pht,getUniformMapFunction:void 0}),new Nh({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:Sht,getRenderStateFunction:Iht,getUniformMapFunction:void 0}),new Nh({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:LK,getRenderStateFunction:Rht,getUniformMapFunction:void 0}),new Nh({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:LK,getRenderStateFunction:Oht,getUniformMapFunction:void 0}),new Nh({pass:Ee.GLOBE,pickOnly:!1,getShaderProgramFunction:LK,getRenderStateFunction:Mht,getUniformMapFunction:void 0}),new Nh({pass:Ee.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:NK,getRenderStateFunction:jxe,getUniformMapFunction:uv}),new Nh({pass:Ee.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:$xe,getRenderStateFunction:qxe,getUniformMapFunction:uv}),new Nh({pass:Ee.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:vht,getRenderStateFunction:jxe,getUniformMapFunction:uv}),new Nh({pass:Ee.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:wht,getRenderStateFunction:qxe,getUniformMapFunction:uv}),new Nh({pass:Ee.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:Wxe,getRenderStateFunction:Lht,getUniformMapFunction:uv}),new Nh({pass:Ee.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:Wxe,getRenderStateFunction:Nht,getUniformMapFunction:uv})]}var Yxe=new Array(GT),Xxe=new Array(GT);WT.prototype.updateDerivedCommands=function(e,t){let n=this._derivedCommandTypesToUpdate,i=this._derivedCommandsToUpdateLength;if(i!==0){for(let o=0;o<i;++o)Xxe[o]=this._derivedCommandPacks[n[o]],Yxe[o]=Zxe[n[o]];Vht(this,e,i,n,Yxe,Xxe,t)}};function Vht(e,t,n,i,o,r,s){let a=t.derivedCommands.globeTranslucency,c=e._derivedCommandsDirty;if(t.dirty||!l(a)||c){t.dirty=!1,l(a)||(a={},t.derivedCommands.globeTranslucency=a);let u=s.frameNumber,f=y(a.uniformMapDirtyFrame,0),d=y(a.shaderProgramDirtyFrame,0),p=y(a.renderStateDirtyFrame,0),g=a.uniformMap!==t.uniformMap,m=a.shaderProgramId!==t.shaderProgram.id,x=a.renderStateId!==t.renderState.id;g&&(a.uniformMapDirtyFrame=u),m&&(a.shaderProgramDirtyFrame=u),x&&(a.renderStateDirtyFrame=u),a.uniformMap=t.uniformMap,a.shaderProgramId=t.shaderProgram.id,a.renderStateId=t.renderState.id;for(let b=0;b<n;++b){let T=r[b],C=i[b],A=o[b],E=a[A],v,D,O;l(E)?(v=E.uniformMap,D=E.shaderProgram,O=E.renderState):(v=void 0,D=void 0,O=void 0),E=Ze.shallowClone(t,E),a[A]=E;let I=y(E.derivedCommands.uniformMapDirtyFrame,0),L=y(E.derivedCommands.shaderProgramDirtyFrame,0),N=y(E.derivedCommands.renderStateDirtyFrame,0),_=g||I<f,S=m||L<d,w=x||N<p;_&&(E.derivedCommands.uniformMapDirtyFrame=u),S&&(E.derivedCommands.shaderProgramDirtyFrame=u),w&&(E.derivedCommands.renderStateDirtyFrame=u),E.derivedCommands.type=C,E.pass=T.pass,E.pickOnly=T.pickOnly,E.uniformMap=Bht(e,t.uniformMap,v,_,T.getUniformMapFunction),E.shaderProgram=Dht(s.context,t.shaderProgram,D,S,T.getShaderProgramFunction,A),E.renderState=Fht(t.renderState,O,w,T.getRenderStateFunction,T.renderStateCache)}}}WT.prototype.pushDerivedCommands=function(e,t,n){let i=n.passes.pick||n.passes.pickVoxel;if(i&&t)return;let o=this._derivedCommandTypes,r=this._derivedCommandsLength;if(i?(o=this._derivedPickCommandTypes,r=this._derivedPickCommandsLength):t&&(o=this._derivedBlendCommandTypes,r=this._derivedBlendCommandsLength),r===0){n.commandList.push(e);return}let s=e.derivedCommands.globeTranslucency;for(let a=0;a<r;++a){let c=Zxe[o[a]];n.commandList.push(s[c])}};function Qxe(e,t,n,i,o,r,s){for(let a=0;a<t;++a){let c=e[a],u=c.derivedCommands.type;(!l(s)||s.indexOf(u)>-1)&&n(c,i,o,r)}}function Kxe(e,t,n,i,o,r){for(let s=0;s<t;++s)n(e[s],i,o,r)}var Uht=[ma.OPAQUE_FRONT_FACE,ma.OPAQUE_BACK_FACE],zht=[ma.DEPTH_ONLY_FRONT_FACE,ma.DEPTH_ONLY_BACK_FACE,ma.DEPTH_ONLY_FRONT_AND_BACK_FACE];WT.prototype.executeGlobeCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[Ee.GLOBE],a=e.indices[Ee.GLOBE];a!==0&&(this._globeTranslucencyFramebuffer=n,n.clearClassification(r,o),Qxe(s,a,t,i,r,o,Uht))};WT.prototype.executeGlobeClassificationCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[Ee.GLOBE],a=e.indices[Ee.GLOBE],c=e.commands[Ee.TERRAIN_CLASSIFICATION],u=e.indices[Ee.TERRAIN_CLASSIFICATION];if(a===0||u===0)return;let f=this._frontFaceTranslucent,d=this._backFaceTranslucent;if((!f||!d)&&Kxe(c,u,t,i,r,o),!f&&!d)return;this._globeTranslucencyFramebuffer=n;let p=r.uniformState.globeDepthTexture,g=o.framebuffer;if(o.framebuffer=n.classificationFramebuffer,Qxe(s,a,t,i,r,o,zht),r.depthTexture){let m=n.packDepth(r,o);r.uniformState.globeDepthTexture=m}Kxe(c,u,t,i,r,o),r.uniformState.globeDepthTexture=p,o.framebuffer=g};var B2=WT;var nu=`uniform sampler2D colorTexture; in vec2 v_textureCoordinates; void main() { out_FragColor = texture(colorTexture, v_textureCoordinates); } `;function Jm(){this._numSamples=1,this.previousFramebuffer=void 0,this._previousFramebuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this._fbo=new ui({depthStencil:!0,createDepthAttachments:!1}),this._fboClassified=new ui({depthStencil:!0,createDepthAttachments:!1}),this._rsUnclassified=void 0,this._rsClassified=void 0,this._unclassifiedCommand=void 0,this._classifiedCommand=void 0,this._translucentCommand=void 0,this._clearColorCommand=new ii({color:new H(0,0,0,0),owner:this}),this._clearCommand=new ii({color:new H(0,0,0,0),depth:1,stencil:0});let e=this;this._uniformMap={colorTexture:function(){return e._fbo.getColorTexture()},depthTexture:function(){return e._depthStencilTexture},classifiedTexture:function(){return e._fboClassified.getColorTexture()}}}Object.defineProperties(Jm.prototype,{unclassifiedCommand:{get:function(){return this._unclassifiedCommand}}});Jm.isTranslucencySupported=function(e){return e.depthTexture&&e.fragmentDepth};var Hht={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Un.EQUAL,frontOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},backFunction:Un.NEVER,reference:0,mask:Ft.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},Ght={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},backFunction:Un.NEVER,reference:0,mask:Ft.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},Wht={depthMask:!0,depthTest:{enabled:!0},stencilTest:Ft.setCesium3DTileBit(),stencilMask:Ft.CESIUM_3D_TILE_MASK,blending:un.ALPHA_BLEND},jht=`uniform sampler2D colorTexture; uniform sampler2D depthTexture; uniform sampler2D classifiedTexture; in vec2 v_textureCoordinates; void main() { vec4 color = texture(colorTexture, v_textureCoordinates); if (color.a == 0.0) { discard; } bool isClassified = all(equal(texture(classifiedTexture, v_textureCoordinates), vec4(0.0))); #ifdef UNCLASSIFIED vec4 highlightColor = czm_invertClassificationColor; if (isClassified) { discard; } #else vec4 highlightColor = vec4(1.0); if (!isClassified) { discard; } #endif out_FragColor = color * highlightColor; gl_FragDepth = texture(depthTexture, v_textureCoordinates).r; } `,qht=`uniform sampler2D colorTexture; in vec2 v_textureCoordinates; void main() { vec4 color = texture(colorTexture, v_textureCoordinates); if (color.a == 0.0) { discard; } #ifdef UNCLASSIFIED out_FragColor = color * czm_invertClassificationColor; #else out_FragColor = color; #endif } `;Jm.prototype.update=function(e,t,n){let i=this._fbo.getColorTexture(),o=this.previousFramebuffer!==this._previousFramebuffer;this._previousFramebuffer=this.previousFramebuffer;let r=this._numSamples!==t,s=e.drawingBufferWidth,a=e.drawingBufferHeight,c=!l(i)||i.width!==s||i.height!==a;if((c||o||r)&&(this._numSamples=t,this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._previousFramebuffer)||(this._depthStencilTexture=new Dt({context:e,width:s,height:a,pixelFormat:nt.DEPTH_STENCIL,pixelDatatype:We.UNSIGNED_INT_24_8}),t>1&&(this._depthStencilRenderbuffer=new Tu({context:e,width:s,height:a,format:$c.DEPTH24_STENCIL8,numSamples:t})))),!l(this._fbo.framebuffer)||c||o||r){this._fbo.destroy(),this._fboClassified.destroy();let u,f;l(this._previousFramebuffer)?(u=n.getDepthStencilTexture(),f=n.getDepthStencilRenderbuffer()):(u=this._depthStencilTexture,f=this._depthStencilRenderbuffer),this._fbo.setDepthStencilTexture(u),l(f)&&this._fbo.setDepthStencilRenderbuffer(f),this._fbo.update(e,s,a,t),l(this._previousFramebuffer)||(this._fboClassified.setDepthStencilTexture(u),this._fboClassified.update(e,s,a))}if(l(this._rsUnclassified)||(this._rsUnclassified=Ve.fromCache(Hht),this._rsClassified=Ve.fromCache(Ght),this._rsDefault=Ve.fromCache(Wht)),!l(this._unclassifiedCommand)||o||r){l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy());let u=l(this._previousFramebuffer)?qht:jht,f=new ze({defines:["UNCLASSIFIED"],sources:[u]}),d=new ze({sources:[u]});this._unclassifiedCommand=e.createViewportQuadCommand(f,{renderState:l(this._previousFramebuffer)?this._rsUnclassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),this._classifiedCommand=e.createViewportQuadCommand(d,{renderState:l(this._previousFramebuffer)?this._rsClassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),l(this._translucentCommand)&&(this._translucentCommand.shaderProgram=this._translucentCommand.shaderProgram&&this._translucentCommand.shaderProgram.destroy()),l(this._previousFramebuffer)||(this._translucentCommand=e.createViewportQuadCommand(nu,{renderState:this._rsUnclassified,uniformMap:this._uniformMap,owner:this}))}};Jm.prototype.prepareTextures=function(e,t){this._fbo._numSamples>1&&this._fbo.prepareTextures(e,t)};Jm.prototype.clear=function(e,t){l(this._previousFramebuffer)?this._fbo.clear(e,this._clearColorCommand,t):(this._fbo.clear(e,this._clearCommand,t),this._fboClassified.clear(e,this._clearCommand,t))};Jm.prototype.executeClassified=function(e,t){if(!l(this._previousFramebuffer)){let n=t.framebuffer;this.prepareTextures(e,!0),t.framebuffer=this._fboClassified.framebuffer,this._translucentCommand.execute(e,t),t.framebuffer=n}this._classifiedCommand.execute(e,t)};Jm.prototype.executeUnclassified=function(e,t){this._unclassifiedCommand.execute(e,t)};Jm.prototype.isDestroyed=function(){return!1};Jm.prototype.destroy=function(){return this._fbo.destroy(),this._fboClassified.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy()),ue(this)};var fv=Jm;function wH(e){this._total=e,this.usedThisFrame=0,this.stolenFromMeThisFrame=0,this.starvedThisFrame=!1,this.starvedLastFrame=!1}Object.defineProperties(wH.prototype,{total:{get:function(){return this._total}}});function P0(e){let t=new Array(wa.NUMBER_OF_JOB_TYPES);t[wa.TEXTURE]=new wH(l(e)?e[wa.TEXTURE]:10),t[wa.PROGRAM]=new wH(l(e)?e[wa.PROGRAM]:10),t[wa.BUFFER]=new wH(l(e)?e[wa.BUFFER]:30);let n=t.length,i,o=0;for(i=0;i<n;++i)o+=t[i].total;let r=new Array(n);for(i=0;i<n;++i)r[i]=!1;this._totalBudget=o,this._totalUsedThisFrame=0,this._budgets=t,this._executedThisFrame=r}P0.getTimestamp=pi;Object.defineProperties(P0.prototype,{totalBudget:{get:function(){return this._totalBudget}}});P0.prototype.disableThisFrame=function(){this._totalUsedThisFrame=this._totalBudget};P0.prototype.resetBudgets=function(){let e=this._budgets,t=e.length;for(let n=0;n<t;++n){let i=e[n];i.starvedLastFrame=i.starvedThisFrame,i.starvedThisFrame=!1,i.usedThisFrame=0,i.stolenFromMeThisFrame=0}this._totalUsedThisFrame=0};P0.prototype.execute=function(e,t){let n=this._budgets,i=n[t],o=this._executedThisFrame[t];if(this._totalUsedThisFrame>=this._totalBudget&&o)return i.starvedThisFrame=!0,!1;let r;if(i.usedThisFrame+i.stolenFromMeThisFrame>=i.total){let c=n.length,u;for(u=0;u<c&&(r=n[u],!(r.usedThisFrame+r.stolenFromMeThisFrame<r.total&&!r.starvedLastFrame));++u);if(u===c&&o)return!1;o&&(i.starvedThisFrame=!0)}let s=P0.getTimestamp();e.execute();let a=P0.getTimestamp()-s;return this._totalUsedThisFrame+=a,r?r.stolenFromMeThisFrame+=a:i.usedThisFrame+=a,this._executedThisFrame[t]=!0,!0};var k2=P0;function DH(e){e=y(e,y.EMPTY_OBJECT);let t=Pn(e.container);this._container=t;let n=document.createElement("div");n.className="cesium-performanceDisplay";let i=document.createElement("div");i.className="cesium-performanceDisplay-fps",this._fpsText=document.createTextNode(""),i.appendChild(this._fpsText);let o=document.createElement("div");o.className="cesium-performanceDisplay-ms",this._msText=document.createTextNode(""),o.appendChild(this._msText),n.appendChild(o),n.appendChild(i),this._container.appendChild(n),this._lastFpsSampleTime=pi(),this._lastMsSampleTime=pi(),this._fpsFrameCount=0,this._msFrameCount=0,this._throttled=!1;let r=document.createElement("div");r.className="cesium-performanceDisplay-throttled",this._throttledText=document.createTextNode(""),r.appendChild(this._throttledText),n.appendChild(r)}Object.defineProperties(DH.prototype,{throttled:{get:function(){return this._throttled},set:function(e){this._throttled!==e&&(e?this._throttledText.nodeValue="(throttled)":this._throttledText.nodeValue="",this._throttled=e)}}});DH.prototype.update=function(e){let t=pi(),n=y(e,!0);this._fpsFrameCount++;let i=t-this._lastFpsSampleTime;if(i>1e3){let r="N/A";n&&(r=this._fpsFrameCount*1e3/i|0),this._fpsText.nodeValue=`${r} FPS`,this._lastFpsSampleTime=t,this._fpsFrameCount=0}this._msFrameCount++;let o=t-this._lastMsSampleTime;if(o>200){let r="N/A";n&&(r=(o/this._msFrameCount).toFixed(2)),this._msText.nodeValue=`${r} MS`,this._lastMsSampleTime=t,this._msFrameCount=0}};DH.prototype.destroy=function(){return ue(this)};var cg=DH;function jT(){this._framebuffer=new ui,this._textureToCopy=void 0,this._copyDepthCommand=void 0}Object.defineProperties(jT.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function Yht(e,t,n){let i=n.width,o=n.height;e._framebuffer.update(t,i,o)}function Xht(e,t,n){l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(`uniform highp sampler2D colorTexture; in vec2 v_textureCoordinates; void main() { vec4 globeDepthPacked = texture(czm_globeDepthTexture, v_textureCoordinates); float globeDepth = czm_unpackDepth(globeDepthPacked); float depth = texture(colorTexture, v_textureCoordinates).r; out_FragColor = czm_branchFreeTernary(globeDepth <= 0.0 || globeDepth >= 1.0 || depth < globeDepth && depth > 0.0 && depth < 1.0, czm_packDepth(depth), globeDepthPacked); } `,{renderState:Ve.fromCache(),uniformMap:{colorTexture:function(){return e._textureToCopy}},owner:e})),e._textureToCopy=n,e._copyDepthCommand.framebuffer=e.framebuffer}jT.prototype.update=function(e,t){Yht(this,e,t),Xht(this,e,t)};var Kht=new oe,Zht=new oe(1,1/255,1/65025,1/16581375);jT.prototype.getDepth=function(e,t,n){if(!l(this.framebuffer))return;let i=e.readPixels({x:t,y:n,width:1,height:1,framebuffer:this.framebuffer}),o=oe.unpack(i,0,Kht);return oe.divideByScalar(o,255,o),oe.dot(o,Zht)};jT.prototype.executeCopyDepth=function(e,t){this._copyDepthCommand.execute(e,t)};jT.prototype.isDestroyed=function(){return!1};jT.prototype.destroy=function(){return this._framebuffer.destroy(),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=l(this._copyDepthCommand.shaderProgram)&&this._copyDepthCommand.shaderProgram.destroy()),ue(this)};var V2=jT;function $ht(e,t){this.near=y(e,0),this.far=y(t,0);let n=Ee.NUMBER_OF_PASSES,i=new Array(n),o=new Array(n);for(let r=0;r<n;++r)i[r]=[],o[r]=0;this.commands=i,this.indices=o}var U2=$ht;var I0=`uniform highp sampler2D u_depthTexture; in vec2 v_textureCoordinates; void main() { out_FragColor = czm_packDepth(texture(u_depthTexture, v_textureCoordinates).r); } `;function ep(){this._picking=!1,this._numSamples=1,this._tempCopyDepthTexture=void 0,this._pickColorFramebuffer=new ui({depthStencil:!0,supportsDepthTexture:!0}),this._outputFramebuffer=new ui({depthStencil:!0,supportsDepthTexture:!0}),this._copyDepthFramebuffer=new ui,this._tempCopyDepthFramebuffer=new ui,this._updateDepthFramebuffer=new ui({createColorAttachments:!1,createDepthAttachments:!1,depthStencil:!0}),this._clearGlobeColorCommand=void 0,this._copyColorCommand=void 0,this._copyDepthCommand=void 0,this._tempCopyDepthCommand=void 0,this._updateDepthCommand=void 0,this._viewport=new Ge,this._rs=void 0,this._rsBlend=void 0,this._rsUpdate=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0,this._clearGlobeDepth=void 0}Object.defineProperties(ep.prototype,{colorFramebufferManager:{get:function(){return this._picking?this._pickColorFramebuffer:this._outputFramebuffer}},framebuffer:{get:function(){return this.colorFramebufferManager.framebuffer}},depthStencilTexture:{get:function(){return this.colorFramebufferManager.getDepthStencilTexture()}},picking:{get:function(){return this._picking},set:function(e){this._picking=e}}});function Qht(e){e._pickColorFramebuffer.destroy(),e._outputFramebuffer.destroy(),e._copyDepthFramebuffer.destroy(),e._tempCopyDepthFramebuffer.destroy(),e._updateDepthFramebuffer.destroy()}function Jxe(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!Ge.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,Ge.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=Ge.clone(o.viewport,e._scissorRectangle),s=!0),(!l(e._rs)||!Ge.equals(e._viewport,e._rs.viewport)||s)&&(e._rs=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}}),e._rsBlend=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND}),e._rsUpdate=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Un.EQUAL,frontOperation:{fail:lt.KEEP,zFail:lt.KEEP,zPass:lt.KEEP},backFunction:Un.NEVER,reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK}})),l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(I0,{uniformMap:{u_depthTexture:function(){return e.colorFramebufferManager.getDepthStencilTexture()}},owner:e})),e._copyDepthCommand.framebuffer=e._copyDepthFramebuffer.framebuffer,e._copyDepthCommand.renderState=e._rs,l(e._copyColorCommand)||(e._copyColorCommand=t.createViewportQuadCommand(nu,{uniformMap:{colorTexture:function(){return e.colorFramebufferManager.getColorTexture()}},owner:e})),e._copyColorCommand.renderState=e._rs,l(e._tempCopyDepthCommand)||(e._tempCopyDepthCommand=t.createViewportQuadCommand(I0,{uniformMap:{u_depthTexture:function(){return e._tempCopyDepthTexture}},owner:e})),e._tempCopyDepthCommand.framebuffer=e._tempCopyDepthFramebuffer.framebuffer,e._tempCopyDepthCommand.renderState=e._rs,l(e._updateDepthCommand)||(e._updateDepthCommand=t.createViewportQuadCommand(nu,{uniformMap:{colorTexture:function(){return e._tempCopyDepthFramebuffer.getColorTexture()}},owner:e})),e._updateDepthCommand.framebuffer=e._updateDepthFramebuffer.framebuffer,e._updateDepthCommand.renderState=e._rsUpdate,l(e._clearGlobeColorCommand)||(e._clearGlobeColorCommand=new ii({color:new H(0,0,0,0),stencil:0,owner:e})),e._clearGlobeColorCommand.framebuffer=e.framebuffer}ep.prototype.update=function(e,t,n,i,o,r){let s=n.width,a=n.height,c=o?e.halfFloatingPointTexture?We.HALF_FLOAT:We.FLOAT:We.UNSIGNED_BYTE;this._numSamples=i,this.picking?this._pickColorFramebuffer.update(e,s,a):this._outputFramebuffer.update(e,s,a,i,c),this._copyDepthFramebuffer.update(e,s,a),Jxe(this,e,s,a,t),e.uniformState.globeDepthTexture=void 0,this._useHdr=o,this._clearGlobeDepth=r};ep.prototype.prepareColorTextures=function(e,t){!this.picking&&this._numSamples>1&&this._outputFramebuffer.prepareTextures(e,t)};ep.prototype.executeCopyDepth=function(e,t){l(this._copyDepthCommand)&&(this.prepareColorTextures(e),this._copyDepthCommand.execute(e,t),e.uniformState.globeDepthTexture=this._copyDepthFramebuffer.getColorTexture())};ep.prototype.executeUpdateDepth=function(e,t,n,i){let o=l(i)?i:t.framebuffer.depthStencilTexture;if(n||o!==this.colorFramebufferManager.getDepthStencilTexture()){if(l(this._updateDepthCommand)){if(!l(this._updateDepthFramebuffer.framebuffer)||this._updateDepthFramebuffer.getDepthStencilTexture()!==o||this._updateDepthFramebuffer.getColorTexture()!==this._copyDepthFramebuffer.getColorTexture()){let r=this._copyDepthFramebuffer.getColorTexture().width,s=this._copyDepthFramebuffer.getColorTexture().height;this._tempCopyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.update(e,r,s);let a=this._copyDepthFramebuffer.getColorTexture();this._updateDepthFramebuffer.setColorTexture(a,0),this._updateDepthFramebuffer.setDepthStencilTexture(o),this._updateDepthFramebuffer.update(e,r,s),Jxe(this,e,r,s,t)}this._tempCopyDepthTexture=o,this._tempCopyDepthCommand.execute(e,t),this._updateDepthCommand.execute(e,t)}return}l(this._copyDepthCommand)&&this._copyDepthCommand.execute(e,t)};ep.prototype.executeCopyColor=function(e,t){l(this._copyColorCommand)&&this._copyColorCommand.execute(e,t)};ep.prototype.clear=function(e,t,n){let i=this._clearGlobeColorCommand;l(i)&&(H.clone(n,i.color),this.colorFramebufferManager.clear(e,i,t))};ep.prototype.isDestroyed=function(){return!1};ep.prototype.destroy=function(){return Qht(this),l(this._copyColorCommand)&&(this._copyColorCommand.shaderProgram=this._copyColorCommand.shaderProgram.destroy()),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=this._copyDepthCommand.shaderProgram.destroy()),l(this._tempCopyDepthCommand)&&(this._tempCopyDepthCommand.shaderProgram=this._tempCopyDepthCommand.shaderProgram.destroy()),l(this._updateDepthCommand)&&(this._updateDepthCommand.shaderProgram=this._updateDepthCommand.shaderProgram.destroy()),ue(this)};var z2=ep;function qT(){this._framebuffer=new ui({depthStencil:!0,supportsDepthTexture:!0}),this._packedDepthFramebuffer=new ui,this._renderState=void 0,this._packedDepthCommand=void 0,this._clearCommand=void 0,this._viewport=new Ge,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0}Object.defineProperties(qT.prototype,{classificationTexture:{get:function(){return this._framebuffer.getColorTexture()}},classificationFramebuffer:{get:function(){return this._framebuffer.framebuffer}},packedDepthFramebuffer:{get:function(){return this._packedDepthFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._framebuffer.getDepthStencilTexture()}},depthStencilRenderbuffer:{get:function(){return this._framebuffer.getDepthStencilRenderbuffer()}},packedDepthTexture:{get:function(){return this._packedDepthFramebuffer.getColorTexture()}}});function Jht(e){e._framebuffer.destroy(),e._packedDepthFramebuffer.destroy()}function emt(e,t,n,i,o){let r=o?t.halfFloatingPointTexture?We.HALF_FLOAT:We.FLOAT:We.UNSIGNED_BYTE;e._framebuffer.update(t,n,i,1,r),e._packedDepthFramebuffer.update(t,n,i)}function tmt(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!Ge.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,Ge.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=Ge.clone(o.viewport,e._scissorRectangle),s=!0),(!l(e._renderState)||!Ge.equals(e._viewport,e._renderState.viewport)||s)&&(e._renderState=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packedDepthCommand)||(e._packedDepthCommand=t.createViewportQuadCommand(I0,{uniformMap:{u_depthTexture:function(){return e.depthStencilTexture}},owner:e})),l(e._clearCommand)||(e._clearCommand=new ii({color:new H(0,0,0,0),depth:1,stencil:0,owner:e})),e._packedDepthCommand.framebuffer=e._packedDepthFramebuffer.framebuffer,e._packedDepthCommand.renderState=e._renderState,e._clearCommand.framebuffer=e.classificationFramebuffer,e._clearCommand.renderState=e._renderState}qT.prototype.updateAndClear=function(e,t,n,i){let o=t.width,r=t.height;emt(this,n,o,r,e),tmt(this,n,o,r,i),this._useHdr=e};qT.prototype.clearClassification=function(e,t){this._clearCommand.execute(e,t)};qT.prototype.packDepth=function(e,t){return this._packedDepthCommand.execute(e,t),this.packedDepthTexture};qT.prototype.isDestroyed=function(){return!1};qT.prototype.destroy=function(){return Jht(this),ue(this)};var H2=qT;function lg(e){this._numSamples=1,this._translucentMultipassSupport=!1,this._translucentMRTSupport=!1;let t=e.colorBufferFloat&&e.depthTexture&&e.floatBlend;this._translucentMRTSupport=e.drawBuffers&&t,this._translucentMultipassSupport=!this._translucentMRTSupport&&t,this._opaqueFBO=void 0,this._opaqueTexture=void 0,this._depthStencilTexture=void 0,this._accumulationTexture=void 0,this._translucentFBO=new ui({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._alphaFBO=new ui({createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._adjustTranslucentFBO=new ui({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1}),this._adjustAlphaFBO=new ui({createColorAttachments:!1}),this._opaqueClearCommand=new ii({color:new H(0,0,0,0),owner:this}),this._translucentMRTClearCommand=new ii({color:new H(0,0,0,1),owner:this}),this._translucentMultipassClearCommand=new ii({color:new H(0,0,0,0),owner:this}),this._alphaClearCommand=new ii({color:new H(1,1,1,1),owner:this}),this._translucentRenderStateCache={},this._alphaRenderStateCache={},this._compositeCommand=void 0,this._adjustTranslucentCommand=void 0,this._adjustAlphaCommand=void 0,this._viewport=new Ge,this._rs=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHDR=!1}function ebe(e){e._accumulationTexture=e._accumulationTexture&&!e._accumulationTexture.isDestroyed()&&e._accumulationTexture.destroy(),e._revealageTexture=e._revealageTexture&&!e._revealageTexture.isDestroyed()&&e._revealageTexture.destroy()}function FK(e){e._translucentFBO.destroy(),e._alphaFBO.destroy(),e._adjustTranslucentFBO.destroy(),e._adjustAlphaFBO.destroy()}function tbe(e){ebe(e),FK(e)}function nmt(e,t,n,i){ebe(e),e._accumulationTexture=new Dt({context:t,width:n,height:i,pixelFormat:nt.RGBA,pixelDatatype:We.FLOAT});let o=new Float32Array(n*i*4);e._revealageTexture=new Dt({context:t,pixelFormat:nt.RGBA,pixelDatatype:We.FLOAT,source:{arrayBufferView:o,width:n,height:i},flipY:!1})}function imt(e,t){FK(e);let n=ee.FRAMEBUFFER_COMPLETE,i=!0,{width:o,height:r}=e._accumulationTexture;if(e._translucentMRTSupport&&(e._translucentFBO.setColorTexture(e._accumulationTexture,0),e._translucentFBO.setColorTexture(e._revealageTexture,1),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture,0),e._adjustTranslucentFBO.setColorTexture(e._revealageTexture,1),e._adjustTranslucentFBO.update(t,o,r),(e._translucentFBO.status!==n||e._adjustTranslucentFBO.status!==n)&&(FK(e),e._translucentMRTSupport=!1)),!e._translucentMRTSupport){e._translucentFBO.setColorTexture(e._accumulationTexture),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._alphaFBO.setColorTexture(e._revealageTexture),e._alphaFBO.setDepthStencilTexture(e._depthStencilTexture),e._alphaFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture),e._adjustTranslucentFBO.update(t,o,r),e._adjustAlphaFBO.setColorTexture(e._revealageTexture),e._adjustAlphaFBO.update(t,o,r);let s=e._translucentFBO.status===n,a=e._alphaFBO.status===n,c=e._adjustTranslucentFBO.status===n,u=e._adjustAlphaFBO.status===n;(!s||!a||!c||!u)&&(tbe(e),e._translucentMultipassSupport=!1,i=!1)}return i}lg.prototype.update=function(e,t,n,i,o){if(!this.isSupported())return;this._opaqueFBO=n,this._opaqueTexture=n.getColorTexture(0),this._depthStencilTexture=n.getDepthStencilTexture();let{width:r,height:s}=this._opaqueTexture,a=this._accumulationTexture,c=!l(a)||a.width!==r||a.height!==s||i!==this._useHDR,u=this._numSamples!==o;if((c||u)&&(this._numSamples=o,nmt(this,e,r,s)),(!l(this._translucentFBO.framebuffer)||c||u)&&!imt(this,e))return;this._useHDR=i;let f=this,d,p;l(this._compositeCommand)||(d=new ze({sources:[IF]}),this._translucentMRTSupport&&d.defines.push("MRT"),p={u_opaque:function(){return f._opaqueTexture},u_accumulation:function(){return f._accumulationTexture},u_revealage:function(){return f._revealageTexture}},this._compositeCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})),l(this._adjustTranslucentCommand)||(this._translucentMRTSupport?(d=new ze({defines:["MRT"],sources:[GS]}),p={u_bgColor:function(){return f._translucentMRTClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})):this._translucentMultipassSupport&&(d=new ze({sources:[GS]}),p={u_bgColor:function(){return f._translucentMultipassClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}),p={u_bgColor:function(){return f._alphaClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustAlphaCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}))),this._viewport.width=r,this._viewport.height=s;let g=!Ge.equals(this._viewport,t.viewport),m=g!==this._useScissorTest;this._useScissorTest=g,Ge.equals(this._scissorRectangle,t.viewport)||(this._scissorRectangle=Ge.clone(t.viewport,this._scissorRectangle),m=!0),(!l(this._rs)||!Ge.equals(this._viewport,this._rs.viewport)||m)&&(this._rs=Ve.fromCache({viewport:this._viewport,scissorTest:{enabled:this._useScissorTest,rectangle:this._scissorRectangle}})),l(this._compositeCommand)&&(this._compositeCommand.renderState=this._rs),this._adjustTranslucentCommand&&(this._adjustTranslucentCommand.renderState=this._rs),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.renderState=this._rs)};var omt={enabled:!0,color:new H(0,0,0,0),equationRgb:Ca.ADD,equationAlpha:Ca.ADD,functionSourceRgb:To.ONE,functionDestinationRgb:To.ONE,functionSourceAlpha:To.ZERO,functionDestinationAlpha:To.ONE_MINUS_SOURCE_ALPHA},rmt={enabled:!0,color:new H(0,0,0,0),equationRgb:Ca.ADD,equationAlpha:Ca.ADD,functionSourceRgb:To.ONE,functionDestinationRgb:To.ONE,functionSourceAlpha:To.ONE,functionDestinationAlpha:To.ONE},smt={enabled:!0,color:new H(0,0,0,0),equationRgb:Ca.ADD,equationAlpha:Ca.ADD,functionSourceRgb:To.ZERO,functionDestinationRgb:To.ONE_MINUS_SOURCE_ALPHA,functionSourceAlpha:To.ZERO,functionDestinationAlpha:To.ONE_MINUS_SOURCE_ALPHA};function BK(e,t,n,i){let o=n[i.id];if(!l(o)){let r=Ve.getState(i);r.depthMask=!1,r.blending=t,o=Ve.fromCache(r),n[i.id]=o}return o}function amt(e,t,n){return BK(t,omt,e._translucentRenderStateCache,n)}function cmt(e,t,n){return BK(t,rmt,e._translucentRenderStateCache,n)}function lmt(e,t,n){return BK(t,smt,e._alphaRenderStateCache,n)}var umt=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; float ai = czm_out_FragColor.a; float wzi = czm_alphaWeight(ai); out_FragData_0 = vec4(Ci * wzi, ai); out_FragData_1 = vec4(ai * wzi); `,fmt=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; float ai = czm_out_FragColor.a; float wzi = czm_alphaWeight(ai); out_FragColor = vec4(Ci, ai) * wzi; `,dmt=` float ai = czm_out_FragColor.a; out_FragColor = vec4(ai); `;function kK(e,t,n,i){let{shaderCache:o}=e,r=o.getDerivedShaderProgram(t,n);if(l(r))return r;let s=t._attributeLocations,a=t.fragmentShaderSource.clone();a.sources=a.sources.map(function(f){return ze.replaceMain(f,"czm_translucent_main").replace(/out_FragColor/g,"czm_out_FragColor").replace(/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,"").replace(/\bdiscard\b/g,"czm_discard = true").replace(/czm_phong/g,"czm_translucentPhong")}),a.sources.splice(0,0,`vec4 czm_out_FragColor; bool czm_discard = false; `);let c=[...i.matchAll(/out_FragData_(\d+)/g)],u="";for(let f=0;f<c.length;f++){let d=c[f];u=`layout (location = ${d[1]}) out vec4 ${d[0]}; ${u}`}return a.sources.push(u),a.sources.push(`void main() { czm_translucent_main(); if (czm_discard) { discard; } ${i}} `),o.createDerivedShaderProgram(t,n,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:a,attributeLocations:s})}function hmt(e,t){return kK(e,t,"translucentMRT",umt)}function mmt(e,t){return kK(e,t,"translucentMultipass",fmt)}function pmt(e,t){return kK(e,t,"alphaMultipass",dmt)}lg.prototype.createDerivedCommands=function(e,t,n){if(l(n)||(n={}),this._translucentMRTSupport){let a,c;return l(n.translucentCommand)&&(a=n.translucentCommand.shaderProgram,c=n.translucentCommand.renderState),n.translucentCommand=Ze.shallowClone(e,n.translucentCommand),!l(a)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=hmt(t,e.shaderProgram),n.translucentCommand.renderState=amt(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=a,n.translucentCommand.renderState=c),n}let i,o,r,s;return l(n.translucentCommand)&&(i=n.translucentCommand.shaderProgram,o=n.translucentCommand.renderState,r=n.alphaCommand.shaderProgram,s=n.alphaCommand.renderState),n.translucentCommand=Ze.shallowClone(e,n.translucentCommand),n.alphaCommand=Ze.shallowClone(e,n.alphaCommand),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=mmt(t,e.shaderProgram),n.translucentCommand.renderState=cmt(this,t,e.renderState),n.alphaCommand.shaderProgram=pmt(t,e.shaderProgram),n.alphaCommand.renderState=lmt(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=i,n.translucentCommand.renderState=o,n.alphaCommand.shaderProgram=r,n.alphaCommand.renderState=s),n};function _mt(e,t,n,i,o,r){let s,a,c,{context:u,frameState:f}=t,{useLogDepth:d,shadowState:p}=f,g=t._hdr,m=i.framebuffer,x=p.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(u,i),i.framebuffer=e._adjustAlphaFBO.framebuffer,e._adjustAlphaCommand.execute(u,i);let b=e._opaqueFBO.framebuffer;for(i.framebuffer=e._translucentFBO.framebuffer,c=0;c<o.length;++c)s=o[c],s=d?s.derivedCommands.logDepth.command:s,s=g?s.derivedCommands.hdr.command:s,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,n(a,t,u,i,b);for(l(r)&&(s=r.unclassifiedCommand,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,n(a,t,u,i,b)),i.framebuffer=e._alphaFBO.framebuffer,c=0;c<o.length;++c)s=o[c],s=d?s.derivedCommands.logDepth.command:s,s=g?s.derivedCommands.hdr.command:s,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,n(a,t,u,i,b);l(r)&&(s=r.unclassifiedCommand,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,n(a,t,u,i,b)),i.framebuffer=m}function gmt(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:u}=a,f=t._hdr,d=i.framebuffer,p=u.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i);let g=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;let m,x;for(let b=0;b<o.length;++b)m=o[b],m=c?m.derivedCommands.logDepth.command:m,m=f?m.derivedCommands.hdr.command:m,x=p&&m.receiveShadows?m.derivedCommands.oit.shadows.translucentCommand:m.derivedCommands.oit.translucentCommand,n(x,t,s,i,g);l(r)&&(m=r.unclassifiedCommand,x=p&&m.receiveShadows?m.derivedCommands.oit.shadows.translucentCommand:m.derivedCommands.oit.translucentCommand,n(x,t,s,i,g)),i.framebuffer=d}lg.prototype.executeCommands=function(e,t,n,i,o){if(this._translucentMRTSupport){gmt(this,e,t,n,i,o);return}_mt(this,e,t,n,i,o)};lg.prototype.execute=function(e,t){this._compositeCommand.execute(e,t)};lg.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this._opaqueFBO.framebuffer,H.clone(n,this._opaqueClearCommand.color),this._opaqueClearCommand.execute(e,t),t.framebuffer=this._translucentFBO.framebuffer,(this._translucentMRTSupport?this._translucentMRTClearCommand:this._translucentMultipassClearCommand).execute(e,t),this._translucentMultipassSupport&&(t.framebuffer=this._alphaFBO.framebuffer,this._alphaClearCommand.execute(e,t)),t.framebuffer=i};lg.prototype.isSupported=function(){return this._translucentMRTSupport||this._translucentMultipassSupport};lg.prototype.isDestroyed=function(){return!1};lg.prototype.destroy=function(){return tbe(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._adjustTranslucentCommand)&&(this._adjustTranslucentCommand.shaderProgram=this._adjustTranslucentCommand.shaderProgram&&this._adjustTranslucentCommand.shaderProgram.destroy()),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.shaderProgram=this._adjustAlphaCommand.shaderProgram&&this._adjustAlphaCommand.shaderProgram.destroy()),ue(this)};var G2=lg;function W2(){this._framebuffer=new ui({color:!1,depthStencil:!0,supportsDepthTexture:!0}),this._passState=void 0}Object.defineProperties(W2.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function ymt(e){e._framebuffer.destroy()}function xmt(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i);let o=new bc(t);o.blendingEnabled=!1,o.scissorTest={enabled:!0,rectangle:new Ge},o.viewport=new Ge,e._passState=o}W2.prototype.update=function(e,t,n){let i=n.width,o=n.height;this._framebuffer.isDirty(i,o)&&xmt(this,e);let r=this.framebuffer,s=this._passState;return s.framebuffer=r,s.viewport.width=i,s.viewport.height=o,s.scissorTest.rectangle.x=t.x,s.scissorTest.rectangle.y=o-t.y,s.scissorTest.rectangle.width=1,s.scissorTest.rectangle.height=1,s};W2.prototype.isDestroyed=function(){return!1};W2.prototype.destroy=function(){return ymt(this),ue(this)};var j2=W2;function dv(e){let t=new bc(e);t.blendingEnabled=!1,t.scissorTest={enabled:!0,rectangle:new Ge},t.viewport=new Ge,this._context=e,this._fb=new ui({depthStencil:!0}),this._passState=t,this._width=0,this._height=0}dv.prototype.begin=function(e,t){let n=this._context,{width:i,height:o}=t;return Ge.clone(e,this._passState.scissorTest.rectangle),this._width=i,this._height=o,this._fb.update(n,i,o),this._passState.framebuffer=this._fb.framebuffer,this._passState.viewport.width=i,this._passState.viewport.height=o,this._passState};var q2=new H;dv.prototype.end=function(e){let t=y(e.width,1),n=y(e.height,1),i=this._context,o=i.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.max(t,n),s=r*r,a=Math.floor(t*.5),c=Math.floor(n*.5),u=0,f=0,d=0,p=-1;for(let g=0;g<s;++g){if(-a<=u&&u<=a&&-c<=f&&f<=c){let m=4*((c-f)*t+u+a);q2.red=H.byteToFloat(o[m]),q2.green=H.byteToFloat(o[m+1]),q2.blue=H.byteToFloat(o[m+2]),q2.alpha=H.byteToFloat(o[m+3]);let x=i.getObjectByPickColor(q2);if(l(x))return x}if(u===f||u<0&&-u===f||u>0&&u===1-f){let m=d;d=-p,p=m}u+=d,f+=p}};dv.prototype.readVoxelInfo=function(e){let t=y(e.width,1),n=y(e.height,1),o=this._context.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.floor(t*.5),a=4*(Math.floor(n*.5)*t+r);return o.slice(a,a+4)};dv.prototype.isDestroyed=function(){return!1};dv.prototype.destroy=function(){return this._fb.destroy(),ue(this)};var Y2=dv;function ug(){this._numSamples=1,this._colorFramebuffer=new ui({depthStencil:!0,supportsDepthTexture:!0}),this._idFramebuffer=new ui({depthStencil:!0,supportsDepthTexture:!0}),this._idClearColor=new H(0,0,0,0),this._clearCommand=new ii({color:new H(0,0,0,0),depth:1,owner:this})}function bmt(e){e._colorFramebuffer.destroy(),e._idFramebuffer.destroy()}Object.defineProperties(ug.prototype,{framebuffer:{get:function(){return this._colorFramebuffer.framebuffer}},idFramebuffer:{get:function(){return this._idFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._colorFramebuffer.getDepthStencilTexture()}}});ug.prototype.update=function(e,t,n,i){let o=t.width,r=t.height,s=n?e.halfFloatingPointTexture?We.HALF_FLOAT:We.FLOAT:We.UNSIGNED_BYTE;this._numSamples=i,this._colorFramebuffer.update(e,o,r,i,s),this._idFramebuffer.update(e,o,r)};ug.prototype.clear=function(e,t,n){H.clone(n,this._clearCommand.color),H.clone(this._idClearColor,this._clearCommand.color),this._colorFramebuffer.clear(e,this._clearCommand,t),this._idFramebuffer.clear(e,this._clearCommand,t)};ug.prototype.getFramebuffer=function(){return this._colorFramebuffer.framebuffer};ug.prototype.getIdFramebuffer=function(){return this._idFramebuffer.framebuffer};ug.prototype.prepareColorTextures=function(e){this._numSamples>1&&this._colorFramebuffer.prepareTextures(e)};ug.prototype.isDestroyed=function(){return!1};ug.prototype.destroy=function(){return bmt(this),ue(this)};var YT=ug;function XT(){}XT.getShadowCastShaderKeyword=function(e,t,n,i){return`castShadow ${e} ${t} ${n} ${i}`};XT.createShadowCastVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);i.push("SHADOW_MAP"),n&&i.push("GENERATE_POSITION");let r=ze.findPositionVarying(e),s=l(r);if(t&&!s){let a=o.length;for(let u=0;u<a;++u)o[u]=ze.replaceMain(o[u],"czm_shadow_cast_main");o.push(`out vec3 v_positionEC; void main() { czm_shadow_cast_main(); v_positionEC = (czm_inverseProjection * gl_Position).xyz; }`)}return new ze({defines:i,sources:o})};XT.createShadowCastFragmentShader=function(e,t,n,i){let o=e.defines.slice(0),r=e.sources.slice(0);o.push("SHADOW_MAP");let s=ze.findPositionVarying(e),a=l(s);a||(s="v_positionEC");let c=r.length;for(let f=0;f<c;++f)r[f]=ze.replaceMain(r[f],"czm_shadow_cast_main");let u="";return t&&(a||(u+=`in vec3 v_positionEC; `),u+=`uniform vec4 shadowMap_lightPositionEC; `),i?u+=`void main() { `:u+=`void main() { czm_shadow_cast_main(); if (out_FragColor.a == 0.0) { discard; } `,t?u+=` float distance = length(${s}); if (distance >= shadowMap_lightPositionEC.w) { discard; } distance /= shadowMap_lightPositionEC.w; // radius out_FragColor = czm_packDepth(distance); `:n?u+=` out_FragColor = vec4(1.0); `:u+=` out_FragColor = czm_packDepth(gl_FragCoord.z); `,u+=`} `,r.push(u),new ze({defines:o,sources:r})};XT.getShadowReceiveShaderKeyword=function(e,t,n,i){let o=e._usesDepthTexture,r=e._polygonOffsetSupported,s=e._isPointLight,a=e._isSpotLight,c=e._numberOfCascades>1,u=e.debugCascadeColors,f=e.softShadows;return`receiveShadow ${o}${r}${s}${a}${c}${u}${f}${t}${n}${i}`};XT.createShadowReceiveVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);return i.push("SHADOW_MAP"),t&&(n?i.push("GENERATE_POSITION_AND_NORMAL"):i.push("GENERATE_POSITION")),new ze({defines:i,sources:o})};XT.createShadowReceiveFragmentShader=function(e,t,n,i,o){let r=ze.findNormalVarying(e),s=!i&&l(r)||i&&o,a=ze.findPositionVarying(e),c=l(a),u=t._usesDepthTexture,f=t._polygonOffsetSupported,d=t._isPointLight,p=t._isSpotLight,g=t._numberOfCascades>1,m=t.debugCascadeColors,x=t.softShadows,b=d?t._pointBias:i?t._terrainBias:t._primitiveBias,T=e.defines.slice(0),C=e.sources.slice(0),A=C.length;for(let D=0;D<A;++D)C[D]=ze.replaceMain(C[D],"czm_shadow_receive_main");d?T.push("USE_CUBE_MAP_SHADOW"):u&&T.push("USE_SHADOW_DEPTH_TEXTURE"),x&&!d&&T.push("USE_SOFT_SHADOWS"),g&&n&&i&&(s?T.push("ENABLE_VERTEX_LIGHTING"):T.push("ENABLE_DAYNIGHT_SHADING")),n&&b.normalShading&&s&&(T.push("USE_NORMAL_SHADING"),b.normalShadingSmooth>0&&T.push("USE_NORMAL_SHADING_SMOOTH"));let E="";d?E+=`uniform samplerCube shadowMap_textureCube; `:E+=`uniform sampler2D shadowMap_texture; `;let v;return c?v=` return vec4(${a}, 1.0); `:v=`#ifndef LOG_DEPTH return czm_windowToEyeCoordinates(gl_FragCoord); #else return vec4(v_logPositionEC, 1.0); #endif `,E+=`uniform mat4 shadowMap_matrix; uniform vec3 shadowMap_lightDirectionEC; uniform vec4 shadowMap_lightPositionEC; uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness; uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth; #ifdef LOG_DEPTH in vec3 v_logPositionEC; #endif vec4 getPositionEC() { ${v}} vec3 getNormalEC() { ${s?` return normalize(${r}); `:` return vec3(1.0); `}} void applyNormalOffset(inout vec4 positionEC, vec3 normalEC, float nDotL) { ${b.normalOffset&&s?` float normalOffset = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.x; float normalOffsetScale = 1.0 - nDotL; vec3 offset = normalOffset * normalOffsetScale * normalEC; positionEC.xyz += offset; `:""}} `,E+=`void main() { czm_shadow_receive_main(); vec4 positionEC = getPositionEC(); vec3 normalEC = getNormalEC(); float depth = -positionEC.z; `,E+=` czm_shadowParameters shadowParameters; shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy; shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z; shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w; shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w; `,i?E+=` shadowParameters.depthBias *= max(depth * 0.01, 1.0); `:f||(E+=` shadowParameters.depthBias *= mix(1.0, 100.0, depth * 0.0015); `),d?E+=` vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz; float distance = length(directionEC); directionEC = normalize(directionEC); float radius = shadowMap_lightPositionEC.w; // Stop early if the fragment is beyond the point light radius if (distance > radius) { return; } vec3 directionWC = czm_inverseViewRotation * directionEC; shadowParameters.depth = distance / radius; shadowParameters.nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); shadowParameters.texCoords = directionWC; float visibility = czm_shadowVisibility(shadowMap_textureCube, shadowParameters); `:p?E+=` vec3 directionEC = normalize(positionEC.xyz - shadowMap_lightPositionEC.xyz); float nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); applyNormalOffset(positionEC, normalEC, nDotL); vec4 shadowPosition = shadowMap_matrix * positionEC; // Spot light uses a perspective projection, so perform the perspective divide shadowPosition /= shadowPosition.w; // Stop early if the fragment is not in the shadow bounds if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) { return; } shadowParameters.texCoords = shadowPosition.xy; shadowParameters.depth = shadowPosition.z; shadowParameters.nDotL = nDotL; float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); `:g?E+=` float maxDepth = shadowMap_cascadeSplits[1].w; // Stop early if the eye depth exceeds the last cascade if (depth > maxDepth) { return; } // Get the cascade based on the eye-space depth vec4 weights = czm_cascadeWeights(depth); // Apply normal offset float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); applyNormalOffset(positionEC, normalEC, nDotL); // Transform position into the cascade vec4 shadowPosition = czm_cascadeMatrix(weights) * positionEC; // Get visibility shadowParameters.texCoords = shadowPosition.xy; shadowParameters.depth = shadowPosition.z; shadowParameters.nDotL = nDotL; float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); // Fade out shadows that are far away float shadowMapMaximumDistance = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.z; float fade = max((depth - shadowMapMaximumDistance * 0.8) / (shadowMapMaximumDistance * 0.2), 0.0); visibility = mix(visibility, 1.0, fade); ${m?` // Draw cascade colors for debugging out_FragColor *= czm_cascadeColor(weights); `:""}`:E+=` float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); applyNormalOffset(positionEC, normalEC, nDotL); vec4 shadowPosition = shadowMap_matrix * positionEC; // Stop early if the fragment is not in the shadow bounds if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) { return; } shadowParameters.texCoords = shadowPosition.xy; shadowParameters.depth = shadowPosition.z; shadowParameters.nDotL = nDotL; float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); `,E+=` out_FragColor.rgb *= visibility; } `,C.push(E),new ze({defines:T,sources:C})};var tp=XT;function np(e){e=y(e,y.EMPTY_OBJECT);let t=e.context;this._enabled=y(e.enabled,!0),this._softShadows=y(e.softShadows,!1),this._normalOffset=y(e.normalOffset,!0),this.dirty=!0,this.fromLightSource=y(e.fromLightSource,!0),this.darkness=y(e.darkness,.3),this._darkness=this.darkness,this.fadingEnabled=y(e.fadingEnabled,!0),this.maximumDistance=y(e.maximumDistance,5e3),this._outOfView=!1,this._outOfViewPrevious=!1,this._needsUpdate=!0;let n=!0;(Vt.isInternetExplorer()||Vt.isEdge()||(Vt.isChrome()||Vt.isFirefox())&&Vt.isWindows()&&!t.depthTexture)&&(n=!1),this._polygonOffsetSupported=n,this._terrainBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.5,normalShading:!0,normalShadingSmooth:.3,depthBias:1e-4},this._primitiveBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.1,normalShading:!0,normalShadingSmooth:.05,depthBias:2e-5},this._pointBias={polygonOffset:!1,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:0,normalShading:!0,normalShadingSmooth:.1,depthBias:5e-4},this._depthAttachment=void 0,this._colorAttachment=void 0,this._shadowMapMatrix=new F,this._shadowMapTexture=void 0,this._lightDirectionEC=new h,this._lightPositionEC=new oe,this._distance=0,this._lightCamera=e.lightCamera,this._shadowMapCamera=new PH,this._shadowMapCullingVolume=void 0,this._sceneCamera=void 0,this._boundingSphere=new ae,this._isPointLight=y(e.isPointLight,!1),this._pointLightRadius=y(e.pointLightRadius,100),this._cascadesEnabled=this._isPointLight?!1:y(e.cascadesEnabled,!0),this._numberOfCascades=this._cascadesEnabled?y(e.numberOfCascades,4):0,this._fitNearFar=!0,this._maximumCascadeDistances=[25,150,700,Number.MAX_VALUE],this._textureSize=new z,this._isSpotLight=!1,this._cascadesEnabled?this._shadowMapCamera.frustum=new Er:l(this._lightCamera.frustum.fov)&&(this._isSpotLight=!0),this._cascadeSplits=[new oe,new oe],this._cascadeMatrices=[new F,new F,new F,new F],this._cascadeDistances=new oe;let i;this._isPointLight?i=6:this._cascadesEnabled?i=this._numberOfCascades:i=1,this._passes=new Array(i);for(let o=0;o<i;++o)this._passes[o]=new Tmt(t);this.debugShow=!1,this.debugFreezeFrame=!1,this._debugFreezeFrame=!1,this._debugCascadeColors=!1,this._debugLightFrustum=void 0,this._debugCameraFrustum=void 0,this._debugCascadeFrustums=new Array(this._numberOfCascades),this._debugShadowViewCommand=void 0,this._usesDepthTexture=t.depthTexture,this._isPointLight&&(this._usesDepthTexture=!1),this._primitiveRenderState=void 0,this._terrainRenderState=void 0,this._pointRenderState=void 0,UK(this),this._clearCommand=new ii({depth:1,color:new H}),this._clearPassState=new bc(t),this._size=y(e.size,2048),this.size=this._size}np.MAXIMUM_DISTANCE=2e4;function Tmt(e){this.camera=new PH,this.passState=new bc(e),this.framebuffer=void 0,this.textureOffsets=void 0,this.commandList=[],this.cullingVolume=void 0}function VK(e,t){return Ve.fromCache({cull:{enabled:!0,face:hi.BACK},depthTest:{enabled:!0},colorMask:{red:e,green:e,blue:e,alpha:e},depthMask:!0,polygonOffset:{enabled:t.polygonOffset,factor:t.polygonOffsetFactor,units:t.polygonOffsetUnits}})}function UK(e){let t=!e._usesDepthTexture;e._primitiveRenderState=VK(t,e._primitiveBias),e._terrainRenderState=VK(t,e._terrainBias),e._pointRenderState=VK(t,e._pointBias)}np.prototype.debugCreateRenderStates=function(){UK(this)};Object.defineProperties(np.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this.dirty=this._enabled!==e,this._enabled=e}},normalOffset:{get:function(){return this._normalOffset},set:function(e){this.dirty=this._normalOffset!==e,this._normalOffset=e,this._terrainBias.normalOffset=e,this._primitiveBias.normalOffset=e,this._pointBias.normalOffset=e}},softShadows:{get:function(){return this._softShadows},set:function(e){this.dirty=this._softShadows!==e,this._softShadows=e}},size:{get:function(){return this._size},set:function(e){wmt(this,e)}},outOfView:{get:function(){return this._outOfView}},shadowMapCullingVolume:{get:function(){return this._shadowMapCullingVolume}},passes:{get:function(){return this._passes}},isPointLight:{get:function(){return this._isPointLight}},debugCascadeColors:{get:function(){return this._debugCascadeColors},set:function(e){this.dirty=this._debugCascadeColors!==e,this._debugCascadeColors=e}}});function zK(e){let t=e._passes.length;for(let n=0;n<t;++n){let i=e._passes[n],o=i.framebuffer;l(o)&&!o.isDestroyed()&&o.destroy(),i.framebuffer=void 0}e._depthAttachment=e._depthAttachment&&e._depthAttachment.destroy(),e._colorAttachment=e._colorAttachment&&e._colorAttachment.destroy()}function Amt(e,t){let n=new Tu({context:t,width:e._textureSize.x,height:e._textureSize.y,format:$c.DEPTH_COMPONENT16}),i=new Dt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:nt.RGBA,pixelDatatype:We.UNSIGNED_BYTE,sampler:on.NEAREST}),o=new ta({context:t,depthRenderbuffer:n,colorTextures:[i],destroyAttachments:!1}),r=e._passes.length;for(let s=0;s<r;++s){let a=e._passes[s];a.framebuffer=o,a.passState.framebuffer=o}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function Cmt(e,t){let n=new Dt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:nt.DEPTH_STENCIL,pixelDatatype:We.UNSIGNED_INT_24_8,sampler:on.NEAREST}),i=new ta({context:t,depthStencilTexture:n,destroyAttachments:!1}),o=e._passes.length;for(let r=0;r<o;++r){let s=e._passes[r];s.framebuffer=i,s.passState.framebuffer=i}e._shadowMapTexture=n,e._depthAttachment=n}function Emt(e,t){let n=new Tu({context:t,width:e._textureSize.x,height:e._textureSize.y,format:$c.DEPTH_COMPONENT16}),i=new Ja({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:nt.RGBA,pixelDatatype:We.UNSIGNED_BYTE,sampler:on.NEAREST}),o=[i.negativeX,i.negativeY,i.negativeZ,i.positiveX,i.positiveY,i.positiveZ];for(let r=0;r<6;++r){let s=new ta({context:t,depthRenderbuffer:n,colorTextures:[o[r]],destroyAttachments:!1}),a=e._passes[r];a.framebuffer=s,a.passState.framebuffer=s}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function obe(e,t){e._isPointLight?Emt(e,t):e._usesDepthTexture?Cmt(e,t):Amt(e,t)}function Smt(e,t){e._usesDepthTexture&&e._passes[0].framebuffer.status!==ee.FRAMEBUFFER_COMPLETE&&(e._usesDepthTexture=!1,UK(e),zK(e),obe(e,t))}function vmt(e,t){(!l(e._passes[0].framebuffer)||e._shadowMapTexture.width!==e._textureSize.x)&&(zK(e),obe(e,t),Smt(e,t),rbe(e,t))}function rbe(e,t,n){n=y(n,0),(e._isPointLight||n===0)&&(e._clearCommand.framebuffer=e._passes[n].framebuffer,e._clearCommand.execute(t,e._clearPassState))}function wmt(e,t){e._size=t;let n=e._passes,i=n.length,o=e._textureSize;if(e._isPointLight){t=Nt.maximumCubeMapSize>=t?t:Nt.maximumCubeMapSize,o.x=t,o.y=t;let r=new Ge(0,0,t,t);n[0].passState.viewport=r,n[1].passState.viewport=r,n[2].passState.viewport=r,n[3].passState.viewport=r,n[4].passState.viewport=r,n[5].passState.viewport=r}else i===1?(t=Nt.maximumTextureSize>=t?t:Nt.maximumTextureSize,o.x=t,o.y=t,n[0].passState.viewport=new Ge(0,0,t,t)):i===4&&(t=Nt.maximumTextureSize>=t*2?t:Nt.maximumTextureSize/2,o.x=t*2,o.y=t*2,n[0].passState.viewport=new Ge(0,0,t,t),n[1].passState.viewport=new Ge(t,0,t,t),n[2].passState.viewport=new Ge(0,t,t,t),n[3].passState.viewport=new Ge(t,t,t,t));e._clearPassState.viewport=new Ge(0,0,o.x,o.y);for(let r=0;r<i;++r){let s=n[r],a=s.passState.viewport,c=a.x/o.x,u=a.y/o.y,f=a.width/o.x,d=a.height/o.y;s.textureOffsets=new F(f,0,0,c,0,d,0,u,0,0,1,0,0,0,0,1)}}var Dmt=new Ge;function Pmt(e,t){let n;e._isPointLight?n=`uniform samplerCube shadowMap_textureCube; in vec2 v_textureCoordinates; void main() { vec2 uv = v_textureCoordinates; vec3 dir; if (uv.y < 0.5) { if (uv.x < 0.333) { dir.x = -1.0; dir.y = uv.x * 6.0 - 1.0; dir.z = uv.y * 4.0 - 1.0; } else if (uv.x < 0.666) { dir.y = -1.0; dir.x = uv.x * 6.0 - 3.0; dir.z = uv.y * 4.0 - 1.0; } else { dir.z = -1.0; dir.x = uv.x * 6.0 - 5.0; dir.y = uv.y * 4.0 - 1.0; } } else { if (uv.x < 0.333) { dir.x = 1.0; dir.y = uv.x * 6.0 - 1.0; dir.z = uv.y * 4.0 - 3.0; } else if (uv.x < 0.666) { dir.y = 1.0; dir.x = uv.x * 6.0 - 3.0; dir.z = uv.y * 4.0 - 3.0; } else { dir.z = 1.0; dir.x = uv.x * 6.0 - 5.0; dir.y = uv.y * 4.0 - 3.0; } } float shadow = czm_unpackDepth(czm_textureCube(shadowMap_textureCube, dir)); out_FragColor = vec4(vec3(shadow), 1.0); } `:n=`uniform sampler2D shadowMap_texture; in vec2 v_textureCoordinates; void main() { ${e._usesDepthTexture?` float shadow = texture(shadowMap_texture, v_textureCoordinates).r; `:` float shadow = czm_unpackDepth(texture(shadowMap_texture, v_textureCoordinates)); `} out_FragColor = vec4(vec3(shadow), 1.0); } `;let i=t.createViewportQuadCommand(n,{uniformMap:{shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture}}});return i.pass=Ee.OVERLAY,i}function Imt(e,t){let n=t.context,i=t.context.drawingBufferWidth,o=t.context.drawingBufferHeight,r=Math.min(i,o)*.3,s=Dmt;s.x=i-r,s.y=0,s.width=r,s.height=r;let a=e._debugShadowViewCommand;l(a)||(a=Pmt(e,n),e._debugShadowViewCommand=a),(!l(a.renderState)||!Ge.equals(a.renderState.viewport,s))&&(a.renderState=Ve.fromCache({viewport:Ge.clone(s)})),t.commandList.push(e._debugShadowViewCommand)}var ip=new Array(8);ip[0]=new oe(-1,-1,-1,1);ip[1]=new oe(1,-1,-1,1);ip[2]=new oe(1,1,-1,1);ip[3]=new oe(-1,1,-1,1);ip[4]=new oe(-1,-1,1,1);ip[5]=new oe(1,-1,1,1);ip[6]=new oe(1,1,1,1);ip[7]=new oe(-1,1,1,1);var R0=new F,HK=new Array(8);for(let e=0;e<8;++e)HK[e]=new oe;function Rmt(e,t){let n=new xt({geometry:new Cd({minimum:new h(-.5,-.5,-.5),maximum:new h(.5,.5,.5)}),attributes:{color:zt.fromColor(t)}}),i=new xt({geometry:new y_({radius:.5}),attributes:{color:zt.fromColor(t)}});return new vn({geometryInstances:[n,i],appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1,modelMatrix:e})}var Omt=[H.RED,H.GREEN,H.BLUE,H.MAGENTA],Mmt=new h;function Lmt(e,t){Imt(e,t);let n=e.debugFreezeFrame&&!e._debugFreezeFrame;if(e._debugFreezeFrame=e.debugFreezeFrame,e.debugFreezeFrame&&(n&&(e._debugCameraFrustum=e._debugCameraFrustum&&e._debugCameraFrustum.destroy(),e._debugCameraFrustum=new $m({camera:e._sceneCamera,color:H.CYAN,updateOnChange:!1})),e._debugCameraFrustum.update(t)),e._cascadesEnabled){if(e.debugFreezeFrame){n&&(e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=new $m({camera:e._shadowMapCamera,color:H.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t);for(let i=0;i<e._numberOfCascades;++i)n&&(e._debugCascadeFrustums[i]=e._debugCascadeFrustums[i]&&e._debugCascadeFrustums[i].destroy(),e._debugCascadeFrustums[i]=new $m({camera:e._passes[i].camera,color:Omt[i],updateOnChange:!1})),e._debugCascadeFrustums[i].update(t)}}else if(e._isPointLight){if(!l(e._debugLightFrustum)||e._needsUpdate){let i=e._shadowMapCamera.positionWC,o=Me.IDENTITY,r=e._pointLightRadius*2,s=h.fromElements(r,r,r,Mmt),a=F.fromTranslationQuaternionRotationScale(i,o,s,R0);e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=Rmt(a,H.YELLOW)}e._debugLightFrustum.update(t)}else(!l(e._debugLightFrustum)||e._needsUpdate)&&(e._debugLightFrustum=new $m({camera:e._shadowMapCamera,color:H.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t)}function PH(){this.viewMatrix=new F,this.inverseViewMatrix=new F,this.frustum=void 0,this.positionCartographic=new fe,this.positionWC=new h,this.directionWC=h.clone(h.UNIT_Z),this.upWC=h.clone(h.UNIT_Y),this.rightWC=h.clone(h.UNIT_X),this.viewProjectionMatrix=new F}PH.prototype.clone=function(e){F.clone(e.viewMatrix,this.viewMatrix),F.clone(e.inverseViewMatrix,this.inverseViewMatrix),this.frustum=e.frustum.clone(this.frustum),fe.clone(e.positionCartographic,this.positionCartographic),h.clone(e.positionWC,this.positionWC),h.clone(e.directionWC,this.directionWC),h.clone(e.upWC,this.upWC),h.clone(e.rightWC,this.rightWC)};var Nmt=new F(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);PH.prototype.getViewProjection=function(){let e=this.viewMatrix,t=this.frustum.projectionMatrix;return F.multiply(t,e,this.viewProjectionMatrix),F.multiply(Nmt,this.viewProjectionMatrix,this.viewProjectionMatrix),this.viewProjectionMatrix};var Fmt=new Array(5),Bmt=new Ti,kmt=new Array(4),sbe=new h,abe=new h;function Vmt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=i.frustum.near,r=i.frustum.far,s=e._numberOfCascades,a,c=r-o,u=r/o,f=.9,d=!1;t.shadowState.closestObjectSize<200&&(d=!0,f=.9);let p=kmt,g=Fmt;for(g[0]=o,g[s]=r,a=0;a<s;++a){let N=(a+1)/s,_=o*Math.pow(u,N),S=o+c*N,w=R.lerp(S,_,f);g[a+1]=w,p[a]=w-g[a]}if(d){for(a=0;a<s;++a)p[a]=Math.min(p[a],e._maximumCascadeDistances[a]);let N=g[0];for(a=0;a<s-1;++a)N+=p[a],g[a+1]=N}oe.unpack(g,0,e._cascadeSplits[0]),oe.unpack(g,1,e._cascadeSplits[1]),oe.unpack(p,0,e._cascadeDistances);let m=n.frustum,x=m.left,b=m.right,T=m.bottom,C=m.top,A=m.near,E=m.far,v=n.positionWC,D=n.directionWC,O=n.upWC,I=i.frustum.clone(Bmt),L=n.getViewProjection();for(a=0;a<s;++a){I.near=g[a],I.far=g[a+1];let N=F.multiply(I.projectionMatrix,i.viewMatrix,R0),_=F.inverse(N,R0),S=F.multiply(L,_,R0),w=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,sbe),P=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,abe);for(let G=0;G<8;++G){let k=oe.clone(ip[G],HK[G]);F.multiplyByVector(S,k,k),h.divideByScalar(k,k.w,k),h.minimumByComponent(k,w,w),h.maximumByComponent(k,P,P)}w.x=Math.max(w.x,0),w.y=Math.max(w.y,0),w.z=0,P.x=Math.min(P.x,1),P.y=Math.min(P.y,1),P.z=Math.min(P.z,1);let M=e._passes[a],B=M.camera;B.clone(n);let U=B.frustum;U.left=x+w.x*(b-x),U.right=x+P.x*(b-x),U.bottom=T+w.y*(C-T),U.top=T+P.y*(C-T),U.near=A+w.z*(E-A),U.far=A+P.z*(E-A),M.cullingVolume=B.frustum.computeCullingVolume(v,D,O);let V=e._cascadeMatrices[a];F.multiply(B.getViewProjection(),i.inverseViewMatrix,V),F.multiply(M.textureOffsets,V,V)}}var Umt=new F,zmt=new h,Hmt=new h,nbe=new h;function Gmt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=F.multiply(i.frustum.projectionMatrix,i.viewMatrix,R0),r=F.inverse(o,R0),s=n.directionWC,a=i.directionWC;h.equalsEpsilon(s,a,R.EPSILON10)&&(a=i.upWC);let c=h.cross(s,a,zmt);a=h.cross(c,s,Hmt),h.normalize(a,a),h.normalize(c,c);let u=h.fromElements(0,0,0,nbe),f=F.computeView(u,s,a,c,Umt),d=F.multiply(f,r,R0),p=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,sbe),g=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,abe);for(let E=0;E<8;++E){let v=oe.clone(ip[E],HK[E]);F.multiplyByVector(d,v,v),h.divideByScalar(v,v.w,v),h.minimumByComponent(v,p,p),h.maximumByComponent(v,g,g)}g.z+=1e3,p.z-=10;let m=nbe;m.x=-(.5*(p.x+g.x)),m.y=-(.5*(p.y+g.y)),m.z=-g.z;let x=F.fromTranslation(m,R0);f=F.multiply(x,f,f);let b=.5*(g.x-p.x),T=.5*(g.y-p.y),C=g.z-p.z,A=n.frustum;A.left=-b,A.right=b,A.bottom=-T,A.top=T,A.near=.01,A.far=C,F.clone(f,n.viewMatrix),F.inverse(f,n.inverseViewMatrix),F.getTranslation(n.inverseViewMatrix,n.positionWC),t.mapProjection.ellipsoid.cartesianToCartographic(n.positionWC,n.positionCartographic),h.clone(s,n.directionWC),h.clone(a,n.upWC),h.clone(c,n.rightWC)}var Wmt=[new h(-1,0,0),new h(0,-1,0),new h(0,0,-1),new h(1,0,0),new h(0,1,0),new h(0,0,1)],jmt=[new h(0,-1,0),new h(0,0,-1),new h(0,-1,0),new h(0,-1,0),new h(0,0,1),new h(0,-1,0)],qmt=[new h(0,0,1),new h(1,0,0),new h(-1,0,0),new h(0,0,-1),new h(1,0,0),new h(1,0,0)];function Ymt(e,t){let n=new Ti;n.fov=R.PI_OVER_TWO,n.near=1,n.far=e._pointLightRadius,n.aspectRatio=1;for(let i=0;i<6;++i){let o=e._passes[i].camera;o.positionWC=e._shadowMapCamera.positionWC,o.positionCartographic=t.mapProjection.ellipsoid.cartesianToCartographic(o.positionWC,o.positionCartographic),o.directionWC=Wmt[i],o.upWC=jmt[i],o.rightWC=qmt[i],F.computeView(o.positionWC,o.directionWC,o.upWC,o.rightWC,o.viewMatrix),F.inverse(o.viewMatrix,o.inverseViewMatrix),o.frustum=n}}var Xmt=new h,Kmt=new h,cbe=new ae,ibe=cbe.center;function Zmt(e,t){let n=e._sceneCamera,i=e._shadowMapCamera,o=cbe;if(e._cascadesEnabled){if(n.frustum.near>=e.maximumDistance){e._outOfView=!0,e._needsUpdate=!1;return}let r=t.mapProjection.ellipsoid.geodeticSurfaceNormal(n.positionWC,Xmt),s=h.negate(i.directionWC,Kmt),a=h.dot(r,s);if(e.fadingEnabled){let c=R.clamp(a/.1,0,1);e._darkness=R.lerp(1,e.darkness,c)}else e._darkness=e.darkness;if(a<0){e._outOfView=!0,e._needsUpdate=!1;return}e._needsUpdate=!0,e._outOfView=!1}else if(e._isPointLight)o.center=i.positionWC,o.radius=e._pointLightRadius,e._outOfView=t.cullingVolume.computeVisibility(o)===Gt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),ae.clone(o,e._boundingSphere);else{let r=i.frustum.far/2,s=h.add(i.positionWC,h.multiplyByScalar(i.directionWC,r,ibe),ibe);o.center=s,o.radius=r,e._outOfView=t.cullingVolume.computeVisibility(o)===Gt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),ae.clone(o,e._boundingSphere)}}function $mt(e,t){let n=t.camera,i=e._lightCamera,o=e._sceneCamera,r=e._shadowMapCamera;e._cascadesEnabled?h.clone(i.directionWC,r.directionWC):e._isPointLight?h.clone(i.positionWC,r.positionWC):r.clone(i);let s=e._lightDirectionEC;F.multiplyByPointAsVector(n.viewMatrix,r.directionWC,s),h.normalize(s,s),h.negate(s,s),F.multiplyByPoint(n.viewMatrix,r.positionWC,e._lightPositionEC),e._lightPositionEC.w=e._pointLightRadius;let a,c;e._fitNearFar?(a=Math.min(t.shadowState.nearPlane,e.maximumDistance),c=Math.min(t.shadowState.farPlane,e.maximumDistance),c=Math.max(c,a+1)):(a=n.frustum.near,c=e.maximumDistance),e._sceneCamera=ao.clone(n,o),n.frustum.clone(e._sceneCamera.frustum),e._sceneCamera.frustum.near=a,e._sceneCamera.frustum.far=c,e._distance=c-a,Zmt(e,t),!e._outOfViewPrevious&&e._outOfView&&(e._needsUpdate=!0),e._outOfViewPrevious=e._outOfView}np.prototype.update=function(e){if($mt(this,e),this._needsUpdate)if(vmt(this,e.context),this._isPointLight&&Ymt(this,e),this._cascadesEnabled&&(Gmt(this,e),this._numberOfCascades>1&&Vmt(this,e)),this._isPointLight)this._shadowMapCullingVolume=as.fromBoundingSphere(this._boundingSphere);else{let t=this._shadowMapCamera,n=t.positionWC,i=t.directionWC,o=t.upWC;this._shadowMapCullingVolume=t.frustum.computeCullingVolume(n,i,o),this._passes.length===1&&this._passes[0].camera.clone(t)}if(this._passes.length===1){let t=this._sceneCamera.inverseViewMatrix;F.multiply(this._shadowMapCamera.getViewProjection(),t,this._shadowMapMatrix)}this.debugShow&&Lmt(this,e)};np.prototype.updatePass=function(e,t){rbe(this,e,t)};var Qmt=new z;function lbe(e,t,n){let i=e._isPointLight?e._pointBias:n?e._terrainBias:e._primitiveBias,o={shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture},shadowMap_matrix:function(){return e._shadowMapMatrix},shadowMap_cascadeSplits:function(){return e._cascadeSplits},shadowMap_cascadeMatrices:function(){return e._cascadeMatrices},shadowMap_lightDirectionEC:function(){return e._lightDirectionEC},shadowMap_lightPositionEC:function(){return e._lightPositionEC},shadowMap_cascadeDistances:function(){return e._cascadeDistances},shadowMap_texelSizeDepthBiasAndNormalShadingSmooth:function(){let r=Qmt;return r.x=1/e._textureSize.x,r.y=1/e._textureSize.y,oe.fromElements(r.x,r.y,i.depthBias,i.normalShadingSmooth,this.combinedUniforms1)},shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness:function(){return oe.fromElements(i.normalOffsetScale,e._distance,e.maximumDistance,e._darkness,this.combinedUniforms2)},combinedUniforms1:new oe,combinedUniforms2:new oe};return _t(t,o,!1)}function Jmt(e,t,n,i,o,r){let s,a,c;if(l(r)&&(s=r.shaderProgram,a=r.renderState,c=r.uniformMap),r=Ze.shallowClone(n,r),r.castShadows=!0,r.receiveShadows=!1,!l(s)||o!==n.shaderProgram.id||t){let u=n.shaderProgram,f=n.pass===Ee.GLOBE,d=n.pass!==Ee.TRANSLUCENT,p=e._isPointLight,g=e._usesDepthTexture,m=tp.getShadowCastShaderKeyword(p,f,g,d);if(s=i.shaderCache.getDerivedShaderProgram(u,m),!l(s)){let b=u.vertexShaderSource,T=u.fragmentShaderSource,C=tp.createShadowCastVertexShader(b,p,f),A=tp.createShadowCastFragmentShader(T,p,g,d);s=i.shaderCache.createDerivedShaderProgram(u,m,{vertexShaderSource:C,fragmentShaderSource:A,attributeLocations:u._attributeLocations})}a=e._primitiveRenderState,p?a=e._pointRenderState:f&&(a=e._terrainRenderState),n.renderState.cull.enabled||(a=He(a,!1),a.cull=He(a.cull,!1),a.cull.enabled=!1,a=Ve.fromCache(a)),c=lbe(e,n.uniformMap,f)}return r.shaderProgram=s,r.renderState=a,r.uniformMap=c,r}np.createReceiveDerivedCommand=function(e,t,n,i,o){l(o)||(o={});let r=e.length>0,s=t.shaderProgram,a=s.vertexShaderSource,c=s.fragmentShaderSource,u=t.pass===Ee.GLOBE,f=!1;if(u&&(f=t.owner.data.renderedMesh.encoding.hasVertexNormals),t.receiveShadows&&r){let d,p;l(o.receiveCommand)&&(d=o.receiveCommand.shaderProgram,p=o.receiveCommand.uniformMap),o.receiveCommand=Ze.shallowClone(t,o.receiveCommand),o.castShadows=!1,o.receiveShadows=!0;let g=o.receiveShaderCastShadows!==t.castShadows,m=o.receiveShaderProgramId!==t.shaderProgram.id;if(!l(d)||m||n||g){let x=tp.getShadowReceiveShaderKeyword(e[0],t.castShadows,u,f);if(d=i.shaderCache.getDerivedShaderProgram(s,x),!l(d)){let b=tp.createShadowReceiveVertexShader(a,u,f),T=tp.createShadowReceiveFragmentShader(c,e[0],t.castShadows,u,f);d=i.shaderCache.createDerivedShaderProgram(s,x,{vertexShaderSource:b,fragmentShaderSource:T,attributeLocations:s._attributeLocations})}p=lbe(e[0],t.uniformMap,u)}o.receiveCommand.shaderProgram=d,o.receiveCommand.uniformMap=p,o.receiveShaderProgramId=t.shaderProgram.id,o.receiveShaderCastShadows=t.castShadows}return o};np.createCastDerivedCommand=function(e,t,n,i,o){if(l(o)||(o={}),t.castShadows){let r=o.castCommands;l(r)||(r=o.castCommands=[]);let s=o.castShaderProgramId,a=e.length;r.length=a;for(let c=0;c<a;++c)r[c]=Jmt(e[c],n,t,i,s,r[c]);o.castShaderProgramId=t.shaderProgram.id}return o};np.prototype.isDestroyed=function(){return!1};np.prototype.destroy=function(){zK(this),this._debugLightFrustum=this._debugLightFrustum&&this._debugLightFrustum.destroy(),this._debugCameraFrustum=this._debugCameraFrustum&&this._debugCameraFrustum.destroy(),this._debugShadowViewCommand=this._debugShadowViewCommand&&this._debugShadowViewCommand.shaderProgram&&this._debugShadowViewCommand.shaderProgram.destroy();for(let e=0;e<this._numberOfCascades;++e)this._debugCascadeFrustums[e]=this._debugCascadeFrustums[e]&&this._debugCascadeFrustums[e].destroy();return ue(this)};var fg=np;var KT=`uniform sampler2D colorTexture; #ifdef DEBUG_SHOW_DEPTH uniform sampler2D u_packedTranslucentDepth; #endif in vec2 v_textureCoordinates; void main() { #ifdef DEBUG_SHOW_DEPTH if (v_textureCoordinates.x < 0.5) { out_FragColor.rgb = vec3(czm_unpackDepth(texture(u_packedTranslucentDepth, v_textureCoordinates))); out_FragColor.a = 1.0; } #else vec4 color = texture(colorTexture, v_textureCoordinates); #ifdef PICK if (color == vec4(0.0)) { discard; } #else // Reverse premultiplication process to get the correct composited result of the classification primitives color.rgb /= color.a; #endif out_FragColor = color; #endif } `;var ept=!1;function O0(e){this._drawClassificationFBO=new ui({createDepthAttachments:!1}),this._accumulationFBO=new ui({createDepthAttachments:!1}),this._packFBO=new ui,this._opaqueDepthStencilTexture=void 0,this._textureToComposite=void 0,this._translucentDepthStencilTexture=void 0,this._packDepthCommand=void 0,this._accumulateCommand=void 0,this._compositeCommand=void 0,this._copyCommand=void 0,this._clearColorCommand=new ii({color:new H(0,0,0,0),owner:this}),this._clearDepthStencilCommand=new ii({depth:1,stencil:0,owner:this}),this._supported=e.depthTexture,this._viewport=new Ge,this._rsDepth=void 0,this._rsAccumulate=void 0,this._rsComp=void 0,this._useScissorTest=void 0,this._scissorRectangle=void 0,this._hasTranslucentDepth=!1,this._frustumsDrawn=0}Object.defineProperties(O0.prototype,{hasTranslucentDepth:{get:function(){return this._hasTranslucentDepth}}});function ube(e){e._textureToComposite=void 0,e._translucentDepthStencilTexture=e._translucentDepthStencilTexture&&!e._translucentDepthStencilTexture.isDestroyed()&&e._translucentDepthStencilTexture.destroy()}function fbe(e){e._drawClassificationFBO.destroy(),e._accumulationFBO.destroy(),e._packFBO.destroy()}function tpt(e,t,n,i){ube(e),e._translucentDepthStencilTexture=new Dt({context:t,width:n,height:i,pixelFormat:nt.DEPTH_STENCIL,pixelDatatype:We.UNSIGNED_INT_24_8,sampler:on.NEAREST})}function npt(e,t,n,i){fbe(e),e._drawClassificationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._drawClassificationFBO.update(t,n,i),e._accumulationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._accumulationFBO.update(t,n,i),e._packFBO.update(t,n,i)}function ipt(e,t,n,i){if(!e.isSupported())return;e._opaqueDepthStencilTexture=i;let o=e._opaqueDepthStencilTexture.width,r=e._opaqueDepthStencilTexture.height;e._drawClassificationFBO.isDirty(o,r)&&(tpt(e,t,o,r),npt(e,t,o,r));let s,a;if(l(e._packDepthCommand)||(s=new ze({sources:[PF]}),a={u_opaqueDepthTexture:function(){return e._opaqueDepthStencilTexture},u_translucentDepthTexture:function(){return e._translucentDepthStencilTexture}},e._packDepthCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),!l(e._compositeCommand)){s=new ze({sources:[KT]}),a={colorTexture:function(){return e._textureToComposite}},ept&&(s.defines=["DEBUG_SHOW_DEPTH"],a.u_packedTranslucentDepth=function(){return e._packFBO.getColorTexture()}),e._compositeCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e});let f=e._compositeCommand,d=f.shaderProgram,p=t.shaderCache.createDerivedShaderProgram(d,"pick",{vertexShaderSource:d.vertexShaderSource,fragmentShaderSource:new ze({sources:s.sources,defines:["PICK"]}),attributeLocations:d._attributeLocations}),g=Ze.shallowClone(f);g.shaderProgram=p,f.derivedCommands.pick=g}l(e._copyCommand)||(s=new ze({sources:[KT]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._copyCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),l(e._accumulateCommand)||(s=new ze({sources:[KT]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._accumulateCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),e._viewport.width=o,e._viewport.height=r;let c=!Ge.equals(e._viewport,n.viewport),u=c!==e._useScissorTest;e._useScissorTest=c,Ge.equals(e._scissorRectangle,n.viewport)||(e._scissorRectangle=Ge.clone(n.viewport,e._scissorRectangle),u=!0),(!l(e._rsDepth)||!Ge.equals(e._viewport,e._rsDepth.viewport)||u)&&(e._rsDepth=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packDepthCommand)&&(e._packDepthCommand.renderState=e._rsDepth),(!l(e._rsAccumulate)||!Ge.equals(e._viewport,e._rsAccumulate.viewport)||u)&&(e._rsAccumulate=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Un.EQUAL,reference:Ft.CESIUM_3D_TILE_MASK}})),l(e._accumulateCommand)&&(e._accumulateCommand.renderState=e._rsAccumulate),(!l(e._rsComp)||!Ge.equals(e._viewport,e._rsComp.viewport)||u)&&(e._rsComp=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND})),l(e._compositeCommand)&&(e._compositeCommand.renderState=e._rsComp,e._compositeCommand.derivedCommands.pick.renderState=e._rsComp)}O0.prototype.executeTranslucentCommands=function(e,t,n,i,o){let r=i.length,s,a,c=e.frameState.useLogDepth,u=e.context,f=n.framebuffer;for(a=0;a<r;++a)if(s=i[a],s=c?s.derivedCommands.logDepth.command:s,s.depthForTranslucentClassification){this._hasTranslucentDepth=!0;break}if(this._hasTranslucentDepth){for(ipt(this,u,n,o),n.framebuffer=this._drawClassificationFBO.framebuffer,this._clearDepthStencilCommand.execute(u,n),a=0;a<r;++a){if(s=i[a],s=c?s.derivedCommands.logDepth.command:s,!s.depthForTranslucentClassification)continue;let d=s.derivedCommands.depth.depthOnlyCommand;t(d,e,u,n)}this._frustumsDrawn+=this._hasTranslucentDepth?1:0,this._hasTranslucentDepth&&(n.framebuffer=this._packFBO.framebuffer,this._packDepthCommand.execute(u,n)),n.framebuffer=f}};O0.prototype.executeClassificationCommands=function(e,t,n,i){if(!this._hasTranslucentDepth)return;let o=e.context,r=o.uniformState,s=n.framebuffer;this._frustumsDrawn===2&&(n.framebuffer=this._accumulationFBO.framebuffer,this._copyCommand.execute(o,n)),n.framebuffer=this._drawClassificationFBO.framebuffer,this._frustumsDrawn>1&&this._clearColorCommand.execute(o,n),r.updatePass(Ee.CESIUM_3D_TILE_CLASSIFICATION);let a=r.globeDepthTexture;r.globeDepthTexture=this._packFBO.getColorTexture();let c=i.commands[Ee.CESIUM_3D_TILE_CLASSIFICATION],u=i.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION];for(let f=0;f<u;++f)t(c[f],e,o,n);r.globeDepthTexture=a,n.framebuffer=s,this._frustumsDrawn!==1&&(n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=s)};O0.prototype.execute=function(e,t){if(!this._hasTranslucentDepth)return;this._frustumsDrawn===1?this._textureToComposite=this._drawClassificationFBO.getColorTexture():this._textureToComposite=this._accumulationFBO.getColorTexture(),(e.frameState.passes.pick?this._compositeCommand.derivedCommands.pick:this._compositeCommand).execute(e.context,t),opt(this,e,t)};function opt(e,t,n){if(!e._hasTranslucentDepth)return;let i=n.framebuffer;n.framebuffer=e._drawClassificationFBO.framebuffer,e._clearColorCommand.execute(t._context,n),n.framebuffer=i,e._frustumsDrawn>1&&(n.framebuffer=e._accumulationFBO.framebuffer,e._clearColorCommand.execute(t._context,n)),e._hasTranslucentDepth=!1,e._frustumsDrawn=0}O0.prototype.isSupported=function(){return this._supported};O0.prototype.isDestroyed=function(){return!1};O0.prototype.destroy=function(){return ube(this),fbe(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._packDepthCommand)&&(this._packDepthCommand.shaderProgram=this._packDepthCommand.shaderProgram&&this._packDepthCommand.shaderProgram.destroy()),ue(this)};var X2=O0;function rpt(){this.command=void 0,this.near=void 0,this.far=void 0}function IH(e,t,n){let i=e.context,o;i.depthTexture&&(o=new z2);let r;e._useOIT&&i.depthTexture&&(r=new G2(i));let s=new bc(i);s.viewport=Ge.clone(n),this.camera=t,this._cameraClone=ao.clone(t),this._cameraStartFired=!1,this._cameraMovedTime=void 0,this.viewport=n,this.passState=s,this.pickFramebuffer=new Y2(i),this.pickDepthFramebuffer=new j2,this.sceneFramebuffer=new YT,this.globeDepth=o,this.globeTranslucencyFramebuffer=new H2,this.oit=r,this.translucentTileClassification=new X2(i),this.pickDepths=[],this.frustumCommandsList=[],this.debugFrustumStatistics=void 0,this._commandExtents=[]}var dbe=new h,hbe=new h;function spt(e,t){let n=Math.max(Math.abs(e.x),Math.abs(t.x)),i=Math.max(Math.abs(e.y),Math.abs(t.y)),o=Math.max(Math.abs(e.z),Math.abs(t.z));return Math.max(Math.max(n,i),o)}function apt(e,t,n){let i=1/Math.max(1,spt(e.position,t.position));return h.multiplyByScalar(e.position,i,dbe),h.multiplyByScalar(t.position,i,hbe),h.equalsEpsilon(dbe,hbe,n)&&h.equalsEpsilon(e.direction,t.direction,n)&&h.equalsEpsilon(e.up,t.up,n)&&h.equalsEpsilon(e.right,t.right,n)&&F.equalsEpsilon(e.transform,t.transform,n)&&e.frustum.equalsEpsilon(t.frustum,n)}IH.prototype.checkForCameraUpdates=function(e){let t=this.camera,n=this._cameraClone;return apt(t,n,R.EPSILON15)?(this._cameraStartFired&&pi()-this._cameraMovedTime>e.cameraEventWaitTime&&(t.moveEnd.raiseEvent(),this._cameraStartFired=!1),!1):(this._cameraStartFired||(t.moveStart.raiseEvent(),this._cameraStartFired=!0),this._cameraMovedTime=pi(),ao.clone(t,n),!0)};function cpt(e,t,n,i){let o=t.frameState,r=o.camera,s=o.useLogDepth?t.logarithmicDepthFarToNearRatio:t.farToNearRatio,a=t.mode===ne.SCENE2D,c=t.nearToFarDistance2D;i*=1+R.EPSILON2,n=Math.min(Math.max(n,r.frustum.near),r.frustum.far),i=Math.max(Math.min(i,r.frustum.far),n);let u;a?(i=Math.min(i,r.position.z+t.nearToFarDistance2D),n=Math.min(n,i),u=Math.ceil(Math.max(1,i-n)/t.nearToFarDistance2D)):u=Math.ceil(Math.log(i/n)/Math.log(s));let f=e.frustumCommandsList;f.length=u;for(let d=0;d<u;++d){let p,g;a?(p=Math.min(i-c,n+d*c),g=Math.min(i,p+c)):(p=Math.max(n,Math.pow(s,d)*n),g=Math.min(i,s*p));let m=f[d];l(m)?(m.near=p,m.far=g):m=f[d]=new U2(p,g)}}function lpt(e,t,n,i,o){t.debugShowFrustums&&(n.debugOverlappingFrustums=0);let r=e.frustumCommandsList,s=r.length;for(let a=0;a<s;++a){let c=r[a],u=c.near,f=c.far;if(i>f)continue;if(o<u)break;let d=n.pass,p=c.indices[d]++;if(c.commands[d][p]=n,t.debugShowFrustums&&(n.debugOverlappingFrustums|=1<<a),n.executeInClosestFrustum)break}if(t.debugShowFrustums){let a=e.debugFrustumStatistics.commandsInFrustums;a[n.debugOverlappingFrustums]=l(a[n.debugOverlappingFrustums])?a[n.debugOverlappingFrustums]+1:1,++e.debugFrustumStatistics.totalCommands}t.updateDerivedCommands(n)}var mbe=new as,upt=new Ta;IH.prototype.createPotentiallyVisibleSet=function(e){let t=e.frameState,n=t.camera,i=n.directionWC,o=n.positionWC,r=e._computeCommandList,s=e._overlayCommandList,a=t.commandList;e.debugShowFrustums&&(this.debugFrustumStatistics={totalCommands:0,commandsInFrustums:{}});let c=this.frustumCommandsList,u=c.length,f=Ee.NUMBER_OF_PASSES;for(let S=0;S<u;++S)for(let w=0;w<f;++w)c[S].indices[w]=0;r.length=0,s.length=0;let d=this._commandExtents,p=d.length,g=0,m=+Number.MAX_VALUE,x=-Number.MAX_VALUE,b=t.shadowState.shadowsEnabled,T=+Number.MAX_VALUE,C=-Number.MAX_VALUE,A=Number.MAX_VALUE,E=t.mode===ne.SCENE3D?t.occluder:void 0,v=t.cullingVolume,D=mbe.planes;for(let S=0;S<5;++S)D[S]=v.planes[S];v=mbe;let O=a.length;for(let S=0;S<O;++S){let w=a[S],P=w.pass;if(P===Ee.COMPUTE)r.push(w);else if(P===Ee.OVERLAY)s.push(w);else{let M,B,U=w.boundingVolume;if(l(U)){if(!e.isVisible(w,v,E))continue;let G=U.computePlaneDistances(o,i,upt);if(M=G.start,B=G.stop,m=Math.min(m,M),x=Math.max(x,B),b&&w.receiveShadows&&M<fg.MAXIMUM_DISTANCE&&!(P===Ee.GLOBE&&M<-100&&B>100)){let k=B-M;P!==Ee.GLOBE&&M<100&&(A=Math.min(A,k)),T=Math.min(T,M),C=Math.max(C,B)}}else w instanceof ii?(M=n.frustum.near,B=n.frustum.far):(M=n.frustum.near,B=n.frustum.far,m=Math.min(m,M),x=Math.max(x,B));let V=d[g];l(V)||(V=d[g]=new rpt),V.command=w,V.near=M,V.far=B,g++}}b&&(T=Math.min(Math.max(T,n.frustum.near),n.frustum.far),C=Math.max(Math.min(C,n.frustum.far),T)),b&&(t.shadowState.nearPlane=T,t.shadowState.farPlane=C,t.shadowState.closestObjectSize=A),cpt(this,e,m,x);let I,L;for(I=0;I<g;I++)L=d[I],lpt(this,e,L.command,L.near,L.far);if(g<p)for(I=g;I<p&&(L=d[I],!!l(L.command));I++)L.command=void 0;let N=c.length,_=t.frustumSplits;_.length=N+1;for(let S=0;S<N;++S)_[S]=c[S].near,S===N-1&&(_[S+1]=c[S].far)};IH.prototype.destroy=function(){this.pickFramebuffer=this.pickFramebuffer&&this.pickFramebuffer.destroy(),this.pickDepthFramebuffer=this.pickDepthFramebuffer&&this.pickDepthFramebuffer.destroy(),this.sceneFramebuffer=this.sceneFramebuffer&&this.sceneFramebuffer.destroy(),this.globeDepth=this.globeDepth&&this.globeDepth.destroy(),this.oit=this.oit&&this.oit.destroy(),this.translucentTileClassification=this.translucentTileClassification&&this.translucentTileClassification.destroy(),this.globeTranslucencyFramebuffer=this.globeTranslucencyFramebuffer&&this.globeTranslucencyFramebuffer.destroy();let e,t=this.pickDepths,n=t.length;for(e=0;e<n;++e)t[e].destroy()};var ZT=IH;var _be=.1,fpt=new ld({pass:Mo.MOST_DETAILED_PRELOAD}),dpt=new ld({pass:Mo.MOST_DETAILED_PICK}),OH=new ld({pass:Mo.PICK});function pa(e){this._mostDetailedRayPicks=[],this.pickRenderStateCache={},this._pickPositionCache={},this._pickPositionCacheDirty=!1;let t=new Ge(0,0,1,1),n=new ao(e);n.frustum=new rn({width:_be,aspectRatio:1,near:.1}),this._pickOffscreenView=new ZT(e,n,t)}pa.prototype.update=function(){this._pickPositionCacheDirty=!0};pa.prototype.getPickDepth=function(e,t){let n=e.view.pickDepths,i=n[t];return l(i)||(i=new V2,n[t]=i),i};var hpt=new Er,mpt=new h,RH=new h,ppt=new z,_pt=new F;function gpt(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2*(t.x-o.x)/o.width-1;c*=(s.right-s.left)*.5;let u=2*(o.height-t.y-o.y)/o.height-1;u*=(s.top-s.bottom)*.5;let f=F.clone(r.transform,_pt);r._setTransform(F.IDENTITY);let d=h.clone(r.position,mpt);h.multiplyByScalar(r.right,c,RH),h.add(RH,d,d),h.multiplyByScalar(r.up,u,RH),h.add(RH,d,d),r._setTransform(f),e.mode===ne.SCENE2D&&h.fromElements(d.z,d.x,d.y,d);let p=s.getPixelDimensions(o.width,o.height,1,1,ppt),g=hpt;return g.right=p.x*.5,g.left=-g.right,g.top=p.y*.5,g.bottom=-g.top,g.near=s.near,g.far=s.far,g.computeCullingVolume(d,r.directionWC,r.upWC)}var ypt=new ul,xpt=new z;function bpt(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.near,c=Math.tan(s.fovy*.5),u=s.aspectRatio*c,f=2*(t.x-o.x)/o.width-1,d=2*(o.height-t.y-o.y)/o.height-1,p=f*a*u,g=d*a*c,m=s.getPixelDimensions(o.width,o.height,1,1,xpt),x=m.x*n*.5,b=m.y*i*.5,T=ypt;return T.top=g+b,T.bottom=g-b,T.right=p+x,T.left=p-x,T.near=a,T.far=s.far,T.computeCullingVolume(r.positionWC,r.directionWC,r.upWC)}function GK(e,t,n,i,o){let r=e.camera.frustum;return r instanceof rn||r instanceof Er?gpt(e,t,n,i,o):bpt(e,t,n,i,o)}var Fh=3,dg=3,Pc=new Ge(0,0,Fh,dg),WK=new z,MH=new H(0,0,0,0);pa.prototype.pick=function(e,t,n,i){Fh=y(n,3),dg=y(i,Fh);let{context:o,frameState:r,defaultView:s}=e,{viewport:a,pickFramebuffer:c}=s;e.view=s,a.x=0,a.y=0,a.width=o.drawingBufferWidth,a.height=o.drawingBufferHeight;let u=s.passState;u.viewport=Ge.clone(a,u.viewport);let f=Hi.transformWindowToDrawingBuffer(e,t,WK);e.jobScheduler.disableThisFrame(),e.updateFrameState(),r.cullingVolume=GK(e,f,Fh,dg,a),r.invertClassification=!1,r.passes.pick=!0,r.tilesetPassState=OH,o.uniformState.update(r),e.updateEnvironment(),Pc.x=f.x-(Fh-1)*.5,Pc.y=e.drawingBufferHeight-f.y-(dg-1)*.5,Pc.width=Fh,Pc.height=dg,u=c.begin(Pc,a),e.updateAndExecuteCommands(u,MH),e.resolveFramebuffers(u);let d=c.end(Pc);return o.endFrame(),d};pa.prototype.pickVoxelCoordinate=function(e,t,n,i){Fh=y(n,3),dg=y(i,Fh);let{context:o,frameState:r,defaultView:s}=e,{viewport:a,pickFramebuffer:c}=s;e.view=s,a.x=0,a.y=0,a.width=o.drawingBufferWidth,a.height=o.drawingBufferHeight;let u=s.passState;u.viewport=Ge.clone(a,u.viewport);let f=Hi.transformWindowToDrawingBuffer(e,t,WK);e.jobScheduler.disableThisFrame(),e.updateFrameState(),r.cullingVolume=GK(e,f,Fh,dg,a),r.invertClassification=!1,r.passes.pickVoxel=!0,r.tilesetPassState=OH,o.uniformState.update(r),e.updateEnvironment(),Pc.x=f.x-(Fh-1)*.5,Pc.y=e.drawingBufferHeight-f.y-(dg-1)*.5,Pc.width=Fh,Pc.height=dg,u=c.begin(Pc,a),e.updateAndExecuteCommands(u,MH),e.resolveFramebuffers(u);let d=c.readVoxelInfo(Pc);return o.endFrame(),d};function Tpt(e,t){let{defaultView:n,context:i,frameState:o,environmentState:r}=e,{viewport:s,pickDepthFramebuffer:a}=n;e.view=n,s.x=0,s.y=0,s.width=i.drawingBufferWidth,s.height=i.drawingBufferHeight;let c=n.passState;c.viewport=Ge.clone(s,c.viewport),e.clearPasses(o.passes),o.passes.pick=!0,o.passes.depth=!0,o.cullingVolume=GK(e,t,1,1,s),o.tilesetPassState=OH,e.updateEnvironment(),r.renderTranslucentDepthForPick=!0,c=a.update(i,t,s),e.updateAndExecuteCommands(c,MH),e.resolveFramebuffers(c),i.endFrame()}var Apt=new Ti,Cpt=new ul,Ept=new rn,Spt=new Er;pa.prototype.pickPositionWorldCoordinates=function(e,t,n){if(!e.useDepthPicking)return;let i=t.toString();if(this._pickPositionCacheDirty)this._pickPositionCache={},this._pickPositionCacheDirty=!1;else if(this._pickPositionCache.hasOwnProperty(i))return h.clone(this._pickPositionCache[i],n);let{context:o,frameState:r,camera:s,defaultView:a}=e,{uniformState:c}=o;e.view=a;let u=Hi.transformWindowToDrawingBuffer(e,t,WK);e.pickTranslucentDepth?Tpt(e,u):(e.updateFrameState(),c.update(r),e.updateEnvironment()),u.y=e.drawingBufferHeight-u.y;let f;l(s.frustum.fov)?f=s.frustum.clone(Apt):l(s.frustum.infiniteProjectionMatrix)?f=s.frustum.clone(Cpt):l(s.frustum.width)?f=s.frustum.clone(Ept):f=s.frustum.clone(Spt);let d=a.frustumCommandsList,p=d.length;for(let g=0;g<p;++g){let x=this.getPickDepth(e,g).getDepth(o,u.x,u.y);if(l(x)&&x>0&&x<1){let b=d[g],T;return e.mode===ne.SCENE2D?(T=s.position.z,s.position.z=T-b.near+1,f.far=Math.max(1,b.far-b.near),f.near=1,c.update(r),c.updateFrustum(f)):(f.near=b.near*(g!==0?e.opaqueFrustumNearOffset:1),f.far=b.far,c.updateFrustum(f)),n=Hi.drawingBufferToWgs84Coordinates(e,u,x,n),e.mode===ne.SCENE2D&&(s.position.z=T,c.update(r)),this._pickPositionCache[i]=h.clone(n),n}}this._pickPositionCache[i]=void 0};var vpt=new fe;pa.prototype.pickPosition=function(e,t,n){if(n=this.pickPositionWorldCoordinates(e,t,n),l(n)&&e.mode!==ne.SCENE3D){h.fromElements(n.y,n.z,n.x,n);let i=e.mapProjection,o=i.ellipsoid,r=i.unproject(n,vpt);o.cartographicToCartesian(r,n)}return n};function gbe(e,t){let n,i,o=[],r=[],s=[],a=[];l(e)||(e=Number.MAX_VALUE);let c=t();for(;l(c);){let u=c.object,f=c.position,d=c.exclude;if(l(f)&&!l(u)){o.push(c);break}if(!l(u)||!l(u.primitive)||!d&&(o.push(c),0>=--e))break;let p=u.primitive,g=!1;typeof p.getGeometryInstanceAttributes=="function"&&l(u.id)&&(i=p.getGeometryInstanceAttributes(u.id),l(i)&&l(i.show)&&(g=!0,i.show=gn.toValue(!1,i.show),s.push(i))),u instanceof Ns&&(g=!0,u.show=!1,a.push(u)),g||(p.show=!1,r.push(p)),c=t()}for(n=0;n<r.length;++n)r[n].show=!0;for(n=0;n<s.length;++n)i=s[n],i.show=gn.toValue(!0,i.show);for(n=0;n<a.length;++n)a[n].show=!0;return o}pa.prototype.drillPick=function(e,t,n,i,o){let r=this;return gbe(n,function(){let c=r.pick(e,t,i,o);if(l(c))return{object:c,position:void 0,exclude:!1}}).map(function(c){return c.object})};var pbe=new h,wpt=new h;function Dpt(e,t,n){this.ray=e,this.width=t,this.tilesets=n,this.ready=!1;let i=this;this.promise=new Promise(o=>{i._completePick=()=>{o()}})}function ybe(e,t,n,i){let o=t.direction,r=h.mostOrthogonalAxis(o,pbe),s=h.cross(o,r,pbe),a=h.cross(o,s,wpt);return i.position=t.origin,i.direction=o,i.up=a,i.right=s,i.frustum.width=y(n,_be),i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC)}function Ppt(e,t,n){let i=t.frameState,{ray:o,width:r,tilesets:s}=n,a=e._pickOffscreenView.camera,c=ybe(e,o,r,a),u=fpt;u.camera=a,u.cullingVolume=c;let f=!0,d=s.length;for(let p=0;p<d;++p){let g=s[p];g.show&&t.primitives.contains(g)&&(g.updateForPass(i,u),f=f&&u.ready)}return f&&n._completePick(),f}pa.prototype.updateMostDetailedRayPicks=function(e){let t=this._mostDetailedRayPicks;for(let n=0;n<t.length;++n)Ppt(this,e,t[n])&&t.splice(n--,1)};function xbe(e,t,n){for(let i=0;i<e.length;++i){let o=e.get(i);o.show&&(l(o.isCesium3DTileset)?(!l(t)||t.indexOf(o)===-1)&&n.push(o):o instanceof Wl&&xbe(o,t,n))}}function LH(e,t,n,i,o,r){let s=[];if(xbe(t.primitives,i,s),s.length===0)return Promise.resolve(r());let a=new Dpt(n,o,s);return e._mostDetailedRayPicks.push(a),a.promise.then(function(){return r()})}function Ipt(e,t){return!l(e)||!l(t)||t.length===0?!1:t.indexOf(e)>-1||t.indexOf(e.primitive)>-1||t.indexOf(e.id)>-1}function Rpt(e,t,n,i,o,r,s){let{context:a,frameState:c}=t,u=a.uniformState,f=e._pickOffscreenView;t.view=f,ybe(e,n,o,f.camera),Pc=Ge.clone(f.viewport,Pc);let d=f.pickFramebuffer.begin(Pc,f.viewport);t.jobScheduler.disableThisFrame(),t.updateFrameState(),c.invertClassification=!1,c.passes.pick=!0,c.passes.offscreen=!0,s?c.tilesetPassState=dpt:c.tilesetPassState=OH,u.update(c),t.updateEnvironment(),t.updateAndExecuteCommands(d,MH),t.resolveFramebuffers(d);let p,g=f.pickFramebuffer.end(Pc);if(t.context.depthTexture){let m=f.frustumCommandsList.length;for(let x=0;x<m;++x){let T=e.getPickDepth(t,x).getDepth(a,0,0);if(l(T)&&T>0&&T<1){let C=f.frustumCommandsList[x],A=C.near*(x!==0?t.opaqueFrustumNearOffset:1),E=C.far,v=A+T*(E-A);p=pn.getPoint(n,v);break}}}if(t.view=t.defaultView,a.endFrame(),l(g)||l(p))return{object:g,position:p,exclude:!l(p)&&r||Ipt(g,i)}}function bbe(e,t,n,i,o,r,s,a){return gbe(i,function(){return Rpt(e,t,n,o,r,s,a)})}function hv(e,t,n,i,o,r,s){let a=bbe(e,t,n,1,i,o,r,s);if(a.length>0)return a[0]}function Tbe(e,t,n,i,o,r,s,a){return bbe(e,t,n,i,o,r,s,a)}function NH(e,t){return new Promise((n,i)=>{t.then(function(o){let r=e.postRender.addEventListener(function(){r(),n(o)});e.requestRender()}).catch(function(o){i(o)})})}pa.prototype.pickFromRay=function(e,t,n,i){return hv(this,e,t,n,i,!1,!1)};pa.prototype.drillPickFromRay=function(e,t,n,i,o){return Tbe(this,e,t,n,i,o,!1,!1)};pa.prototype.pickFromRayMostDetailed=function(e,t,n,i){let o=this;return t=pn.clone(t),n=l(n)?n.slice():n,NH(e,LH(o,e,t,n,i,function(){return hv(o,e,t,n,i,!1,!0)}))};pa.prototype.drillPickFromRayMostDetailed=function(e,t,n,i,o){let r=this;return t=pn.clone(t),i=l(i)?i.slice():i,NH(e,LH(r,e,t,i,o,function(){return Tbe(r,e,t,n,i,o,!1,!0)}))};var Opt=new h,Mpt=new h,Lpt=new pn,Abe=new fe;function jK(e,t){let n=e.globe,i=l(n)?n.ellipsoid:e.mapProjection.ellipsoid,o=ci._defaultMaxTerrainHeight,r=i.geodeticSurfaceNormalCartographic(t,Mpt),s=fe.toCartesian(t,i,Opt),a=Lpt;a.origin=s,a.direction=r;let c=new pn;return pn.getPoint(a,o,c.origin),h.negate(r,c.direction),c}function Cbe(e,t){let n=e.globe,i=l(n)?n.ellipsoid:e.mapProjection.ellipsoid,o=fe.fromCartesian(t,i,Abe);return jK(e,o)}function Ebe(e,t){let n=e.globe,i=l(n)?n.ellipsoid:e.mapProjection.ellipsoid;return fe.fromCartesian(t,i,Abe).height}function Npt(e,t,n,i,o){let r=jK(t,n);return LH(e,t,r,i,o,function(){let s=hv(e,t,r,i,o,!0,!0);if(l(s))return Ebe(t,s.position)})}function Fpt(e,t,n,i,o,r){let s=Cbe(t,n);return LH(e,t,s,i,o,function(){let a=hv(e,t,s,i,o,!0,!0);if(l(a))return h.clone(a.position,r)})}pa.prototype.sampleHeight=function(e,t,n,i){let o=jK(e,t),r=hv(this,e,o,n,i,!0,!1);if(l(r))return Ebe(e,r.position)};pa.prototype.clampToHeight=function(e,t,n,i,o){let r=Cbe(e,t),s=hv(this,e,r,n,i,!0,!1);if(l(s))return h.clone(s.position,o)};pa.prototype.sampleHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Npt(this,e,t[s],n,i);return NH(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c].height=s[c];return t}))};pa.prototype.clampToHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Fpt(this,e,t[s],n,i,t[s]);return NH(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c]=s[c];return t}))};pa.prototype.destroy=function(){this._pickOffscreenView=this._pickOffscreenView&&this._pickOffscreenView.destroy()};var K2=pa;var Z2=`uniform sampler2D colorTexture; in vec2 v_textureCoordinates; #ifdef AUTO_EXPOSURE uniform sampler2D autoExposure; #endif void main() { vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); vec3 color = fragmentColor.rgb; #ifdef AUTO_EXPOSURE color /= texture(autoExposure, vec2(0.5)).r; #endif color = czm_acesTonemapping(color); color = czm_inverseGamma(color); out_FragColor = vec4(color, fragmentColor.a); } `;var $2=`uniform sampler2D randomTexture; uniform sampler2D depthTexture; uniform float intensity; uniform float bias; uniform float lengthCap; uniform float stepSize; uniform float frustumLength; in vec2 v_textureCoordinates; vec4 clipToEye(vec2 uv, float depth) { vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); vec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0); posEC = posEC / posEC.w; return posEC; } //Reconstruct Normal Without Edge Removation vec3 getNormalXEdge(vec3 posInCamera, float depthU, float depthD, float depthL, float depthR, vec2 pixelSize) { vec4 posInCameraUp = clipToEye(v_textureCoordinates - vec2(0.0, pixelSize.y), depthU); vec4 posInCameraDown = clipToEye(v_textureCoordinates + vec2(0.0, pixelSize.y), depthD); vec4 posInCameraLeft = clipToEye(v_textureCoordinates - vec2(pixelSize.x, 0.0), depthL); vec4 posInCameraRight = clipToEye(v_textureCoordinates + vec2(pixelSize.x, 0.0), depthR); vec3 up = posInCamera.xyz - posInCameraUp.xyz; vec3 down = posInCameraDown.xyz - posInCamera.xyz; vec3 left = posInCamera.xyz - posInCameraLeft.xyz; vec3 right = posInCameraRight.xyz - posInCamera.xyz; vec3 DX = length(left) < length(right) ? left : right; vec3 DY = length(up) < length(down) ? up : down; return normalize(cross(DY, DX)); } void main(void) { float depth = czm_readDepth(depthTexture, v_textureCoordinates); vec4 posInCamera = clipToEye(v_textureCoordinates, depth); if (posInCamera.z > frustumLength) { out_FragColor = vec4(1.0); return; } vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; float depthU = czm_readDepth(depthTexture, v_textureCoordinates - vec2(0.0, pixelSize.y)); float depthD = czm_readDepth(depthTexture, v_textureCoordinates + vec2(0.0, pixelSize.y)); float depthL = czm_readDepth(depthTexture, v_textureCoordinates - vec2(pixelSize.x, 0.0)); float depthR = czm_readDepth(depthTexture, v_textureCoordinates + vec2(pixelSize.x, 0.0)); vec3 normalInCamera = getNormalXEdge(posInCamera.xyz, depthU, depthD, depthL, depthR, pixelSize); float ao = 0.0; vec2 sampleDirection = vec2(1.0, 0.0); float gapAngle = 90.0 * czm_radiansPerDegree; // RandomNoise float randomVal = texture(randomTexture, v_textureCoordinates / pixelSize / 255.0).x; //Loop for each direction for (int i = 0; i < 4; i++) { float newGapAngle = gapAngle * (float(i) + randomVal); float cosVal = cos(newGapAngle); float sinVal = sin(newGapAngle); //Rotate Sampling Direction vec2 rotatedSampleDirection = vec2(cosVal * sampleDirection.x - sinVal * sampleDirection.y, sinVal * sampleDirection.x + cosVal * sampleDirection.y); float localAO = 0.0; float localStepSize = stepSize; //Loop for each step for (int j = 0; j < 6; j++) { vec2 newCoords = v_textureCoordinates + rotatedSampleDirection * localStepSize * pixelSize; //Exception Handling if(newCoords.x > 1.0 || newCoords.y > 1.0 || newCoords.x < 0.0 || newCoords.y < 0.0) { break; } float stepDepthInfo = czm_readDepth(depthTexture, newCoords); vec4 stepPosInCamera = clipToEye(newCoords, stepDepthInfo); vec3 diffVec = stepPosInCamera.xyz - posInCamera.xyz; float len = length(diffVec); if (len > lengthCap) { break; } float dotVal = clamp(dot(normalInCamera, normalize(diffVec)), 0.0, 1.0 ); float weight = len / lengthCap; weight = 1.0 - weight * weight; if (dotVal < bias) { dotVal = 0.0; } localAO = max(localAO, dotVal * weight); localStepSize += stepSize; } ao += localAO; } ao /= 4.0; ao = 1.0 - clamp(ao, 0.0, 1.0); ao = pow(ao, intensity); out_FragColor = vec4(vec3(ao), 1.0); } `;var Q2=`uniform sampler2D colorTexture; uniform sampler2D ambientOcclusionTexture; uniform bool ambientOcclusionOnly; in vec2 v_textureCoordinates; void main(void) { vec4 color = texture(colorTexture, v_textureCoordinates); vec4 ao = texture(ambientOcclusionTexture, v_textureCoordinates); out_FragColor = ambientOcclusionOnly ? ao : ao * color; } `;var J2=`uniform sampler2D colorTexture; uniform float gradations; in vec2 v_textureCoordinates; void main(void) { vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; #ifdef CZM_SELECTED_FEATURE if (czm_selected()) { out_FragColor = vec4(rgb, 1.0); return; } #endif float luminance = czm_luminance(rgb); float darkness = luminance * gradations; darkness = (darkness - fract(darkness)) / gradations; out_FragColor = vec4(vec3(darkness), 1.0); } `;var eB=`uniform sampler2D colorTexture; uniform sampler2D bloomTexture; uniform bool glowOnly; in vec2 v_textureCoordinates; void main(void) { vec4 color = texture(colorTexture, v_textureCoordinates); #ifdef CZM_SELECTED_FEATURE if (czm_selected()) { out_FragColor = color; return; } #endif vec4 bloom = texture(bloomTexture, v_textureCoordinates); out_FragColor = glowOnly ? bloom : bloom + color; } `;var tB=`uniform sampler2D colorTexture; uniform float brightness; in vec2 v_textureCoordinates; void main(void) { vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; vec3 target = vec3(0.0); out_FragColor = vec4(mix(target, rgb, brightness), 1.0); } `;var nB=`uniform sampler2D colorTexture; uniform float contrast; uniform float brightness; in vec2 v_textureCoordinates; void main(void) { vec3 sceneColor = texture(colorTexture, v_textureCoordinates).xyz; sceneColor = czm_RGBToHSB(sceneColor); sceneColor.z += brightness; sceneColor = czm_HSBToRGB(sceneColor); float factor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast)); sceneColor = factor * (sceneColor - vec3(0.5)) + vec3(0.5); out_FragColor = vec4(sceneColor, 1.0); } `;var iB=`uniform sampler2D colorTexture; uniform sampler2D blurTexture; uniform sampler2D depthTexture; uniform float focalDistance; in vec2 v_textureCoordinates; vec4 toEye(vec2 uv, float depth) { vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0); posInCamera = posInCamera / posInCamera.w; return posInCamera; } float computeDepthBlur(float depth) { float f; if (depth < focalDistance) { f = (focalDistance - depth) / (focalDistance - czm_currentFrustum.x); } else { f = (depth - focalDistance) / (czm_currentFrustum.y - focalDistance); f = pow(f, 0.1); } f *= f; f = clamp(f, 0.0, 1.0); return pow(f, 0.5); } void main(void) { float depth = czm_readDepth(depthTexture, v_textureCoordinates); vec4 posInCamera = toEye(v_textureCoordinates, depth); float d = computeDepthBlur(-posInCamera.z); out_FragColor = mix(texture(colorTexture, v_textureCoordinates), texture(blurTexture, v_textureCoordinates), d); } `;var oB=`uniform sampler2D depthTexture; in vec2 v_textureCoordinates; void main(void) { float depth = czm_readDepth(depthTexture, v_textureCoordinates); out_FragColor = vec4(vec3(depth), 1.0); } `;var rB=`uniform sampler2D depthTexture; uniform float length; uniform vec4 color; in vec2 v_textureCoordinates; void main(void) { float directions[3]; directions[0] = -1.0; directions[1] = 0.0; directions[2] = 1.0; float scalars[3]; scalars[0] = 3.0; scalars[1] = 10.0; scalars[2] = 3.0; float padx = czm_pixelRatio / czm_viewport.z; float pady = czm_pixelRatio / czm_viewport.w; #ifdef CZM_SELECTED_FEATURE bool selected = false; for (int i = 0; i < 3; ++i) { float dir = directions[i]; selected = selected || czm_selected(vec2(-padx, dir * pady)); selected = selected || czm_selected(vec2(padx, dir * pady)); selected = selected || czm_selected(vec2(dir * padx, -pady)); selected = selected || czm_selected(vec2(dir * padx, pady)); if (selected) { break; } } if (!selected) { out_FragColor = vec4(color.rgb, 0.0); return; } #endif float horizEdge = 0.0; float vertEdge = 0.0; for (int i = 0; i < 3; ++i) { float dir = directions[i]; float scale = scalars[i]; horizEdge -= texture(depthTexture, v_textureCoordinates + vec2(-padx, dir * pady)).x * scale; horizEdge += texture(depthTexture, v_textureCoordinates + vec2(padx, dir * pady)).x * scale; vertEdge -= texture(depthTexture, v_textureCoordinates + vec2(dir * padx, -pady)).x * scale; vertEdge += texture(depthTexture, v_textureCoordinates + vec2(dir * padx, pady)).x * scale; } float len = sqrt(horizEdge * horizEdge + vertEdge * vertEdge); out_FragColor = vec4(color.rgb, len > length ? color.a : 0.0); } `;var sB=`uniform sampler2D colorTexture; in vec2 v_textureCoordinates; #ifdef AUTO_EXPOSURE uniform sampler2D autoExposure; #endif // See slides 142 and 143: // http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting void main() { vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); vec3 color = fragmentColor.rgb; #ifdef AUTO_EXPOSURE float exposure = texture(autoExposure, vec2(0.5)).r; color /= exposure; #endif const float A = 0.22; // shoulder strength const float B = 0.30; // linear strength const float C = 0.10; // linear angle const float D = 0.20; // toe strength const float E = 0.01; // toe numerator const float F = 0.30; // toe denominator const float white = 11.2; // linear white point value vec3 c = ((color * (A * color + C * B) + D * E) / (color * ( A * color + B) + D * F)) - E / F; float w = ((white * (A * white + C * B) + D * E) / (white * ( A * white + B) + D * F)) - E / F; c = czm_inverseGamma(c / w); out_FragColor = vec4(c, fragmentColor.a); } `;var aB=`in vec2 v_textureCoordinates; uniform sampler2D colorTexture; const float fxaaQualitySubpix = 0.5; const float fxaaQualityEdgeThreshold = 0.125; const float fxaaQualityEdgeThresholdMin = 0.0833; void main() { vec2 fxaaQualityRcpFrame = vec2(1.0) / czm_viewport.zw; vec4 color = FxaaPixelShader( v_textureCoordinates, colorTexture, fxaaQualityRcpFrame, fxaaQualitySubpix, fxaaQualityEdgeThreshold, fxaaQualityEdgeThresholdMin); float alpha = texture(colorTexture, v_textureCoordinates).a; out_FragColor = vec4(color.rgb, alpha); } `;var M0=`#define SAMPLES 8 uniform float delta; uniform float sigma; uniform float direction; // 0.0 for x direction, 1.0 for y direction uniform sampler2D colorTexture; #ifdef USE_STEP_SIZE uniform float stepSize; #else uniform vec2 step; #endif in vec2 v_textureCoordinates; // Incremental Computation of the Gaussian: // https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch40.html void main() { vec2 st = v_textureCoordinates; vec2 dir = vec2(1.0 - direction, direction); #ifdef USE_STEP_SIZE vec2 step = vec2(stepSize * (czm_pixelRatio / czm_viewport.zw)); #else vec2 step = step; #endif vec3 g; g.x = 1.0 / (sqrt(czm_twoPi) * sigma); g.y = exp((-0.5 * delta * delta) / (sigma * sigma)); g.z = g.y * g.y; vec4 result = texture(colorTexture, st) * g.x; for (int i = 1; i < SAMPLES; ++i) { g.xy *= g.yz; vec2 offset = float(i) * dir * step; result += texture(colorTexture, st - offset) * g.x; result += texture(colorTexture, st + offset) * g.x; } out_FragColor = result; } `;var cB=`uniform sampler2D colorTexture; uniform sampler2D dirtTexture; uniform sampler2D starTexture; uniform vec2 dirtTextureDimensions; uniform float distortion; uniform float ghostDispersal; uniform float haloWidth; uniform float dirtAmount; uniform float earthRadius; uniform float intensity; in vec2 v_textureCoordinates; // whether it is in space or not // 6500000.0 is empirical value #define DISTANCE_TO_SPACE 6500000.0 // return ndc from world coordinate biased earthRadius vec4 getNDCFromWC(vec3 WC, float earthRadius) { vec4 positionEC = czm_view * vec4(WC, 1.0); positionEC = vec4(positionEC.x + earthRadius, positionEC.y, positionEC.z, 1.0); vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); return czm_viewportOrthographic * vec4(positionWC.xy, -positionWC.z, 1.0); } // Check if current pixel is included Earth // if then mask it gradually float isInEarth(vec2 texcoord, vec2 sceneSize) { vec2 NDC = texcoord * 2.0 - 1.0; vec4 earthPosSC = getNDCFromWC(vec3(0.0), 0.0); vec4 earthPosSCEdge = getNDCFromWC(vec3(0.0), earthRadius * 1.5); NDC.xy -= earthPosSC.xy; float X = abs(NDC.x) * sceneSize.x; float Y = abs(NDC.y) * sceneSize.y; return clamp(0.0, 1.0, max(sqrt(X * X + Y * Y) / max(abs(earthPosSCEdge.x * sceneSize.x), 1.0) - 0.8 , 0.0)); } // For Chromatic effect vec4 textureDistorted(sampler2D tex, vec2 texcoord, vec2 direction, vec3 distortion, bool isSpace) { vec2 sceneSize = czm_viewport.zw; vec3 color; if(isSpace) { color.r = isInEarth(texcoord + direction * distortion.r, sceneSize) * texture(tex, texcoord + direction * distortion.r).r; color.g = isInEarth(texcoord + direction * distortion.g, sceneSize) * texture(tex, texcoord + direction * distortion.g).g; color.b = isInEarth(texcoord + direction * distortion.b, sceneSize) * texture(tex, texcoord + direction * distortion.b).b; } else { color.r = texture(tex, texcoord + direction * distortion.r).r; color.g = texture(tex, texcoord + direction * distortion.g).g; color.b = texture(tex, texcoord + direction * distortion.b).b; } return vec4(clamp(color, 0.0, 1.0), 0.0); } void main(void) { vec4 originalColor = texture(colorTexture, v_textureCoordinates); vec3 rgb = originalColor.rgb; bool isSpace = length(czm_viewerPositionWC.xyz) > DISTANCE_TO_SPACE; // Sun position vec4 sunPos = czm_morphTime == 1.0 ? vec4(czm_sunPositionWC, 1.0) : vec4(czm_sunPositionColumbusView.zxy, 1.0); vec4 sunPositionEC = czm_view * sunPos; vec4 sunPositionWC = czm_eyeToWindowCoordinates(sunPositionEC); sunPos = czm_viewportOrthographic * vec4(sunPositionWC.xy, -sunPositionWC.z, 1.0); // If sun is not in the screen space, use original color. if(!isSpace || !((sunPos.x >= -1.1 && sunPos.x <= 1.1) && (sunPos.y >= -1.1 && sunPos.y <= 1.1))) { // Lens flare is disabled when not in space until #5932 is fixed. // https://github.com/CesiumGS/cesium/issues/5932 out_FragColor = originalColor; return; } vec2 texcoord = vec2(1.0) - v_textureCoordinates; vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; vec2 invPixelSize = 1.0 / pixelSize; vec3 distortionVec = pixelSize.x * vec3(-distortion, 0.0, distortion); // ghost vector to image centre: vec2 ghostVec = (vec2(0.5) - texcoord) * ghostDispersal; vec3 direction = normalize(vec3(ghostVec, 0.0)); // sample ghosts: vec4 result = vec4(0.0); vec4 ghost = vec4(0.0); for (int i = 0; i < 4; ++i) { vec2 offset = fract(texcoord + ghostVec * float(i)); // Only bright spots from the centre of the source image ghost += textureDistorted(colorTexture, offset, direction.xy, distortionVec, isSpace); } result += ghost; // sample halo vec2 haloVec = normalize(ghostVec) * haloWidth; float weightForHalo = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5)); weightForHalo = pow(1.0 - weightForHalo, 5.0); result += textureDistorted(colorTexture, texcoord + haloVec, direction.xy, distortionVec, isSpace) * weightForHalo * 1.5; // dirt on lens vec2 dirtTexCoords = (v_textureCoordinates * invPixelSize) / dirtTextureDimensions; if (dirtTexCoords.x > 1.0) { dirtTexCoords.x = mod(floor(dirtTexCoords.x), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.x) : fract(dirtTexCoords.x); } if (dirtTexCoords.y > 1.0) { dirtTexCoords.y = mod(floor(dirtTexCoords.y), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.y) : fract(dirtTexCoords.y); } result += dirtAmount * texture(dirtTexture, dirtTexCoords); // Rotating starburst texture's coordinate // dot(czm_view[0].xyz, vec3(0.0, 0.0, 1.0)) + dot(czm_view[1].xyz, vec3(0.0, 1.0, 0.0)) float camrot = czm_view[0].z + czm_view[1].y; float cosValue = cos(camrot); float sinValue = sin(camrot); mat3 rotation = mat3( cosValue, -sinValue, 0.0, sinValue, cosValue, 0.0, 0.0, 0.0, 1.0 ); vec3 st1 = vec3(v_textureCoordinates * 2.0 - vec2(1.0), 1.0); vec3 st2 = vec3((rotation * st1).xy, 1.0); vec3 st3 = st2 * 0.5 + vec3(0.5); vec2 lensStarTexcoord = st3.xy; float weightForLensFlare = length(vec3(sunPos.xy, 0.0)); float oneMinusWeightForLensFlare = max(1.0 - weightForLensFlare, 0.0); if (!isSpace) { result *= oneMinusWeightForLensFlare * intensity * 0.2; } else { result *= oneMinusWeightForLensFlare * intensity; result *= texture(starTexture, lensStarTexcoord) * pow(weightForLensFlare, 1.0) * max((1.0 - length(vec3(st1.xy, 0.0))), 0.0) * 2.0; } result += texture(colorTexture, v_textureCoordinates); out_FragColor = result; } `;var lB=`uniform sampler2D colorTexture; uniform vec3 white; in vec2 v_textureCoordinates; #ifdef AUTO_EXPOSURE uniform sampler2D autoExposure; #endif // See equation 4: // http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf void main() { vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); vec3 color = fragmentColor.rgb; #ifdef AUTO_EXPOSURE float exposure = texture(autoExposure, vec2(0.5)).r; color /= exposure; #endif color = (color * (1.0 + color / white)) / (1.0 + color); color = czm_inverseGamma(color); out_FragColor = vec4(color, fragmentColor.a); } `;var uB=`uniform sampler2D colorTexture; in vec2 v_textureCoordinates; float rand(vec2 co) { return fract(sin(dot(co.xy ,vec2(12.9898, 78.233))) * 43758.5453); } void main(void) { float noiseValue = rand(v_textureCoordinates + sin(czm_frameNumber)) * 0.1; vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; vec3 green = vec3(0.0, 1.0, 0.0); out_FragColor = vec4((noiseValue + rgb) * green, 1.0); } `;var fB=`uniform sampler2D colorTexture; in vec2 v_textureCoordinates; #ifdef AUTO_EXPOSURE uniform sampler2D autoExposure; #endif // See equation 3: // http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf void main() { vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); vec3 color = fragmentColor.rgb; #ifdef AUTO_EXPOSURE float exposure = texture(autoExposure, vec2(0.5)).r; color /= exposure; #endif color = color / (1.0 + color); color = czm_inverseGamma(color); out_FragColor = vec4(color, fragmentColor.a); } `;var dB=`uniform sampler2D colorTexture; uniform sampler2D silhouetteTexture; in vec2 v_textureCoordinates; void main(void) { vec4 silhouetteColor = texture(silhouetteTexture, v_textureCoordinates); vec4 color = texture(colorTexture, v_textureCoordinates); out_FragColor = mix(color, silhouetteColor, silhouetteColor.a); } `;function $T(){this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._ready=!1,this._name="czm_autoexposure",this._logDepthChanged=void 0,this._useLogDepth=void 0,this._framebuffers=void 0,this._previousLuminance=new ui,this._commands=void 0,this._clearCommand=void 0,this._minMaxLuminance=new z,this.enabled=!0,this._enabled=!0,this.minimumLuminance=.1,this.maximumLuminance=10}Object.defineProperties($T.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},outputTexture:{get:function(){let e=this._framebuffers;if(l(e))return e[e.length-1].getColorTexture(0)}}});function Sbe(e){let t=e._framebuffers;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].destroy();e._framebuffers=void 0,e._previousLuminance.destroy(),e._previousLuminance=void 0}function Bpt(e,t){Sbe(e);let n=e._width,i=e._height,o=t.halfFloatingPointTexture?We.HALF_FLOAT:We.FLOAT,r=Math.ceil(Math.log(Math.max(n,i))/Math.log(3)),s=new Array(r);for(let c=0;c<r;++c)n=Math.max(Math.ceil(n/3),1),i=Math.max(Math.ceil(i/3),1),s[c]=new ui,s[c].update(t,n,i,1,o);let a=s[r-1].getColorTexture(0);e._previousLuminance.update(t,a.width,a.height,1,o),e._framebuffers=s}function vbe(e){let t=e._commands;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].shaderProgram.destroy();e._commands=void 0}function kpt(e,t){let n;if(t===0)n={colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions}};else{let i=e._framebuffers[t-1].getColorTexture(0);n={colorTexture:function(){return i},colorTextureDimensions:function(){return i.dimensions}}}return n.minMaxLuminance=function(){return e._minMaxLuminance},n.previousLuminance=function(){return e._previousLuminance.getColorTexture(0)},n}function Vpt(e,t){let n=`uniform sampler2D colorTexture; in vec2 v_textureCoordinates; float sampleTexture(vec2 offset) { `;return e===0?n+=` vec4 color = texture(colorTexture, v_textureCoordinates + offset); return czm_luminance(color.rgb); `:n+=` return texture(colorTexture, v_textureCoordinates + offset).r; `,n+=`} `,n+=`uniform vec2 colorTextureDimensions; uniform vec2 minMaxLuminance; uniform sampler2D previousLuminance; void main() { float color = 0.0; float xStep = 1.0 / colorTextureDimensions.x; float yStep = 1.0 / colorTextureDimensions.y; int count = 0; for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { vec2 offset; offset.x = -xStep + float(i) * xStep; offset.y = -yStep + float(j) * yStep; if (offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0) { continue; } color += sampleTexture(offset); ++count; } } if (count > 0) { color /= float(count); } `,e===t-1&&(n+=` float previous = texture(previousLuminance, vec2(0.5)).r; color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); color = previous + (color - previous) / (60.0 * 1.5); color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); `),n+=` out_FragColor = vec4(color); } `,n}function Upt(e,t){vbe(e);let n=e._framebuffers,i=n.length,o=new Array(i);for(let r=0;r<i;++r)o[r]=t.createViewportQuadCommand(Vpt(r,i),{framebuffer:n[r].framebuffer,uniformMap:kpt(e,r)});e._commands=o}$T.prototype.clear=function(e){let t=this._framebuffers;if(!l(t))return;let n=this._clearCommand;l(n)||(n=this._clearCommand=new ii({color:new H(0,0,0,0),framebuffer:void 0}));let i=t.length;for(let o=0;o<i;++o)t[o].clear(e,n)};$T.prototype.update=function(e){let t=e.drawingBufferWidth,n=e.drawingBufferHeight;(t!==this._width||n!==this._height)&&(this._width=t,this._height=n,Bpt(this,e),Upt(this,e),this._ready||(this._ready=!0)),this._minMaxLuminance.x=this.minimumLuminance,this._minMaxLuminance.y=this.maximumLuminance;let i=this._framebuffers,o=i[i.length-1];i[i.length-1]=this._previousLuminance,this._commands[this._commands.length-1].framebuffer=this._previousLuminance.framebuffer,this._previousLuminance=o};$T.prototype.execute=function(e,t){this._colorTexture=t;let n=this._commands;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o)n[o].execute(e)};$T.prototype.isDestroyed=function(){return!1};$T.prototype.destroy=function(){return Sbe(this),vbe(this),ue(this)};var hB=$T;var zpt={NEAREST:0,LINEAR:1},$u=zpt;function QT(e){e=y(e,y.EMPTY_OBJECT);let t=e.fragmentShader,n=y(e.textureScale,1),i=y(e.pixelFormat,nt.RGBA);this._fragmentShader=t,this._uniforms=e.uniforms,this._textureScale=n,this._forcePowerOfTwo=y(e.forcePowerOfTwo,!1),this._sampleMode=y(e.sampleMode,$u.NEAREST),this._pixelFormat=i,this._pixelDatatype=y(e.pixelDatatype,We.UNSIGNED_BYTE),this._clearColor=y(e.clearColor,H.BLACK),this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._idTexture=void 0,this._actualUniforms={},this._dirtyUniforms=[],this._texturesToRelease=[],this._texturesToCreate=[],this._texturePromise=void 0;let o=new bc;o.scissorTest={enabled:!0,rectangle:l(e.scissorRectangle)?Ge.clone(e.scissorRectangle):new Ge},this._passState=o,this._ready=!1;let r=e.name;l(r)||(r=Hn()),this._name=r,this._logDepthChanged=void 0,this._useLogDepth=void 0,this._selectedIdTexture=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0,this._textureCache=void 0,this._index=void 0,this.enabled=!0,this._enabled=!0}Object.defineProperties(QT.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},fragmentShader:{get:function(){return this._fragmentShader}},uniforms:{get:function(){return this._uniforms}},textureScale:{get:function(){return this._textureScale}},forcePowerOfTwo:{get:function(){return this._forcePowerOfTwo}},sampleMode:{get:function(){return this._sampleMode}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},clearColor:{get:function(){return this._clearColor}},scissorRectangle:{get:function(){return this._passState.scissorTest.rectangle}},outputTexture:{get:function(){if(l(this._textureCache)){let e=this._textureCache.getFramebuffer(this._name);if(l(e))return e.getColorTexture(0)}}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});var Hpt=/uniform\s+sampler2D\s+depthTexture/g;QT.prototype._isSupported=function(e){return!Hpt.test(this._fragmentShader)||e.depthTexture};function Gpt(e,t,n){let i=t[n];return(typeof i=="string"||i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof HTMLVideoElement||i instanceof ImageData)&&e._dirtyUniforms.push(n),{get:function(){return t[n]},set:function(o){let r=t[n];t[n]=o;let s=e._actualUniforms,a=s[n];l(a)&&a!==r&&a instanceof Dt&&!l(e._textureCache.getStageByName(n))&&(e._texturesToRelease.push(a),delete s[n],delete s[`${n}Dimensions`]),r instanceof Dt&&e._texturesToRelease.push(r),typeof o=="string"||o instanceof HTMLCanvasElement||o instanceof HTMLImageElement||o instanceof HTMLVideoElement||o instanceof ImageData?e._dirtyUniforms.push(n):s[n]=o}}}function Wpt(e,t){return function(){let n=e._actualUniforms[t];return typeof n=="function"?n():n}}function jpt(e,t){return function(){let n=e[t]();if(l(n))return n.dimensions}}function qpt(e){if(l(e._uniformMap))return;let t={},n={},i=e._uniforms,o=e._actualUniforms;for(let r in i)if(i.hasOwnProperty(r)){typeof i[r]!="function"?(t[r]=Wpt(e,r),n[r]=Gpt(e,i,r)):(t[r]=i[r],n[r]=i[r]),o[r]=i[r];let s=t[r]();(typeof s=="string"||s instanceof Dt||s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement)&&(t[`${r}Dimensions`]=jpt(t,r))}e._uniforms={},Object.defineProperties(e._uniforms,n),e._uniformMap=_t(t,{colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions},depthTexture:function(){return e._depthTexture},depthTextureDimensions:function(){return e._depthTexture.dimensions},czm_idTexture:function(){return e._idTexture},czm_selectedIdTexture:function(){return e._selectedIdTexture},czm_selectedIdTextureStep:function(){return 1/e._selectedIdTexture.width}})}function Ypt(e,t){if(l(e._command)&&!e._logDepthChanged&&!e._selectedDirty)return;let n=e._fragmentShader;if(l(e._selectedIdTexture)){let o=e._selectedIdTexture.width;n=n.replace(/in\s+vec2\s+v_textureCoordinates;/g,""),n=`#define CZM_SELECTED_FEATURE uniform sampler2D czm_idTexture; uniform sampler2D czm_selectedIdTexture; uniform float czm_selectedIdTextureStep; in vec2 v_textureCoordinates; bool czm_selected(vec2 offset) { bool selected = false; vec4 id = texture(czm_idTexture, v_textureCoordinates + offset); for (int i = 0; i < ${o}; ++i) { vec4 selectedId = texture(czm_selectedIdTexture, vec2((float(i) + 0.5) * czm_selectedIdTextureStep, 0.5)); if (all(equal(id, selectedId))) { return true; } } return false; } bool czm_selected() { return czm_selected(vec2(0.0)); } ${n}`}let i=new ze({defines:[e._useLogDepth?"LOG_DEPTH":""],sources:[n]});e._command=t.createViewportQuadCommand(i,{uniformMap:e._uniformMap,owner:e})}function Xpt(e){let t=e._sampleMode,n,i;t===$u.LINEAR?(n=nn.LINEAR,i=li.LINEAR):(n=nn.NEAREST,i=li.NEAREST);let o=e._sampler;(!l(o)||o.minificationFilter!==n||o.magnificationFilter!==i)&&(e._sampler=new on({wrapS:An.CLAMP_TO_EDGE,wrapT:An.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i}))}function Kpt(e,t){return function(n){e._texturesToCreate.push({name:t,source:n})}}function Zpt(e,t){return function(){return e._textureCache.getOutputTexture(t)}}function $pt(e,t){let n,i,o,r=e._texturesToRelease,s=r.length;for(n=0;n<s;++n)i=r[n],i=i&&i.destroy();r.length=0;let a=e._texturesToCreate;for(s=a.length,n=0;n<s;++n){let d=a[n];o=d.name;let p=d.source;e._actualUniforms[o]=new Dt({context:t,source:p})}a.length=0;let c=e._dirtyUniforms;if(c.length===0&&!l(e._texturePromise)){e._ready=!0;return}if(c.length===0||l(e._texturePromise))return;s=c.length;let u=e._uniforms,f=[];for(n=0;n<s;++n){o=c[n];let d=u[o],p=e._textureCache.getStageByName(d);if(l(p))e._actualUniforms[o]=Zpt(e,d);else if(typeof d=="string"){let g=new De({url:d});f.push(g.fetchImage().then(Kpt(e,o)))}else e._texturesToCreate.push({name:o,source:d})}c.length=0,f.length>0?(e._ready=!1,e._texturePromise=Promise.all(f).then(function(){e._ready=!0,e._texturePromise=void 0})):e._ready=!0}function wbe(e){l(e._command)&&(e._command.shaderProgram=e._command.shaderProgram&&e._command.shaderProgram.destroy(),e._command=void 0),e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy();let t=e._textureCache;if(!l(t))return;let n=e._uniforms,i=e._actualUniforms;for(let o in i)i.hasOwnProperty(o)&&i[o]instanceof Dt&&(l(t.getStageByName(n[o]))||i[o].destroy(),e._dirtyUniforms.push(o))}function Qpt(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}function Jpt(e,t){if(!e._selectedDirty)return;e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy(),e._selectedIdTexture=void 0;let n=e._combinedSelected;if(!l(n))return;let i,o,r=0,s=n.length;for(i=0;i<s;++i)o=n[i],l(o.pickIds)?r+=o.pickIds.length:l(o.pickId)&&++r;if(s===0||r===0){let f=new Uint8Array(4);f[0]=255,f[1]=255,f[2]=255,f[3]=255,e._selectedIdTexture=new Dt({context:t,pixelFormat:nt.RGBA,pixelDatatype:We.UNSIGNED_BYTE,source:{arrayBufferView:f,width:1,height:1},sampler:on.NEAREST});return}let a,c=0,u=new Uint8Array(r*4);for(i=0;i<s;++i)if(o=n[i],l(o.pickIds)){let f=o.pickIds,d=f.length;for(let p=0;p<d;++p)a=f[p].color,u[c]=H.floatToByte(a.red),u[c+1]=H.floatToByte(a.green),u[c+2]=H.floatToByte(a.blue),u[c+3]=H.floatToByte(a.alpha),c+=4}else l(o.pickId)&&(a=o.pickId.color,u[c]=H.floatToByte(a.red),u[c+1]=H.floatToByte(a.green),u[c+2]=H.floatToByte(a.blue),u[c+3]=H.floatToByte(a.alpha),c+=4);e._selectedIdTexture=new Dt({context:t,pixelFormat:nt.RGBA,pixelDatatype:We.UNSIGNED_BYTE,source:{arrayBufferView:u,width:r,height:1},sampler:on.NEAREST})}QT.prototype.update=function(e,t){if(this.enabled!==this._enabled&&!this.enabled&&wbe(this),this._enabled=this.enabled,!this._enabled||(this._logDepthChanged=t!==this._useLogDepth,this._useLogDepth=t,this._selectedDirty=Qpt(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0,Jpt(this,e),qpt(this),$pt(this,e),Ypt(this,e),Xpt(this),this._selectedDirty=!1,!this._ready))return;let n=this._textureCache.getFramebuffer(this._name);if(this._command.framebuffer=n,!l(n))return;let i=n.getColorTexture(0),o;(i.width!==e.drawingBufferWidth||i.height!==e.drawingBufferHeight)&&(o=this._renderState,(!l(o)||i.width!==o.viewport.width||i.height!==o.viewport.height)&&(this._renderState=Ve.fromCache({viewport:new Ge(0,0,i.width,i.height)}))),this._command.renderState=o};QT.prototype.execute=function(e,t,n,i){if(!l(this._command)||!l(this._command.framebuffer)||!this._ready||!this._enabled)return;this._colorTexture=t,this._depthTexture=n,this._idTexture=i,on.equals(this._colorTexture.sampler,this._sampler)||(this._colorTexture.sampler=this._sampler);let o=this.scissorRectangle.width>0&&this.scissorRectangle.height>0?this._passState:void 0;l(o)&&(o.context=e),this._command.execute(e,o)};QT.prototype.isDestroyed=function(){return!1};QT.prototype.destroy=function(){return wbe(this),ue(this)};var mo=QT;function JT(e){e=y(e,y.EMPTY_OBJECT),this._stages=e.stages,this._inputPreviousStageTexture=y(e.inputPreviousStageTexture,!0);let t=e.name;l(t)||(t=Hn()),this._name=t,this._uniforms=e.uniforms,this._textureCache=void 0,this._index=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0}Object.defineProperties(JT.prototype,{ready:{get:function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)if(!e[n].ready)return!1;return!0}},name:{get:function(){return this._name}},enabled:{get:function(){return this._stages[0].enabled},set:function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)t[i].enabled=e}},uniforms:{get:function(){return this._uniforms}},inputPreviousStageTexture:{get:function(){return this._inputPreviousStageTexture}},length:{get:function(){return this._stages.length}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});JT.prototype._isSupported=function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)if(!t[i]._isSupported(e))return!1;return!0};JT.prototype.get=function(e){return this._stages[e]};function e_t(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}JT.prototype.update=function(e,t){this._selectedDirty=e_t(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0;let n=this._stages,i=n.length;for(let o=0;o<i;++o){let r=n[o];this._selectedDirty&&(r.parentSelected=this._combinedSelected),r.update(e,t)}};JT.prototype.isDestroyed=function(){return!1};JT.prototype.destroy=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var hl=JT;var Vr={};function FH(e){let o=`#define USE_STEP_SIZE ${M0}`,r=new mo({name:`${e}_x_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:0},sampleMode:$u.LINEAR}),s=new mo({name:`${e}_y_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:1},sampleMode:$u.LINEAR}),a={};return Object.defineProperties(a,{delta:{get:function(){return r.uniforms.delta},set:function(c){let u=r.uniforms,f=s.uniforms;u.delta=f.delta=c}},sigma:{get:function(){return r.uniforms.sigma},set:function(c){let u=r.uniforms,f=s.uniforms;u.sigma=f.sigma=c}},stepSize:{get:function(){return r.uniforms.stepSize},set:function(c){let u=r.uniforms,f=s.uniforms;u.stepSize=f.stepSize=c}}}),new hl({name:e,stages:[r,s],uniforms:a})}Vr.createBlurStage=function(){return FH("czm_blur")};Vr.createDepthOfFieldStage=function(){let e=FH("czm_depth_of_field_blur"),t=new mo({name:"czm_depth_of_field_composite",fragmentShader:iB,uniforms:{focalDistance:5,blurTexture:e.name}}),n={};return Object.defineProperties(n,{focalDistance:{get:function(){return t.uniforms.focalDistance},set:function(i){t.uniforms.focalDistance=i}},delta:{get:function(){return e.uniforms.delta},set:function(i){e.uniforms.delta=i}},sigma:{get:function(){return e.uniforms.sigma},set:function(i){e.uniforms.sigma=i}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(i){e.uniforms.stepSize=i}}}),new hl({name:"czm_depth_of_field",stages:[e,t],inputPreviousStageTexture:!1,uniforms:n})};Vr.isDepthOfFieldSupported=function(e){return e.context.depthTexture};Vr.createEdgeDetectionStage=function(){let e=Hn();return new mo({name:`czm_edge_detection_${e}`,fragmentShader:rB,uniforms:{length:.25,color:H.clone(H.BLACK)}})};Vr.isEdgeDetectionSupported=function(e){return e.context.depthTexture};function t_t(e){if(!l(e))return Vr.createEdgeDetectionStage();let t=new hl({name:"czm_edge_detection_multiple",stages:e,inputPreviousStageTexture:!1}),n={},i="",o="";for(let a=0;a<e.length;++a)i+=`uniform sampler2D edgeTexture${a}; `,o+=` vec4 edge${a} = texture(edgeTexture${a}, v_textureCoordinates); if (edge${a}.a > 0.0) { color = edge${a}; break; } `,n[`edgeTexture${a}`]=e[a].name;let r=`${i}in vec2 v_textureCoordinates; void main() { vec4 color = vec4(0.0); for (int i = 0; i < ${e.length}; i++) { ${o} } out_FragColor = color; } `,s=new mo({name:"czm_edge_detection_combine",fragmentShader:r,uniforms:n});return new hl({name:"czm_edge_detection_composite",stages:[t,s]})}Vr.createSilhouetteStage=function(e){let t=t_t(e),n=new mo({name:"czm_silhouette_color_edges",fragmentShader:dB,uniforms:{silhouetteTexture:t.name}});return new hl({name:"czm_silhouette",stages:[t,n],inputPreviousStageTexture:!1,uniforms:t.uniforms})};Vr.isSilhouetteSupported=function(e){return e.context.depthTexture};Vr.createBloomStage=function(){let e=new mo({name:"czm_bloom_contrast_bias",fragmentShader:nB,uniforms:{contrast:128,brightness:-.3}}),t=FH("czm_bloom_blur"),n=new hl({name:"czm_bloom_contrast_bias_blur",stages:[e,t]}),i=new mo({name:"czm_bloom_generate_composite",fragmentShader:eB,uniforms:{glowOnly:!1,bloomTexture:n.name}}),o={};return Object.defineProperties(o,{glowOnly:{get:function(){return i.uniforms.glowOnly},set:function(r){i.uniforms.glowOnly=r}},contrast:{get:function(){return e.uniforms.contrast},set:function(r){e.uniforms.contrast=r}},brightness:{get:function(){return e.uniforms.brightness},set:function(r){e.uniforms.brightness=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},stepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}}}),new hl({name:"czm_bloom",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Vr.createAmbientOcclusionStage=function(){let e=new mo({name:"czm_ambient_occlusion_generate",fragmentShader:$2,uniforms:{intensity:3,bias:.1,lengthCap:.26,stepSize:1.95,frustumLength:1e3,randomTexture:void 0}}),t=FH("czm_ambient_occlusion_blur");t.uniforms.stepSize=.86;let n=new hl({name:"czm_ambient_occlusion_generate_blur",stages:[e,t]}),i=new mo({name:"czm_ambient_occlusion_composite",fragmentShader:Q2,uniforms:{ambientOcclusionOnly:!1,ambientOcclusionTexture:n.name}}),o={};return Object.defineProperties(o,{intensity:{get:function(){return e.uniforms.intensity},set:function(r){e.uniforms.intensity=r}},bias:{get:function(){return e.uniforms.bias},set:function(r){e.uniforms.bias=r}},lengthCap:{get:function(){return e.uniforms.lengthCap},set:function(r){e.uniforms.lengthCap=r}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(r){e.uniforms.stepSize=r}},frustumLength:{get:function(){return e.uniforms.frustumLength},set:function(r){e.uniforms.frustumLength=r}},randomTexture:{get:function(){return e.uniforms.randomTexture},set:function(r){e.uniforms.randomTexture=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},blurStepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}},ambientOcclusionOnly:{get:function(){return i.uniforms.ambientOcclusionOnly},set:function(r){i.uniforms.ambientOcclusionOnly=r}}}),new hl({name:"czm_ambient_occlusion",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Vr.isAmbientOcclusionSupported=function(e){return e.context.depthTexture};var n_t=`#define FXAA_QUALITY_PRESET 39 ${MF} ${aB}`;Vr.createFXAAStage=function(){return new mo({name:"czm_FXAA",fragmentShader:n_t,sampleMode:$u.LINEAR})};Vr.createAcesTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE `:"";return t+=Z2,new mo({name:"czm_aces",fragmentShader:t,uniforms:{autoExposure:void 0}})};Vr.createFilmicTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE `:"";return t+=sB,new mo({name:"czm_filmic",fragmentShader:t,uniforms:{autoExposure:void 0}})};Vr.createReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE `:"";return t+=fB,new mo({name:"czm_reinhard",fragmentShader:t,uniforms:{autoExposure:void 0}})};Vr.createModifiedReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE `:"";return t+=lB,new mo({name:"czm_modified_reinhard",fragmentShader:t,uniforms:{white:H.WHITE,autoExposure:void 0}})};Vr.createAutoExposureStage=function(){return new hB};Vr.createBlackAndWhiteStage=function(){return new mo({name:"czm_black_and_white",fragmentShader:J2,uniforms:{gradations:5}})};Vr.createBrightnessStage=function(){return new mo({name:"czm_brightness",fragmentShader:tB,uniforms:{brightness:.5}})};Vr.createNightVisionStage=function(){return new mo({name:"czm_night_vision",fragmentShader:uB})};Vr.createDepthViewStage=function(){return new mo({name:"czm_depth_view",fragmentShader:oB})};Vr.createLensFlareStage=function(){return new mo({name:"czm_lens_flare",fragmentShader:cB,uniforms:{dirtTexture:en("Assets/Textures/LensFlare/DirtMask.jpg"),starTexture:en("Assets/Textures/LensFlare/StarBurst.jpg"),intensity:2,distortion:10,ghostDispersal:.4,haloWidth:.4,dirtAmount:.4,earthRadius:te.WGS84.maximumRadius}})};var fd=Vr;function hg(e){this._collection=e,this._framebuffers=[],this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0,this._updateDependencies=!1}function pB(e){for(;l(e.length);)e=e.get(e.length-1);return e.name}function qK(e,t,n,i,o){if(!i.enabled||!i._isSupported(t))return o;let r=n[i.name]={};if(l(o)){let a=e.getStageByName(o);r[pB(a)]=!0}let s=i.uniforms;if(l(s)){let a=Object.getOwnPropertyNames(s),c=a.length;for(let u=0;u<c;++u){let f=s[a[u]];if(typeof f=="string"){let d=e.getStageByName(f);l(d)&&(r[pB(d)]=!0)}}}return i.name}function mB(e,t,n,i,o){if(l(i.enabled)&&!i.enabled||l(i._isSupported)&&!i._isSupported(t))return o;let r=o,s=!l(i.inputPreviousStageTexture)||i.inputPreviousStageTexture,a=o,c=i.length;for(let d=0;d<c;++d){let p=i.get(d);l(p.length)?a=mB(e,t,n,p,o):a=qK(e,t,n,p,o),s&&(o=a)}let u,f;if(s)for(u=1;u<c;++u)f=pB(i.get(u)),l(n[f])||(n[f]={}),n[f][r]=!0;else for(u=1;u<c;++u){f=pB(i.get(u));let d=n[f];for(let p=0;p<u;++p)d[pB(i.get(p))]=!0}return a}function i_t(e,t){let n={};if(l(e.ambientOcclusion)){let i=e.ambientOcclusion,o=e.bloom,r=e._tonemapping,s=e.fxaa,a=mB(e,t,n,i,void 0);a=mB(e,t,n,o,a),a=qK(e,t,n,r,a),a=mB(e,t,n,e,a),qK(e,t,n,s,a)}else mB(e,t,n,e,void 0);return n}function o_t(e,t,n){let o=e._collection.getStageByName(t),r=o._textureScale,s=o._forcePowerOfTwo,a=o._pixelFormat,c=o._pixelDatatype,u=o._clearColor,f,d,p=e._framebuffers,g=p.length;for(f=0;f<g;++f){if(d=p[f],r!==d.textureScale||s!==d.forcePowerOfTwo||a!==d.pixelFormat||c!==d.pixelDatatype||!H.equals(u,d.clearColor))continue;let m=d.stages,x=m.length,b=!1;for(let T=0;T<x;++T)if(n[m[T]]){b=!0;break}if(!b)break}return l(d)&&f<g?(d.stages.push(t),d):(d={textureScale:r,forcePowerOfTwo:s,pixelFormat:a,pixelDatatype:c,clearColor:u,stages:[t],buffer:new ui({pixelFormat:a,pixelDatatype:c}),clear:void 0},p.push(d),d)}function r_t(e,t){let n=i_t(e._collection,t);for(let i in n)n.hasOwnProperty(i)&&(e._stageNameToFramebuffer[i]=o_t(e,i,n[i]))}function YK(e){let t=e._framebuffers,n=t.length;for(let i=0;i<n;++i)t[i].buffer.destroy()}function s_t(e,t){let n=e._width,i=e._height,o=e._framebuffers,r=o.length;for(let s=0;s<r;++s){let a=o[s],c=a.textureScale,u=Math.ceil(n*c),f=Math.ceil(i*c),d=Math.min(u,f);a.forcePowerOfTwo&&(R.isPowerOfTwo(d)||(d=R.nextPowerOfTwo(d)),u=d,f=d),a.buffer.update(t,u,f),a.clear=new ii({color:a.clearColor,framebuffer:a.buffer.framebuffer})}}hg.prototype.updateDependencies=function(){this._updateDependencies=!0};hg.prototype.update=function(e){let t=this._collection,n=this._updateDependencies,i=l(t.ambientOcclusion)&&t.ambientOcclusion.enabled&&t.ambientOcclusion._isSupported(e),o=l(t.bloom)&&t.bloom.enabled&&t.bloom._isSupported(e),r=l(t._tonemapping)&&t._tonemapping.enabled&&t._tonemapping._isSupported(e),s=l(t.fxaa)&&t.fxaa.enabled&&t.fxaa._isSupported(e),a=!l(t._activeStages)||t._activeStages.length>0||i||o||r||s;if((n||!a&&this._framebuffers.length>0)&&(YK(this),this._framebuffers.length=0,this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0),!n&&!a)return;this._framebuffers.length===0&&r_t(this,e);let c=e.drawingBufferWidth,u=e.drawingBufferHeight,f=this._width!==c||this._height!==u;!n&&!f||(this._width=c,this._height=u,this._updateDependencies=!1,YK(this),s_t(this,e))};hg.prototype.clear=function(e){let t=this._framebuffers;for(let n=0;n<t.length;++n)t[n].clear.execute(e)};hg.prototype.getStageByName=function(e){return this._collection.getStageByName(e)};hg.prototype.getOutputTexture=function(e){return this._collection.getOutputTexture(e)};hg.prototype.getFramebuffer=function(e){let t=this._stageNameToFramebuffer[e];if(l(t))return t.buffer.framebuffer};hg.prototype.isDestroyed=function(){return!1};hg.prototype.destroy=function(){return YK(this),ue(this)};var eA=hg;var _B={REINHARD:0,MODIFIED_REINHARD:1,FILMIC:2,ACES:3,validate:function(e){return e===_B.REINHARD||e===_B.MODIFIED_REINHARD||e===_B.FILMIC||e===_B.ACES}},L0=Object.freeze(_B);var XK=[];function ml(){let e=fd.createFXAAStage(),t=fd.createAmbientOcclusionStage(),n=fd.createBloomStage();this._autoExposureEnabled=!1,this._autoExposure=fd.createAutoExposureStage(),this._tonemapping=void 0,this._tonemapper=void 0,this.tonemapper=L0.ACES;let i=this._tonemapping;e.enabled=!1,t.enabled=!1,n.enabled=!1,i.enabled=!1;let o=new eA(this),r={},s=XK;for(s.push(e,t,n,i);s.length>0;){let c=s.pop();r[c.name]=c,c._textureCache=o;let u=c.length;if(l(u))for(let f=0;f<u;++f)s.push(c.get(f))}this._stages=[],this._activeStages=[],this._previousActiveStages=[],this._randomTexture=void 0;let a=this;t.uniforms.randomTexture=function(){return a._randomTexture},this._ao=t,this._bloom=n,this._fxaa=e,this._aoEnabled=void 0,this._bloomEnabled=void 0,this._tonemappingEnabled=void 0,this._fxaaEnabled=void 0,this._activeStagesChanged=!1,this._stagesRemoved=!1,this._textureCacheDirty=!1,this._stageNames=r,this._textureCache=o}Object.defineProperties(ml.prototype,{ready:{get:function(){let e=!1,t=this._stages,n=t.length;for(let a=n-1;a>=0;--a){let c=t[a];e=e||c.ready&&c.enabled}let i=this._fxaa,o=this._ao,r=this._bloom,s=this._tonemapping;return e=e||i.ready&&i.enabled,e=e||o.ready&&o.enabled,e=e||r.ready&&r.enabled,e=e||s.ready&&s.enabled,e}},fxaa:{get:function(){return this._fxaa}},ambientOcclusion:{get:function(){return this._ao}},bloom:{get:function(){return this._bloom}},length:{get:function(){return KK(this),this._stages.length}},outputTexture:{get:function(){let e=this._fxaa;if(e.enabled&&e.ready)return this.getOutputTexture(e.name);let t=this._stages,n=t.length;for(let s=n-1;s>=0;--s){let a=t[s];if(l(a)&&a.ready&&a.enabled)return this.getOutputTexture(a.name)}let i=this._tonemapping;if(i.enabled&&i.ready)return this.getOutputTexture(i.name);let o=this._bloom;if(o.enabled&&o.ready)return this.getOutputTexture(o.name);let r=this._ao;if(r.enabled&&r.ready)return this.getOutputTexture(r.name)}},hasSelected:{get:function(){let e=this._stages.slice();for(;e.length>0;){let t=e.pop();if(!l(t))continue;if(l(t.selected))return!0;let n=t.length;if(l(n))for(let i=0;i<n;++i)e.push(t.get(i))}return!1}},tonemapper:{get:function(){return this._tonemapper},set:function(e){if(this._tonemapper===e)return;l(this._tonemapping)&&(delete this._stageNames[this._tonemapping.name],this._tonemapping.destroy());let t=this._autoExposureEnabled,n;switch(e){case L0.REINHARD:n=fd.createReinhardTonemappingStage(t);break;case L0.MODIFIED_REINHARD:n=fd.createModifiedReinhardTonemappingStage(t);break;case L0.FILMIC:n=fd.createFilmicTonemappingStage(t);break;default:n=fd.createAcesTonemappingStage(t);break}if(t){let i=this._autoExposure;n.uniforms.autoExposure=function(){return i.outputTexture}}this._tonemapper=e,this._tonemapping=n,l(this._stageNames)&&(this._stageNames[n.name]=n,n._textureCache=this._textureCache),this._textureCacheDirty=!0}}});function KK(e){if(!e._stagesRemoved)return;e._stagesRemoved=!1;let t=[],n=e._stages,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];s&&(s._index=r++,t.push(s))}e._stages=t}ml.prototype.add=function(e){let t=this._stageNames,n=XK;for(n.push(e);n.length>0;){let o=n.pop();t[o.name]=o,o._textureCache=this._textureCache;let r=o.length;if(l(r))for(let s=0;s<r;++s)n.push(o.get(s))}let i=this._stages;return e._index=i.length,i.push(e),this._textureCacheDirty=!0,e};ml.prototype.remove=function(e){if(!this.contains(e))return!1;let t=this._stageNames,n=XK;for(n.push(e);n.length>0;){let i=n.pop();delete t[i.name];let o=i.length;if(l(o))for(let r=0;r<o;++r)n.push(i.get(r))}return this._stages[e._index]=void 0,this._stagesRemoved=!0,this._textureCacheDirty=!0,e._index=void 0,e._textureCache=void 0,e.destroy(),!0};ml.prototype.contains=function(e){return l(e)&&l(e._index)&&e._textureCache===this._textureCache};ml.prototype.get=function(e){return KK(this),this._stages[e]};ml.prototype.removeAll=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)this.remove(e[n]);e.length=0};ml.prototype.getStageByName=function(e){return this._stageNames[e]};ml.prototype.update=function(e,t,n){KK(this);let i=this._activeStages,o=this._activeStages=this._previousActiveStages;this._previousActiveStages=i;let r=this._stages,s=o.length=r.length,a,c,u=0;for(a=0;a<s;++a)c=r[a],c.ready&&c.enabled&&c._isSupported(e)&&(o[u++]=c);o.length=u;let f=u!==i.length;if(!f){for(a=0;a<u;++a)if(o[a]!==i[a]){f=!0;break}}let d=this._ao,p=this._bloom,g=this._autoExposure,m=this._tonemapping,x=this._fxaa;m.enabled=n;let b=d.enabled&&d._isSupported(e),T=p.enabled&&p._isSupported(e),C=m.enabled&&m._isSupported(e),A=x.enabled&&x._isSupported(e);if((f||this._textureCacheDirty||b!==this._aoEnabled||T!==this._bloomEnabled||C!==this._tonemappingEnabled||A!==this._fxaaEnabled)&&(this._textureCache.updateDependencies(),this._aoEnabled=b,this._bloomEnabled=T,this._tonemappingEnabled=C,this._fxaaEnabled=A,this._textureCacheDirty=!1),l(this._randomTexture)&&!b&&(this._randomTexture.destroy(),this._randomTexture=void 0),!l(this._randomTexture)&&b){s=256*256*3;let E=new Uint8Array(s);for(a=0;a<s;a+=3)E[a]=Math.floor(Math.random()*255);this._randomTexture=new Dt({context:e,pixelFormat:nt.RGB,pixelDatatype:We.UNSIGNED_BYTE,source:{arrayBufferView:E,width:256,height:256},sampler:new on({wrapS:An.REPEAT,wrapT:An.REPEAT,minificationFilter:nn.NEAREST,magnificationFilter:li.NEAREST})})}for(this._textureCache.update(e),x.update(e,t),d.update(e,t),p.update(e,t),m.update(e,t),this._autoExposureEnabled&&g.update(e,t),s=r.length,a=0;a<s;++a)r[a].update(e,t);for(u=0,a=0;a<s;++a)c=r[a],c.ready&&c.enabled&&c._isSupported(e)&&u++;f=u!==o.length,f&&this.update(e,t,n)};ml.prototype.clear=function(e){this._textureCache.clear(e),this._autoExposureEnabled&&this._autoExposure.clear(e)};function tA(e){for(;l(e.length);)e=e.get(e.length-1);return e.outputTexture}ml.prototype.getOutputTexture=function(e){let t=this.getStageByName(e);if(l(t))return tA(t)};function op(e,t,n,i,o){if(l(e.execute)){e.execute(t,n,i,o);return}let r=e.length,s;if(e.inputPreviousStageTexture)for(op(e.get(0),t,n,i,o),s=1;s<r;++s)op(e.get(s),t,tA(e.get(s-1)),i,o);else for(s=0;s<r;++s)op(e.get(s),t,n,i,o)}ml.prototype.execute=function(e,t,n,i){let o=this._activeStages,r=o.length,s=this._fxaa,a=this._ao,c=this._bloom,u=this._autoExposure,f=this._tonemapping,d=a.enabled&&a._isSupported(e),p=c.enabled&&c._isSupported(e),g=this._autoExposureEnabled,m=f.enabled&&f._isSupported(e),x=s.enabled&&s._isSupported(e);if(!x&&!d&&!p&&!m&&r===0)return;let b=t;d&&a.ready&&(op(a,e,b,n,i),b=tA(a)),p&&c.ready&&(op(c,e,b,n,i),b=tA(c)),g&&u.ready&&op(u,e,b,n,i),m&&f.ready&&(op(f,e,b,n,i),b=tA(f));let T=b;if(r>0){op(o[0],e,b,n,i);for(let C=1;C<r;++C)op(o[C],e,tA(o[C-1]),n,i);T=tA(o[r-1])}x&&s.ready&&op(s,e,T,n,i)};ml.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(nu,{uniformMap:{colorTexture:function(){return n.outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};ml.prototype.isDestroyed=function(){return!1};ml.prototype.destroy=function(){return this._fxaa.destroy(),this._ao.destroy(),this._bloom.destroy(),this._autoExposure.destroy(),this._tonemapping.destroy(),this.removeAll(),this._textureCache=this._textureCache&&this._textureCache.destroy(),ue(this)};var gB=ml;function nA(e){this._scene=e,this._currentTweens=[],this._morphHandler=void 0,this._morphCancelled=!1,this._completeMorph=void 0,this._morphToOrthographic=!1}nA.prototype.completeMorph=function(){l(this._completeMorph)&&this._completeMorph()};nA.prototype.morphTo2D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;this._previousMode=n.mode,this._morphToOrthographic=n.camera.frustum instanceof rn,!(this._previousMode===ne.SCENE2D||this._previousMode===ne.MORPHING)&&(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE2D,!0),n._mode=ne.MORPHING,n.camera._setTransform(F.IDENTITY),this._previousMode===ne.COLUMBUS_VIEW?V_t(this,e):q_t(this,e,t),e===0&&l(this._completeMorph)&&this._completeMorph())};var a_t=new h,c_t=new h,l_t=new h,u_t=new h,f_t=new h,d_t=new h,h_t=new h,m_t=new fe,p_t=new F,__t=new Ti,g_t=new rn,y_t={position:void 0,direction:void 0,up:void 0,position2D:void 0,direction2D:void 0,up2D:void 0,frustum:void 0};nA.prototype.morphToColumbusView=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,this._previousMode===ne.COLUMBUS_VIEW||this._previousMode===ne.MORPHING)return;this._scene.morphStart.raiseEvent(this,this._previousMode,ne.COLUMBUS_VIEW,!0),n.camera._setTransform(F.IDENTITY);let i=a_t,o=c_t,r=l_t;if(e>0)i.x=0,i.y=-1,i.z=1,i=h.multiplyByScalar(h.normalize(i,i),5*t.maximumRadius,i),h.negate(h.normalize(i,o),o),h.cross(h.UNIT_X,o,r);else{let u=n.camera;if(this._previousMode===ne.SCENE2D)h.clone(u.position,i),i.z=u.frustum.right-u.frustum.left,h.negate(h.UNIT_Z,o),h.clone(h.UNIT_Y,r);else{h.clone(u.positionWC,i),h.clone(u.directionWC,o),h.clone(u.upWC,r);let f=t.scaleToGeodeticSurface(i,h_t),d=wt.eastNorthUpToFixedFrame(f,t,p_t);F.inverseTransformation(d,d),n.mapProjection.project(t.cartesianToCartographic(i,m_t),i),F.multiplyByPointAsVector(d,o,o),F.multiplyByPointAsVector(d,r,r)}}let s;this._morphToOrthographic?(s=g_t,s.width=n.camera.frustum.right-n.camera.frustum.left,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight):(s=__t,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,s.fov=R.toRadians(60));let a=y_t;a.position=i,a.direction=o,a.up=r,a.frustum=s;let c=X_t(a);yB(this,c),this._previousMode===ne.SCENE2D?Y_t(this,e,a,c):(a.position2D=F.multiplyByPoint(ao.TRANSFORM_2D,i,u_t),a.direction2D=F.multiplyByPointAsVector(ao.TRANSFORM_2D,o,f_t),a.up2D=F.multiplyByPointAsVector(ao.TRANSFORM_2D,r,d_t),n._mode=ne.MORPHING,kbe(this,e,a,c)),e===0&&l(this._completeMorph)&&this._completeMorph()};var QK={position:new h,direction:new h,up:new h,frustum:void 0},Pbe=new Ti;nA.prototype.morphTo3D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,!(this._previousMode===ne.SCENE3D||this._previousMode===ne.MORPHING)){if(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE3D,!0),n._mode=ne.MORPHING,n.camera._setTransform(F.IDENTITY),this._previousMode===ne.SCENE2D)P_t(this,e,t);else{let i;e>0?(i=QK,h.fromDegrees(0,0,5*t.maximumRadius,t,i.position),h.negate(i.position,i.direction),h.normalize(i.direction,i.direction),h.clone(h.UNIT_Z,i.up)):i=Ibe(this,t);let o,r=n.camera;r.frustum instanceof rn?o=r.frustum.clone():(o=Pbe,o.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,o.fov=R.toRadians(60)),i.frustum=o;let s=Ube(i);yB(this,s),$K(this,e,i,s)}e===0&&l(this._completeMorph)&&this._completeMorph()}};nA.prototype.isDestroyed=function(){return!1};nA.prototype.destroy=function(){return BH(this),ue(this)};function yB(e,t){if(e._scene.completeMorphOnUserInput){e._morphHandler=new Yu(e._scene.canvas);let n=function(){e._morphCancelled=!0,e._scene.camera.cancelFlight(),t(e)};e._completeMorph=n,e._morphHandler.setInputAction(n,bn.LEFT_DOWN),e._morphHandler.setInputAction(n,bn.MIDDLE_DOWN),e._morphHandler.setInputAction(n,bn.RIGHT_DOWN),e._morphHandler.setInputAction(n,bn.WHEEL)}}function BH(e){let t=e._currentTweens;for(let n=0;n<t.length;++n)t[n].cancelTween();e._currentTweens.length=0,e._morphHandler=e._morphHandler&&e._morphHandler.destroy()}var x_t=new fe,b_t=new h,T_t=new F;function Ibe(e,t){let n=e._scene,i=n.camera,o=QK,r=o.position,s=o.direction,a=o.up,c=n.mapProjection.unproject(i.position,x_t);t.cartographicToCartesian(c,r);let u=t.scaleToGeodeticSurface(r,b_t),f=wt.eastNorthUpToFixedFrame(u,t,T_t);return F.multiplyByPointAsVector(f,i.direction,s),F.multiplyByPointAsVector(f,i.up,a),o}var A_t=new h,C_t=new h,E_t=new h,S_t=new h,v_t=new h,w_t=new h;function $K(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(r.position,A_t),a=h.clone(r.direction,C_t),c=h.clone(r.up,E_t),u=F.multiplyByPoint(ao.TRANSFORM_2D_INVERSE,n.position,S_t),f=F.multiplyByPointAsVector(ao.TRANSFORM_2D_INVERSE,n.direction,v_t),d=F.multiplyByPointAsVector(ao.TRANSFORM_2D_INVERSE,n.up,w_t);function p(m){dd(s,u,m.time,r.position),dd(a,f,m.time,r.direction),dd(c,d,m.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let g=o.tweens.add({duration:t,easingFunction:Br.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){Vbe(e,o,0,1,t,i)}});e._currentTweens.push(g)}var D_t=new rn,Rbe=new h,Obe=new h,Mbe=new h,JK=new h,Lbe=new h,Nbe=new h;function P_t(e,t,n){t/=3;let i=e._scene,o=i.camera,r;t>0?(r=QK,h.fromDegrees(0,0,5*n.maximumRadius,n,r.position),h.negate(r.position,r.direction),h.normalize(r.direction,r.direction),h.clone(h.UNIT_Z,r.up)):(o.position.z=o.frustum.right-o.frustum.left,r=Ibe(e,n));let s;e._morphToOrthographic?(s=D_t,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.width=o.frustum.right-o.frustum.left):(s=Pbe,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.fov=R.toRadians(60)),r.frustum=s;let a=Ube(r);yB(e,a);let c;e._morphToOrthographic?c=function(){$K(e,t,r,a)}:c=function(){Bbe(e,t,r,function(){$K(e,t,r,a)})},t>0?(i._mode=ne.SCENE2D,o.flyTo({duration:t,destination:h.fromDegrees(0,0,5*n.maximumRadius,n,JK),complete:function(){i._mode=ne.MORPHING,c()}})):c()}function dd(e,t,n,i){return h.lerp(e,t,n,i)}function Fbe(e,t,n,i,o){let r=e._scene,s=r.camera;if(s.frustum instanceof rn)return;let a=s.frustum.fov,c=R.RADIANS_PER_DEGREE*.5,u=n.position.z*Math.tan(a*.5);s.frustum.far=u/Math.tan(c*.5)+1e7;function f(p){s.frustum.fov=R.lerp(a,c,p.time);let g=u/Math.tan(s.frustum.fov*.5);i(s,g)}let d=r.tweens.add({duration:t,easingFunction:Br.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){s.frustum=n.frustum.clone(),o(e)}});e._currentTweens.push(d)}var I_t=new h,R_t=new h,O_t=new h,ZK=new h,M_t=new h,L_t=new h,N_t=new Er,F_t=new pn,B_t=new h,k_t={position:void 0,direction:void 0,up:void 0,frustum:void 0};function V_t(e,t){t*=.5;let n=e._scene,i=n.camera,o=h.clone(i.position,I_t),r=h.clone(i.direction,R_t),s=h.clone(i.up,O_t),a=h.negate(h.UNIT_Z,M_t),c=h.clone(h.UNIT_Y,L_t),u=ZK;if(t>0)h.clone(h.ZERO,ZK),u.z=5*n.mapProjection.ellipsoid.maximumRadius;else{h.clone(o,ZK);let b=F_t;F.multiplyByPoint(ao.TRANSFORM_2D,o,b.origin),F.multiplyByPointAsVector(ao.TRANSFORM_2D,r,b.direction);let T=n.globe;if(l(T)){let C=T.pickWorldCoordinates(b,n,!0,B_t);l(C)&&(F.multiplyByPoint(ao.TRANSFORM_2D_INVERSE,C,u),u.z+=h.distance(o,u))}}let f=N_t;f.right=u.z*.5,f.left=-f.right,f.top=f.right*(n.drawingBufferHeight/n.drawingBufferWidth),f.bottom=-f.top;let d=k_t;d.position=u,d.direction=a,d.up=c,d.frustum=f;let p=zbe(d);yB(e,p);function g(b){dd(o,u,b.time,i.position),dd(r,a,b.time,i.direction),dd(s,c,b.time,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i._adjustOrthographicFrustum(!0)}function m(b,T){b.position.z=T}let x=n.tweens.add({duration:t,easingFunction:Br.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){Fbe(e,t,d,m,p)}});e._currentTweens.push(x)}var Dbe=new fe,U_t={position:new h,direction:new h,up:new h,position2D:new h,direction2D:new h,up2D:new h,frustum:new Er},z_t={position:new h,direction:new h,up:new h,frustum:void 0},H_t=new h,G_t=new pn,W_t=new F,j_t=new h;function q_t(e,t,n){t*=.5;let i=e._scene,o=i.camera,r=U_t;if(t>0)h.clone(h.ZERO,r.position),r.position.z=5*n.maximumRadius,h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);else{n.cartesianToCartographic(o.positionWC,Dbe),i.mapProjection.project(Dbe,r.position),h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);let d=G_t;h.clone(r.position2D,d.origin);let p=h.clone(o.directionWC,d.direction),g=n.scaleToGeodeticSurface(o.positionWC,j_t),m=wt.eastNorthUpToFixedFrame(g,n,W_t);F.inverseTransformation(m,m),F.multiplyByPointAsVector(m,p,p),F.multiplyByPointAsVector(ao.TRANSFORM_2D,p,p);let x=i.globe;if(l(x)){let b=x.pickWorldCoordinates(d,i,!0,H_t);if(l(b)){let T=h.distance(r.position2D,b);b.x+=T,h.clone(b,r.position2D)}}}function s(d,p){d.position.x=p}F.multiplyByPoint(ao.TRANSFORM_2D,r.position,r.position2D),F.multiplyByPointAsVector(ao.TRANSFORM_2D,r.direction,r.direction2D),F.multiplyByPointAsVector(ao.TRANSFORM_2D,r.up,r.up2D);let a=r.frustum;a.right=r.position.z*.5,a.left=-a.right,a.top=a.right*(i.drawingBufferHeight/i.drawingBufferWidth),a.bottom=-a.top;let c=z_t;F.multiplyByPoint(ao.TRANSFORM_2D_INVERSE,r.position2D,c.position),h.clone(r.direction,c.direction),h.clone(r.up,c.up),c.frustum=a;let u=zbe(c);yB(e,u);function f(){Fbe(e,t,r,s,u)}kbe(e,t,r,f)}function Bbe(e,t,n,i){let o=e._scene,r=o.camera,s=r.frustum.right-r.frustum.left;r.frustum=n.frustum.clone();let a=r.frustum.fov,c=R.RADIANS_PER_DEGREE*.5,u=s*Math.tan(a*.5);r.frustum.far=u/Math.tan(c*.5)+1e7,r.frustum.fov=c;function f(p){r.frustum.fov=R.lerp(c,a,p.time),r.position.z=u/Math.tan(r.frustum.fov*.5)}let d=o.tweens.add({duration:t,easingFunction:Br.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){i(e)}});e._currentTweens.push(d)}function Y_t(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(n.position,JK),a=h.clone(n.direction,Lbe),c=h.clone(n.up,Nbe);o._mode=ne.MORPHING;function u(){r.frustum=n.frustum.clone();let f=h.clone(r.position,Rbe),d=h.clone(r.direction,Obe),p=h.clone(r.up,Mbe);f.z=s.z;function g(x){dd(f,s,x.time,r.position),dd(d,a,x.time,r.direction),dd(p,c,x.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let m=o.tweens.add({duration:t,easingFunction:Br.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){i(e)}});e._currentTweens.push(m)}e._morphToOrthographic?u():Bbe(e,0,n,u)}function kbe(e,t,n,i){let o=e._scene,r=o.camera,s=h.clone(r.position,Rbe),a=h.clone(r.direction,Obe),c=h.clone(r.up,Mbe),u=h.clone(n.position2D,JK),f=h.clone(n.direction2D,Lbe),d=h.clone(n.up2D,Nbe);function p(m){dd(s,u,m.time,r.position),dd(a,f,m.time,r.direction),dd(c,d,m.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right),r._adjustOrthographicFrustum(!0)}let g=o.tweens.add({duration:t,easingFunction:Br.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){Vbe(e,o,1,0,t,i)}});e._currentTweens.push(g)}function Vbe(e,t,n,i,o,r){let s={object:t,property:"morphTime",startValue:n,stopValue:i,duration:o,easingFunction:Br.QUARTIC_OUT};l(r)&&(s.complete=function(){r(e)});let a=t.tweens.addProperty(s);e._currentTweens.push(a)}function Ube(e){return function(t){let n=t._scene;n._mode=ne.SCENE3D,n.morphTime=ne.getMorphTime(ne.SCENE3D),BH(t);let i=n.camera;(t._previousMode!==ne.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone());let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE3D,r)}}function zbe(e){return function(t){let n=t._scene;n._mode=ne.SCENE2D,n.morphTime=ne.getMorphTime(ne.SCENE2D),BH(t);let i=n.camera;h.clone(e.position,i.position),i.position.z=n.mapProjection.ellipsoid.maximumRadius*2,h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone();let o=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE2D,o)}}function X_t(e){return function(t){let n=t._scene;n._mode=ne.COLUMBUS_VIEW,n.morphTime=ne.getMorphTime(ne.COLUMBUS_VIEW),BH(t);let i=n.camera;(t._previousModeMode!==ne.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right));let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.COLUMBUS_VIEW,r)}}var xB=nA;var K_t={LEFT_DRAG:0,RIGHT_DRAG:1,MIDDLE_DRAG:2,WHEEL:3,PINCH:4},Ri=Object.freeze(K_t);function Ic(e,t){let n=e;return l(t)&&(n+=`+${t}`),n}function Z_t(e,t){z.clone(e.distance.startPosition,t.distance.startPosition),z.clone(e.distance.endPosition,t.distance.endPosition),z.clone(e.angleAndHeight.startPosition,t.angleAndHeight.startPosition),z.clone(e.angleAndHeight.endPosition,t.angleAndHeight.endPosition)}function Hbe(e,t,n){let i=Ic(Ri.PINCH,t),o=e._update,r=e._isDown,s=e._eventStartPosition,a=e._pressTime,c=e._releaseTime;o[i]=!0,r[i]=!1,s[i]=new z;let u=e._movement[i];l(u)||(u=e._movement[i]={}),u.distance={startPosition:new z,endPosition:new z},u.angleAndHeight={startPosition:new z,endPosition:new z},u.prevAngle=0,e._eventHandler.setInputAction(function(f){e._buttonsDown++,r[i]=!0,a[i]=new Date,z.lerp(f.position1,f.position2,.5,s[i])},bn.PINCH_START,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),r[i]=!1,c[i]=new Date},bn.PINCH_END,t),e._eventHandler.setInputAction(function(f){if(r[i]){o[i]?(Z_t(f,u),o[i]=!1,u.prevAngle=u.angleAndHeight.startPosition.x):(z.clone(f.distance.endPosition,u.distance.endPosition),z.clone(f.angleAndHeight.endPosition,u.angleAndHeight.endPosition));let d=u.angleAndHeight.endPosition.x,p=u.prevAngle,g=Math.PI*2;for(;d>=p+Math.PI;)d-=g;for(;d<p-Math.PI;)d+=g;u.angleAndHeight.endPosition.x=-d*n.clientWidth/12,u.angleAndHeight.startPosition.x=-p*n.clientWidth/12}},bn.PINCH_MOVE,t)}function Gbe(e,t){let n=Ic(Ri.WHEEL,t),i=e._pressTime,o=e._releaseTime,r=e._update;r[n]=!0;let s=e._movement[n];l(s)||(s=e._movement[n]={});let a=e._lastMovement[n];l(a)||(a=e._lastMovement[n]={startPosition:new z,endPosition:new z,valid:!1}),s.startPosition=new z,z.clone(z.ZERO,s.startPosition),s.endPosition=new z,e._eventHandler.setInputAction(function(c){let u=7.5*R.toRadians(c);i[n]=o[n]=new Date,s.endPosition.x=0,s.endPosition.y=u,z.clone(s.endPosition,a.endPosition),a.valid=!0,r[n]=!1},bn.WHEEL,t)}function mv(e,t,n){let i=Ic(n,t),o=e._isDown,r=e._eventStartPosition,s=e._pressTime,a=e._releaseTime;o[i]=!1,r[i]=new z;let c=e._lastMovement[i];l(c)||(c=e._lastMovement[i]={startPosition:new z,endPosition:new z,valid:!1});let u,f;n===Ri.LEFT_DRAG?(u=bn.LEFT_DOWN,f=bn.LEFT_UP):n===Ri.RIGHT_DRAG?(u=bn.RIGHT_DOWN,f=bn.RIGHT_UP):n===Ri.MIDDLE_DRAG&&(u=bn.MIDDLE_DOWN,f=bn.MIDDLE_UP),e._eventHandler.setInputAction(function(d){e._buttonsDown++,c.valid=!1,o[i]=!0,s[i]=new Date,z.clone(d.position,r[i])},u,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),o[i]=!1,a[i]=new Date},f,t)}function Wbe(e,t){z.clone(e.startPosition,t.startPosition),z.clone(e.endPosition,t.endPosition)}function jbe(e,t){let n=e._update,i=e._movement,o=e._lastMovement,r=e._isDown;for(let s in Ri)if(Ri.hasOwnProperty(s)){let a=Ri[s];if(l(a)){let c=Ic(a,t);n[c]=!0,l(e._lastMovement[c])||(e._lastMovement[c]={startPosition:new z,endPosition:new z,valid:!1}),l(e._movement[c])||(e._movement[c]={startPosition:new z,endPosition:new z})}}e._eventHandler.setInputAction(function(s){for(let a in Ri)if(Ri.hasOwnProperty(a)){let c=Ri[a];if(l(c)){let u=Ic(c,t);r[u]&&(n[u]?(Wbe(i[u],o[u]),o[u].valid=!0,Wbe(s,i[u]),n[u]=!1):z.clone(s.endPosition,i[u].endPosition))}}z.clone(s.endPosition,e._currentMousePosition)},bn.MOUSE_MOVE,t)}function hd(e){this._eventHandler=new Yu(e),this._update={},this._movement={},this._lastMovement={},this._isDown={},this._eventStartPosition={},this._pressTime={},this._releaseTime={},this._buttonsDown=0,this._currentMousePosition=new z,Gbe(this,void 0),Hbe(this,void 0,e),mv(this,void 0,Ri.LEFT_DRAG),mv(this,void 0,Ri.RIGHT_DRAG),mv(this,void 0,Ri.MIDDLE_DRAG),jbe(this,void 0);for(let t in fa)if(fa.hasOwnProperty(t)){let n=fa[t];l(n)&&(Gbe(this,n),Hbe(this,n,e),mv(this,n,Ri.LEFT_DRAG),mv(this,n,Ri.RIGHT_DRAG),mv(this,n,Ri.MIDDLE_DRAG),jbe(this,n))}}Object.defineProperties(hd.prototype,{currentMousePosition:{get:function(){return this._currentMousePosition}},anyButtonDown:{get:function(){let e=!this._update[Ic(Ri.WHEEL)]||!this._update[Ic(Ri.WHEEL,fa.SHIFT)]||!this._update[Ic(Ri.WHEEL,fa.CTRL)]||!this._update[Ic(Ri.WHEEL,fa.ALT)];return this._buttonsDown>0||e}}});hd.prototype.isMoving=function(e,t){let n=Ic(e,t);return!this._update[n]};hd.prototype.getMovement=function(e,t){let n=Ic(e,t);return this._movement[n]};hd.prototype.getLastMovement=function(e,t){let n=Ic(e,t),i=this._lastMovement[n];if(i.valid)return i};hd.prototype.isButtonDown=function(e,t){let n=Ic(e,t);return this._isDown[n]};hd.prototype.getStartMousePosition=function(e,t){if(e===Ri.WHEEL)return this._currentMousePosition;let n=Ic(e,t);return this._eventStartPosition[n]};hd.prototype.getButtonPressTime=function(e,t){let n=Ic(e,t);return this._pressTime[n]};hd.prototype.getButtonReleaseTime=function(e,t){let n=Ic(e,t);return this._releaseTime[n]};hd.prototype.reset=function(){for(let e in this._update)this._update.hasOwnProperty(e)&&(this._update[e]=!0)};hd.prototype.isDestroyed=function(){return!1};hd.prototype.destroy=function(){return this._eventHandler=this._eventHandler&&this._eventHandler.destroy(),ue(this)};var bB=hd;function kH(e,t,n,i,o,r,s,a,c,u){this._tweens=e,this._tweenjs=t,this._startObject=He(n),this._stopObject=He(i),this._duration=o,this._delay=r,this._easingFunction=s,this._update=a,this._complete=c,this.cancel=u,this.needsStart=!0}Object.defineProperties(kH.prototype,{startObject:{get:function(){return this._startObject}},stopObject:{get:function(){return this._stopObject}},duration:{get:function(){return this._duration}},delay:{get:function(){return this._delay}},easingFunction:{get:function(){return this._easingFunction}},update:{get:function(){return this._update}},complete:{get:function(){return this._complete}},tweenjs:{get:function(){return this._tweenjs}}});kH.prototype.cancelTween=function(){this._tweens.remove(this)};function Bh(){this._tweens=[]}Object.defineProperties(Bh.prototype,{length:{get:function(){return this._tweens.length}}});Bh.prototype.add=function(e){if(e=y(e,y.EMPTY_OBJECT),e.duration===0)return l(e.complete)&&e.complete(),new kH(this);let t=e.duration/Xn.SECONDS_PER_MILLISECOND,n=y(e.delay,0),i=n/Xn.SECONDS_PER_MILLISECOND,o=y(e.easingFunction,Br.LINEAR_NONE),r=e.startObject,s=new P_e(r);s.to(He(e.stopObject),t),s.delay(i),s.easing(o),l(e.update)&&s.onUpdate(function(){e.update(r)}),s.onComplete(y(e.complete,null)),s.repeat(y(e._repeat,0));let a=new kH(this,s,e.startObject,e.stopObject,e.duration,n,o,e.update,e.complete,e.cancel);return this._tweens.push(a),a};Bh.prototype.addProperty=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.object,n=e.property,i=e.startValue,o=e.stopValue;function r(s){t[n]=s.value}return this.add({startObject:{value:i},stopObject:{value:o},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:r,complete:e.complete,cancel:e.cancel,_repeat:e._repeat})};Bh.prototype.addAlpha=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.material,n=[];for(let o in t.uniforms)t.uniforms.hasOwnProperty(o)&&l(t.uniforms[o])&&l(t.uniforms[o].alpha)&&n.push(o);function i(o){let r=n.length;for(let s=0;s<r;++s)t.uniforms[n[s]].alpha=o.alpha}return this.add({startObject:{alpha:y(e.startValue,0)},stopObject:{alpha:y(e.stopValue,1)},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:i,complete:e.complete,cancel:e.cancel})};Bh.prototype.addOffsetIncrement=function(e){e=y(e,y.EMPTY_OBJECT);let n=e.material.uniforms;return this.addProperty({object:n,property:"offset",startValue:n.offset,stopValue:n.offset+1,duration:e.duration,delay:e.delay,easingFunction:e.easingFunction,update:e.update,cancel:e.cancel,_repeat:1/0})};Bh.prototype.remove=function(e){if(!l(e))return!1;let t=this._tweens.indexOf(e);return t!==-1?(e.tweenjs.stop(),l(e.cancel)&&e.cancel(),this._tweens.splice(t,1),!0):!1};Bh.prototype.removeAll=function(){let e=this._tweens;for(let t=0;t<e.length;++t){let n=e[t];n.tweenjs.stop(),l(n.cancel)&&n.cancel()}e.length=0};Bh.prototype.contains=function(e){return l(e)&&this._tweens.indexOf(e)!==-1};Bh.prototype.get=function(e){return this._tweens[e]};Bh.prototype.update=function(e){let t=this._tweens,n=0;for(e=l(e)?e/Xn.SECONDS_PER_MILLISECOND:pi();n<t.length;){let i=t[n],o=i.tweenjs;i.needsStart?(i.needsStart=!1,o.start(e)):o.update(e)?n++:(o.stop(),t.splice(n,1))}};var iA=Bh;function AB(e){this.enableInputs=!0,this.enableTranslate=!0,this.enableZoom=!0,this.enableRotate=!0,this.enableTilt=!0,this.enableLook=!0,this.inertiaSpin=.9,this.inertiaTranslate=.9,this.inertiaZoom=.8,this.maximumMovementRatio=.1,this.bounceAnimationTime=3,this.minimumZoomDistance=1,this.maximumZoomDistance=Number.POSITIVE_INFINITY,this.translateEventTypes=Ri.LEFT_DRAG,this.zoomEventTypes=[Ri.RIGHT_DRAG,Ri.WHEEL,Ri.PINCH],this.rotateEventTypes=Ri.LEFT_DRAG,this.tiltEventTypes=[Ri.MIDDLE_DRAG,Ri.PINCH,{eventType:Ri.LEFT_DRAG,modifier:fa.CTRL},{eventType:Ri.RIGHT_DRAG,modifier:fa.CTRL}],this.lookEventTypes={eventType:Ri.LEFT_DRAG,modifier:fa.SHIFT},this.minimumPickingTerrainHeight=15e4,this._minimumPickingTerrainHeight=this.minimumPickingTerrainHeight,this.minimumPickingTerrainDistanceWithInertia=4e3,this.minimumCollisionTerrainHeight=15e3,this._minimumCollisionTerrainHeight=this.minimumCollisionTerrainHeight,this.minimumTrackBallHeight=75e5,this._minimumTrackBallHeight=this.minimumTrackBallHeight,this.enableCollisionDetection=!0,this._scene=e,this._globe=void 0,this._ellipsoid=void 0,this._lastGlobeHeight=0,this._aggregator=new bB(e.canvas),this._lastInertiaSpinMovement=void 0,this._lastInertiaZoomMovement=void 0,this._lastInertiaTranslateMovement=void 0,this._lastInertiaTiltMovement=void 0,this._inertiaDisablers={_lastInertiaZoomMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement","_lastInertiaTiltMovement"],_lastInertiaTiltMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement"]},this._tweens=new iA,this._tween=void 0,this._horizontalRotationAxis=void 0,this._tiltCenterMousePosition=new z(-1,-1),this._tiltCenter=new h,this._rotateMousePosition=new z(-1,-1),this._rotateStartPosition=new h,this._strafeStartPosition=new h,this._strafeMousePosition=new z,this._strafeEndMousePosition=new z,this._zoomMouseStart=new z(-1,-1),this._zoomWorldPosition=new h,this._useZoomWorldPosition=!1,this._panLastMousePosition=new z,this._panLastWorldPosition=new h,this._tiltCVOffMap=!1,this._looking=!1,this._rotating=!1,this._strafing=!1,this._zoomingOnVector=!1,this._zoomingUnderground=!1,this._rotatingZoom=!1,this._adjustedHeightForTerrain=!1,this._cameraUnderground=!1;let t=e.mapProjection;this._maxCoord=t.project(new fe(Math.PI,R.PI_OVER_TWO)),this._zoomFactor=5,this._rotateFactor=void 0,this._rotateRateRangeAdjustment=void 0,this._maximumRotateRate=1.77,this._minimumRotateRate=1/5e3,this._minimumZoomRate=20,this._maximumZoomRate=5906376272e3,this._minimumUndergroundPickDistance=2e3,this._maximumUndergroundPickDistance=1e4}function $_t(e,t){if(e<0)return 0;let n=(1-t)*25;return Math.exp(-n*e)}function Q_t(e){return z.equalsEpsilon(e.startPosition,e.endPosition,R.EPSILON14)}var J_t=.4;function egt(e,t,n,i,o,r,s){let a=r[s];l(a)||(a=r[s]={startPosition:new z,endPosition:new z,motion:new z,inertiaEnabled:!0});let c=e.getButtonPressTime(t,n),u=e.getButtonReleaseTime(t,n),f=c&&u&&(u.getTime()-c.getTime())/1e3,p=u&&(new Date().getTime()-u.getTime())/1e3;if(c&&u&&f<J_t){let g=$_t(p,i),m=e.getLastMovement(t,n);if(!l(m)||Q_t(m)||!a.inertiaEnabled||(a.motion.x=(m.endPosition.x-m.startPosition.x)*.5,a.motion.y=(m.endPosition.y-m.startPosition.y)*.5,a.startPosition=z.clone(m.startPosition,a.startPosition),a.endPosition=z.multiplyByScalar(a.motion,g,a.endPosition),a.endPosition=z.add(a.startPosition,a.endPosition,a.endPosition),isNaN(a.endPosition.x)||isNaN(a.endPosition.y)||z.distance(a.startPosition,a.endPosition)<.5))return;if(!e.isButtonDown(t,n)){let x=e.getStartMousePosition(t,n);o(r,x,a)}}}function tgt(e,t){if(l(t)){let n=e[t];l(n)&&(n.inertiaEnabled=!0);let i=e._inertiaDisablers[t];if(l(i)){let o=i.length;for(let r=0;r<o;++r)n=e[i[r]],l(n)&&(n.inertiaEnabled=!1)}}}var qbe=[];function pl(e,t,n,i,o,r){if(!l(n))return;let s=e._aggregator;Array.isArray(n)||(qbe[0]=n,n=qbe);let a=n.length;for(let c=0;c<a;++c){let u=n[c],f=l(u.eventType)?u.eventType:u,d=u.modifier,p=s.isMoving(f,d)&&s.getMovement(f,d),g=s.getStartMousePosition(f,d);e.enableInputs&&t&&(p?(i(e,g,p),tgt(e,r)):o<1&&egt(s,f,d,o,i,e,r))}}var VH=new pn,ngt=new h,igt=new z,ogt=new h,rgt=new z,sgt=new h,agt=new h,cgt=new h,lgt=new h,oTe=new h,ugt=new h,fgt=new h,dgt=new h,hgt=new h,mgt=new h,pgt=new h,_gt=new h,ggt=new h,ygt=new h,xgt=new h,oA=new h,Ybe=new h,Xbe=new h,eZ={orientation:new $a};function cZ(e,t,n,i,o,r){let s=1;l(r)&&(s=R.clamp(Math.abs(r),.25,1));let a=n.endPosition.y-n.startPosition.y,u=a>0?e.minimumZoomDistance*s:0,f=e.maximumZoomDistance,d=o-u,p=i*d;p=R.clamp(p,e._minimumZoomRate,e._maximumZoomRate);let g=a/e._scene.canvas.clientHeight;g=Math.min(g,e.maximumMovementRatio);let m=p*g;if(e.enableCollisionDetection||e.minimumZoomDistance===0||!l(e._globe)){if(m>0&&Math.abs(o-u)<1||m<0&&Math.abs(o-f)<1)return;o-m<u?m=o-u-1:o-m>f&&(m=o-f)}let x=e._scene,b=x.camera,T=x.mode,C=eZ.orientation;if(C.heading=b.heading,C.pitch=b.pitch,C.roll=b.roll,b.frustum instanceof rn){Math.abs(m)>0&&(b.zoomIn(m),b._adjustOrthographicFrustum(!0));return}let A=y(n.inertiaEnabled,z.equals(t,e._zoomMouseStart)),E=e._zoomingOnVector,v=e._rotatingZoom,D;if(A||(e._zoomMouseStart=z.clone(t,e._zoomMouseStart),l(e._globe)&&T===ne.SCENE2D?(D=b.getPickRay(t,VH).origin,D=h.fromElements(D.y,D.z,D.x)):l(e._globe)&&(D=mg(e,t,ngt)),l(D)?(e._useZoomWorldPosition=!0,e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition)):e._useZoomWorldPosition=!1,E=e._zoomingOnVector=!1,v=e._rotatingZoom=!1,e._zoomingUnderground=e._cameraUnderground),!e._useZoomWorldPosition){b.zoomIn(m);return}let O=T===ne.COLUMBUS_VIEW;if(b.positionCartographic.height<2e6&&(v=!0),!A||v){if(T===ne.SCENE2D){let I=e._zoomWorldPosition,L=b.position;if(!h.equals(I,L)&&b.positionCartographic.height<e._maxCoord.x*2){let N=b.position.x,_=h.subtract(I,L,ogt);h.normalize(_,_);let S=h.distance(I,L)*m/(b.getMagnitude()*.5);b.move(_,S*.5),(b.position.x<0&&N>0||b.position.x>0&&N<0)&&(D=b.getPickRay(t,VH).origin,D=h.fromElements(D.y,D.z,D.x),e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition))}}else if(T===ne.SCENE3D){let I=h.normalize(b.position,oTe);if(e._cameraUnderground||e._zoomingUnderground||b.positionCartographic.height<3e3&&Math.abs(h.dot(b.direction,I))<.6)O=!0;else{let L=x.canvas,N=rgt;N.x=L.clientWidth/2,N.y=L.clientHeight/2;let _=mg(e,N,sgt);if(!l(_))O=!0;else if(b.positionCartographic.height<1e6)if(h.dot(b.direction,I)>=-.5)O=!0;else{let S=fgt;h.clone(b.position,S);let w=e._zoomWorldPosition,P=ugt;if(P=h.normalize(w,P),h.dot(P,I)<0)return;let M=xgt,B=mgt;h.clone(b.direction,B),h.add(S,h.multiplyByScalar(B,1e3,oA),M);let U=pgt,V=_gt;h.subtract(w,S,U),h.normalize(U,V);let G=h.dot(I,V);if(G>=0){e._zoomMouseStart.x=-1;return}let k=Math.acos(-G),Y=h.magnitude(S),W=h.magnitude(w),Q=Y-m,j=h.magnitude(U),K=Math.asin(R.clamp(j/W*Math.sin(k),-1,1)),Z=Math.asin(R.clamp(Q/W*Math.sin(k),-1,1)),he=K-Z+k,be=dgt;h.normalize(S,be);let re=hgt;re=h.cross(V,be,re),re=h.normalize(re,re),h.normalize(h.cross(be,re,oA),B),h.multiplyByScalar(h.normalize(M,oA),h.magnitude(M)-m,M),h.normalize(S,S),h.multiplyByScalar(S,Q,S);let _e=ggt;h.multiplyByScalar(h.add(h.multiplyByScalar(be,Math.cos(he)-1,Ybe),h.multiplyByScalar(B,Math.sin(he),Xbe),oA),Q,_e),h.add(S,_e,S),h.normalize(M,be),h.normalize(h.cross(be,re,oA),B);let xe=ygt;h.multiplyByScalar(h.add(h.multiplyByScalar(be,Math.cos(he)-1,Ybe),h.multiplyByScalar(B,Math.sin(he),Xbe),oA),h.magnitude(M),xe),h.add(M,xe,M),h.clone(S,b.position),h.normalize(h.subtract(M,S,oA),b.direction),h.clone(b.direction,b.direction),h.cross(b.direction,b.up,b.right),h.cross(b.right,b.direction,b.up),b.setView(eZ);return}else{let S=h.normalize(_,agt),w=h.normalize(e._zoomWorldPosition,cgt),P=h.dot(w,S);if(P>0&&P<1){let M=R.acosClamped(P),B=h.cross(w,S,lgt),U=Math.abs(M)>R.toRadians(20)?b.positionCartographic.height*.75:b.positionCartographic.height-m,V=m/U;b.rotate(B,M*V)}}}}e._rotatingZoom=!O}if(!A&&O||E){let I,L=Hi.wgs84ToWindowCoordinates(x,e._zoomWorldPosition,igt);T!==ne.COLUMBUS_VIEW&&z.equals(t,e._zoomMouseStart)&&l(L)?I=b.getPickRay(L,VH):I=b.getPickRay(t,VH);let N=I.direction;(T===ne.COLUMBUS_VIEW||T===ne.SCENE2D)&&h.fromElements(N.y,N.z,N.x,N),b.move(N,m),e._zoomingOnVector=!0}else b.zoomIn(m);e._cameraUnderground||b.setView(eZ)}var bgt=new pn,Tgt=new pn,Agt=new h;function Cgt(e,t,n){let o=e._scene.camera,r=o.getPickRay(n.startPosition,bgt).origin,s=o.getPickRay(n.endPosition,Tgt).origin;r=h.fromElements(r.y,r.z,r.x,r),s=h.fromElements(s.y,s.z,s.x,s);let a=h.subtract(r,s,Agt),c=h.magnitude(a);c>0&&(h.normalize(a,a),o.move(a,c))}function Kbe(e,t,n){l(n.distance)&&(n=n.distance);let o=e._scene.camera;cZ(e,t,n,e._zoomFactor,o.getMagnitude())}var Egt=new z,Sgt=new z;function Zbe(e,t,n){if(l(n.angleAndHeight)){vgt(e,t,n.angleAndHeight);return}let i=e._scene,o=i.camera,r=i.canvas,s=r.clientWidth,a=r.clientHeight,c=Egt;c.x=2/s*n.startPosition.x-1,c.y=2/a*(a-n.startPosition.y)-1,c=z.normalize(c,c);let u=Sgt;u.x=2/s*n.endPosition.x-1,u.y=2/a*(a-n.endPosition.y)-1,u=z.normalize(u,u);let f=R.acosClamped(c.x);c.y<0&&(f=R.TWO_PI-f);let d=R.acosClamped(u.x);u.y<0&&(d=R.TWO_PI-d);let p=d-f;o.twistRight(p)}function vgt(e,t,n){let i=e._rotateFactor*e._rotateRateRangeAdjustment;i>e._maximumRotateRate&&(i=e._maximumRotateRate),i<e._minimumRotateRate&&(i=e._minimumRotateRate);let o=e._scene,r=o.camera,s=o.canvas,a=(n.endPosition.x-n.startPosition.x)/s.clientWidth;a=Math.min(a,e.maximumMovementRatio);let c=i*a*Math.PI*4;r.twistRight(c)}function wgt(e){let t=e._scene.mapMode2D===tu.ROTATE;F.equals(F.IDENTITY,e._scene.camera.transform)?(pl(e,e.enableTranslate,e.translateEventTypes,Cgt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),pl(e,e.enableZoom,e.zoomEventTypes,Kbe,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&pl(e,e.enableRotate,e.tiltEventTypes,Zbe,e.inertiaSpin,"_lastInertiaTiltMovement")):(pl(e,e.enableZoom,e.zoomEventTypes,Kbe,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&pl(e,e.enableRotate,e.translateEventTypes,Zbe,e.inertiaSpin,"_lastInertiaSpinMovement"))}var rTe=new pn,Dgt=new h,Pgt=new h;function mg(e,t,n){let i=e._scene,o=e._globe,r=i.camera,s;if(i.pickPositionSupported&&(s=i.pickPositionWorldCoordinates(t,Dgt)),!l(o))return h.clone(s,n);let a=!e._cameraUnderground,c=r.getPickRay(t,rTe),u=o.pickWorldCoordinates(c,i,a,Pgt),f=l(s)?h.distance(s,r.positionWC):Number.POSITIVE_INFINITY,d=l(u)?h.distance(u,r.positionWC):Number.POSITIVE_INFINITY;return f<d?h.clone(s,n):h.clone(u,n)}var Igt=new fe;function qH(e){let t=e._ellipsoid,n=e._scene,i=n.camera,o=n.mode,r=0;if(o===ne.SCENE3D){let c=t.cartesianToCartographic(i.position,Igt);l(c)&&(r=c.height)}else r=i.position.z;let s=y(e._scene.globeHeight,0);return Math.abs(s-r)}var Rgt=new h;function sTe(e,t){let n=t.origin,i=t.direction,o=qH(e),r=h.normalize(n,Rgt),s=Math.abs(h.dot(r,i));return s=Math.max(s,.5)*2,o*s}function aTe(e,t,n,i){let o=h.distance(t.origin,n),r=qH(e),s=R.clamp(r*5,e._minimumUndergroundPickDistance,e._maximumUndergroundPickDistance);return o>s&&(o=Math.min(o,r/5),o=Math.max(o,100)),pn.getPoint(t,o,i)}function cTe(e,t,n,i){let o;return l(n)?(o=h.distance(t.origin,n),o>e._maximumUndergroundPickDistance&&(o=qH(e))):o=qH(e),pn.getPoint(t,o,i)}var Ogt=new z;function lTe(e,t){let n=t.endPosition,i=z.subtract(t.endPosition,t.startPosition,Ogt),o=e._strafeEndMousePosition;z.add(o,i,o),t.endPosition=o,lZ(e,t,e._strafeStartPosition),t.endPosition=n}var $be=new pn,Mgt=new pn,tZ=new h,Lgt=new h,Ngt=new h,Fgt=new h,Bgt=new ln(h.UNIT_X,0),kgt=new z,Vgt=new z;function Ugt(e,t,n){if(h.equals(t,e._translateMousePosition)||(e._looking=!1),h.equals(t,e._strafeMousePosition)||(e._strafing=!1),e._looking){Ju(e,t,n);return}if(e._strafing){lTe(e,n);return}let o=e._scene.camera,r=e._cameraUnderground,s=z.clone(n.startPosition,kgt),a=z.clone(n.endPosition,Vgt),c=o.getPickRay(s,$be),u=h.clone(h.ZERO,Fgt),f=h.UNIT_X,d;if(o.position.z<e._minimumPickingTerrainHeight&&(d=mg(e,s,tZ),l(d)&&(u.x=d.x)),r||u.x>o.position.z&&l(d)){let A=d;r&&(A=cTe(e,c,d,tZ)),z.clone(t,e._strafeMousePosition),z.clone(t,e._strafeEndMousePosition),h.clone(A,e._strafeStartPosition),e._strafing=!0,lZ(e,n,e._strafeStartPosition);return}let p=ln.fromPointNormal(u,f,Bgt);c=o.getPickRay(s,$be);let g=Qn.rayPlane(c,p,tZ),m=o.getPickRay(a,Mgt),x=Qn.rayPlane(m,p,Lgt);if(!l(g)||!l(x)){e._looking=!0,Ju(e,t,n),z.clone(t,e._translateMousePosition);return}let b=h.subtract(g,x,Ngt),T=b.x;b.x=b.y,b.y=b.z,b.z=T;let C=h.magnitude(b);C>R.EPSILON6&&(h.normalize(b,b),o.move(b,C))}var uTe=new z,HH=new pn,GH=new h,zgt=new h,fTe=new F,Hgt=new F,Ggt=new h,Wgt=new ln(h.UNIT_X,0),nZ=new h,rZ=new fe,dTe=new F,jgt=new Me,qgt=new $,WH=new h;function Ygt(e,t,n){if(l(n.angleAndHeight)&&(n=n.angleAndHeight),z.equals(t,e._tiltCenterMousePosition)||(e._tiltCVOffMap=!1,e._looking=!1),e._looking){Ju(e,t,n);return}let o=e._scene.camera;e._tiltCVOffMap||!e.onMap()||Math.abs(o.position.z)>e._minimumPickingTerrainHeight?(e._tiltCVOffMap=!0,Xgt(e,t,n)):Kgt(e,t,n)}function Xgt(e,t,n){let i=e._scene,o=i.camera,r=i.canvas,s=uTe;s.x=r.clientWidth/2,s.y=r.clientHeight/2;let a=o.getPickRay(s,HH),c=h.UNIT_X,u=a.origin,f=a.direction,d,p=h.dot(c,f);if(Math.abs(p)>R.EPSILON6&&(d=-h.dot(c,u)/p),!l(d)||d<=0){e._looking=!0,Ju(e,t,n),z.clone(t,e._tiltCenterMousePosition);return}let g=h.multiplyByScalar(f,d,GH);h.add(u,g,g);let m=i.mapProjection,x=m.ellipsoid;h.fromElements(g.y,g.z,g.x,g);let b=m.unproject(g,rZ);x.cartographicToCartesian(b,g);let T=wt.eastNorthUpToFixedFrame(g,x,fTe),C=e._globe,A=e._ellipsoid;e._globe=void 0,e._ellipsoid=te.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let E=F.clone(o.transform,dTe);o._setTransform(T),Qu(e,t,n,h.UNIT_Z),o._setTransform(E),e._globe=C,e._ellipsoid=A;let v=A.maximumRadius;e._rotateFactor=1/v,e._rotateRateRangeAdjustment=v}function Kgt(e,t,n){let i=e._scene,o=i.camera,r=e._cameraUnderground,s,a,c=h.UNIT_X;if(z.equals(t,e._tiltCenterMousePosition))s=h.clone(e._tiltCenter,GH);else{if(o.position.z<e._minimumPickingTerrainHeight&&(s=mg(e,t,GH)),!l(s)){a=o.getPickRay(t,HH);let _=a.origin,S=a.direction,w,P=h.dot(c,S);if(Math.abs(P)>R.EPSILON6&&(w=-h.dot(c,_)/P),!l(w)||w<=0){e._looking=!0,Ju(e,t,n),z.clone(t,e._tiltCenterMousePosition);return}s=h.multiplyByScalar(S,w,GH),h.add(_,s,s)}r&&(l(a)||(a=o.getPickRay(t,HH)),aTe(e,a,s,s)),z.clone(t,e._tiltCenterMousePosition),h.clone(s,e._tiltCenter)}let u=i.canvas,f=uTe;f.x=u.clientWidth/2,f.y=e._tiltCenterMousePosition.y,a=o.getPickRay(f,HH);let d=h.clone(h.ZERO,Ggt);d.x=s.x;let p=ln.fromPointNormal(d,c,Wgt),g=Qn.rayPlane(a,p,zgt),m=o._projection,x=m.ellipsoid;h.fromElements(s.y,s.z,s.x,s);let b=m.unproject(s,rZ);x.cartographicToCartesian(b,s);let T=wt.eastNorthUpToFixedFrame(s,x,fTe),C;l(g)?(h.fromElements(g.y,g.z,g.x,g),b=m.unproject(g,rZ),x.cartographicToCartesian(b,g),C=wt.eastNorthUpToFixedFrame(g,x,Hgt)):C=T;let A=e._globe,E=e._ellipsoid;e._globe=void 0,e._ellipsoid=te.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=h.UNIT_Z,D=F.clone(o.transform,dTe);o._setTransform(T);let O=h.cross(h.UNIT_Z,h.normalize(o.position,nZ),nZ),I=h.dot(o.right,O);if(Qu(e,t,n,v,!1,!0),o._setTransform(C),I<0){let _=n.startPosition.y-n.endPosition.y;(r&&_<0||!r&&_>0)&&(v=void 0);let S=o.constrainedAxis;o.constrainedAxis=void 0,Qu(e,t,n,v,!0,!1),o.constrainedAxis=S}else Qu(e,t,n,v,!0,!1);if(l(o.constrainedAxis)){let _=h.cross(o.direction,o.constrainedAxis,WH);h.equalsEpsilon(_,h.ZERO,R.EPSILON6)||(h.dot(_,o.right)<0&&h.negate(_,_),h.cross(_,o.direction,o.up),h.cross(o.direction,o.up,o.right),h.normalize(o.up,o.up),h.normalize(o.right,o.right))}o._setTransform(D),e._globe=A,e._ellipsoid=E;let L=E.maximumRadius;e._rotateFactor=1/L,e._rotateRateRangeAdjustment=L;let N=h.clone(o.positionWC,nZ);if(e.enableCollisionDetection&&dZ(e,!0),!h.equals(o.positionWC,N)){o._setTransform(C),o.worldToCameraCoordinatesPoint(N,N);let _=h.magnitudeSquared(N);h.magnitudeSquared(o.position)>_&&(h.normalize(o.position,o.position),h.multiplyByScalar(o.position,Math.sqrt(_),o.position));let S=h.angleBetween(N,o.position),w=h.cross(N,o.position,N);h.normalize(w,w);let P=Me.fromAxisAngle(w,S,jgt),M=$.fromQuaternion(P,qgt);$.multiplyByVector(M,o.direction,o.direction),$.multiplyByVector(M,o.up,o.up),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up),o._setTransform(D)}}var hTe=new z,mTe=new pn,pTe=new h;function Zgt(e,t,n){l(n.distance)&&(n=n.distance);let i=e._scene,o=i.camera,r=i.canvas,s=e._cameraUnderground,a;s?a=t:(a=hTe,a.x=r.clientWidth/2,a.y=r.clientHeight/2);let c=o.getPickRay(a,mTe),u=c.origin,f=c.direction,d=o.position.z,p;d<e._minimumPickingTerrainHeight&&(p=mg(e,a,pTe));let g;if(l(p)&&(g=h.distance(u,p)),s){let m=sTe(e,c,d);l(g)?g=Math.min(g,m):g=m}if(!l(g)){let m=h.UNIT_X;g=-h.dot(m,u)/h.dot(m,f)}cZ(e,t,n,e._zoomFactor,g)}function $gt(e){let n=e._scene.camera;if(!F.equals(F.IDENTITY,n.transform))pl(e,e.enableRotate,e.rotateEventTypes,Qu,e.inertiaSpin,"_lastInertiaSpinMovement"),pl(e,e.enableZoom,e.zoomEventTypes,gTe,e.inertiaZoom,"_lastInertiaZoomMovement");else{let i=e._tweens;if(e._aggregator.anyButtonDown&&i.removeAll(),pl(e,e.enableTilt,e.tiltEventTypes,Ygt,e.inertiaSpin,"_lastInertiaTiltMovement"),pl(e,e.enableTranslate,e.translateEventTypes,Ugt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),pl(e,e.enableZoom,e.zoomEventTypes,Zgt,e.inertiaZoom,"_lastInertiaZoomMovement"),pl(e,e.enableLook,e.lookEventTypes,Ju),!e._aggregator.anyButtonDown&&!i.contains(e._tween)){let o=n.createCorrectPositionTween(e.bounceAnimationTime);l(o)&&(e._tween=i.add(o))}i.update()}}var Qgt=new pn,Jgt=new ln(h.UNIT_X,0),eyt=new h,tyt=new h;function lZ(e,t,n){let i=e._scene,o=i.camera,r=o.getPickRay(t.endPosition,Qgt),s=h.clone(o.direction,tyt);i.mode===ne.COLUMBUS_VIEW&&h.fromElements(s.z,s.x,s.y,s);let a=ln.fromPointNormal(n,s,Jgt),c=Qn.rayPlane(r,a,eyt);l(c)&&(s=h.subtract(n,c,s),i.mode===ne.COLUMBUS_VIEW&&h.fromElements(s.y,s.z,s.x,s),h.add(o.position,s,o.position))}var Qbe=new h,_Te=new fe,sZ=new h,aZ=new te,nyt=new h,iyt=new h,oyt=new h;function ryt(e,t,n){let o=e._scene.camera,r=e._cameraUnderground,s=e._ellipsoid;if(!F.equals(o.transform,F.IDENTITY)){Qu(e,t,n);return}let a,c,u=s.geodeticSurfaceNormal(o.position,nyt);if(z.equals(t,e._rotateMousePosition)){if(e._looking)Ju(e,t,n,u);else if(e._rotating)Qu(e,t,n);else if(e._strafing)lTe(e,n);else{if(h.magnitude(o.position)<h.magnitude(e._rotateStartPosition))return;a=h.magnitude(e._rotateStartPosition),c=sZ,c.x=c.y=c.z=a,s=te.fromCartesian3(c,aZ),oZ(e,t,n,s)}return}e._looking=!1,e._rotating=!1,e._strafing=!1;let f=s.cartesianToCartographic(o.positionWC,_Te).height,d=e._globe;if(l(d)&&f<e._minimumPickingTerrainHeight){let p=mg(e,n.startPosition,oyt);if(l(p)){let g=!1,m=o.getPickRay(n.startPosition,rTe);if(r)g=!0,cTe(e,m,p,p);else{let x=s.geodeticSurfaceNormal(p,iyt);Math.abs(h.dot(m.direction,x))<.05?g=!0:g=h.magnitude(o.position)<h.magnitude(p)}g?(z.clone(t,e._strafeEndMousePosition),h.clone(p,e._strafeStartPosition),e._strafing=!0,lZ(e,n,e._strafeStartPosition)):(a=h.magnitude(p),c=sZ,c.x=c.y=c.z=a,s=te.fromCartesian3(c,aZ),oZ(e,t,n,s),h.clone(p,e._rotateStartPosition))}else e._looking=!0,Ju(e,t,n,u)}else l(o.pickEllipsoid(n.startPosition,e._ellipsoid,Qbe))?(oZ(e,t,n,e._ellipsoid),h.clone(Qbe,e._rotateStartPosition)):f>e._minimumTrackBallHeight?(e._rotating=!0,Qu(e,t,n)):(e._looking=!0,Ju(e,t,n,u));z.clone(t,e._rotateMousePosition)}function Qu(e,t,n,i,o,r){o=y(o,!1),r=y(r,!1);let s=e._scene,a=s.camera,c=s.canvas,u=a.constrainedAxis;l(i)&&(a.constrainedAxis=i);let f=h.magnitude(a.position),d=e._rotateFactor*(f-e._rotateRateRangeAdjustment);d>e._maximumRotateRate&&(d=e._maximumRotateRate),d<e._minimumRotateRate&&(d=e._minimumRotateRate);let p=(n.startPosition.x-n.endPosition.x)/c.clientWidth,g=(n.startPosition.y-n.endPosition.y)/c.clientHeight;p=Math.min(p,e.maximumMovementRatio),g=Math.min(g,e.maximumMovementRatio);let m=d*p*Math.PI*2,x=d*g*Math.PI;o||a.rotateRight(m),r||a.rotateUp(x),a.constrainedAxis=u}var iZ=oe.clone(oe.UNIT_W),Jbe=oe.clone(oe.UNIT_W),UH=new h,pv=new h,zH=new h,eTe=new h,syt=new z,ayt=new z,cyt=new z,lyt=new z,uyt=new pn;function oZ(e,t,n,i){let o=e._scene,r=o.camera,s=z.clone(n.startPosition,syt),a=z.clone(n.endPosition,ayt),c=i.cartesianToCartographic(r.positionWC,_Te).height,u,f;if(!n.inertiaEnabled&&c<e._minimumPickingTerrainHeight&&(u=h.clone(e._panLastWorldPosition,iZ),!l(e._globe)&&!z.equalsEpsilon(s,e._panLastMousePosition)&&(u=mg(e,s,iZ)),!l(e._globe)&&l(u))){let d=h.subtract(u,r.positionWC,pv),p=h.multiplyByScalar(r.directionWC,h.dot(r.directionWC,d),pv),g=h.magnitude(p),m=r.frustum.getPixelDimensions(o.drawingBufferWidth,o.drawingBufferHeight,g,o.pixelRatio,lyt),x=z.subtract(a,s,cyt),b=h.multiplyByScalar(r.rightWC,x.x*m.x,pv),T=h.normalize(r.positionWC,oTe),C=r.getPickRay(a,uyt).direction,A=h.subtract(C,h.projectVector(C,r.rightWC,zH),zH),E=h.angleBetween(A,r.directionWC),v=1;l(r.frustum.fov)&&(v=Math.max(Math.tan(E),.1));let D=Math.abs(h.dot(r.directionWC,T)),O=-x.y*m.y*2/Math.sqrt(v)*(1-D),I=h.multiplyByScalar(C,O,zH);D=Math.abs(h.dot(r.upWC,T));let L=h.multiplyByScalar(r.upWC,-x.y*(1-D)*m.y,eTe);f=h.add(u,b,Jbe),f=h.add(f,I,f),f=h.add(f,L,f),h.clone(f,e._panLastWorldPosition),z.clone(a,e._panLastMousePosition)}if((!l(u)||!l(f))&&(u=r.pickEllipsoid(s,i,iZ),f=r.pickEllipsoid(a,i,Jbe)),!l(u)||!l(f)){e._rotating=!0,Qu(e,t,n);return}if(u=r.worldToCameraCoordinates(u,u),f=r.worldToCameraCoordinates(f,f),l(r.constrainedAxis)){let d=r.constrainedAxis,p=h.mostOrthogonalAxis(d,UH);h.cross(p,d,p),h.normalize(p,p);let g=h.cross(d,p,pv),m=h.magnitude(u),x=h.dot(d,u),b=Math.acos(x/m),T=h.multiplyByScalar(d,x,zH);h.subtract(u,T,T),h.normalize(T,T);let C=h.magnitude(f),A=h.dot(d,f),E=Math.acos(A/C),v=h.multiplyByScalar(d,A,eTe);h.subtract(f,v,v),h.normalize(v,v);let D=Math.acos(h.dot(T,p));h.dot(T,g)<0&&(D=R.TWO_PI-D);let O=Math.acos(h.dot(v,p));h.dot(v,g)<0&&(O=R.TWO_PI-O);let I=D-O,L;h.equalsEpsilon(d,r.position,R.EPSILON2)?L=r.right:L=h.cross(d,r.position,UH);let N=h.cross(d,L,UH),_=h.dot(N,h.subtract(u,d,pv)),S=h.dot(N,h.subtract(f,d,pv)),w;_>0&&S>0?w=E-b:_>0&&S<=0?h.dot(r.position,d)>0?w=-b-E:w=b+E:w=b-E,r.rotateRight(I),r.rotateUp(w)}else{h.normalize(u,u),h.normalize(f,f);let d=h.dot(u,f),p=h.cross(u,f,UH);if(d<1&&!h.equalsEpsilon(p,h.ZERO,R.EPSILON14)){let g=Math.acos(d);r.rotate(p,g)}}}var fyt=new h,dyt=new fe,tTe=0;function gTe(e,t,n){l(n.distance)&&(n=n.distance);let i=n.inertiaEnabled,o=e._ellipsoid,r=e._scene,s=r.camera,a=r.canvas,c=e._cameraUnderground,u;c?u=t:(u=hTe,u.x=a.clientWidth/2,u.y=a.clientHeight/2);let f=s.getPickRay(u,mTe),d,p=o.cartesianToCartographic(s.position,dyt).height,g=Math.abs(tTe)<e.minimumPickingTerrainDistanceWithInertia;(i?g:p<e._minimumPickingTerrainHeight)&&(d=mg(e,u,pTe));let x;if(l(d)&&(x=h.distance(f.origin,d),tTe=x),c){let T=sTe(e,f,p);l(x)?x=Math.min(x,T):x=T}l(x)||(x=p);let b=h.normalize(s.position,fyt);cZ(e,t,n,e._zoomFactor,x,h.dot(b,s.direction))}var yTe=new z,jH=new pn,TB=new h,hyt=new h,xTe=new F,myt=new F,bTe=new F,pyt=new Me,_yt=new $,uZ=new fe,fZ=new h;function gyt(e,t,n){let o=e._scene.camera;if(!F.equals(o.transform,F.IDENTITY))return;if(l(n.angleAndHeight)&&(n=n.angleAndHeight),z.equals(t,e._tiltCenterMousePosition)||(e._tiltOnEllipsoid=!1,e._looking=!1),e._looking){let a=e._ellipsoid.geodeticSurfaceNormal(o.position,fZ);Ju(e,t,n,a);return}let s=e._ellipsoid.cartesianToCartographic(o.position,uZ);e._tiltOnEllipsoid||s.height>e._minimumCollisionTerrainHeight?(e._tiltOnEllipsoid=!0,xyt(e,t,n)):byt(e,t,n)}var yyt=new fe;function xyt(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e.minimumZoomDistance*.25,a=i.cartesianToCartographic(r.positionWC,yyt).height;if(a-s-1<R.EPSILON3&&n.endPosition.y-n.startPosition.y<0)return;let c=o.canvas,u=yTe;u.x=c.clientWidth/2,u.y=c.clientHeight/2;let f=r.getPickRay(u,jH),d,p=Qn.rayEllipsoid(f,i);if(l(p))d=pn.getPoint(f,p.start,TB);else if(a>e._minimumTrackBallHeight){let C=Qn.grazingAltitudeLocation(f,i);if(!l(C))return;let A=i.cartesianToCartographic(C,uZ);A.height=0,d=i.cartographicToCartesian(A,TB)}else{e._looking=!0;let C=e._ellipsoid.geodeticSurfaceNormal(r.position,fZ);Ju(e,t,n,C),z.clone(t,e._tiltCenterMousePosition);return}let g=wt.eastNorthUpToFixedFrame(d,i,xTe),m=e._globe,x=e._ellipsoid;e._globe=void 0,e._ellipsoid=te.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let b=F.clone(r.transform,bTe);r._setTransform(g),Qu(e,t,n,h.UNIT_Z),r._setTransform(b),e._globe=m,e._ellipsoid=x;let T=x.maximumRadius;e._rotateFactor=1/T,e._rotateRateRangeAdjustment=T}function byt(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e._cameraUnderground,a,c,u;if(z.equals(t,e._tiltCenterMousePosition))a=h.clone(e._tiltCenter,TB);else{if(a=mg(e,t,TB),!l(a)){if(c=r.getPickRay(t,jH),u=Qn.rayEllipsoid(c,i),!l(u)){if(i.cartesianToCartographic(r.position,uZ).height<=e._minimumTrackBallHeight){e._looking=!0;let S=e._ellipsoid.geodeticSurfaceNormal(r.position,fZ);Ju(e,t,n,S),z.clone(t,e._tiltCenterMousePosition)}return}a=pn.getPoint(c,u.start,TB)}s&&(l(c)||(c=r.getPickRay(t,jH)),aTe(e,c,a,a)),z.clone(t,e._tiltCenterMousePosition),h.clone(a,e._tiltCenter)}let f=o.canvas,d=yTe;d.x=f.clientWidth/2,d.y=e._tiltCenterMousePosition.y,c=r.getPickRay(d,jH);let p=h.magnitude(a),g=h.fromElements(p,p,p,sZ),m=te.fromCartesian3(g,aZ);if(u=Qn.rayEllipsoid(c,m),!l(u))return;let x=h.magnitude(c.origin)>p?u.start:u.stop,b=pn.getPoint(c,x,hyt),T=wt.eastNorthUpToFixedFrame(a,i,xTe),C=wt.eastNorthUpToFixedFrame(b,m,myt),A=e._globe,E=e._ellipsoid;e._globe=void 0,e._ellipsoid=te.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=h.UNIT_Z,D=F.clone(r.transform,bTe);r._setTransform(C);let O=h.cross(b,r.positionWC,WH);if(h.dot(r.rightWC,O)<0){let _=n.startPosition.y-n.endPosition.y;(s&&_<0||!s&&_>0)&&(v=void 0);let S=r.constrainedAxis;r.constrainedAxis=void 0,Qu(e,t,n,v,!0,!1),r.constrainedAxis=S}else Qu(e,t,n,v,!0,!1);if(r._setTransform(T),Qu(e,t,n,v,!1,!0),l(r.constrainedAxis)){let _=h.cross(r.direction,r.constrainedAxis,WH);h.equalsEpsilon(_,h.ZERO,R.EPSILON6)||(h.dot(_,r.right)<0&&h.negate(_,_),h.cross(_,r.direction,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.up,r.up),h.normalize(r.right,r.right))}r._setTransform(D),e._globe=A,e._ellipsoid=E;let L=E.maximumRadius;e._rotateFactor=1/L,e._rotateRateRangeAdjustment=L;let N=h.clone(r.positionWC,WH);if(e.enableCollisionDetection&&dZ(e,!0),!h.equals(r.positionWC,N)){r._setTransform(C),r.worldToCameraCoordinatesPoint(N,N);let _=h.magnitudeSquared(N);h.magnitudeSquared(r.position)>_&&(h.normalize(r.position,r.position),h.multiplyByScalar(r.position,Math.sqrt(_),r.position));let S=h.angleBetween(N,r.position),w=h.cross(N,r.position,N);h.normalize(w,w);let P=Me.fromAxisAngle(w,S,pyt),M=$.fromQuaternion(P,_yt);$.multiplyByVector(M,r.direction,r.direction),$.multiplyByVector(M,r.up,r.up),h.cross(r.direction,r.up,r.right),h.cross(r.right,r.direction,r.up),r._setTransform(D)}}var Tyt=new z,Ayt=new z,nTe=new pn,iTe=new pn,Cyt=new h,Eyt=new h;function Ju(e,t,n,i){let r=e._scene.camera,s=Tyt;s.x=n.startPosition.x,s.y=0;let a=Ayt;a.x=n.endPosition.x,a.y=0;let c=r.getPickRay(s,nTe),u=r.getPickRay(a,iTe),f=0,d,p;r.frustum instanceof rn?(d=c.origin,p=u.origin,h.add(r.direction,d,d),h.add(r.direction,p,p),h.subtract(d,r.position,d),h.subtract(p,r.position,p),h.normalize(d,d),h.normalize(p,p)):(d=c.direction,p=u.direction);let g=h.dot(d,p);g<1&&(f=Math.acos(g)),f=n.startPosition.x>n.endPosition.x?-f:f;let m=e._horizontalRotationAxis;if(l(i)?r.look(i,-f):l(m)?r.look(m,-f):r.lookLeft(f),s.x=0,s.y=n.startPosition.y,a.x=0,a.y=n.endPosition.y,c=r.getPickRay(s,nTe),u=r.getPickRay(a,iTe),f=0,r.frustum instanceof rn?(d=c.origin,p=u.origin,h.add(r.direction,d,d),h.add(r.direction,p,p),h.subtract(d,r.position,d),h.subtract(p,r.position,p),h.normalize(d,d),h.normalize(p,p)):(d=c.direction,p=u.direction),g=h.dot(d,p),g<1&&(f=Math.acos(g)),f=n.startPosition.y>n.endPosition.y?-f:f,i=y(i,m),l(i)){let x=r.direction,b=h.negate(i,Cyt),T=h.equalsEpsilon(x,i,R.EPSILON2),C=h.equalsEpsilon(x,b,R.EPSILON2);if(!T&&!C){g=h.dot(x,i);let A=R.acosClamped(g);f>0&&f>A&&(f=A-R.EPSILON4),g=h.dot(x,b),A=R.acosClamped(g),f<0&&-f>A&&(f=-A+R.EPSILON4);let E=h.cross(i,x,Eyt);r.look(E,f)}else(T&&f<0||C&&f>0)&&r.look(r.right,-f)}else r.lookUp(f)}function Syt(e){pl(e,e.enableRotate,e.rotateEventTypes,ryt,e.inertiaSpin,"_lastInertiaSpinMovement"),pl(e,e.enableZoom,e.zoomEventTypes,gTe,e.inertiaZoom,"_lastInertiaZoomMovement"),pl(e,e.enableTilt,e.tiltEventTypes,gyt,e.inertiaSpin,"_lastInertiaTiltMovement"),pl(e,e.enableLook,e.lookEventTypes,Ju)}var vyt=new F,wyt=new fe;function dZ(e,t){e._adjustedHeightForTerrain=!0;let n=e._scene,i=n.mode,o=n.globe;if(i===ne.SCENE2D||i===ne.MORPHING)return;let r=n.camera,s=y(o?.ellipsoid,te.WGS84),a=n.mapProjection,c,u;F.equals(r.transform,F.IDENTITY)||(c=F.clone(r.transform,vyt),u=h.magnitude(r.position),r._setTransform(F.IDENTITY));let f=wyt;i===ne.SCENE3D?s.cartesianToCartographic(r.position,f):a.unproject(r.position,f);let d=!1;if(f.height<e._minimumCollisionTerrainHeight){let p=e._scene.globeHeight;if(l(p)){let g=p+e.minimumZoomDistance,m=p-e._lastGlobeHeight,x=m/e._lastGlobeHeight;f.height<g&&(t||Math.abs(x)<=.1)&&(f.height=g,i===ne.SCENE3D?s.cartographicToCartesian(f,r.position):a.project(f,r.position),d=!0),t||Math.abs(x)<=.1?e._lastGlobeHeight=p:e._lastGlobeHeight+=m*.1}}l(c)&&(r._setTransform(c),d&&(h.normalize(r.position,r.position),h.negate(r.position,r.direction),h.multiplyByScalar(r.position,Math.max(u,e.minimumZoomDistance),r.position),h.normalize(r.direction,r.direction),h.cross(r.direction,r.up,r.right),h.cross(r.right,r.direction,r.up)))}AB.prototype.onMap=function(){let e=this._scene,t=e.mode,n=e.camera;return t===ne.COLUMBUS_VIEW?Math.abs(n.position.x)-this._maxCoord.x<0&&Math.abs(n.position.y)-this._maxCoord.y<0:!0};var Dyt=new h,Pyt=new h;AB.prototype.update=function(){let e=this._scene,{camera:t,globe:n,mode:i}=e;F.equals(t.transform,F.IDENTITY)?(this._globe=n,this._ellipsoid=l(this._globe)?this._globe.ellipsoid:e.mapProjection.ellipsoid):(this._globe=void 0,this._ellipsoid=te.UNIT_SPHERE);let{verticalExaggeration:o,verticalExaggerationRelativeHeight:r}=e;this._minimumCollisionTerrainHeight=pr.getHeight(this.minimumCollisionTerrainHeight,o,r),this._minimumPickingTerrainHeight=pr.getHeight(this.minimumPickingTerrainHeight,o,r),this._minimumTrackBallHeight=pr.getHeight(this.minimumTrackBallHeight,o,r),this._cameraUnderground=e.cameraUnderground&&l(this._globe);let s=this._ellipsoid.maximumRadius;this._rotateFactor=1/s,this._rotateRateRangeAdjustment=s,this._adjustedHeightForTerrain=!1;let a=h.clone(t.positionWC,Dyt),c=h.clone(t.directionWC,Pyt);if(i===ne.SCENE2D?wgt(this):i===ne.COLUMBUS_VIEW?(this._horizontalRotationAxis=h.UNIT_Z,$gt(this)):i===ne.SCENE3D&&(this._horizontalRotationAxis=void 0,Syt(this)),this.enableCollisionDetection&&!this._adjustedHeightForTerrain){let u=!h.equals(a,t.positionWC)||!h.equals(c,t.directionWC);dZ(this,u)}this._aggregator.reset()};AB.prototype.isDestroyed=function(){return!1};AB.prototype.destroy=function(){return this._tweens.removeAll(),this._aggregator=this._aggregator&&this._aggregator.destroy(),ue(this)};var CB=AB;var EB=`uniform sampler2D colorTexture; uniform sampler2D colorTexture2; uniform vec2 center; uniform float radius; in vec2 v_textureCoordinates; void main() { vec4 color0 = texture(colorTexture, v_textureCoordinates); vec4 color1 = texture(colorTexture2, v_textureCoordinates); float x = length(gl_FragCoord.xy - center) / radius; float t = smoothstep(0.5, 0.8, x); out_FragColor = mix(color0 + color1, color1, t); } `;var SB=`uniform sampler2D colorTexture; uniform float avgLuminance; uniform float threshold; uniform float offset; in vec2 v_textureCoordinates; float key(float avg) { float guess = 1.5 - (1.5 / (avg * 0.1 + 1.0)); return max(0.0, guess) + 0.1; } // See section 9. "The bright-pass filter" of Realtime HDR Rendering // http://www.cg.tuwien.ac.at/research/publications/2007/Luksch_2007_RHR/Luksch_2007_RHR-RealtimeHDR%20.pdf void main() { vec4 color = texture(colorTexture, v_textureCoordinates); vec3 xyz = czm_RGBToXYZ(color.rgb); float luminance = xyz.r; float scaledLum = key(avgLuminance) * luminance / avgLuminance; float brightLum = max(scaledLum - threshold, 0.0); float brightness = brightLum / (offset + brightLum); xyz.r = brightness; out_FragColor = vec4(czm_XYZToRGB(xyz), 1.0); } `;function pg(){this._sceneFramebuffer=new YT;let e=.125,t=new Array(6);t[0]=new mo({fragmentShader:nu,textureScale:e,forcePowerOfTwo:!0,sampleMode:$u.LINEAR});let n=t[1]=new mo({fragmentShader:SB,uniforms:{avgLuminance:.5,threshold:.25,offset:.1},textureScale:e,forcePowerOfTwo:!0}),i=this;this._delta=1,this._sigma=2,this._blurStep=new z,t[2]=new mo({fragmentShader:M0,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:0},textureScale:e,forcePowerOfTwo:!0}),t[3]=new mo({fragmentShader:M0,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:1},textureScale:e,forcePowerOfTwo:!0}),t[4]=new mo({fragmentShader:nu,sampleMode:$u.LINEAR}),this._uCenter=new z,this._uRadius=void 0,t[5]=new mo({fragmentShader:EB,uniforms:{center:function(){return i._uCenter},radius:function(){return i._uRadius},colorTexture2:function(){return i._sceneFramebuffer.framebuffer.getColorTexture(0)}}}),this._stages=new hl({stages:t});let o=new eA(this),r=t.length;for(let s=0;s<r;++s)t[s]._textureCache=o;this._textureCache=o,this.length=t.length}pg.prototype.get=function(e){return this._stages.get(e)};pg.prototype.getStageByName=function(e){let t=this._stages.length;for(let n=0;n<t;++n){let i=this._stages.get(n);if(i.name===e)return i}};var Iyt=new oe,TTe=new z,Ryt=new z,ATe=new F;function Oyt(e,t,n){let i=t.uniformState,o=i.sunPositionWC,r=i.view,s=i.viewProjection,a=i.projection,c=F.computeViewportTransformation(n,0,1,ATe),u=F.multiplyByPoint(r,o,Iyt),f=wt.pointToGLWindowCoordinates(s,c,o,TTe);u.x+=R.SOLAR_RADIUS;let d=wt.pointToGLWindowCoordinates(a,c,u,u),p=z.magnitude(z.subtract(d,f,d))*30*2,g=Ryt;g.x=p,g.y=p,e._uCenter=z.clone(f,e._uCenter),e._uRadius=Math.max(g.x,g.y)*.15;let m=t.drawingBufferWidth,x=t.drawingBufferHeight,b=e._stages,T=b.get(0),C=T.outputTexture.width,A=T.outputTexture.height,E=new Ge;E.width=C,E.height=A,c=F.computeViewportTransformation(E,0,1,ATe),f=wt.pointToGLWindowCoordinates(s,c,o,TTe),g.x*=C/m,g.y*=A/x;let v=T.scissorRectangle;v.x=Math.max(f.x-g.x*.5,0),v.y=Math.max(f.y-g.y*.5,0),v.width=Math.min(g.x,m),v.height=Math.min(g.y,x);for(let D=1;D<4;++D)Ge.clone(v,b.get(D).scissorRectangle)}pg.prototype.clear=function(e,t,n){this._sceneFramebuffer.clear(e,t,n),this._textureCache.clear(e)};pg.prototype.update=function(e){let t=e.context,n=e.viewport,i=this._sceneFramebuffer;i.update(t,n);let o=i.framebuffer;return this._textureCache.update(t),this._stages.update(t,!1),Oyt(this,t,n),o};pg.prototype.execute=function(e){let t=this._sceneFramebuffer.framebuffer.getColorTexture(0),n=this._stages,i=n.length;n.get(0).execute(e,t);for(let o=1;o<i;++o)n.get(o).execute(e,n.get(o-1).outputTexture)};pg.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(nu,{uniformMap:{colorTexture:function(){return n._stages.get(n._stages.length-1).outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};pg.prototype.isDestroyed=function(){return!1};pg.prototype.destroy=function(){return this._textureCache.destroy(),this._stages.destroy(),ue(this)};var vB=pg;function CTe(){this._cachedShowFrustumsShaders={}}function Myt(e){let t={},n=e.vertexAttributes;for(let i in n)n.hasOwnProperty(i)&&(t[i]=n[i].index);return t}function Lyt(e,t){let n=e.context,i=t,o=i.fragmentShaderSource.clone(),r=[];o.sources=o.sources.map(function(f){f=ze.replaceMain(f,"czm_Debug_main");let d=/out_FragData_(\d+)/g,p;for(;(p=d.exec(f))!==null;)r.indexOf(p[1])===-1&&r.push(p[1]);return f});let s=r.length,a="";a+=`uniform vec3 debugShowCommandsColor; `,a+=`uniform vec3 debugShowFrustumsColor; `,a+=`void main() { czm_Debug_main(); `;let c;if(s>0)for(c=0;c<s;++c)a+=` out_FragData_${r[c]}.rgb *= debugShowCommandsColor; `,a+=` out_FragData_${r[c]}.rgb *= debugShowFrustumsColor; `;else a+=` out_FragColor.rgb *= debugShowCommandsColor; `,a+=` out_FragColor.rgb *= debugShowFrustumsColor; `;a+="}",o.sources.push(a);let u=Myt(i);return $t.fromCache({context:n,vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:o,attributeLocations:u})}var wB=new H;function Nyt(e,t){let n;return l(t.uniformMap)?n=t.uniformMap:n={},l(n.debugShowCommandsColor)||l(n.debugShowFrustumsColor)||(n.debugShowCommandsColor=function(){return e.debugShowCommands?(l(t._debugColor)||(t._debugColor=H.fromRandom()),t._debugColor):H.WHITE},n.debugShowFrustumsColor=function(){return e.debugShowFrustums?(wB.red=t.debugOverlappingFrustums&1?1:0,wB.green=t.debugOverlappingFrustums&2?1:0,wB.blue=t.debugOverlappingFrustums&4?1:0,wB.alpha=1,wB):H.WHITE}),n}var Fyt=new Ze;CTe.prototype.executeDebugShowFrustumsCommand=function(e,t,n){let i=t.shaderProgram.id,o=this._cachedShowFrustumsShaders[i];l(o)||(o=Lyt(e,t.shaderProgram),this._cachedShowFrustumsShaders[i]=o);let r=Ze.shallowClone(t,Fyt);r.shaderProgram=o,r.uniformMap=Nyt(e,t),r.execute(e.context,n)};var DB=CTe;function rA(e,t,n){this._primitive=e,this._tileIndex=t,this._sampleIndex=n,this._metadata={},this._orientedBoundingBox=new Sn}rA.fromKeyframeNode=function(e,t,n,i){let o=new rA(e,t,n),{spatialNode:r,metadata:s}=i;return o._metadata=Byt(e,s,n),o._orientedBoundingBox=Vyt(e,r,n,o._orientedBoundingBox),o};function Byt(e,t,n){if(!l(t))return;let{names:i,types:o}=e.provider,r={};for(let s=0;s<i.length;s++){let a=i[s],c=Ht.getComponentCount(o[s]),u=t[s].slice(n*c,(n+1)*c);r[a]=u}return r}var ETe=new h,kyt=new h;function Vyt(e,t,n,i){let o=t.dimensions,r=o.x*o.y,s=Math.floor(n/r),a=n-s*r,c=Math.floor(a/o.x),u=a-c*o.x,f=h.fromElements(u,c,s,ETe),d=h.divideComponents(h.subtract(f,e._paddingBefore,ETe),e.dimensions,kyt);return e._shape.computeOrientedBoundingBoxForSample(t,e.dimensions,d,i)}Object.defineProperties(rA.prototype,{metadata:{get:function(){return this._metadata}},primitive:{get:function(){return this._primitive}},sampleIndex:{get:function(){return this._sampleIndex}},tileIndex:{get:function(){return this._tileIndex}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox.clone()}}});rA.prototype.hasProperty=function(e){return l(this._metadata[e])};rA.prototype.getNames=function(){return Object.keys(this._metadata)};rA.prototype.getProperty=function(e){return this._metadata[e]};var PB=rA;var IB=`struct Ray { vec3 pos; vec3 dir; vec3 rawDir; }; #if defined(JITTER) /** * Generate a pseudo-random value for a given 2D screen coordinate. * Similar to https://www.shadertoy.com/view/4djSRW with a modified hashscale. */ float hash(vec2 p) { vec3 p3 = fract(vec3(p.xyx) * 50.0); p3 += dot(p3, p3.yzx + 19.19); return fract((p3.x + p3.y) * p3.z); } #endif float minComponent(in vec3 v) { return min(min(v.x, v.y), v.z); } float maxComponent(in vec3 v) { return max(max(v.x, v.y), v.z); } struct PointJacobianT { vec3 point; mat3 jacobianT; }; `;var RB=`// See Intersection.glsl for the definition of intersectScene // See IntersectionUtils.glsl for the definition of nextIntersection // See convertUvToBox.glsl, convertUvToCylinder.glsl, or convertUvToEllipsoid.glsl // for the definition of convertUvToShapeUvSpace. The appropriate function is // selected based on the VoxelPrimitive shape type, and added to the shader in // Scene/VoxelRenderResources.js. // See Octree.glsl for the definitions of TraversalData, SampleData, // traverseOctreeFromBeginning, and traverseOctreeFromExisting // See Megatexture.glsl for the definition of accumulatePropertiesFromMegatexture #define STEP_COUNT_MAX 1000 // Harcoded value because GLSL doesn't like variable length loops #if defined(PICKING_VOXEL) #define ALPHA_ACCUM_MAX 0.1 #else #define ALPHA_ACCUM_MAX 0.98 // Must be > 0.0 and <= 1.0 #endif uniform mat3 u_transformDirectionViewToLocal; uniform vec3 u_cameraPositionUv; uniform float u_stepSize; #if defined(PICKING) uniform vec4 u_pickColor; #endif vec3 getSampleSize(in int level) { vec3 sampleCount = exp2(float(level)) * vec3(u_dimensions); vec3 sampleSizeUv = 1.0 / sampleCount; return scaleShapeUvToShapeSpace(sampleSizeUv); } #define MINIMUM_STEP_SCALAR (0.02) #define SHIFT_FRACTION (0.001) /** * Given a coordinate within a tile, and sample spacings along a ray through * the coordinate, find the distance to the points where the ray entered and * exited the voxel cell, along with the surface normals at those points. * The surface normals are returned in shape space coordinates. */ RayShapeIntersection getVoxelIntersection(in vec3 tileUv, in vec3 sampleSizeAlongRay) { vec3 voxelCoord = tileUv * vec3(u_dimensions); vec3 directions = sign(sampleSizeAlongRay); vec3 positiveDirections = max(directions, 0.0); vec3 entryCoord = mix(ceil(voxelCoord), floor(voxelCoord), positiveDirections); vec3 exitCoord = entryCoord + directions; vec3 distanceFromEntry = -abs((entryCoord - voxelCoord) * sampleSizeAlongRay); float lastEntry = maxComponent(distanceFromEntry); bvec3 isLastEntry = equal(distanceFromEntry, vec3(lastEntry)); vec3 entryNormal = -1.0 * vec3(isLastEntry) * directions; vec4 entry = vec4(entryNormal, lastEntry); vec3 distanceToExit = abs((exitCoord - voxelCoord) * sampleSizeAlongRay); float firstExit = minComponent(distanceToExit); bvec3 isFirstExit = equal(distanceToExit, vec3(firstExit)); vec3 exitNormal = vec3(isFirstExit) * directions; vec4 exit = vec4(exitNormal, firstExit); return RayShapeIntersection(entry, exit); } vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection, in mat3 jacobianT, in float currentT) { // The Jacobian is computed in a space where the shape spans [-1, 1]. // But the ray is marched in a space where the shape fills [0, 1]. // So we need to scale the Jacobian by 2. vec3 gradient = 2.0 * viewRay.rawDir * jacobianT; vec3 sampleSizeAlongRay = getSampleSize(sampleData.tileCoords.w) / gradient; RayShapeIntersection voxelIntersection = getVoxelIntersection(sampleData.tileUv, sampleSizeAlongRay); // Transform normal from shape space to Cartesian space vec3 voxelNormal = normalize(jacobianT * voxelIntersection.entry.xyz); // Compare with the shape intersection, to choose the appropriate normal vec4 voxelEntry = vec4(voxelNormal, currentT + voxelIntersection.entry.w); vec4 entry = intersectionMax(shapeIntersection.entry, voxelEntry); float fixedStep = minComponent(abs(sampleSizeAlongRay)) * u_stepSize; float shift = fixedStep * SHIFT_FRACTION; float dt = voxelIntersection.exit.w + shift; if ((currentT + dt) > shapeIntersection.exit.w) { // Stop at end of shape dt = shapeIntersection.exit.w - currentT + shift; } float stepSize = clamp(dt, fixedStep * MINIMUM_STEP_SCALAR, fixedStep + shift); return vec4(entry.xyz, stepSize); } vec2 packIntToVec2(int value) { float shifted = float(value) / 255.0; float lowBits = fract(shifted); float highBits = floor(shifted) / 255.0; return vec2(highBits, lowBits); } vec2 packFloatToVec2(float value) { float lowBits = fract(value); float highBits = floor(value) / 255.0; return vec2(highBits, lowBits); } int getSampleIndex(in vec3 tileUv) { ivec3 voxelDimensions = u_dimensions; vec3 sampleCoordinate = tileUv * vec3(voxelDimensions); // tileUv = 1.0 is a valid coordinate but sampleIndex = voxelDimensions is not. // (tileUv = 1.0 corresponds to the last sample, at index = voxelDimensions - 1). // Clamp to [0, voxelDimensions - 0.5) to avoid numerical error before flooring vec3 maxCoordinate = vec3(voxelDimensions) - vec3(0.5); sampleCoordinate = clamp(sampleCoordinate, vec3(0.0), maxCoordinate); ivec3 sampleIndex = ivec3(floor(sampleCoordinate)); #if defined(PADDING) voxelDimensions += u_paddingBefore + u_paddingAfter; sampleIndex += u_paddingBefore; #endif // Convert to a 1D index for lookup in a 1D data array return sampleIndex.x + voxelDimensions.x * (sampleIndex.y + voxelDimensions.y * sampleIndex.z); } void main() { vec4 fragCoord = gl_FragCoord; vec2 screenCoord = (fragCoord.xy - czm_viewport.xy) / czm_viewport.zw; // [0,1] vec3 eyeDirection = normalize(czm_windowToEyeCoordinates(fragCoord).xyz); vec3 viewDirWorld = normalize(czm_inverseViewRotation * eyeDirection); // normalize again just in case vec3 viewDirUv = normalize(u_transformDirectionViewToLocal * eyeDirection); // normalize again just in case vec3 viewPosUv = u_cameraPositionUv; #if defined(SHAPE_ELLIPSOID) // viewDirUv has been scaled to a space where the ellipsoid is a sphere. // Undo this scaling to get the raw direction. vec3 rawDir = viewDirUv * u_ellipsoidRadiiUv; Ray viewRayUv = Ray(viewPosUv, viewDirUv, rawDir); #else Ray viewRayUv = Ray(viewPosUv, viewDirUv, viewDirUv); #endif Intersections ix; RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayUv, ix); // Exit early if the scene was completely missed. if (shapeIntersection.entry.w == NO_HIT) { discard; } float currentT = shapeIntersection.entry.w; float endT = shapeIntersection.exit.w; vec3 positionUv = viewPosUv + currentT * viewDirUv; PointJacobianT pointJacobian = convertUvToShapeUvSpaceDerivative(positionUv); // Traverse the tree from the start position TraversalData traversalData; SampleData sampleDatas[SAMPLE_COUNT]; traverseOctreeFromBeginning(pointJacobian.point, traversalData, sampleDatas); vec4 step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection, pointJacobian.jacobianT, currentT); #if defined(JITTER) float noise = hash(screenCoord); // [0,1] currentT += noise * step.w; positionUv += noise * step.w * viewDirUv; #endif FragmentInput fragmentInput; #if defined(STATISTICS) setStatistics(fragmentInput.metadata.statistics); #endif vec4 colorAccum = vec4(0.0); for (int stepCount = 0; stepCount < STEP_COUNT_MAX; ++stepCount) { // Read properties from the megatexture based on the traversal state Properties properties = accumulatePropertiesFromMegatexture(sampleDatas); // Prepare the custom shader inputs copyPropertiesToMetadata(properties, fragmentInput.metadata); fragmentInput.voxel.positionUv = positionUv; fragmentInput.voxel.positionShapeUv = pointJacobian.point; fragmentInput.voxel.positionUvLocal = sampleDatas[0].tileUv; fragmentInput.voxel.viewDirUv = viewDirUv; fragmentInput.voxel.viewDirWorld = viewDirWorld; fragmentInput.voxel.surfaceNormal = step.xyz; fragmentInput.voxel.travelDistance = step.w; fragmentInput.voxel.stepCount = stepCount; fragmentInput.voxel.tileIndex = sampleDatas[0].megatextureIndex; fragmentInput.voxel.sampleIndex = getSampleIndex(sampleDatas[0].tileUv); // Run the custom shader czm_modelMaterial materialOutput; fragmentMain(fragmentInput, materialOutput); // Sanitize the custom shader output vec4 color = vec4(materialOutput.diffuse, materialOutput.alpha); color.rgb = max(color.rgb, vec3(0.0)); color.a = clamp(color.a, 0.0, 1.0); // Pre-multiplied alpha blend colorAccum += (1.0 - colorAccum.a) * vec4(color.rgb * color.a, color.a); // Stop traversing if the alpha has been fully saturated if (colorAccum.a > ALPHA_ACCUM_MAX) { colorAccum.a = ALPHA_ACCUM_MAX; break; } if (step.w == 0.0) { // Shape is infinitely thin. The ray may have hit the edge of a // foreground voxel. Step ahead slightly to check for more voxels step.w == 0.00001; } // Keep raymarching currentT += step.w; positionUv = viewPosUv + currentT * viewDirUv; // Check if there's more intersections. if (currentT > endT) { #if (INTERSECTION_COUNT == 1) break; #else shapeIntersection = nextIntersection(ix); if (shapeIntersection.entry.w == NO_HIT) { break; } else { // Found another intersection. Resume raymarching there currentT = shapeIntersection.entry.w; endT = shapeIntersection.exit.w; positionUv = viewPosUv + currentT * viewDirUv; } #endif } // Traverse the tree from the current ray position. // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step. pointJacobian = convertUvToShapeUvSpaceDerivative(positionUv); traverseOctreeFromExisting(pointJacobian.point, traversalData, sampleDatas); step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection, pointJacobian.jacobianT, currentT); } // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1] colorAccum.a /= ALPHA_ACCUM_MAX; #if defined(PICKING) // If alpha is 0.0 there is nothing to pick if (colorAccum.a == 0.0) { discard; } out_FragColor = u_pickColor; #elif defined(PICKING_VOXEL) // If alpha is 0.0 there is nothing to pick if (colorAccum.a == 0.0) { discard; } vec2 megatextureId = packIntToVec2(sampleDatas[0].megatextureIndex); vec2 sampleIndex = packIntToVec2(getSampleIndex(sampleDatas[0].tileUv)); out_FragColor = vec4(megatextureId, sampleIndex); #else out_FragColor = colorAccum; #endif } `;var OB=`in vec2 position; uniform vec4 u_ndcSpaceAxisAlignedBoundingBox; void main() { vec2 aabbMin = u_ndcSpaceAxisAlignedBoundingBox.xy; vec2 aabbMax = u_ndcSpaceAxisAlignedBoundingBox.zw; vec2 translation = 0.5 * (aabbMax + aabbMin); vec2 scale = 0.5 * (aabbMax - aabbMin); gl_Position = vec4(position * scale + translation, 0.0, 1.0); } `;var MB=`/* Intersection defines #define INTERSECTION_COUNT ### */ #define NO_HIT (-czm_infinity) #define INF_HIT (czm_infinity * 0.5) struct RayShapeIntersection { vec4 entry; vec4 exit; }; vec4 intersectionMin(in vec4 intersect0, in vec4 intersect1) { if (intersect0.w == NO_HIT) { return intersect1; } else if (intersect1.w == NO_HIT) { return intersect0; } return (intersect0.w <= intersect1.w) ? intersect0 : intersect1; } vec4 intersectionMax(in vec4 intersect0, in vec4 intersect1) { return (intersect0.w >= intersect1.w) ? intersect0 : intersect1; } RayShapeIntersection intersectIntersections(in Ray ray, in RayShapeIntersection intersect0, in RayShapeIntersection intersect1) { bool missed = (intersect0.entry.w == NO_HIT) || (intersect1.entry.w == NO_HIT) || (intersect0.exit.w < intersect1.entry.w) || (intersect0.entry.w > intersect1.exit.w); if (missed) { vec4 miss = vec4(normalize(ray.dir), NO_HIT); return RayShapeIntersection(miss, miss); } vec4 entry = intersectionMax(intersect0.entry, intersect1.entry); vec4 exit = intersectionMin(intersect0.exit, intersect1.exit); return RayShapeIntersection(entry, exit); } struct Intersections { // Don't access these member variables directly - call the functions instead. // Store an array of ray-surface intersections. Each intersection is composed of: // .xyz for the surface normal at the intersection point // .w for the T value // The scale of the normal encodes the shape intersection type: // length(intersection.xyz) = 1: positive shape entry // length(intersection.xyz) = 2: positive shape exit // length(intersection.xyz) = 3: negative shape entry // length(intersection.xyz) = 4: negative shape exit // INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections, // so we need twice as many to track ray-*surface* intersections vec4 intersections[INTERSECTION_COUNT * 2]; #if (INTERSECTION_COUNT > 1) // Maintain state for future nextIntersection calls int index; int surroundCount; bool surroundIsPositive; #endif }; RayShapeIntersection getFirstIntersection(in Intersections ix) { return RayShapeIntersection(ix.intersections[0], ix.intersections[1]); } vec4 encodeIntersectionType(vec4 intersection, int index, bool entry) { float scale = float(index > 0) * 2.0 + float(!entry) + 1.0; return vec4(intersection.xyz * scale, intersection.w); } // Use defines instead of real functions because WebGL1 cannot access array with non-constant index. #define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t)) #define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y) #define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = encodeIntersectionType((intersection), int(!positive), (enter)) #define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false) #if (INTERSECTION_COUNT > 1) void initializeIntersections(inout Intersections ix) { // Sort the intersections from min T to max T with bubble sort. // Note: If this sorting function changes, some of the intersection test may // need to be updated. Search for "bubble sort" to find those areas. const int sortPasses = INTERSECTION_COUNT * 2 - 1; for (int n = sortPasses; n > 0; --n) { for (int i = 0; i < sortPasses; ++i) { // The loop should be: for (i = 0; i < n; ++i) {...} but WebGL1 cannot // loop with non-constant condition, so it has to break early instead if (i >= n) { break; } vec4 intersect0 = ix.intersections[i + 0]; vec4 intersect1 = ix.intersections[i + 1]; bool inOrder = intersect0.w <= intersect1.w; ix.intersections[i + 0] = inOrder ? intersect0 : intersect1; ix.intersections[i + 1] = inOrder ? intersect1 : intersect0; } } // Prepare initial state for nextIntersection ix.index = 0; ix.surroundCount = 0; ix.surroundIsPositive = false; } #endif #if (INTERSECTION_COUNT > 1) RayShapeIntersection nextIntersection(inout Intersections ix) { vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT); RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection); const int passCount = INTERSECTION_COUNT * 2; if (ix.index == passCount) { return shapeIntersection; } for (int i = 0; i < passCount; ++i) { // The loop should be: for (i = ix.index; i < passCount; ++i) {...} but WebGL1 cannot // loop with non-constant condition, so it has to continue instead. if (i < ix.index) { continue; } ix.index = i + 1; surfaceIntersection = ix.intersections[i]; int intersectionType = int(length(surfaceIntersection.xyz) - 0.5); bool currShapeIsPositive = intersectionType < 2; bool enter = intMod(intersectionType, 2) == 0; ix.surroundCount += enter ? +1 : -1; ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive; // entering positive or exiting negative if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) { shapeIntersection.entry = surfaceIntersection; } // exiting positive or entering negative after being inside positive bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0; bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive; if (exitPositive || enterNegativeFromPositive) { shapeIntersection.exit = surfaceIntersection; // entry and exit have been found, so the loop can stop if (exitPositive) { // After exiting positive shape there is nothing left to intersect, so jump to the end index. ix.index = passCount; } break; } } return shapeIntersection; } #endif // NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1 `;var LB=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, // setIntersectionPair, INF_HIT, NO_HIT /* intersectDepth defines (set in Scene/VoxelRenderResources.js) #define DEPTH_INTERSECTION_INDEX ### */ uniform mat4 u_transformPositionViewToUv; void intersectDepth(in vec2 screenCoord, in Ray ray, inout Intersections ix) { float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord)); if (logDepthOrDepth != 0.0) { // Calculate how far the ray must travel before it hits the depth buffer. vec4 eyeCoordinateDepth = czm_screenToEyeCoordinates(screenCoord, logDepthOrDepth); eyeCoordinateDepth /= eyeCoordinateDepth.w; vec3 depthPositionUv = vec3(u_transformPositionViewToUv * eyeCoordinateDepth); float t = dot(depthPositionUv - ray.pos, ray.dir); setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(t, +INF_HIT)); } else { // There's no depth at this location. setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(NO_HIT)); } } `;var NB=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, INF_HIT, // NO_HIT, setShapeIntersection /* Clipping plane defines (set in Scene/VoxelRenderResources.js) #define CLIPPING_PLANES_UNION #define CLIPPING_PLANES_COUNT #define CLIPPING_PLANES_INTERSECTION_INDEX */ uniform sampler2D u_clippingPlanesTexture; uniform mat4 u_clippingPlanesMatrix; // Plane is in Hessian Normal Form vec4 intersectPlane(in Ray ray, in vec4 plane) { vec3 n = plane.xyz; // normal float w = plane.w; // -dot(pointOnPlane, normal) float a = dot(ray.pos, n); float b = dot(ray.dir, n); float t = -(w + a) / b; return vec4(n, t); } void intersectClippingPlanes(in Ray ray, inout Intersections ix) { vec4 backSide = vec4(-ray.dir, -INF_HIT); vec4 farSide = vec4(ray.dir, +INF_HIT); RayShapeIntersection clippingVolume; #if (CLIPPING_PLANES_COUNT == 1) // Union and intersection are the same when there's one clipping plane, and the code // is more simplified. vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, 0, u_clippingPlanesMatrix); vec4 intersection = intersectPlane(ray, planeUv); bool reflects = dot(ray.dir, intersection.xyz) < 0.0; clippingVolume.entry = reflects ? backSide : intersection; clippingVolume.exit = reflects ? intersection : farSide; setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); #elif defined(CLIPPING_PLANES_UNION) vec4 firstTransmission = vec4(ray.dir, +INF_HIT); vec4 lastReflection = vec4(-ray.dir, -INF_HIT); for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); vec4 intersection = intersectPlane(ray, planeUv); if (dot(ray.dir, planeUv.xyz) > 0.0) { firstTransmission = intersection.w <= firstTransmission.w ? intersection : firstTransmission; } else { lastReflection = intersection.w >= lastReflection.w ? intersection : lastReflection; } } clippingVolume.entry = backSide; clippingVolume.exit = lastReflection; setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, clippingVolume); clippingVolume.entry = firstTransmission; clippingVolume.exit = farSide; setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, clippingVolume); #else // intersection vec4 lastTransmission = vec4(ray.dir, -INF_HIT); vec4 firstReflection = vec4(-ray.dir, +INF_HIT); for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); vec4 intersection = intersectPlane(ray, planeUv); if (dot(ray.dir, planeUv.xyz) > 0.0) { lastTransmission = intersection.w > lastTransmission.w ? intersection : lastTransmission; } else { firstReflection = intersection.w < firstReflection.w ? intersection: firstReflection; } } if (lastTransmission.w < firstReflection.w) { clippingVolume.entry = lastTransmission; clippingVolume.exit = firstReflection; } else { clippingVolume.entry = vec4(-ray.dir, NO_HIT); clippingVolume.exit = vec4(ray.dir, NO_HIT); } setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); #endif } `;var _v=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, INF_HIT, // RayShapeIntersection vec4 intersectLongitude(in Ray ray, in float angle, in bool positiveNormal) { float normalSign = positiveNormal ? 1.0 : -1.0; vec2 planeNormal = vec2(-sin(angle), cos(angle)) * normalSign; vec2 position = ray.pos.xy; vec2 direction = ray.dir.xy; float approachRate = dot(direction, planeNormal); float distance = -dot(position, planeNormal); float t = (approachRate == 0.0) ? NO_HIT : distance / approachRate; return vec4(planeNormal, 0.0, t); } RayShapeIntersection intersectHalfSpace(in Ray ray, in float angle, in bool positiveNormal) { vec4 intersection = intersectLongitude(ray, angle, positiveNormal); vec4 farSide = vec4(normalize(ray.dir), INF_HIT); bool hitFront = (intersection.w > 0.0) == (dot(ray.pos.xy, intersection.xy) > 0.0); if (!hitFront) { return RayShapeIntersection(intersection, farSide); } else { return RayShapeIntersection(-1.0 * farSide, intersection); } } void intersectFlippedWedge(in Ray ray, in vec2 minMaxAngle, out RayShapeIntersection intersections[2]) { intersections[0] = intersectHalfSpace(ray, minMaxAngle.x, false); intersections[1] = intersectHalfSpace(ray, minMaxAngle.y, true); } bool hitPositiveHalfPlane(in Ray ray, in vec4 intersection, in bool positiveNormal) { float normalSign = positiveNormal ? 1.0 : -1.0; vec2 planeDirection = vec2(intersection.y, -intersection.x) * normalSign; vec2 hit = ray.pos.xy + intersection.w * ray.dir.xy; return dot(hit, planeDirection) > 0.0; } void intersectHalfPlane(in Ray ray, in float angle, out RayShapeIntersection intersections[2]) { vec4 intersection = intersectLongitude(ray, angle, true); vec4 farSide = vec4(normalize(ray.dir), INF_HIT); if (hitPositiveHalfPlane(ray, intersection, true)) { intersections[0].entry = -1.0 * farSide; intersections[0].exit = vec4(-1.0 * intersection.xy, 0.0, intersection.w); intersections[1].entry = intersection; intersections[1].exit = farSide; } else { vec4 miss = vec4(normalize(ray.dir), NO_HIT); intersections[0].entry = -1.0 * farSide; intersections[0].exit = farSide; intersections[1].entry = miss; intersections[1].exit = miss; } } RayShapeIntersection intersectRegularWedge(in Ray ray, in vec2 minMaxAngle) { // Note: works for maxAngle > minAngle + pi, where the "regular wedge" // is actually a negative volume. // Compute intersections with the two planes. // Normals will point toward the "outside" (negative space) vec4 intersect1 = intersectLongitude(ray, minMaxAngle.x, false); vec4 intersect2 = intersectLongitude(ray, minMaxAngle.y, true); // Choose intersection with smallest T as the "first", the other as "last" // Note: first or last could be in the "shadow" wedge, beyond the tip bool inOrder = intersect1.w <= intersect2.w; vec4 first = inOrder ? intersect1 : intersect2; vec4 last = inOrder ? intersect2 : intersect1; bool firstIsAhead = first.w >= 0.0; bool startedInsideFirst = dot(ray.pos.xy, first.xy) < 0.0; bool exitFromInside = firstIsAhead == startedInsideFirst; bool lastIsAhead = last.w > 0.0; bool startedOutsideLast = dot(ray.pos.xy, last.xy) >= 0.0; bool enterFromOutside = lastIsAhead == startedOutsideLast; vec4 farSide = vec4(normalize(ray.dir), INF_HIT); vec4 miss = vec4(normalize(ray.dir), NO_HIT); if (exitFromInside && enterFromOutside) { // Ray crosses both faces of negative wedge, exiting then entering the positive shape return RayShapeIntersection(first, last); } else if (!exitFromInside && enterFromOutside) { // Ray starts inside wedge. last is in shadow wedge, and first is actually the entry return RayShapeIntersection(-1.0 * farSide, first); } else if (exitFromInside && !enterFromOutside) { // First intersection was in the shadow wedge, so last is actually the exit return RayShapeIntersection(last, farSide); } else { // !exitFromInside && !enterFromOutside // Both intersections were in the shadow wedge return RayShapeIntersection(miss, miss); } } `;var FB=`// See IntersectionUtils.glsl for the definitions of Ray, RayShapeIntersection, // NO_HIT, Intersections /* Box defines (set in Scene/VoxelBoxShape.js) #define BOX_INTERSECTION_INDEX ### // always 0 */ uniform vec3 u_renderMinBounds; uniform vec3 u_renderMaxBounds; RayShapeIntersection intersectBox(in Ray ray, in vec3 minBound, in vec3 maxBound) { // Consider the box as the intersection of the space between 3 pairs of parallel planes // Compute the distance along the ray to each plane vec3 t0 = (minBound - ray.pos) / ray.dir; vec3 t1 = (maxBound - ray.pos) / ray.dir; // Identify candidate entries/exits based on distance from ray.pos vec3 entries = min(t0, t1); vec3 exits = max(t0, t1); vec3 directions = sign(ray.dir); // The actual intersection points are the furthest entry and the closest exit float lastEntry = maxComponent(entries); bvec3 isLastEntry = equal(entries, vec3(lastEntry)); vec3 entryNormal = -1.0 * vec3(isLastEntry) * directions; vec4 entry = vec4(entryNormal, lastEntry); float firstExit = minComponent(exits); bvec3 isFirstExit = equal(exits, vec3(firstExit)); vec3 exitNormal = vec3(isLastEntry) * directions; vec4 exit = vec4(exitNormal, firstExit); if (entry.w > exit.w) { entry.w = NO_HIT; exit.w = NO_HIT; } return RayShapeIntersection(entry, exit); } void intersectShape(in Ray ray, inout Intersections ix) { RayShapeIntersection intersection = intersectBox(ray, u_renderMinBounds, u_renderMaxBounds); setShapeIntersection(ix, BOX_INTERSECTION_INDEX, intersection); } `;var BB=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, Intersections, // RayShapeIntersection, setSurfaceIntersection, setShapeIntersection, // intersectIntersections // See IntersectLongitude.glsl for the definitions of intersectHalfPlane, // intersectFlippedWedge, intersectRegularWedge /* Cylinder defines (set in Scene/VoxelCylinderShape.js) #define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN #define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT #define CYLINDER_HAS_RENDER_BOUNDS_ANGLE #define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF #define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF #define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO #define CYLINDER_INTERSECTION_INDEX_RADIUS_MAX #define CYLINDER_INTERSECTION_INDEX_RADIUS_MIN #define CYLINDER_INTERSECTION_INDEX_ANGLE */ // Cylinder uniforms uniform vec2 u_cylinderRenderRadiusMinMax; uniform vec2 u_cylinderRenderHeightMinMax; #if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE) uniform vec2 u_cylinderRenderAngleMinMax; #endif /** * Find the intersection of a ray with the volume defined by two planes of constant z */ RayShapeIntersection intersectHeightBounds(in Ray ray, in vec2 minMaxHeight, in bool convex) { float zPosition = ray.pos.z; float zDirection = ray.dir.z; float tmin = (minMaxHeight.x - zPosition) / zDirection; float tmax = (minMaxHeight.y - zPosition) / zDirection; // Normals point outside the volume float signFlip = convex ? 1.0 : -1.0; vec4 intersectMin = vec4(0.0, 0.0, -1.0 * signFlip, tmin); vec4 intersectMax = vec4(0.0, 0.0, 1.0 * signFlip, tmax); bool topEntry = zDirection < 0.0; vec4 entry = topEntry ? intersectMax : intersectMin; vec4 exit = topEntry ? intersectMin : intersectMax; return RayShapeIntersection(entry, exit); } /** * Find the intersection of a ray with a right cylindrical surface of a given radius * about the z-axis. */ RayShapeIntersection intersectCylinder(in Ray ray, in float radius, in bool convex) { vec2 position = ray.pos.xy; vec2 direction = ray.dir.xy; float a = dot(direction, direction); float b = dot(position, direction); float c = dot(position, position) - radius * radius; float determinant = b * b - a * c; if (determinant < 0.0) { vec4 miss = vec4(normalize(ray.dir), NO_HIT); return RayShapeIntersection(miss, miss); } determinant = sqrt(determinant); float t1 = (-b - determinant) / a; float t2 = (-b + determinant) / a; float signFlip = convex ? 1.0 : -1.0; vec4 intersect1 = vec4(normalize(position + t1 * direction) * signFlip, 0.0, t1); vec4 intersect2 = vec4(normalize(position + t2 * direction) * signFlip, 0.0, t2); return RayShapeIntersection(intersect1, intersect2); } /** * Find the intersection of a ray with a right cylindrical solid of given * radius and height bounds. NOTE: The shape is assumed to be convex. */ RayShapeIntersection intersectBoundedCylinder(in Ray ray, in float radius, in vec2 minMaxHeight) { RayShapeIntersection cylinderIntersection = intersectCylinder(ray, radius, true); RayShapeIntersection heightBoundsIntersection = intersectHeightBounds(ray, minMaxHeight, true); return intersectIntersections(ray, cylinderIntersection, heightBoundsIntersection); } void intersectShape(Ray ray, inout Intersections ix) { // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. // Direction is scaled as well to be in sync with position. ray.pos = ray.pos * 2.0 - 1.0; ray.dir *= 2.0; RayShapeIntersection outerIntersect = intersectBoundedCylinder(ray, u_cylinderRenderRadiusMinMax.y, u_cylinderRenderHeightMinMax); setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MAX, outerIntersect); if (outerIntersect.entry.w == NO_HIT) { return; } #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT) // When the cylinder is perfectly thin it's necessary to sandwich the // inner cylinder intersection inside the outer cylinder intersection. // Without this special case, // [outerMin, outerMax, innerMin, innerMax] will bubble sort to // [outerMin, innerMin, outerMax, innerMax] which will cause the back // side of the cylinder to be invisible because it will think the ray // is still inside the inner (negative) cylinder after exiting the // outer (positive) cylinder. // With this special case, // [outerMin, innerMin, innerMax, outerMax] will bubble sort to // [outerMin, innerMin, innerMax, outerMax] which will work correctly. // Note: If initializeIntersections() changes its sorting function // from bubble sort to something else, this code may need to change. RayShapeIntersection innerIntersect = intersectCylinder(ray, 1.0, false); setSurfaceIntersection(ix, 0, outerIntersect.entry, true, true); // positive, enter setSurfaceIntersection(ix, 1, innerIntersect.entry, false, true); // negative, enter setSurfaceIntersection(ix, 2, innerIntersect.exit, false, false); // negative, exit setSurfaceIntersection(ix, 3, outerIntersect.exit, true, false); // positive, exit #elif defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) RayShapeIntersection innerIntersect = intersectCylinder(ray, u_cylinderRenderRadiusMinMax.x, false); setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MIN, innerIntersect); #endif #if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF) RayShapeIntersection wedgeIntersect = intersectRegularWedge(ray, u_cylinderRenderAngleMinMax); setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect); #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF) RayShapeIntersection wedgeIntersects[2]; intersectFlippedWedge(ray, u_cylinderRenderAngleMinMax, wedgeIntersects); setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersects[0]); setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersects[1]); #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO) RayShapeIntersection wedgeIntersects[2]; intersectHalfPlane(ray, u_cylinderRenderAngleMinMax.x, wedgeIntersects); setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersects[0]); setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersects[1]); #endif } `;var kB=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, INF_HIT, Intersections, // RayShapeIntersection, setSurfaceIntersection, setShapeIntersection // See IntersectLongitude.glsl for the definitions of intersectHalfPlane, // intersectFlippedWedge, intersectRegularWedge /* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF #define ELLIPSOID_INTERSECTION_INDEX_LONGITUDE #define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX #define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN #define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX #define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN */ #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE) uniform vec2 u_ellipsoidRenderLongitudeMinMax; #endif uniform float u_eccentricitySquared; uniform vec2 u_ellipsoidRenderLatitudeSinMinMax; uniform vec2 u_clipMinMaxHeight; RayShapeIntersection intersectZPlane(in Ray ray, in float z) { float t = -ray.pos.z / ray.dir.z; bool startsOutside = sign(ray.pos.z) == sign(z); bool entry = (t >= 0.0) != startsOutside; vec4 intersect = vec4(0.0, 0.0, z, t); vec4 farSide = vec4(normalize(ray.dir), INF_HIT); if (entry) { return RayShapeIntersection(intersect, farSide); } else { return RayShapeIntersection(-1.0 * farSide, intersect); } } RayShapeIntersection intersectHeight(in Ray ray, in float relativeHeight, in bool convex) { // Scale the ray by the ellipsoid axes to make it a unit sphere // Note: approximating ellipsoid + height as an ellipsoid vec3 radiiCorrection = u_ellipsoidRadiiUv / (u_ellipsoidRadiiUv + relativeHeight); vec3 position = ray.pos * radiiCorrection; vec3 direction = ray.dir * radiiCorrection; float a = dot(direction, direction); // ~ 1.0 (or maybe 4.0 if ray is scaled) float b = dot(direction, position); // roughly inside [-1.0, 1.0] when zoomed in float c = dot(position, position) - 1.0; // ~ 0.0 when zoomed in. float determinant = b * b - a * c; // ~ b * b when zoomed in if (determinant < 0.0) { vec4 miss = vec4(normalize(direction), NO_HIT); return RayShapeIntersection(miss, miss); } determinant = sqrt(determinant); // Compute larger root using standard formula float signB = b < 0.0 ? -1.0 : 1.0; // The other root may suffer from subtractive cancellation in the standard formula. // Compute it from the first root instead. float t1 = (-b - signB * determinant) / a; float t2 = c / (a * t1); float tmin = min(t1, t2); float tmax = max(t1, t2); float directionScale = convex ? 1.0 : -1.0; vec3 d1 = directionScale * normalize(position + tmin * direction); vec3 d2 = directionScale * normalize(position + tmax * direction); return RayShapeIntersection(vec4(d1, tmin), vec4(d2, tmax)); } /** * Given a circular cone around the z-axis, with apex at the origin, * find the parametric distance(s) along a ray where that ray intersects * the cone. * The cone opening angle is described by the squared cosine of * its half-angle (the angle between the Z-axis and the surface) */ vec2 intersectDoubleEndedCone(in Ray ray, in float cosSqrHalfAngle) { vec3 o = ray.pos; vec3 d = ray.dir; float sinSqrHalfAngle = 1.0 - cosSqrHalfAngle; float aSin = d.z * d.z * sinSqrHalfAngle; float aCos = -dot(d.xy, d.xy) * cosSqrHalfAngle; float a = aSin + aCos; float bSin = d.z * o.z * sinSqrHalfAngle; float bCos = -dot(o.xy, d.xy) * cosSqrHalfAngle; float b = bSin + bCos; float cSin = o.z * o.z * sinSqrHalfAngle; float cCos = -dot(o.xy, o.xy) * cosSqrHalfAngle; float c = cSin + cCos; // determinant = b * b - a * c. But bSin * bSin = aSin * cSin. // Avoid subtractive cancellation by expanding to eliminate these terms float determinant = 2.0 * bSin * bCos + bCos * bCos - aSin * cCos - aCos * cSin - aCos * cCos; if (determinant < 0.0) { return vec2(NO_HIT); } else if (a == 0.0) { // Ray is parallel to cone surface return (b == 0.0) ? vec2(NO_HIT) // Ray is on cone surface : vec2(-0.5 * c / b, NO_HIT); } determinant = sqrt(determinant); // Compute larger root using standard formula float signB = b < 0.0 ? -1.0 : 1.0; float t1 = (-b - signB * determinant) / a; // The other root may suffer from subtractive cancellation in the standard formula. // Compute it from the first root instead. float t2 = c / (a * t1); float tmin = min(t1, t2); float tmax = max(t1, t2); return vec2(tmin, tmax); } /** * Given a point on a conical surface, find the surface normal at that point. */ vec3 getConeNormal(in vec3 p, in bool convex) { // Start with radial component pointing toward z-axis vec2 radial = -abs(p.z) * normalize(p.xy); // Z component points toward opening of cone float zSign = (p.z < 0.0) ? -1.0 : 1.0; float z = length(p.xy) * zSign; // Flip normal if shape is convex float flip = (convex) ? -1.0 : 1.0; return normalize(vec3(radial, z) * flip); } /** * Compute the shift between the ellipsoid origin and the apex of a cone of latitude */ float getLatitudeConeShift(in float sinLatitude) { // Find prime vertical radius of curvature: // the distance along the ellipsoid normal to the intersection with the z-axis float x2 = u_eccentricitySquared * sinLatitude * sinLatitude; float primeVerticalRadius = inversesqrt(1.0 - x2); // Compute a shift from the origin to the intersection of the cone with the z-axis return primeVerticalRadius * u_eccentricitySquared * sinLatitude; } void intersectFlippedCone(in Ray ray, in float cosHalfAngle, out RayShapeIntersection intersections[2]) { // Undo the scaling from ellipsoid to sphere ray.pos = ray.pos * u_ellipsoidRadiiUv; ray.dir = ray.dir * u_ellipsoidRadiiUv; // Shift the ray to account for the latitude cone not being centered at the Earth center ray.pos.z += getLatitudeConeShift(cosHalfAngle); float cosSqrHalfAngle = cosHalfAngle * cosHalfAngle; vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); vec4 miss = vec4(normalize(ray.dir), NO_HIT); vec4 farSide = vec4(normalize(ray.dir), INF_HIT); // Initialize output with no intersections intersections[0].entry = -1.0 * farSide; intersections[0].exit = farSide; intersections[1].entry = miss; intersections[1].exit = miss; if (intersect.x == NO_HIT) { return; } // Find the points of intersection float tmin = intersect.x; float tmax = intersect.y; vec3 p0 = ray.pos + tmin * ray.dir; vec3 p1 = ray.pos + tmax * ray.dir; vec4 intersect0 = vec4(getConeNormal(p0, true), tmin); vec4 intersect1 = vec4(getConeNormal(p1, true), tmax); bool p0InShadowCone = sign(p0.z) != sign(cosHalfAngle); bool p1InShadowCone = sign(p1.z) != sign(cosHalfAngle); if (p0InShadowCone && p1InShadowCone) { // no valid intersections } else if (p0InShadowCone) { intersections[0].exit = intersect1; } else if (p1InShadowCone) { intersections[0].entry = intersect0; } else { intersections[0].exit = intersect0; intersections[1].entry = intersect1; intersections[1].exit = farSide; } } RayShapeIntersection intersectRegularCone(in Ray ray, in float cosHalfAngle, in bool convex) { // Undo the scaling from ellipsoid to sphere ray.pos = ray.pos * u_ellipsoidRadiiUv; ray.dir = ray.dir * u_ellipsoidRadiiUv; // Shift the ray to account for the latitude cone not being centered at the Earth center ray.pos.z += getLatitudeConeShift(cosHalfAngle); float cosSqrHalfAngle = cosHalfAngle * cosHalfAngle; vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); vec4 miss = vec4(normalize(ray.dir), NO_HIT); vec4 farSide = vec4(normalize(ray.dir), INF_HIT); if (intersect.x == NO_HIT) { return RayShapeIntersection(miss, miss); } // Find the points of intersection float tmin = intersect.x; float tmax = intersect.y; vec3 p0 = ray.pos + tmin * ray.dir; vec3 p1 = ray.pos + tmax * ray.dir; vec4 intersect0 = vec4(getConeNormal(p0, convex), tmin); vec4 intersect1 = vec4(getConeNormal(p1, convex), tmax); bool p0InShadowCone = sign(p0.z) != sign(cosHalfAngle); bool p1InShadowCone = sign(p1.z) != sign(cosHalfAngle); if (p0InShadowCone && p1InShadowCone) { return RayShapeIntersection(miss, miss); } else if (p0InShadowCone) { return RayShapeIntersection(intersect1, farSide); } else if (p1InShadowCone) { return RayShapeIntersection(-1.0 * farSide, intersect0); } else { return RayShapeIntersection(intersect0, intersect1); } } void intersectShape(in Ray ray, inout Intersections ix) { // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. // Direction is scaled as well to be in sync with position. ray.pos = ray.pos * 2.0 - 1.0; ray.dir *= 2.0; // Outer ellipsoid RayShapeIntersection outerIntersect = intersectHeight(ray, u_clipMinMaxHeight.y, true); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX, outerIntersect); // Exit early if the outer ellipsoid was missed. if (outerIntersect.entry.w == NO_HIT) { return; } // Inner ellipsoid RayShapeIntersection innerIntersect = intersectHeight(ray, u_clipMinMaxHeight.x, false); if (innerIntersect.entry.w == NO_HIT) { setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN, innerIntersect); } else { // When the ellipsoid is large and thin it's possible for floating point math // to cause the ray to intersect the inner ellipsoid before the outer ellipsoid. // To prevent this from happening, clamp innerIntersect to outerIntersect and // sandwich the inner ellipsoid intersection inside the outer ellipsoid intersection. // Without this special case, // [outerMin, outerMax, innerMin, innerMax] will bubble sort to // [outerMin, innerMin, outerMax, innerMax] which will cause the back // side of the ellipsoid to be invisible because it will think the ray // is still inside the inner (negative) ellipsoid after exiting the // outer (positive) ellipsoid. // With this special case, // [outerMin, innerMin, innerMax, outerMax] will bubble sort to // [outerMin, innerMin, innerMax, outerMax] which will work correctly. // Note: If initializeIntersections() changes its sorting function // from bubble sort to something else, this code may need to change. innerIntersect.entry.w = max(innerIntersect.entry.w, outerIntersect.entry.w); innerIntersect.exit.w = min(innerIntersect.exit.w, outerIntersect.exit.w); setSurfaceIntersection(ix, 0, outerIntersect.entry, true, true); // positive, enter setSurfaceIntersection(ix, 1, innerIntersect.entry, false, true); // negative, enter setSurfaceIntersection(ix, 2, innerIntersect.exit, false, false); // negative, exit setSurfaceIntersection(ix, 3, outerIntersect.exit, true, false); // positive, exit } // Bottom cone #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) RayShapeIntersection bottomConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeSinMinMax.x, false); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) RayShapeIntersection bottomConeIntersection = intersectZPlane(ray, -1.0); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) RayShapeIntersection bottomConeIntersections[2]; intersectFlippedCone(ray, u_ellipsoidRenderLatitudeSinMinMax.x, bottomConeIntersections); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 0, bottomConeIntersections[0]); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 1, bottomConeIntersections[1]); #endif // Top cone #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) RayShapeIntersection topConeIntersections[2]; intersectFlippedCone(ray, u_ellipsoidRenderLatitudeSinMinMax.y, topConeIntersections); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 0, topConeIntersections[0]); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 1, topConeIntersections[1]); #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF) RayShapeIntersection topConeIntersection = intersectZPlane(ray, 1.0); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF) RayShapeIntersection topConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeSinMinMax.y, false); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); #endif // Wedge #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO) RayShapeIntersection wedgeIntersects[2]; intersectHalfPlane(ray, u_ellipsoidRenderLongitudeMinMax.x, wedgeIntersects); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersects[0]); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersects[1]); #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF) RayShapeIntersection wedgeIntersect = intersectRegularWedge(ray, u_ellipsoidRenderLongitudeMinMax); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect); #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF) RayShapeIntersection wedgeIntersects[2]; intersectFlippedWedge(ray, u_ellipsoidRenderLongitudeMinMax, wedgeIntersects); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersects[0]); setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersects[1]); #endif } `;var sA=`// Main intersection function for Voxel scenes. // See IntersectBox.glsl, IntersectCylinder.glsl, or IntersectEllipsoid.glsl // for the definition of intersectShape. The appropriate function is selected // based on the VoxelPrimitive shape type, and added to the shader in // Scene/VoxelRenderResources.js. // See also IntersectClippingPlane.glsl and IntersectDepth.glsl. // See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, // getFirstIntersection, initializeIntersections, nextIntersection. /* Intersection defines (set in Scene/VoxelRenderResources.js) #define INTERSECTION_COUNT ### */ RayShapeIntersection intersectScene(in vec2 screenCoord, in Ray ray, out Intersections ix) { // Do a ray-shape intersection to find the exact starting and ending points. intersectShape(ray, ix); // Exit early if the positive shape was completely missed or behind the ray. RayShapeIntersection intersection = getFirstIntersection(ix); if (intersection.entry.w == NO_HIT) { // Positive shape was completely missed - so exit early. return intersection; } // Clipping planes #if defined(CLIPPING_PLANES) intersectClippingPlanes(ray, ix); #endif // Depth #if defined(DEPTH_TEST) intersectDepth(screenCoord, ray, ix); #endif // Find the first intersection that's in front of the ray #if (INTERSECTION_COUNT > 1) initializeIntersections(ix); for (int i = 0; i < INTERSECTION_COUNT; ++i) { intersection = nextIntersection(ix); if (intersection.exit.w > 0.0) { // Set start to 0.0 when ray is inside the shape. intersection.entry.w = max(intersection.entry.w, 0.0); break; } } #else // Set start to 0.0 when ray is inside the shape. intersection.entry.w = max(intersection.entry.w, 0.0); #endif return intersection; } `;var VB=`/* Box defines (set in Scene/VoxelBoxShape.js) #define BOX_HAS_SHAPE_BOUNDS */ #if defined(BOX_HAS_SHAPE_BOUNDS) uniform vec3 u_boxUvToShapeUvScale; uniform vec3 u_boxUvToShapeUvTranslate; #endif PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) { // For BOX, UV space = shape space, so we can use positionUv as-is, // and the Jacobian is the identity matrix, except that a step of 1 // only spans half the shape space [-1, 1], so the identity is scaled. return PointJacobianT(positionUv, mat3(0.5)); } vec3 convertShapeToShapeUvSpace(in vec3 positionShape) { #if defined(BOX_HAS_SHAPE_BOUNDS) return positionShape * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate; #else return positionShape; #endif } PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) { PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv); pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point); return pointJacobian; } vec3 convertShapeUvToUvSpace(in vec3 shapeUv) { #if defined(BOX_HAS_SHAPE_BOUNDS) return (shapeUv - u_boxUvToShapeUvTranslate) / u_boxUvToShapeUvScale; #else return shapeUv; #endif } vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { #if defined(BOX_HAS_SHAPE_BOUNDS) return shapeUv / u_boxUvToShapeUvScale; #else return shapeUv; #endif }`;var UB=`/* Cylinder defines (set in Scene/VoxelCylinderShape.js) #define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS #define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY #define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED */ #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) uniform vec2 u_cylinderUvToShapeUvRadius; // x = scale, y = offset #endif #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) uniform vec2 u_cylinderUvToShapeUvHeight; // x = scale, y = offset #endif #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) uniform vec2 u_cylinderUvToShapeUvAngle; // x = scale, y = offset #endif #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) uniform vec2 u_cylinderShapeUvAngleMinMax; #endif #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) uniform float u_cylinderShapeUvAngleRangeZeroMid; #endif PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) { // Convert from Cartesian UV space [0, 1] to Cartesian local space [-1, 1] vec3 position = positionUv * 2.0 - 1.0; float radius = length(position.xy); // [0, 1] vec3 radial = normalize(vec3(position.xy, 0.0)); // Shape space height is defined within [0, 1] float height = positionUv.z; // [0, 1] vec3 z = vec3(0.0, 0.0, 1.0); float angle = atan(position.y, position.x); vec3 east = normalize(vec3(-position.y, position.x, 0.0)); vec3 point = vec3(radius, height, angle); mat3 jacobianT = mat3(radial, z, east / length(position.xy)); return PointJacobianT(point, jacobianT); } vec3 convertShapeToShapeUvSpace(in vec3 positionShape) { float radius = positionShape.x; #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) radius = radius * u_cylinderUvToShapeUvRadius.x + u_cylinderUvToShapeUvRadius.y; #endif float height = positionShape.y; #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) height = height * u_cylinderUvToShapeUvHeight.x + u_cylinderUvToShapeUvHeight.y; #endif float angle = (positionShape.z + czm_pi) / czm_twoPi; #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) // Comparing against u_cylinderShapeUvAngleMinMax has precision problems. u_cylinderShapeUvAngleRangeZeroMid is more conservative. angle += float(angle < u_cylinderShapeUvAngleRangeZeroMid); #endif // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) angle = angle > u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.x : angle; #elif defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) angle = angle < u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.y : angle; #endif angle = angle * u_cylinderUvToShapeUvAngle.x + u_cylinderUvToShapeUvAngle.y; #endif return vec3(radius, height, angle); } PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) { PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv); pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point); return pointJacobian; } vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { float radius = shapeUv.x; #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) radius /= u_cylinderUvToShapeUvRadius.x; #endif float height = shapeUv.y; #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) height /= u_cylinderUvToShapeUvHeight.x; #endif float angle = shapeUv.z * czm_twoPi; #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) angle /= u_cylinderUvToShapeUvAngle.x; #endif return vec3(radius, height, angle); } `;var zB=`/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY #define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY #define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE #define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED #define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE */ uniform vec3 u_ellipsoidRadiiUv; // [0,1] uniform vec2 u_evoluteScale; // (radiiUv.x ^ 2 - radiiUv.z ^ 2) * vec2(1.0, -1.0) / radiiUv; uniform vec3 u_ellipsoidInverseRadiiSquaredUv; #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) || defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) uniform vec3 u_ellipsoidShapeUvLongitudeMinMaxMid; #endif #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) uniform vec2 u_ellipsoidUvToShapeUvLongitude; // x = scale, y = offset #endif #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) uniform vec2 u_ellipsoidUvToShapeUvLatitude; // x = scale, y = offset #endif uniform float u_ellipsoidInverseHeightDifferenceUv; // robust iterative solution without trig functions // https://github.com/0xfaded/ellipse_demo/issues/1 // https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse // Extended to return radius of curvature along with the point vec3 nearestPointAndRadiusOnEllipse(vec2 pos, vec2 radii) { vec2 p = abs(pos); vec2 inverseRadii = 1.0 / radii; // We describe the ellipse parametrically: v = radii * vec2(cos(t), sin(t)) // but store the cos and sin of t in a vec2 for efficiency. // Initial guess: t = pi/4 vec2 tTrigs = vec2(0.7071067811865476); // Initial guess of point on ellipsoid vec2 v = radii * tTrigs; // Center of curvature of the ellipse at v vec2 evolute = u_evoluteScale * tTrigs * tTrigs * tTrigs; const int iterations = 3; for (int i = 0; i < iterations; ++i) { // Find the (approximate) intersection of p - evolute with the ellipsoid. vec2 q = normalize(p - evolute) * length(v - evolute); // Update the estimate of t. tTrigs = (q + evolute) * inverseRadii; tTrigs = normalize(clamp(tTrigs, 0.0, 1.0)); v = radii * tTrigs; evolute = u_evoluteScale * tTrigs * tTrigs * tTrigs; } return vec3(v * sign(pos), length(v - evolute)); } PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) { // Convert from UV space [0, 1] to local space [-1, 1] vec3 position = positionUv * 2.0 - 1.0; // Undo the scaling from ellipsoid to sphere position = position * u_ellipsoidRadiiUv; float longitude = atan(position.y, position.x); vec3 east = normalize(vec3(-position.y, position.x, 0.0)); // Convert the 3D position to a 2D position relative to the ellipse (radii.x, radii.z) // (assume radii.y == radii.x) and find the nearest point on the ellipse and its normal float distanceFromZAxis = length(position.xy); vec2 posEllipse = vec2(distanceFromZAxis, position.z); vec3 surfacePointAndRadius = nearestPointAndRadiusOnEllipse(posEllipse, u_ellipsoidRadiiUv.xz); vec2 surfacePoint = surfacePointAndRadius.xy; vec2 normal2d = normalize(surfacePoint * u_ellipsoidInverseRadiiSquaredUv.xz); float latitude = atan(normal2d.y, normal2d.x); vec3 north = vec3(-normal2d.y * normalize(position.xy), abs(normal2d.x)); float heightSign = length(posEllipse) < length(surfacePoint) ? -1.0 : 1.0; float height = heightSign * length(posEllipse - surfacePoint); vec3 up = normalize(cross(east, north)); vec3 point = vec3(longitude, latitude, height); mat3 jacobianT = mat3(east / distanceFromZAxis, north / (surfacePointAndRadius.z + height), up); return PointJacobianT(point, jacobianT); } vec3 convertShapeToShapeUvSpace(in vec3 positionShape) { // Longitude: shift & scale to [0, 1] float longitude = (positionShape.x + czm_pi) / czm_twoPi; // Correct the angle when max < min // Technically this should compare against min longitude - but it has precision problems so compare against the middle of empty space. #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) longitude += float(longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z); #endif // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) longitude = longitude > u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.x : longitude; #endif #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) longitude = longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.y : longitude; #endif #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) longitude = longitude * u_ellipsoidUvToShapeUvLongitude.x + u_ellipsoidUvToShapeUvLongitude.y; #endif // Latitude: shift and scale to [0, 1] float latitude = (positionShape.y + czm_piOverTwo) / czm_pi; #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) latitude = latitude * u_ellipsoidUvToShapeUvLatitude.x + u_ellipsoidUvToShapeUvLatitude.y; #endif // Height: scale to the range [0, 1] float height = 1.0 + positionShape.z * u_ellipsoidInverseHeightDifferenceUv; return vec3(longitude, latitude, height); } PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) { PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv); pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point); return pointJacobian; } vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { // Convert from [0, 1] to radians [-pi, pi] float longitude = shapeUv.x * czm_twoPi; #if defined (ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) longitude /= u_ellipsoidUvToShapeUvLongitude.x; #endif // Convert from [0, 1] to radians [-pi/2, pi/2] float latitude = shapeUv.y * czm_pi; #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) latitude /= u_ellipsoidUvToShapeUvLatitude.x; #endif float height = shapeUv.z / u_ellipsoidInverseHeightDifferenceUv; return vec3(longitude, latitude, height); } `;var HB=`// These octree flags must be in sync with GpuOctreeFlag in VoxelTraversal.js #define OCTREE_FLAG_INTERNAL 0 #define OCTREE_FLAG_LEAF 1 #define OCTREE_FLAG_PACKED_LEAF_FROM_PARENT 2 #define OCTREE_MAX_LEVELS 32 // Harcoded value because GLSL doesn't like variable length loops uniform sampler2D u_octreeInternalNodeTexture; uniform vec2 u_octreeInternalNodeTexelSizeUv; uniform int u_octreeInternalNodeTilesPerRow; #if (SAMPLE_COUNT > 1) uniform sampler2D u_octreeLeafNodeTexture; uniform vec2 u_octreeLeafNodeTexelSizeUv; uniform int u_octreeLeafNodeTilesPerRow; #endif struct OctreeNodeData { int data; int flag; }; struct TraversalData { ivec4 octreeCoords; int parentOctreeIndex; }; struct SampleData { int megatextureIndex; ivec4 tileCoords; vec3 tileUv; #if (SAMPLE_COUNT > 1) float weight; #endif }; // Integer mod: For WebGL1 only int intMod(in int a, in int b) { return a - (b * (a / b)); } int normU8_toInt(in float value) { return int(value * 255.0); } int normU8x2_toInt(in vec2 value) { return int(value.x * 255.0) + 256 * int(value.y * 255.0); } float normU8x2_toFloat(in vec2 value) { return float(normU8x2_toInt(value)) / 65535.0; } OctreeNodeData getOctreeNodeData(in vec2 octreeUv) { vec4 texData = texture(u_octreeInternalNodeTexture, octreeUv); OctreeNodeData data; data.data = normU8x2_toInt(texData.xy); data.flag = normU8x2_toInt(texData.zw); return data; } OctreeNodeData getOctreeChildData(in int parentOctreeIndex, in ivec3 childCoord) { int childIndex = childCoord.z * 4 + childCoord.y * 2 + childCoord.x; int octreeCoordX = intMod(parentOctreeIndex, u_octreeInternalNodeTilesPerRow) * 9 + 1 + childIndex; int octreeCoordY = parentOctreeIndex / u_octreeInternalNodeTilesPerRow; vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); return getOctreeNodeData(octreeUv); } int getOctreeParentIndex(in int octreeIndex) { int octreeCoordX = intMod(octreeIndex, u_octreeInternalNodeTilesPerRow) * 9; int octreeCoordY = octreeIndex / u_octreeInternalNodeTilesPerRow; vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); vec4 parentData = texture(u_octreeInternalNodeTexture, octreeUv); int parentOctreeIndex = normU8x2_toInt(parentData.xy); return parentOctreeIndex; } /** * Convert a position in the uv-space of the tileset bounding shape * into the uv-space of a tile within the tileset */ vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) { // PERFORMANCE_IDEA: use bit-shifting (only in WebGL2) float dimAtLevel = exp2(float(octreeCoords.w)); return shapePosition * dimAtLevel - vec3(octreeCoords.xyz); } vec3 getClampedTileUv(in vec3 shapePosition, in ivec4 octreeCoords) { vec3 tileUv = getTileUv(shapePosition, octreeCoords); return clamp(tileUv, vec3(0.0), vec3(1.0)); } void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) { sampleData.megatextureIndex = data.data; sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT) ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) : octreeCoords; } #if (SAMPLE_COUNT > 1) void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) { int leafIndex = data.data; int leafNodeTexelCount = 2; // Adding 0.5 moves to the center of the texel float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5; float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5; // Get an interpolation weight and a flag to determine whether to read the parent texture vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY); vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0); float lerp = normU8x2_toFloat(leafData0.xy); sampleDatas[0].weight = 1.0 - lerp; sampleDatas[1].weight = lerp; // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1) ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) : octreeCoords; sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1) ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) : octreeCoords; // Get megatexture indices for both samples vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY); vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1); sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy); sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw); } #endif OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) { float sizeAtLevel = exp2(-1.0 * float(traversalData.octreeCoords.w)); vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel; vec3 end = start + vec3(sizeAtLevel); OctreeNodeData childData; for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { // Find out which octree child contains the position // 0 if before center, 1 if after vec3 center = 0.5 * (start + end); vec3 childCoord = step(center, shapePosition); // Get octree coords for the next level down ivec4 octreeCoords = traversalData.octreeCoords; traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1); childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord)); if (childData.flag != OCTREE_FLAG_INTERNAL) { // leaf tile - stop traversing break; } // interior tile - keep going deeper start = mix(start, center, childCoord); end = mix(center, end, childCoord); traversalData.parentOctreeIndex = childData.data; } return childData; } /** * Transform a given position to an octree tile coordinate and a position within that tile, * and find the corresponding megatexture index and texture coordinates */ void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) { traversalData.octreeCoords = ivec4(0); traversalData.parentOctreeIndex = 0; OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0)); if (nodeData.flag != OCTREE_FLAG_LEAF) { nodeData = traverseOctreeDownwards(shapePosition, traversalData); } #if (SAMPLE_COUNT == 1) getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); #else getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); sampleDatas[1].tileUv = getClampedTileUv(shapePosition, sampleDatas[1].tileCoords); #endif } bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) { return clamp(v, minVal, maxVal) == v; } bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) { vec3 tileUv = getTileUv(shapePosition, octreeCoords); bool inside = inRange(tileUv, vec3(0.0), vec3(1.0)); // Assume (!) the position is always inside the root tile. return inside || octreeCoords.w == 0; } void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) { if (insideTile(shapePosition, traversalData.octreeCoords)) { for (int i = 0; i < SAMPLE_COUNT; i++) { sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); } return; } // Go up tree until we find a parent tile containing shapePosition for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { traversalData.octreeCoords.xyz /= 2; traversalData.octreeCoords.w -= 1; if (insideTile(shapePosition, traversalData.octreeCoords)) { break; } traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex); } // Go down tree OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData); #if (SAMPLE_COUNT == 1) getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); #else getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); sampleDatas[1].tileUv = getClampedTileUv(shapePosition, sampleDatas[1].tileCoords); #endif } `;var GB=`// See Octree.glsl for the definitions of SampleData and intMod /* Megatexture defines (set in Scene/VoxelRenderResources.js) #define SAMPLE_COUNT ### #define NEAREST_SAMPLING #define PADDING */ uniform ivec2 u_megatextureSliceDimensions; // number of slices per tile, in two dimensions uniform ivec2 u_megatextureTileDimensions; // number of tiles per megatexture, in two dimensions uniform vec2 u_megatextureVoxelSizeUv; uniform vec2 u_megatextureSliceSizeUv; uniform vec2 u_megatextureTileSizeUv; uniform ivec3 u_dimensions; // does not include padding #if defined(PADDING) uniform ivec3 u_paddingBefore; uniform ivec3 u_paddingAfter; #endif // Integer min, max, clamp: For WebGL1 only int intMin(int a, int b) { return a <= b ? a : b; } int intMax(int a, int b) { return a >= b ? a : b; } int intClamp(int v, int minVal, int maxVal) { return intMin(intMax(v, minVal), maxVal); } vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale) { int indexX = intMod(index, dimensions.x); int indexY = index / dimensions.x; return vec2(indexX, indexY) * uvScale; } /* How is 3D data stored in a 2D megatexture? In this example there is only one loaded tile and it has 2x2x2 voxels (8 voxels total). The data is sliced by Z. The data at Z = 0 is placed in texels (0,0), (0,1), (1,0), (1,1) and the data at Z = 1 is placed in texels (2,0), (2,1), (3,0), (3,1). Note that there could be empty space in the megatexture because it's a power of two. 0 1 2 3 +---+---+---+---+ | | | | | 3 +---+---+---+---+ | | | | | 2 +-------+-------+ |010|110|011|111| 1 |--- ---|--- ---| |000|100|001|101| 0 +-------+-------+ When doing linear interpolation the megatexture needs to be sampled twice: once for the Z slice above the voxel coordinate and once for the slice below. The two slices are interpolated with fract(coord.z - 0.5). For example, a Z coordinate of 1.0 is halfway between two Z slices so the interpolation factor is 0.5. Below is a side view of the 3D voxel grid with voxel coordinates on the left side. 2 +---+ |001| 1 +-z-+ |000| 0 +---+ When doing nearest neighbor the megatexture only needs to be sampled once at the closest Z slice. */ Properties getPropertiesFromMegatexture(in SampleData sampleData) { int tileIndex = sampleData.megatextureIndex; vec3 voxelCoord = sampleData.tileUv * vec3(u_dimensions); ivec3 voxelDimensions = u_dimensions; #if defined(PADDING) voxelDimensions += u_paddingBefore + u_paddingAfter; voxelCoord += vec3(u_paddingBefore); #endif #if defined(NEAREST_SAMPLING) // Round to the center of the nearest voxel voxelCoord = floor(voxelCoord) + vec3(0.5); #endif // Tile location vec2 tileUvOffset = index1DTo2DTexcoord(tileIndex, u_megatextureTileDimensions, u_megatextureTileSizeUv); // Slice location float slice = voxelCoord.z - 0.5; int sliceIndex = int(floor(slice)); int sliceIndex0 = intClamp(sliceIndex, 0, voxelDimensions.z - 1); vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); // Voxel location vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(voxelDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv; // Final location in the megatexture vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset; #if defined(NEAREST_SAMPLING) return getPropertiesFromMegatextureAtUv(uv0); #else float sliceLerp = fract(slice); int sliceIndex1 = intMin(sliceIndex + 1, voxelDimensions.z - 1); vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset; Properties properties0 = getPropertiesFromMegatextureAtUv(uv0); Properties properties1 = getPropertiesFromMegatextureAtUv(uv1); return mixProperties(properties0, properties1, sliceLerp); #endif } // Convert an array of sample datas to a final weighted properties. Properties accumulatePropertiesFromMegatexture(in SampleData sampleDatas[SAMPLE_COUNT]) { #if (SAMPLE_COUNT == 1) return getPropertiesFromMegatexture(sampleDatas[0]); #else // When more than one sample is taken the accumulator needs to start at 0 Properties properties = clearProperties(); for (int i = 0; i < SAMPLE_COUNT; ++i) { float weight = sampleDatas[i].weight; // Avoid reading the megatexture when the weight is 0 as it can be costly. if (weight > 0.0) { Properties tempProperties = getPropertiesFromMegatexture(sampleDatas[i]); tempProperties = scaleProperties(tempProperties, weight); properties = sumProperties(properties, tempProperties); } } return properties; #endif } `;function Uyt(e){let t=new pb;this.shaderBuilder=t;let n=e._customShader,i=_t(e._uniformMap,n.uniformMap);e._uniformMap=i;let o=n.uniforms;for(let p in o)if(o.hasOwnProperty(p)){let g=o[p];t.addUniform(g.type,p,ge.FRAGMENT)}t.addUniform("sampler2D","u_megatextureTextures[METADATA_COUNT]",ge.FRAGMENT),this.uniformMap=i;let r=e._clippingPlanes,s=l(r)&&r.enabled?r.length:0;this.clippingPlanes=r,this.clippingPlanesLength=s,t.addVertexLines([OB]),t.addFragmentLines([n.fragmentShaderText,"#line 0",HB,IB,MB,GB]),s>0&&(t.addDefine("CLIPPING_PLANES",void 0,ge.FRAGMENT),t.addDefine("CLIPPING_PLANES_COUNT",s,ge.FRAGMENT),r.unionClippingRegions&&t.addDefine("CLIPPING_PLANES_UNION",void 0,ge.FRAGMENT),t.addFragmentLines([NB])),e._depthTest&&(t.addDefine("DEPTH_TEST",void 0,ge.FRAGMENT),t.addFragmentLines([LB]));let a=e._provider.shape;a==="BOX"?t.addFragmentLines([VB,FB,sA]):a==="CYLINDER"?t.addFragmentLines([UB,_v,BB,sA]):a==="ELLIPSOID"&&(t.addDefine("SHAPE_ELLIPSOID",void 0,ge.FRAGMENT),t.addFragmentLines([zB,_v,kB,sA])),t.addFragmentLines([RB]);let c=e._shape,u=c.shaderDefines;for(let p in u)if(u.hasOwnProperty(p)){let g=u[p];l(g)&&(g=g===!0?void 0:g,t.addDefine(p,g,ge.FRAGMENT))}let f=c.shaderMaximumIntersectionsLength;s>0&&(t.addDefine("CLIPPING_PLANES_INTERSECTION_INDEX",f,ge.FRAGMENT),s===1?f+=1:r.unionClippingRegions?f+=2:f+=1),e._depthTest&&(t.addDefine("DEPTH_INTERSECTION_INDEX",f,ge.FRAGMENT),f+=1),t.addDefine("INTERSECTION_COUNT",f,ge.FRAGMENT),(!h.equals(e.paddingBefore,h.ZERO)||!h.equals(e.paddingAfter,h.ZERO))&&t.addDefine("PADDING",void 0,ge.FRAGMENT),e._useLogDepth&&t.addDefine("LOG_DEPTH_READ_ONLY",void 0,ge.FRAGMENT),e._jitter&&t.addDefine("JITTER",void 0,ge.FRAGMENT),e._nearestSampling&&t.addDefine("NEAREST_SAMPLING",void 0,ge.FRAGMENT);let d=e._traversal;t.addDefine("SAMPLE_COUNT",`${d._sampleCount}`,ge.FRAGMENT)}var WB=Uyt;function zyt(e,t){let{shaderBuilder:n}=e,{names:i,types:o,componentTypes:r,minimumValues:s,maximumValues:a}=t._provider,c=o.length,u=l(s)&&l(a);n.addDefine("METADATA_COUNT",c,ge.FRAGMENT),u&&n.addDefine("STATISTICS",void 0,ge.FRAGMENT);for(let I=0;I<c;I++){let L=i[I],N=o[I],_=`PropertyStatistics_${L}`,S=`PropertyStatistics_${L}`;n.addStruct(_,S,ge.FRAGMENT);let w=YH(N);n.addStructField(_,w,"min"),n.addStructField(_,w,"max")}let f="Statistics",d="Statistics",p="statistics";n.addStruct(f,d,ge.FRAGMENT);for(let I=0;I<c;I++){let L=i[I],N=`PropertyStatistics_${L}`,_=L;n.addStructField(f,N,_)}let g="Metadata",m="Metadata",x="metadata";n.addStruct(g,m,ge.FRAGMENT),n.addStructField(g,d,p);for(let I=0;I<c;I++){let L=i[I],N=o[I],_=YH(N);n.addStructField(g,_,L)}for(let I=0;I<c;I++){let L=i[I],N=o[I],_=Gyt(N),S=`VoxelProperty_${L}`,w=`VoxelProperty_${L}`;n.addStruct(S,w,ge.FRAGMENT),n.addStructField(S,_,"partialDerivativeLocal"),n.addStructField(S,_,"partialDerivativeWorld"),n.addStructField(S,_,"partialDerivativeView"),n.addStructField(S,_,"partialDerivativeValid")}let b="Voxel",T="Voxel",C="voxel";n.addStruct(b,T,ge.FRAGMENT);for(let I=0;I<c;I++){let L=i[I],N=`VoxelProperty_${L}`;n.addStructField(b,N,L)}n.addStructField(b,"vec3","positionEC"),n.addStructField(b,"vec3","positionUv"),n.addStructField(b,"vec3","positionShapeUv"),n.addStructField(b,"vec3","positionUvLocal"),n.addStructField(b,"vec3","viewDirUv"),n.addStructField(b,"vec3","viewDirWorld"),n.addStructField(b,"vec3","surfaceNormal"),n.addStructField(b,"float","travelDistance"),n.addStructField(b,"int","stepCount"),n.addStructField(b,"int","tileIndex"),n.addStructField(b,"int","sampleIndex");let A="FragmentInput";n.addStruct(A,"FragmentInput",ge.FRAGMENT),n.addStructField(A,m,x),n.addStructField(A,T,C);let v="Properties",D="Properties",O="properties";n.addStruct(v,D,ge.FRAGMENT);for(let I=0;I<c;I++){let L=i[I],N=o[I],_=YH(N);n.addStructField(v,_,L)}{let I="clearProperties";n.addFunction(I,`${D} clearProperties()`,ge.FRAGMENT),n.addFunctionLines(I,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L],_=o[L],S=r[L],w=YH(_,S);n.addFunctionLines(I,[`${O}.${N} = ${w}(0.0);`])}n.addFunctionLines(I,[`return ${O};`])}{let I="sumProperties";n.addFunction(I,`${D} sumProperties(${D} propertiesA, ${D} propertiesB)`,ge.FRAGMENT),n.addFunctionLines(I,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(I,[`${O}.${N} = propertiesA.${N} + propertiesB.${N};`])}n.addFunctionLines(I,[`return ${O};`])}{let I="scaleProperties";n.addFunction(I,`${D} scaleProperties(${D} ${O}, float scale)`,ge.FRAGMENT),n.addFunctionLines(I,[`${D} scaledProperties = ${O};`]);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(I,[`scaledProperties.${N} *= scale;`])}n.addFunctionLines(I,["return scaledProperties;"])}{let I="mixProperties";n.addFunction(I,`${D} mixProperties(${D} propertiesA, ${D} propertiesB, float mixFactor)`,ge.FRAGMENT),n.addFunctionLines(I,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(I,[`${O}.${N} = mix(propertiesA.${N}, propertiesB.${N}, mixFactor);`])}n.addFunctionLines(I,[`return ${O};`])}{let I="copyPropertiesToMetadata";n.addFunction(I,`void copyPropertiesToMetadata(in ${D} ${O}, inout ${m} ${x})`,ge.FRAGMENT);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(I,[`${x}.${N} = ${O}.${N};`])}}if(u){let I="setStatistics";n.addFunction(I,`void setStatistics(inout ${d} ${p})`,ge.FRAGMENT);for(let L=0;L<c;L++){let N=i[L],_=o[L],S=Ht.getComponentCount(_);for(let w=0;w<S;w++){let P=Wyt(_,w),M=s[L][w],B=a[L][w];n.addFunctionLines(I,[`${p}.${N}.min${P} = ${STe(M)};`,`${p}.${N}.max${P} = ${STe(B)};`])}}}{let I="getPropertiesFromMegatextureAtUv";n.addFunction(I,`${D} getPropertiesFromMegatextureAtUv(vec2 texcoord)`,ge.FRAGMENT),n.addFunctionLines(I,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L],_=o[L],S=r[L],w=Hyt(_,S);n.addFunctionLines(I,[`properties.${N} = texture(u_megatextureTextures[${L}], texcoord)${w};`])}n.addFunctionLines(I,[`return ${O};`])}}function YH(e){if(e===Ht.SCALAR)return"float";if(e===Ht.VEC2)return"vec2";if(e===Ht.VEC3)return"vec3";if(e===Ht.VEC4)return"vec4"}function Hyt(e){if(e===Ht.SCALAR)return".r";if(e===Ht.VEC2)return".ra";if(e===Ht.VEC3)return".rgb";if(e===Ht.VEC4)return""}function Gyt(e){if(e===Ht.SCALAR)return"vec3";if(e===Ht.VEC2)return"mat2";if(e===Ht.VEC3)return"mat3";if(e===Ht.VEC4)return"mat4"}function STe(e){let t=e.toString();return t.indexOf(".")===-1&&(t=`${e}.0`),t}function Wyt(e,t){return e===Ht.SCALAR?"":`[${t}]`}var jB=zyt;function jyt(e,t){let n=new WB(e);jB(n,e);let{shaderBuilder:i,clippingPlanes:o,clippingPlanesLength:r}=n;if(r>0){let T="getClippingPlane",C=tg(o,t),A=0,E=C.indexOf(")")+1,v=C.indexOf("{",E)+1,D=C.indexOf("}",v),O=C.slice(A,E),I=C.slice(v,D);i.addFunction(T,O,ge.FRAGMENT),i.addFunctionLines(T,[I])}let s=i.clone();s.addDefine("PICKING",void 0,ge.FRAGMENT);let a=i.clone();a.addDefine("PICKING_VOXEL",void 0,ge.FRAGMENT);let c=i.buildShaderProgram(t),u=s.buildShaderProgram(t),f=a.buildShaderProgram(t),d=Ve.fromCache({cull:{enabled:!0,face:hi.BACK},depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}),p=t.getViewportQuadVertexArray(),g=e._depthTest,m=new Ze({vertexArray:p,primitiveType:Le.TRIANGLES,renderState:d,shaderProgram:c,uniformMap:n.uniformMap,modelMatrix:e._compoundModelMatrix,pass:Ee.VOXELS,executeInClosestFrustum:!0,owner:this,cull:g,occlude:g}),x=Ze.shallowClone(m,new Ze);x.shaderProgram=u,x.pickOnly=!0;let b=Ze.shallowClone(m,new Ze);if(b.shaderProgram=f,b.pickOnly=!0,l(e._drawCommand)){let T=e._drawCommand;T.shaderProgram=T.shaderProgram&&T.shaderProgram.destroy()}if(l(e._drawCommandPick)){let T=e._drawCommandPick;T.shaderProgram=T.shaderProgram&&T.shaderProgram.destroy()}if(l(e._drawCommandPickVoxel)){let T=e._drawCommandPickVoxel;T.shaderProgram=T.shaderProgram&&T.shaderProgram.destroy()}e._drawCommand=m,e._drawCommandPick=x,e._drawCommandPickVoxel=b}var qB=jyt;function iu(){this.orientedBoundingBox=new Sn,this.boundingSphere=new ae,this.boundTransform=new F,this.shapeTransform=new F,this._minBounds=h.clone(iu.DefaultMinBounds,new h),this._maxBounds=h.clone(iu.DefaultMaxBounds,new h),this.shaderUniforms={renderMinBounds:new h,renderMaxBounds:new h,boxUvToShapeUvScale:new h,boxUvToShapeUvTranslate:new h},this.shaderDefines={BOX_INTERSECTION_INDEX:void 0,BOX_HAS_SHAPE_BOUNDS:void 0},this.shaderMaximumIntersectionsLength=0}var qyt=new h,hZ=new h,Yyt=new $,Xyt=new h,Kyt=new h,Zyt=new h,$yt=new h,vTe=F.fromRotationTranslation($.fromUniformScale(.5,new $),new h(.5,.5,.5),new F);iu.prototype.update=function(e,t,n,i,o){i=y(i,iu.DefaultMinBounds),o=y(o,iu.DefaultMaxBounds);let r=iu.DefaultMinBounds,s=iu.DefaultMaxBounds;t=this._minBounds=h.clamp(t,r,s,this._minBounds),n=this._maxBounds=h.clamp(n,r,s,this._maxBounds),i=h.clamp(i,r,s,Xyt),o=h.clamp(o,r,s,Kyt);let a=h.clamp(t,i,o,Zyt),c=h.clamp(n,i,o,$yt),u=F.getScale(e,hZ);if(a.x>c.x||a.y>c.y||a.z>c.z||(a.x===c.x)+(a.y===c.y)+(a.z===c.z)>=2||i.x>o.x||i.y>o.y||i.z>o.z||u.x===0||u.y===0||u.z===0)return!1;this.shapeTransform=F.clone(e,this.shapeTransform),this.orientedBoundingBox=pZ(a,c,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ae.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let{shaderUniforms:f,shaderDefines:d}=this;for(let m in d)d.hasOwnProperty(m)&&(d[m]=void 0);let p=!h.equals(t,r)||!h.equals(n,s),g=0;if(d.BOX_INTERSECTION_INDEX=g,g+=1,f.renderMinBounds=F.multiplyByPoint(vTe,a,f.renderMinBounds),f.renderMaxBounds=F.multiplyByPoint(vTe,c,f.renderMaxBounds),p){d.BOX_HAS_SHAPE_BOUNDS=!0;let m=t,x=n;f.boxUvToShapeUvScale=h.fromElements(2/(m.x===x.x?1:x.x-m.x),2/(m.y===x.y?1:x.y-m.y),2/(m.z===x.z?1:x.z-m.z),f.boxUvToShapeUvScale),f.boxUvToShapeUvTranslate=h.fromElements(-f.boxUvToShapeUvScale.x*(m.x*.5+.5),-f.boxUvToShapeUvScale.y*(m.y*.5+.5),-f.boxUvToShapeUvScale.z*(m.z*.5+.5),f.boxUvToShapeUvTranslate)}return this.shaderMaximumIntersectionsLength=g,!0};var XH=new h,mZ=new h;iu.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minBounds,s=this._maxBounds,a=1/Math.pow(2,e),c=h.fromElements(R.lerp(r.x,s.x,a*t),R.lerp(r.y,s.y,a*n),R.lerp(r.z,s.z,a*i),XH),u=h.fromElements(R.lerp(r.x,s.x,a*(t+1)),R.lerp(r.y,s.y,a*(n+1)),R.lerp(r.z,s.z,a*(i+1)),mZ);return pZ(c,u,this.shapeTransform,o)};var wTe=new h;iu.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,wTe),s=h.multiplyByScalar(r,o,wTe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,XH),o,XH),c=h.add(a,s,mZ),u=this._minBounds,f=this._maxBounds,d=h.fromElements(R.lerp(u.x,f.x,a.x),R.lerp(u.y,f.y,a.y),R.lerp(u.z,f.z,a.z),XH),p=h.fromElements(R.lerp(u.x,f.x,c.x),R.lerp(u.y,f.y,c.y),R.lerp(u.z,f.z,c.z),mZ);return pZ(d,p,this.shapeTransform,i)};iu.DefaultMinBounds=Object.freeze(new h(-1,-1,-1));iu.DefaultMaxBounds=Object.freeze(new h(1,1,1));function pZ(e,t,n,i){let o=iu.DefaultMinBounds,r=iu.DefaultMaxBounds;if(h.equals(e,o)&&h.equals(t,r))i.center=F.getTranslation(n,i.center),i.halfAxes=F.getMatrix3(n,i.halfAxes);else{let a=F.getScale(n,hZ),c=h.midpoint(e,t,qyt);i.center=F.multiplyByPoint(n,c,i.center),a=h.fromElements(a.x*.5*(t.x-e.x),a.y*.5*(t.y-e.y),a.z*.5*(t.z-e.z),hZ);let u=F.getRotation(n,Yyt);i.halfAxes=$.setScale(u,a,i.halfAxes)}return i}var rp=iu;function $r(){this.orientedBoundingBox=new Sn,this.boundingSphere=new ae,this.boundTransform=new F,this.shapeTransform=new F,this._minimumRadius=$r.DefaultMinBounds.x,this._maximumRadius=$r.DefaultMaxBounds.x,this._minimumHeight=$r.DefaultMinBounds.y,this._maximumHeight=$r.DefaultMaxBounds.y,this._minimumAngle=$r.DefaultMinBounds.z,this._maximumAngle=$r.DefaultMaxBounds.z,this.shaderUniforms={cylinderRenderHeightMinMax:new z,cylinderRenderRadiusMinMax:new z,cylinderRenderAngleMinMax:new z,cylinderUvToShapeUvRadius:new z,cylinderUvToShapeUvHeight:new z,cylinderUvToShapeUvAngle:new z,cylinderShapeUvAngleMinMax:new z,cylinderShapeUvAngleRangeZeroMid:0},this.shaderDefines={CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MAX:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MIN:void 0,CYLINDER_INTERSECTION_INDEX_ANGLE:void 0},this.shaderMaximumIntersectionsLength=0}var RTe=new h;$r.prototype.update=function(e,t,n,i,o){i=y(i,$r.DefaultMinBounds),o=y(o,$r.DefaultMaxBounds);let r=$r.DefaultMinBounds.x,s=$r.DefaultMaxBounds.x,a=$r.DefaultMinBounds.y,c=$r.DefaultMaxBounds.y,u=$r.DefaultMinBounds.z,f=$r.DefaultMaxBounds.z,d=f-u,p=.5*d,g=R.EPSILON10,m=R.EPSILON3,x=R.EPSILON10,b=R.clamp(t.x,r,s),T=R.clamp(n.x,r,s),C=R.clamp(i.x,r,s),A=R.clamp(o.x,r,s),E=Math.max(b,C),v=Math.min(T,A),D=R.clamp(t.y,a,c),O=R.clamp(n.y,a,c),I=R.clamp(i.y,a,c),L=R.clamp(o.y,a,c),N=Math.max(D,I),_=Math.min(O,L),S=R.negativePiToPi(t.z),w=R.negativePiToPi(n.z),P=R.negativePiToPi(i.z),M=R.negativePiToPi(o.z),B=Math.max(S,P),U=Math.min(w,M),V=F.getScale(e,RTe);if(v===0||E>v||N>_||R.equalsEpsilon(V.x,0,void 0,g)||R.equalsEpsilon(V.y,0,void 0,g)||R.equalsEpsilon(V.z,0,void 0,g))return!1;this._minimumRadius=b,this._maximumRadius=T,this._minimumHeight=D,this._maximumHeight=O,this._minimumAngle=S,this._maximumAngle=w,this.shapeTransform=F.clone(e,this.shapeTransform),this.orientedBoundingBox=gZ(E,v,N,_,B,U,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ae.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let Y=b===r&&T===s,W=D===a&&O===c,Q=w<S,j=w-S+Q*d,K=j>p+x&&j<d-x,Z=j<p-x,he=j>=p-x&&j<=p+x,be=K||Z||he,re=R.equalsEpsilon(S,u,void 0,m),_e=R.equalsEpsilon(w,f,void 0,m),xe=E===r,Ce=U<B,we=U-B+Ce*d,Oe=we>=p-x&&we<d-x,ke=we>x&&we<p-x,At=we<=x,Bt=Oe||ke||At,{shaderUniforms:rt,shaderDefines:Qe}=this;for(let ht in Qe)Qe.hasOwnProperty(ht)&&(Qe[ht]=void 0);let Kt=0;if(Qe.CYLINDER_INTERSECTION_INDEX_RADIUS_MAX=Kt,Kt+=1,xe||(Qe.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN=!0,Qe.CYLINDER_INTERSECTION_INDEX_RADIUS_MIN=Kt,Kt+=1),rt.cylinderRenderRadiusMinMax=z.fromElements(E,v,rt.cylinderRenderRadiusMinMax),E===v&&(Qe.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT=!0),!Y){Qe.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS=!0;let ht=T-b,mt=0,Zt=1;ht!==0&&(mt=1/ht,Zt=-b/ht),rt.cylinderUvToShapeUvRadius=z.fromElements(mt,Zt,rt.cylinderUvToShapeUvRadius)}if(!W){Qe.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT=!0;let ht=O-D,mt=0,Zt=1;ht!==0&&(mt=2/ht,Zt=-(D+1)/ht),rt.cylinderUvToShapeUvHeight=z.fromElements(mt,Zt,rt.cylinderUvToShapeUvHeight)}if(rt.cylinderRenderHeightMinMax=z.fromElements(N,_,rt.cylinderRenderHeightMinMax),Q&&(Qe.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED=!0),Bt&&(Qe.CYLINDER_HAS_RENDER_BOUNDS_ANGLE=!0,Qe.CYLINDER_INTERSECTION_INDEX_ANGLE=Kt,Oe?(Qe.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF=!0,Kt+=1):ke?(Qe.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF=!0,Kt+=2):At&&(Qe.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0,Kt+=2),rt.cylinderRenderAngleMinMax=z.fromElements(B,U,rt.cylinderRenderAngleMinMax)),be){Qe.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE=!0,re&&(Qe.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY=!0),_e&&(Qe.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY=!0);let ht=(S-u)/d,mt=(w-u)/d,Zt=1-j/d;if(rt.cylinderShapeUvAngleMinMax=z.fromElements(ht,mt,rt.cylinderShapeUvAngleMinMax),rt.cylinderShapeUvAngleRangeZeroMid=(mt+.5*Zt)%1,j<=x)rt.cylinderUvToShapeUvAngle=z.fromElements(0,1,rt.cylinderUvToShapeUvAngle);else{let me=d/j,Ae=-(S-u)/j;rt.cylinderUvToShapeUvAngle=z.fromElements(me,Ae,rt.cylinderUvToShapeUvAngle)}}return this.shaderMaximumIntersectionsLength=Kt,!0};$r.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minimumRadius,s=this._maximumRadius,a=this._minimumHeight,c=this._maximumHeight,u=this._minimumAngle,f=this._maximumAngle,d=1/Math.pow(2,e),p=R.lerp(r,s,t*d),g=R.lerp(r,s,(t+1)*d),m=R.lerp(a,c,n*d),x=R.lerp(a,c,(n+1)*d),b=R.lerp(u,f,i*d),T=R.lerp(u,f,(i+1)*d);return gZ(p,g,m,x,b,T,this.shapeTransform,o)};var DTe=new h,PTe=new h,Qyt=new h;$r.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,DTe),s=h.multiplyByScalar(r,o,DTe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,PTe),o,PTe),c=h.add(a,s,Qyt),u=this._minimumRadius,f=this._maximumRadius,d=this._minimumHeight,p=this._maximumHeight,g=this._minimumAngle,m=this._maximumAngle,x=R.lerp(u,f,a.x),b=R.lerp(u,f,c.x),T=R.lerp(d,p,a.y),C=R.lerp(d,p,c.y),A=R.lerp(g,m,a.z),E=R.lerp(g,m,c.z);return gZ(x,b,T,C,A,E,this.shapeTransform,i)};$r.DefaultMinBounds=Object.freeze(new h(0,-1,-R.PI));$r.DefaultMaxBounds=Object.freeze(new h(1,1,+R.PI));var Jyt=5,e0t=new Array(Jyt),t0t=new h,n0t=new $,i0t=new F,o0t=new F,r0t=new F,_Z=new F,s0t=new h,a0t=new h,c0t=new h,OTe=new Array(8);for(let e=0;e<8;e++)OTe[e]=new h;function ITe(e,t,n){return Math.abs(oe.dot(e,t))<n}function l0t(e){let t=F.getColumn(e,0,s0t),n=F.getColumn(e,1,a0t),i=F.getColumn(e,2,c0t),o=R.EPSILON4;return ITe(t,n,o)&&ITe(n,i,o)}function u0t(e,t){let n=OTe;h.fromElements(-.5,-.5,-.5,n[0]),h.fromElements(-.5,-.5,.5,n[1]),h.fromElements(-.5,.5,-.5,n[2]),h.fromElements(-.5,.5,.5,n[3]),h.fromElements(.5,-.5,-.5,n[4]),h.fromElements(.5,-.5,.5,n[5]),h.fromElements(.5,.5,-.5,n[6]),h.fromElements(.5,.5,.5,n[7]);for(let i=0;i<8;++i)F.multiplyByPoint(e,n[i],n[i]);return Sn.fromPoints(n,t)}function gZ(e,t,n,i,o,r,s,a){let c=$r.DefaultMinBounds,u=$r.DefaultMaxBounds,f=c.x,d=u.x,p=c.y,g=u.y,m=c.z,x=u.z;if(e===f&&t===d&&n===p&&i===g&&o===m&&r===x)return a.center=F.getTranslation(s,a.center),a.halfAxes=F.getMatrix3(s,a.halfAxes),a;r<o&&(r+=R.TWO_PI);let T=r-o,C=o+T*.5,A=e0t,E=0;A[E++]=o,A[E++]=r,A[E++]=C,T>R.PI&&(A[E++]=C-R.PI_OVER_TWO,A[E++]=C+R.PI_OVER_TWO);let v=1,D=1,O=-1,I=-1;for(let Q=0;Q<E;++Q){let j=A[Q]-C,K=Math.cos(j),Z=Math.sin(j),he=K*e,be=Z*e,re=K*t,_e=Z*t;v=Math.min(v,he),D=Math.min(D,be),v=Math.min(v,re),D=Math.min(D,_e),O=Math.max(O,he),I=Math.max(I,be),O=Math.max(O,re),I=Math.max(I,_e)}let L=O-v,N=I-D,_=i-n,S=(v+O)*.5,w=(D+I)*.5,P=(n+i)*.5,M=h.fromElements(S,w,P,t0t),B=$.fromRotationZ(C,n0t),U=h.fromElements(L,N,_,RTe),V=F.fromScale(U,r0t),G=F.fromRotation(B,o0t),k=F.fromTranslation(M,i0t),Y=F.multiplyTransformation(G,F.multiplyTransformation(k,V,_Z),_Z),W=F.multiplyTransformation(s,Y,_Z);return l0t(W)?Sn.fromTransformation(W,a):u0t(W,a)}var sp=$r;function _g(){this.orientedBoundingBox=new Sn,this.boundingSphere=new ae,this.boundTransform=new F,this.shapeTransform=new F,this._rectangle=new se,this._minimumHeight=_g.DefaultMinBounds.z,this._maximumHeight=_g.DefaultMaxBounds.z,this._ellipsoid=new te,this._translation=new h,this._rotation=new $,this.shaderUniforms={ellipsoidRadiiUv:new h,eccentricitySquared:0,evoluteScale:new z,ellipsoidInverseRadiiSquaredUv:new h,ellipsoidRenderLongitudeMinMax:new z,ellipsoidShapeUvLongitudeMinMaxMid:new h,ellipsoidUvToShapeUvLongitude:new z,ellipsoidUvToShapeUvLatitude:new z,ellipsoidRenderLatitudeSinMinMax:new z,ellipsoidInverseHeightDifferenceUv:0,clipMinMaxHeight:new z},this.shaderDefines={ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LONGITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN:void 0},this.shaderMaximumIntersectionsLength=0}var f0t=new h,d0t=new h,h0t=new h,m0t=new h,p0t=new h,_0t=new h,g0t=new h,y0t=new h,x0t=new $,MTe=new h,LTe=new h,b0t=new se;_g.prototype.update=function(e,t,n,i,o){let{DefaultMinBounds:r,DefaultMaxBounds:s}=_g;i=y(i,r),o=y(o,s);let a=R.EPSILON10,c=R.EPSILON3,u=R.EPSILON10,f=R.EPSILON10,d=R.EPSILON3,p=F.getScale(e,y0t),g=h.clone(r,f0t);g.z=-h.minimumComponent(p);let m=h.clamp(t,g,s,d0t),x=h.clamp(n,g,s,h0t),b=h.clamp(i,g,s,m0t),T=h.clamp(o,g,s,p0t),C=h.maximumByComponent(m,b,_0t),A=h.minimumByComponent(x,T,g0t),E=h.add(p,h.fromElements(x.z,x.z,x.z,MTe),MTe),v=h.maximumComponent(E),D=h.add(p,h.fromElements(A.z,A.z,A.z,LTe),LTe);if(C.y>A.y||C.y===s.y||A.y===r.y||C.z>A.z||R.equalsEpsilon(D,h.ZERO,void 0,a))return!1;this._rectangle=se.fromRadians(m.x,m.y,x.x,x.y),this._translation=F.getTranslation(e,this._translation),this._rotation=F.getRotation(e,this._rotation),this._ellipsoid=te.fromCartesian3(p,this._ellipsoid),this._minimumHeight=m.z,this._maximumHeight=x.z;let O=se.fromRadians(C.x,C.y,A.x,A.y,b0t);this.orientedBoundingBox=yZ(O,C.z,A.z,this._ellipsoid,this._translation,this._rotation,this.orientedBoundingBox),this.shapeTransform=F.fromRotationTranslation($.setScale(this._rotation,E,x0t),this._translation,this.shapeTransform),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ae.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let I=s.x-r.x,L=.5*I,N=A.x<C.x,_=A.x-C.x+N*I,S=_<=u,w=_>=L-u&&_<I-u,P=_>u&&_<L-u,M=S||w||P,B=x.x<m.x,U=x.x-m.x+B*I,V=U>L+u&&U<I-u,G=U>=L-u&&U<=L+u,k=U<L-u,Y=V||G||k,W=A.y<-d,Q=A.y>=-d&&A.y<=+d,j=A.y>+d&&A.y<s.y-f,K=W||Q||j,Z=C.y>r.y+f&&C.y<-d,he=C.y>=-d&&C.y<=+d,be=C.y>+d,re=Z||he||be,_e=K||re,xe=x.y-m.y,Ce=x.y<-d,we=x.y>=-d&&x.y<=+d,Oe=x.y>+d&&x.y<s.y-f,ke=Ce||we||Oe,At=m.y>r.y+f&&m.y<-d,Bt=m.y>=-d&&m.y<=+d,rt=m.y>+d,Kt=ke||(At||Bt||rt),{shaderUniforms:ht,shaderDefines:mt}=this;for(let Ai in mt)mt.hasOwnProperty(Ai)&&(mt[Ai]=void 0);ht.ellipsoidRadiiUv=h.divideByScalar(E,v,ht.ellipsoidRadiiUv);let{x:Zt,z:me}=ht.ellipsoidRadiiUv,Ae=me/Zt;ht.eccentricitySquared=1-Ae*Ae,ht.evoluteScale=z.fromElements((Zt*Zt-me*me)/Zt,(me*me-Zt*Zt)/me,ht.evoluteScale),ht.ellipsoidInverseRadiiSquaredUv=h.divideComponents(h.ONE,h.multiplyComponents(ht.ellipsoidRadiiUv,ht.ellipsoidRadiiUv,ht.ellipsoidInverseRadiiSquaredUv),ht.ellipsoidInverseRadiiSquaredUv);let Ut=0;mt.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX=Ut,Ut+=1,mt.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN=Ut,Ut+=1,ht.clipMinMaxHeight=z.fromElements((C.z-x.z)/v,(A.z-x.z)/v,ht.clipMinMaxHeight);let ut=(x.z-m.z)/v;if(ht.ellipsoidInverseHeightDifferenceUv=1/ut,m.z===x.z&&(ht.ellipsoidInverseHeightDifferenceUv=0),M&&(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE=!0,mt.ELLIPSOID_INTERSECTION_INDEX_LONGITUDE=Ut,w?(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF=!0,Ut+=1):P?(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF=!0,Ut+=2):S&&(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO=!0,Ut+=2),ht.ellipsoidRenderLongitudeMinMax=z.fromElements(C.x,A.x,ht.ellipsoidRenderLongitudeMinMax)),Y)if(mt.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE=!0,x.x<m.x&&(mt.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED=!0),U<=u)ht.ellipsoidUvToShapeUvLongitude=z.fromElements(0,1,ht.ellipsoidUvToShapeUvLongitude);else{let po=I/U,hs=-(m.x-r.x)/U;ht.ellipsoidUvToShapeUvLongitude=z.fromElements(po,hs,ht.ellipsoidUvToShapeUvLongitude)}if(M){let Ai=R.equalsEpsilon(C.x,r.x,void 0,c),po=R.equalsEpsilon(A.x,s.x,void 0,c);Ai&&(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY=!0),po&&(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY=!0);let hs=(m.x-r.x)/I,es=(x.x-r.x)/I,Ur=(A.x-r.x)/I,Wo=1-_/I,Be=(Ur+.5*Wo)%1;ht.ellipsoidShapeUvLongitudeMinMaxMid=h.fromElements(hs,es,Be,ht.ellipsoidShapeUvLongitudeMinMaxMid)}if(_e&&(re&&(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN=!0,mt.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN=Ut,Z?(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF=!0,Ut+=1):he?(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF=!0,Ut+=1):be&&(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF=!0,Ut+=2)),K&&(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX=!0,mt.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX=Ut,W?(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF=!0,Ut+=2):Q?(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF=!0,Ut+=1):j&&(mt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF=!0,Ut+=1)),ht.ellipsoidRenderLatitudeSinMinMax=z.fromElements(Math.sin(C.y),Math.sin(A.y),ht.ellipsoidRenderLatitudeSinMinMax)),Kt)if(mt.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE=!0,xe<f)ht.ellipsoidUvToShapeUvLatitude=z.fromElements(0,1,ht.ellipsoidUvToShapeUvLatitude);else{let po=(s.y-r.y)/xe,hs=(r.y-m.y)/xe;ht.ellipsoidUvToShapeUvLatitude=z.fromElements(po,hs,ht.ellipsoidUvToShapeUvLatitude)}return this.shaderMaximumIntersectionsLength=Ut,!0};var BTe=new se;_g.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=1/Math.pow(2,e),s=t*r,a=(t+1)*r,c=n*r,u=(n+1)*r,f=i*r,d=(i+1)*r,p=se.subsection(this._rectangle,s,c,a,u,BTe),g=R.lerp(this._minimumHeight,this._maximumHeight,f),m=R.lerp(this._minimumHeight,this._maximumHeight,d);return yZ(p,g,m,this._ellipsoid,this._translation,this._rotation,o)};var NTe=new h,FTe=new h,T0t=new h;_g.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,NTe),s=h.multiplyByScalar(r,o,NTe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,FTe),o,FTe),c=h.add(a,s,T0t),u=se.subsection(this._rectangle,a.x,a.y,c.x,c.y,BTe),f=R.lerp(this._minimumHeight,this._maximumHeight,a.z),d=R.lerp(this._minimumHeight,this._maximumHeight,c.z);return yZ(u,f,d,this._ellipsoid,this._translation,this._rotation,i)};function yZ(e,t,n,i,o,r,s){return s=Sn.fromRectangle(e,t,n,i,s),s.center=h.add(s.center,o,s.center),s.halfAxes=$.multiply(s.halfAxes,r,s.halfAxes),s}_g.DefaultMinBounds=Object.freeze(new h(-R.PI,-R.PI_OVER_TWO,-te.WGS84.minimumRadius));_g.DefaultMaxBounds=Object.freeze(new h(R.PI,R.PI_OVER_TWO,10*te.WGS84.maximumRadius));var aA=_g;var ef={BOX:"BOX",ELLIPSOID:"ELLIPSOID",CYLINDER:"CYLINDER"};ef.getMinBounds=function(e){switch(e){case ef.BOX:return rp.DefaultMinBounds;case ef.ELLIPSOID:return aA.DefaultMinBounds;case ef.CYLINDER:return sp.DefaultMinBounds}};ef.getMaxBounds=function(e){switch(e){case ef.BOX:return rp.DefaultMaxBounds;case ef.ELLIPSOID:return aA.DefaultMaxBounds;case ef.CYLINDER:return sp.DefaultMaxBounds}};ef.getShapeConstructor=function(e){switch(e){case ef.BOX:return rp;case ef.ELLIPSOID:return aA;case ef.CYLINDER:return sp}};var Oi=Object.freeze(ef);var kTe=Object.freeze({UNLOADED:0,RECEIVING:1,RECEIVED:2,LOADED:3,FAILED:4,UNAVAILABLE:5});function KH(e,t){this.spatialNode=e,this.keyframe=t,this.state=kTe.UNLOADED,this.metadata=[],this.megatextureIndex=-1,this.priority=-Number.MAX_VALUE,this.highPriorityFrameNumber=-1}KH.priorityComparator=function(e,t){return e.priority-t.priority};KH.searchComparator=function(e,t){return e.keyframe-t.keyframe};KH.LoadState=kTe;var Ki=KH;function N0(e,t,n,i,o){i===sn.UNSIGNED_SHORT&&(i=sn.FLOAT32);let r=e.floatingPointTexture;if(i===sn.FLOAT32&&!r)throw new le("Floating point texture not supported");let s;i===sn.FLOAT32||i===sn.FLOAT64?s=We.FLOAT:i===sn.UINT8&&(s=We.UNSIGNED_BYTE);let a;n===1?a=e.webgl2?nt.RED:nt.LUMINANCE:n===2?a=e.webgl2?nt.RG:nt.LUMINANCE_ALPHA:n===3?a=nt.RGB:n===4&&(a=nt.RGBA);let c=512*1024*1024,u=128*1024*1024;o=Math.min(y(o,u),c);let f=Nt.maximumTextureSize,d=sn.getSizeInBytes(i),p=Math.floor(o/(n*d)),g=Math.min(f,R.previousPowerOfTwo(Math.floor(Math.sqrt(p)))),m=Math.ceil(Math.sqrt(t.x)),x=Math.ceil(t.z/m),b=m*t.x,T=x*t.y,C=Math.floor(g/b),A=Math.floor(g/T);if(C===0||A===0)throw new le("Tileset is too large to fit into megatexture");this.channelCount=n,this.componentType=i,this.voxelCountPerTile=h.clone(t,new h),this.maximumTileCount=C*A,this.regionCountPerMegatexture=new z(C,A),this.voxelCountPerRegion=new z(b,T),this.sliceCountPerRegion=new z(m,x),this.voxelSizeUv=new z(1/g,1/g),this.sliceSizeUv=new z(t.x/g,t.y/g),this.regionSizeUv=new z(b/g,T/g),this.texture=new Dt({context:e,pixelFormat:a,pixelDatatype:s,flipY:!1,width:g,height:g,sampler:new on({wrapS:An.CLAMP_TO_EDGE,wrapT:An.CLAMP_TO_EDGE,minificationFilter:nn.LINEAR,magnificationFilter:li.LINEAR})});let E=sn.toComponentDatatype(i);this.tileVoxelDataTemp=X.createTypedArray(E,b*T*n),this.nodes=new Array(this.maximumTileCount);for(let v=0;v<this.maximumTileCount;v++)this.nodes[v]=new A0t(v);for(let v=0;v<this.maximumTileCount;v++){let D=this.nodes[v];D.previousNode=v>0?this.nodes[v-1]:void 0,D.nextNode=v<this.maximumTileCount-1?this.nodes[v+1]:void 0}this.occupiedList=void 0,this.emptyList=this.nodes[0],this.occupiedCount=0}function A0t(e){this.index=e,this.nextNode=void 0,this.previousNode=void 0}N0.prototype.add=function(e){if(this.isFull())throw new de("Trying to add when there are no empty spots");let t=this.emptyList;this.emptyList=this.emptyList.nextNode,l(this.emptyList)&&(this.emptyList.previousNode=void 0),t.nextNode=this.occupiedList,l(t.nextNode)&&(t.nextNode.previousNode=t),this.occupiedList=t;let n=t.index;return this.writeDataToTexture(n,e),this.occupiedCount++,n};N0.prototype.remove=function(e){if(e<0||e>=this.maximumTileCount)throw new de("Megatexture index out of bounds");let t=this.nodes[e];l(t.previousNode)&&(t.previousNode.nextNode=t.nextNode),l(t.nextNode)&&(t.nextNode.previousNode=t.previousNode),t.nextNode=this.emptyList,l(t.nextNode)&&(t.nextNode.previousNode=t),t.previousNode=void 0,this.emptyList=t,this.occupiedCount--};N0.prototype.isFull=function(){return this.emptyList===void 0};N0.getApproximateTextureMemoryByteLength=function(e,t,n,i){i===sn.UNSIGNED_SHORT&&(i=sn.FLOAT32);let o=sn.getSizeInBytes(i),r=e*t.x*t.y*t.z,s=Math.ceil(Math.sqrt(t.x)),a=Math.ceil(t.z/s),c=s*t.x,u=a*t.y,f=R.previousPowerOfTwo(Math.floor(Math.sqrt(r)));for(;;){let p=Math.floor(f/c),g=Math.floor(f/u);if(p*g>=e)break;f*=2}return f*f*n*o};N0.prototype.writeDataToTexture=function(e,t){let n=t.constructor===Uint16Array?new Float32Array(t):t,i=this.voxelCountPerTile,o=this.sliceCountPerRegion,r=this.voxelCountPerRegion,s=this.channelCount,a=this.tileVoxelDataTemp;for(let x=0;x<i.z;x++){let b=x%o.x*i.x,T=Math.floor(x/o.x)*i.y;for(let C=0;C<i.y;C++)for(let A=0;A<i.x;A++){let E=x*i.y*i.x+C*i.x+A,v=(T+C)*r.x+(b+A);for(let D=0;D<s;D++)a[v*s+D]=n[E*s+D]}}let c=this.regionCountPerMegatexture,u=r.x,f=r.y,d=e%c.x*r.x,p=Math.floor(e/c.x)*r.y,m={source:{arrayBufferView:a,width:u,height:f},xOffset:d,yOffset:p};this.texture.copyFrom(m)};N0.prototype.isDestroyed=function(){return!1};N0.prototype.destroy=function(){return this.texture=this.texture&&this.texture.destroy(),ue(this)};var gv=N0;function md(e,t,n,i,o,r,s){this.children=void 0,this.parent=o,this.level=e,this.x=t,this.y=n,this.z=i,this.dimensions=h.clone(s),this.keyframeNodes=[],this.renderableKeyframeNodes=[],this.renderableKeyframeNodeLerp=0,this.renderableKeyframeNodePrevious=void 0,this.renderableKeyframeNodeNext=void 0,this.orientedBoundingBox=new Sn,this.approximateVoxelSize=0,this.screenSpaceError=0,this.visitedFrameNumber=-1,this.computeBoundingVolumes(r)}var C0t=new h;md.prototype.computeBoundingVolumes=function(e){this.orientedBoundingBox=e.computeOrientedBoundingBoxForTile(this.level,this.x,this.y,this.z,this.orientedBoundingBox);let t=$.getScale(this.orientedBoundingBox.halfAxes,C0t),n=2*h.maximumComponent(t);this.approximateVoxelSize=n/h.minimumComponent(this.dimensions)};md.prototype.constructChildNodes=function(e){let{level:t,x:n,y:i,z:o}=this,r=n*2,s=i*2,a=o*2,c=s+1,u=r+1,f=a+1,d=t+1,p=[[d,r,s,a],[d,u,s,a],[d,r,c,a],[d,u,c,a],[d,r,s,f],[d,u,s,f],[d,r,c,f],[d,u,c,f]];this.children=p.map(([g,m,x,b])=>new md(g,m,x,b,this,e,this.dimensions))};md.prototype.visibility=function(e,t){let n=this.orientedBoundingBox;return e.cullingVolume.computeVisibilityWithPlaneMask(n,t)};md.prototype.computeScreenSpaceError=function(e,t){let n=this.orientedBoundingBox,i=Math.sqrt(n.distanceSquaredTo(e));i=Math.max(i,R.EPSILON7);let o=this.approximateVoxelSize,r=t*(o/i);this.screenSpaceError=r};var VTe={keyframe:0};function YB(e,t){return VTe.keyframe=e,Do(t,VTe,Ki.searchComparator)}md.prototype.computeSurroundingRenderableKeyframeNodes=function(e){let t=this,n=t.level,i=Math.floor(e),o=Math.ceil(e),r,s,a=+Number.MAX_VALUE,c=+Number.MAX_VALUE;for(;l(t);){let{renderableKeyframeNodes:d}=t;if(d.length>=1){let p=E0t(i,d),g=d[p],m=o===i||i<g.keyframe?p:Math.min(p+1,d.length-1),x=d[m],b=i-g.keyframe,T=UTe(n-t.level,b);T<a&&(a=T,r=g);let C=x.keyframe-o,A=UTe(n-t.level,C);if(A<c&&(c=A,s=x),b===0&&C===0)break}t=t.parent}if(this.renderableKeyframeNodePrevious=r,this.renderableKeyframeNodeNext=s,!l(r)||!l(s))return;let u=r.keyframe,f=s.keyframe;this.renderableKeyframeNodeLerp=u===f?0:R.clamp((e-u)/(f-u),0,1)};function E0t(e,t){let n=YB(e,t);return n<0?R.clamp(~n-1,0,t.length-1):n}function UTe(e,t){let n=Math.exp(e*4),i=t>=0?1:-200;return e*n+t*i}md.prototype.isVisited=function(e){return this.visitedFrameNumber===e};md.prototype.createKeyframeNode=function(e){let t=YB(e,this.keyframeNodes);if(t<0){t=~t;let n=new Ki(this,e);this.keyframeNodes.splice(t,0,n)}};md.prototype.destroyKeyframeNode=function(e,t){let n=e.keyframe,i=YB(n,this.keyframeNodes);if(i<0)throw new de("Keyframe node does not exist.");if(this.keyframeNodes.splice(i,1),e.megatextureIndex!==-1){for(let r=0;r<t.length;r++)t[r].remove(e.megatextureIndex);let o=YB(n,this.renderableKeyframeNodes);if(o<0)throw new de("Renderable keyframe node does not exist.");this.renderableKeyframeNodes.splice(o,1)}e.spatialNode=void 0,e.state=Ki.LoadState.UNLOADED,e.metadata={},e.megatextureIndex=-1,e.priority=-Number.MAX_VALUE,e.highPriorityFrameNumber=-1};md.prototype.addKeyframeNodeToMegatextures=function(e,t){if(e.state!==Ki.LoadState.RECEIVED||e.megatextureIndex!==-1||e.metadata.length!==t.length)throw new de("Keyframe node cannot be added to megatexture");for(let o=0;o<t.length;o++){let r=t[o];e.megatextureIndex=r.add(e.metadata[o])}e.state=Ki.LoadState.LOADED;let n=this.renderableKeyframeNodes,i=YB(e.keyframe,n);if(i>=0)throw new de("Keyframe already renderable");i=~i,n.splice(i,0,e)};md.prototype.isRenderable=function(e){let t=this.renderableKeyframeNodePrevious,n=this.renderableKeyframeNodeNext,i=this.level;return l(t)&&l(n)&&(t.spatialNode.level===i||n.spatialNode.level===i)&&this.visitedFrameNumber===e};var XB=md;function gg(e,t,n,i,o,r,s){this._primitive=e,this.megatextures=new Array(i.length);for(let m=0;m<i.length;m++){let x=i[m],b=Ht.getComponentCount(x),T=o[m];this.megatextures[m]=new gv(t,n,b,T,s)}let a=this.megatextures[0].maximumTileCount;this._simultaneousRequestCount=0,this._debugPrint=!1,this._frameNumber=0;let c=e._shape;this.rootNode=new XB(0,0,0,0,void 0,c,n),this._priorityQueue=new DT({maximumLength:a,comparator:Ki.priorityComparator}),this._highPriorityKeyframeNodes=new Array(a),this._keyframeNodesInMegatexture=new Array(a),this._keyframeCount=r,this._sampleCount=void 0,this._keyframeLocation=0,this._binaryTreeKeyframeWeighting=new Array(r);let u=this._binaryTreeKeyframeWeighting;u[0]=0,u[r-1]=0,xZ(u,1,r-2,0);let f=9,d=2048,p=Math.floor(d/f),g=Math.ceil(a/p);this.internalNodeTexture=new Dt({context:t,pixelFormat:nt.RGBA,pixelDatatype:We.UNSIGNED_BYTE,flipY:!1,width:d,height:g,sampler:new on({minificationFilter:nn.NEAREST,magnificationFilter:li.NEAREST})}),this.internalNodeTilesPerRow=p,this.internalNodeTexelSizeUv=new z(1/d,1/g),this.leafNodeTexture=void 0,this.leafNodeTilesPerRow=void 0,this.leafNodeTexelSizeUv=new z}gg.prototype.findKeyframeNode=function(e){return this._keyframeNodesInMegatexture.find(function(t){return t.megatextureIndex===e})};function xZ(e,t,n,i){if(t>n)return;let o=Math.floor((t+n)/2);e[o]=i,xZ(e,t,o-1,i+1),xZ(e,o+1,n,i+1)}gg.simultaneousRequestCountMaximum=50;gg.prototype.update=function(e,t,n,i){let o=this._primitive,r=e.context,s=this.megatextures[0].maximumTileCount,a=this._keyframeCount,c=o._levelBlendFactor,u=c>0,f=a>1,d=(u?2:1)*(f?2:1);this._sampleCount=d;let p=d>=2;if(p&&!l(this.leafNodeTexture)){let C=Math.floor(512),A=Math.ceil(s/C);this.leafNodeTexture=new Dt({context:r,pixelFormat:nt.RGBA,pixelDatatype:We.UNSIGNED_BYTE,flipY:!1,width:1024,height:A,sampler:new on({minificationFilter:nn.NEAREST,magnificationFilter:li.NEAREST})}),this.leafNodeTexelSizeUv=z.fromElements(1/1024,1/A,this.leafNodeTexelSizeUv),this.leafNodeTilesPerRow=C}else!p&&l(this.leafNodeTexture)&&(this.leafNodeTexture=this.leafNodeTexture.destroy());if(this._keyframeLocation=R.clamp(t,0,a-1),n&&zTe(this,this.rootNode),i)return;this._frameNumber=e.frameNumber;let g=pi();w0t(this,e);let m=pi();I0t(this,d,c);let x=pi();if(this._debugPrint){let b=m-g,T=x-m,C=x-g;P0t(this,b,T,C)}};gg.prototype.isRenderable=function(e){return e.isRenderable(this._frameNumber)};gg.prototype.isDestroyed=function(){return!1};gg.prototype.destroy=function(){let e=this.megatextures,t=e.length;for(let n=0;n<t;n++)e[n]=e[n]&&e[n].destroy();return this.internalNodeTexture=this.internalNodeTexture&&this.internalNodeTexture.destroy(),this.leafNodeTexture=this.leafNodeTexture&&this.leafNodeTexture.destroy(),ue(this)};function zTe(e,t){if(t.computeBoundingVolumes(e._primitive._shape),l(t.children))for(let n=0;n<8;n++){let i=t.children[n];zTe(e,i)}}function S0t(e,t){if(e._simultaneousRequestCount>=gg.simultaneousRequestCountMaximum)return;let n=e._primitive._provider;function i(c){e._simultaneousRequestCount--;let u=n.types.length;if(!l(c))t.state=Ki.LoadState.UNAVAILABLE;else if(c===Ki.LoadState.FAILED)t.state=Ki.LoadState.FAILED;else if(!Array.isArray(c)||c.length!==u)t.state=Ki.LoadState.FAILED;else{let f=e.megatextures;for(let d=0;d<u;d++){let{voxelCountPerTile:p,channelCount:g}=f[d],{x:m,y:x,z:b}=p,T=m*x*b,C=c[d],A=T*g;if(C.length===A)t.metadata[d]=C,t.state=Ki.LoadState.RECEIVED;else{t.state=Ki.LoadState.FAILED;break}}}}function o(){e._simultaneousRequestCount--,t.state=Ki.LoadState.FAILED}let{keyframe:r,spatialNode:s}=t,a=n.requestData({tileLevel:s.level,tileX:s.x,tileY:s.y,tileZ:s.z,keyframe:r});l(a)?(e._simultaneousRequestCount++,t.state=Ki.LoadState.RECEIVING,a.then(i).catch(o)):t.state=Ki.LoadState.FAILED}function v0t(e){return e/(1+e)}function w0t(e,t){let n=e._frameNumber,i=e._primitive,o=i._shape,r=i.screenSpaceError,s=e._priorityQueue,a=e._keyframeCount,c=R.clamp(Math.floor(e._keyframeLocation),0,a-2),u=c+1,{camera:f,context:d,pixelRatio:p}=t,{positionWC:g,frustum:m}=f,b=d.drawingBufferHeight/p/m.sseDenominator;function T(N,_){if(N.computeScreenSpaceError(g,b),_=N.visibility(t,_),_===as.MASK_OUTSIDE)return;if(N.visitedFrameNumber=n,a===1)N.createKeyframeNode(0);else if(N.keyframeNodes.length!==a)for(let B=0;B<a;B++)N.createKeyframeNode(B);let{screenSpaceError:S,keyframeNodes:w}=N,P=v0t(S),M=!1;for(let B=0;B<w.length;B++){let U=w[B];U.priority=10*P+D0t(c,U.keyframe,u,e),U.state!==Ki.LoadState.UNAVAILABLE&&U.state!==Ki.LoadState.FAILED&&U.priority!==-Number.MAX_VALUE&&s.insert(U),U.state===Ki.LoadState.LOADED&&(M=!0)}if(S<r||!M){N.children=void 0;return}l(N.children)||N.constructChildNodes(o);for(let B=0;B<8;B++){let U=N.children[B];T(U,_)}}s.reset(),T(e.rootNode,as.MASK_INDETERMINATE);let C=e._highPriorityKeyframeNodes,A=0,E;for(;s.length>0;)E=s.removeMaximum(),E.highPriorityFrameNumber=n,C[A]=E,A++;let v=e._keyframeNodesInMegatexture,D=e.megatextures[0],O=D.occupiedCount;v.length=O,v.sort(function(N,_){return N.highPriorityFrameNumber===_.highPriorityFrameNumber?_.priority-N.priority:_.highPriorityFrameNumber-N.highPriorityFrameNumber});let I=0,L=0;for(let N=0;N<A;N++)if(E=C[N],!(E.state===Ki.LoadState.LOADED||E.spatialNode===void 0)&&(E.state===Ki.LoadState.UNLOADED&&S0t(e,E),E.state===Ki.LoadState.RECEIVED)){let _=0;if(D.isFull()){_=O-1-I,I++;let S=v[_];S.spatialNode.destroyKeyframeNode(S,e.megatextures)}else _=O+L,L++;E.spatialNode.addKeyframeNodeToMegatextures(E,e.megatextures),v[_]=E}}function D0t(e,t,n,i){let o=Math.min(Math.abs(t-e),Math.abs(t-n)),r=Math.max(e,i._keyframeCount-n-1,1),s=Math.pow(1-o/r,4),a=Math.exp(-i._binaryTreeKeyframeWeighting[t]);return R.lerp(a,s,.15+.85*s)}function P0t(e,t,n,i){let o=e._keyframeCount,r=e.rootNode,s=Object.keys(Ki.LoadState).length,a=new Array(s),c=new Array(s),u=0;for(let T=0;T<s;T++){let C=new Array(o);a[T]=C;for(let A=0;A<o;A++)C[A]=0;c[T]=0}function f(T){let C=T.keyframeNodes;for(let A=0;A<C.length;A++){let E=C[A],v=E.keyframe,D=E.state;a[D][v]+=1,c[D]+=1,u++}if(l(T.children))for(let A=0;A<8;A++){let E=T.children[A];f(E)}}f(r);let d=`KEYFRAMES: ${a[Ki.LoadState.LOADED]}`,p=`UNLOADED: ${c[Ki.LoadState.UNLOADED]} | RECEIVING: ${c[Ki.LoadState.RECEIVING]} | RECEIVED: ${c[Ki.LoadState.RECEIVED]} | LOADED: ${c[Ki.LoadState.LOADED]} | FAILED: ${c[Ki.LoadState.FAILED]} | UNAVAILABLE: ${c[Ki.LoadState.UNAVAILABLE]} | TOTAL: ${u}`,g=Math.round(t*100)/100,m=Math.round(n*100)/100,x=Math.round(i*100)/100,b=`LOAD: ${g} | OCT: ${m} | ALL: ${x}`;console.log(`${d} || ${p} || ${b}`)}var ZH={INTERNAL:0,LEAF:1,PACKED_LEAF_FROM_PARENT:2};function I0t(e,t,n){let i=e._primitive._screenSpaceError,o=e._keyframeLocation,r=e._frameNumber,s=t>=2,a=0,c=0,u=[],f=[];function d(g,m,x,b,T){let C=!1;if(l(g.children))for(let A=0;A<8;A++){let E=g.children[A];E.computeSurroundingRenderableKeyframeNodes(o),E.isRenderable(r)&&(C=!0)}if(C){u[T]=ZH.INTERNAL<<16|m,u[x]=b,a++,b=m,T=b*9+1;for(let A=0;A<8;A++){let E=g.children[A];m=a,x=m*9+0,d(E,m,x,b,T+A)}}else{if(s){let A=c*5,E=g.renderableKeyframeNodePrevious,v=g.level-E.spatialNode.level,D=E.spatialNode.parent,O=l(D)?D.renderableKeyframeNodePrevious:E,I=R0t(g,i,n),L=v,N=1,_=E.megatextureIndex,S=O.megatextureIndex;f[A+0]=I,f[A+1]=L,f[A+2]=N,f[A+3]=_,f[A+4]=S,u[T]=ZH.LEAF<<16|c}else{let A=g.renderableKeyframeNodePrevious,v=g.level-A.spatialNode.level===0?ZH.LEAF:ZH.PACKED_LEAF_FROM_PARENT;u[T]=v<<16|A.megatextureIndex}c++}}let p=e.rootNode;p.computeSurroundingRenderableKeyframeNodes(o),p.isRenderable(r)&&d(p,0,0,0,0),O0t(u,9,e.internalNodeTilesPerRow,e.internalNodeTexture),s&&M0t(f,2,e.leafNodeTilesPerRow,e.leafNodeTexture)}function R0t(e,t,n){if(e.parent===void 0)return 0;let i=e.screenSpaceError,o=e.parent.screenSpaceError,s=((t-i)/(o-i)+n-1)/n;return R.clamp(s,0,1)}function O0t(e,t,n,i){let o=nt.componentsLength(i.pixelFormat),r=Math.ceil(e.length/t),s=Math.max(1,t*Math.min(r,n)),a=Math.max(1,Math.ceil(r/n)),c=new Uint8Array(s*a*o);for(let d=0;d<e.length;d++){let p=e[d],g=d*o;for(let m=0;m<o;m++)c[g+m]=p>>>m*8&255}let f={source:{arrayBufferView:c,width:s,height:a},xOffset:0,yOffset:0};i.copyFrom(f)}function M0t(e,t,n,i){let o=nt.componentsLength(i.pixelFormat),r=5,s=Math.ceil(e.length/r),a=Math.max(1,t*Math.min(s,n)),c=Math.max(1,Math.ceil(s/n)),u=new Uint8Array(a*c*o);for(let p=0;p<s;p++){let g=e[p*r+0],m=e[p*r+1],x=e[p*r+2],b=e[p*r+3],T=e[p*r+4],C=R.clamp(Math.floor(65536*g),0,65535);u[p*8+0]=C>>>0&255,u[p*8+1]=C>>>8&255,u[p*8+2]=m&255,u[p*8+3]=x&255,u[p*8+4]=b>>>0&255,u[p*8+5]=b>>>8&255,u[p*8+6]=T>>>0&255,u[p*8+7]=T>>>8&255}let d={source:{arrayBufferView:u,width:a,height:c},xOffset:0,yOffset:0};i.copyFrom(d)}gg.getApproximateTextureMemoryByteLength=function(e,t,n,i){let o=0,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=i[s],u=Ht.getComponentCount(a);o+=gv.getApproximateTextureMemoryByteLength(e,t,u,c)}return o};var yv=gg;var L0t={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",MAT2:"mat2",MAT3:"mat3",MAT4:"mat4",SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube"},xv=Object.freeze(L0t);function bv(){this._defaultTexture=void 0,this._textures={},this._loadedImages=[],this._lastUpdatedFrame=-1}bv.prototype.getTexture=function(e){return this._textures[e]};function N0t(e,t,n){n.resource.fetchImage().then(function(i){e._loadedImages.push({id:t,image:i,textureUniform:n})}).catch(function(){let i=e._textures[t];l(i)&&i!==e._defaultTexture&&i.destroy(),e._textures[t]=e._defaultTexture})}bv.prototype.loadTexture2D=function(e,t){l(t.typedArray)?this._loadedImages.push({id:e,textureUniform:t}):N0t(this,e,t)};function F0t(e,t,n){let{id:i,textureUniform:o,image:r}=t,s=n.webgl2?$H(o,r,n):B0t(o,r,n),a=e._textures[i];l(a)&&a!==n.defaultTexture&&a.destroy(),e._textures[i]=s}function $H(e,t,n){let{typedArray:i,sampler:o}=e,r=l(i)?GTe(e,n):new Dt({context:n,source:t,sampler:o});return HTe(o)&&r.generateMipmap(),r}function B0t(e,t,n){let{typedArray:i,sampler:o}=e,r=HTe(o),s=o.wrapS===An.REPEAT||o.wrapS===An.MIRRORED_REPEAT||o.wrapT===An.REPEAT||o.wrapT===An.MIRRORED_REPEAT,{width:a,height:c}=l(i)?e:t,u=[a,c].every(R.isPowerOfTwo);if((r||s)&&!u)if(l(i)){if(e.pixelDatatype===We.UNSIGNED_BYTE){let d=TF(i,a,c),p=iy(d);return $H({sampler:o},p,n)}}else{let d=iy(t);return $H(e,d,n)}else return $H(e,t,n);return r?console.warn("Texture requires resizing for mipmaps but pixelDataType cannot be resized. The texture may be rendered incorrectly."):s&&console.warn("Texture requires resizing for wrapping but pixelDataType cannot be resized. The texture may be rendered incorrectly."),GTe(e,n)}function HTe(e){return[nn.NEAREST_MIPMAP_NEAREST,nn.NEAREST_MIPMAP_LINEAR,nn.LINEAR_MIPMAP_NEAREST,nn.LINEAR_MIPMAP_LINEAR].includes(e.minificationFilter)}function GTe(e,t){let{pixelFormat:n,pixelDatatype:i,width:o,height:r,typedArray:s,sampler:a}=e;return new Dt({context:t,pixelFormat:n,pixelDatatype:i,source:{arrayBufferView:s,width:o,height:r},sampler:a,flipY:!1})}bv.prototype.update=function(e){if(e.frameNumber===this._lastUpdatedFrame)return;this._lastUpdatedFrame=e.frameNumber;let t=e.context;this._defaultTexture=t.defaultTexture;let n=this._loadedImages;for(let i=0;i<n.length;i++){let o=n[i];F0t(this,o,t)}n.length=0};bv.prototype.isDestroyed=function(){return!1};bv.prototype.destroy=function(){let e=this._textures;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];n!==this._defaultTexture&&n.destroy()}return ue(this)};var KB=bv;function ZB(e){e=y(e,y.EMPTY_OBJECT),this.mode=y(e.mode,r_.MODIFY_MATERIAL),this.lightingModel=e.lightingModel,this.uniforms=y(e.uniforms,y.EMPTY_OBJECT),this.varyings=y(e.varyings,y.EMPTY_OBJECT),this.vertexShaderText=e.vertexShaderText,this.fragmentShaderText=e.fragmentShaderText,this.translucencyMode=y(e.translucencyMode,xy.INHERIT),this._textureManager=new KB,this._defaultTexture=void 0,this.uniformMap=k0t(this),this.usedVariablesVertex={attributeSet:{},featureIdSet:{},metadataSet:{}},this.usedVariablesFragment={attributeSet:{},featureIdSet:{},metadataSet:{},materialSet:{}},z0t(this),H0t(this)}function k0t(e){let t=e.uniforms,n={};for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];o.type===xv.SAMPLER_2D?(e._textureManager.loadTexture2D(i,o.value),n[i]=V0t(e,i)):n[i]=U0t(e,i)}return n}function V0t(e,t){return function(){return y(e._textureManager.getTexture(t),e._defaultTexture)}}function U0t(e,t){return function(){return e.uniforms[t].value}}function cA(e,t,n){let i;for(;(i=t.exec(e))!==null;){let o=i[1];n[o]=!0}}function z0t(e){let t=/[vf]sInput\.attributes\.(\w+)/g,n=/[vf]sInput\.featureIds\.(\w+)/g,i=/[vf]sInput\.metadata.(\w+)/g,o,r=e.vertexShaderText;l(r)&&(o=e.usedVariablesVertex.attributeSet,cA(r,t,o),o=e.usedVariablesVertex.featureIdSet,cA(r,n,o),o=e.usedVariablesVertex.metadataSet,cA(r,i,o));let s=e.fragmentShaderText;if(l(s)){o=e.usedVariablesFragment.attributeSet,cA(s,t,o),o=e.usedVariablesFragment.featureIdSet,cA(s,n,o),o=e.usedVariablesFragment.metadataSet,cA(s,i,o);let a=/material\.(\w+)/g,c=e.usedVariablesFragment.materialSet;cA(s,a,c)}}function WTe(e){let t=/^.*MC$/,n=/^.*WC$/,i=/^.*EC$/;return t.test(e)?`${e} (model coordinates)`:n.test(e)?`${e} (Cartesian world coordinates)`:i.test(e)?`${e} (eye coordinates)`:e}function Rc(e,t,n,i){if(e.hasOwnProperty(t)){let o=`${WTe(t)} is not available in the ${i} shader. Did you mean ${WTe(n)} instead?`;throw new de(o)}}function H0t(e){let t=e.usedVariablesVertex.attributeSet;Rc(t,"position","positionMC","vertex"),Rc(t,"normal","normalMC","vertex"),Rc(t,"tangent","tangentMC","vertex"),Rc(t,"bitangent","bitangentMC","vertex"),Rc(t,"positionWC","positionMC","vertex"),Rc(t,"positionEC","positionMC","vertex"),Rc(t,"normalEC","normalMC","vertex"),Rc(t,"tangentEC","tangentMC","vertex"),Rc(t,"bitangentEC","bitangentMC","vertex");let n=e.usedVariablesFragment.attributeSet;Rc(n,"position","positionEC","fragment"),Rc(n,"normal","normalEC","fragment"),Rc(n,"tangent","tangentEC","fragment"),Rc(n,"bitangent","bitangentEC","fragment"),Rc(n,"normalMC","normalEC","fragment"),Rc(n,"tangentMC","tangentEC","fragment"),Rc(n,"bitangentMC","bitangentEC","fragment")}ZB.prototype.setUniform=function(e,t){let n=this.uniforms[e];n.type===xv.SAMPLER_2D?this._textureManager.loadTexture2D(e,t):l(t.clone)?n.value=t.clone(n.value):n.value=t};ZB.prototype.update=function(e){this._defaultTexture=e.context.defaultTexture,this._textureManager.update(e)};ZB.prototype.isDestroyed=function(){return!1};ZB.prototype.destroy=function(){this._textureManager=this._textureManager&&this._textureManager.destroy(),ue(this)};var lA=ZB;function ap(e){e=y(e,y.EMPTY_OBJECT),this._ready=!1,this._provider=y(e.provider,ap.DefaultProvider),this._traversal=void 0,this._shape=void 0,this._shapeVisible=!1,this._paddingBefore=new h,this._paddingAfter=new h,this._minBounds=new h,this._minBoundsOld=new h,this._maxBounds=new h,this._maxBoundsOld=new h,this._exaggeratedMinBounds=new h,this._exaggeratedMinBoundsOld=new h,this._exaggeratedMaxBounds=new h,this._exaggeratedMaxBoundsOld=new h,this._minClippingBounds=new h,this._minClippingBoundsOld=new h,this._maxClippingBounds=new h,this._maxClippingBoundsOld=new h,this._clippingPlanes=void 0,this._clippingPlanesState=0,this._clippingPlanesEnabled=!1,this._modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._exaggeratedModelMatrix=F.clone(this._modelMatrix),this._compoundModelMatrix=new F,this._compoundModelMatrixOld=new F,this._customShader=y(e.customShader,ap.DefaultCustomShader),this._customShaderCompilationEvent=new pe,this._shaderDirty=!0,this._drawCommand=void 0,this._drawCommandPick=void 0,this._pickId=void 0,this._clock=e.clock,this._transformPositionWorldToUv=new F,this._transformPositionUvToWorld=new F,this._transformDirectionWorldToLocal=new $,this._transformNormalLocalToWorld=new $,this._jitter=!1,this._nearestSampling=!1,this._levelBlendFactor=0,this._stepSizeMultiplier=1,this._depthTest=!0,this._useLogDepth=void 0,this._screenSpaceError=4,this._debugPolylines=new Qd,this._debugDraw=!1,this._disableRender=!1,this._disableUpdate=!1,this._uniforms={octreeInternalNodeTexture:void 0,octreeInternalNodeTilesPerRow:0,octreeInternalNodeTexelSizeUv:new z,octreeLeafNodeTexture:void 0,octreeLeafNodeTilesPerRow:0,octreeLeafNodeTexelSizeUv:new z,megatextureTextures:[],megatextureSliceDimensions:new z,megatextureTileDimensions:new z,megatextureVoxelSizeUv:new z,megatextureSliceSizeUv:new z,megatextureTileSizeUv:new z,dimensions:new h,paddingBefore:new h,paddingAfter:new h,transformPositionViewToUv:new F,transformPositionUvToView:new F,transformDirectionViewToLocal:new $,transformNormalLocalToWorld:new $,cameraPositionUv:new h,ndcSpaceAxisAlignedBoundingBox:new oe,clippingPlanesTexture:void 0,clippingPlanesMatrix:new F,stepSize:0,pickColor:new H},this._shapeDefinesOld={},this._uniformMap={};let t=this._uniforms,n=this._uniformMap;for(let o in t)if(t.hasOwnProperty(o)){let r=`u_${o}`;n[r]=function(){return t[o]}}let i=this._provider;G0t(this,i)}function G0t(e,t){let{shape:n,minBounds:i=Oi.getMinBounds(n),maxBounds:o=Oi.getMaxBounds(n)}=t;e.minBounds=i,e.maxBounds=o,e.minClippingBounds=Oi.getMinBounds(n),e.maxClippingBounds=Oi.getMaxBounds(n),e._exaggeratedMinBounds=h.clone(e._minBounds,e._exaggeratedMinBounds),e._exaggeratedMaxBounds=h.clone(e._maxBounds,e._exaggeratedMaxBounds),e._exaggeratedModelMatrix=F.clone(e._modelMatrix,e._exaggeratedModelMatrix),qTe(e,t);let r=Oi.getShapeConstructor(n);e._shape=new r,e._shapeVisible=YTe(e,e._shape,t)}Object.defineProperties(ap.prototype,{ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}},boundingSphere:{get:function(){return this._shape.boundingSphere}},orientedBoundingBox:{get:function(){return this._shape.orientedBoundingBox}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix)}},shape:{get:function(){return this._provider.shape}},dimensions:{get:function(){return this._provider.dimensions}},minimumValues:{get:function(){return this._provider.minimumValues}},maximumValues:{get:function(){return this._provider.maximumValues}},show:{get:function(){return!this._disableRender},set:function(e){this._disableRender=!e}},disableUpdate:{get:function(){return this._disableUpdate},set:function(e){this._disableUpdate=e}},debugDraw:{get:function(){return this._debugDraw},set:function(e){this._debugDraw=e}},depthTest:{get:function(){return this._depthTest},set:function(e){this._depthTest!==e&&(this._depthTest=e,this._shaderDirty=!0)}},jitter:{get:function(){return this._jitter},set:function(e){this._jitter!==e&&(this._jitter=e,this._shaderDirty=!0)}},nearestSampling:{get:function(){return this._nearestSampling},set:function(e){this._nearestSampling!==e&&(this._nearestSampling=e,this._shaderDirty=!0)}},levelBlendFactor:{get:function(){return this._levelBlendFactor},set:function(e){this._levelBlendFactor=R.clamp(e,0,1)}},screenSpaceError:{get:function(){return this._screenSpaceError},set:function(e){this._screenSpaceError=e}},stepSize:{get:function(){return this._stepSizeMultiplier},set:function(e){this._stepSizeMultiplier=e}},minBounds:{get:function(){return this._minBounds},set:function(e){this._minBounds=h.clone(e,this._minBounds)}},maxBounds:{get:function(){return this._maxBounds},set:function(e){this._maxBounds=h.clone(e,this._maxBounds)}},minClippingBounds:{get:function(){return this._minClippingBounds},set:function(e){this._minClippingBounds=h.clone(e,this._minClippingBounds)}},maxClippingBounds:{get:function(){return this._maxClippingBounds},set:function(e){this._maxClippingBounds=h.clone(e,this._maxClippingBounds)}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){cs.setOwner(e,this,"_clippingPlanes")}},customShader:{get:function(){return this._customShader},set:function(e){if(this._customShader!==e){let t=this._uniformMap,i=this._customShader.uniformMap;for(let o in i)i.hasOwnProperty(o)&&delete t[o];l(e)?this._customShader=e:this._customShader=ap.DefaultCustomShader,this._shaderDirty=!0}}},customShaderCompilationEvent:{get:function(){return this._customShaderCompilationEvent}}});var W0t=new h,j0t=new oe,q0t=new oe,Y0t=new h,X0t=new h,K0t=new $,Z0t=new $,$0t=new F,Q0t=new F,J0t=new F,ext=F.fromRotationTranslation($.fromUniformScale(.5,new $),new h(.5,.5,.5),new F),txt=F.fromRotationTranslation($.fromUniformScale(2,new $),new h(-1,-1,-1),new F);ap.prototype.update=function(e){let t=this._provider;this._customShader.update(e);let n=e.context;if(!this._ready){axt(this,t,n),e.afterRender.push(()=>(this._ready=!0,!0));return}rxt(this,e);let i=qTe(this,t),o=this._shape;if(i&&(this._shapeVisible=YTe(this,o,t),uxt(this,o)&&(this._shaderDirty=!0)),!this._shapeVisible)return;let r=fxt(t.timeIntervalCollection,this._clock),s=this._traversal,a=s._sampleCount;if(s.update(e,r,i,this._disableUpdate),a!==s._sampleCount&&(this._shaderDirty=!0),!s.isRenderable(s.rootNode)||(this._debugDraw&&xxt(this,e),this._disableRender))return;this._useLogDepth!==e.useLogDepth&&(this._useLogDepth=e.useLogDepth,this._shaderDirty=!0),dxt(this,e)&&(this._shaderDirty=!0);let u=s.leafNodeTexture,f=this._uniforms;l(u)&&(f.octreeLeafNodeTexture=s.leafNodeTexture,f.octreeLeafNodeTexelSizeUv=z.clone(s.leafNodeTexelSizeUv,f.octreeLeafNodeTexelSizeUv),f.octreeLeafNodeTilesPerRow=s.leafNodeTilesPerRow),this._shaderDirty&&(qB(this,n),this._shaderDirty=!1);let d=n.uniformState.viewProjection,p=o.orientedBoundingBox,g=pxt(p,d,q0t);if(g.x===1||g.y===1||g.z===-1||g.w===-1)return;f.ndcSpaceAxisAlignedBoundingBox=oe.clone(g,f.ndcSpaceAxisAlignedBoundingBox);let x=n.uniformState.inverseView;f.transformPositionViewToUv=F.multiplyTransformation(this._transformPositionWorldToUv,x,f.transformPositionViewToUv);let b=n.uniformState.view;f.transformPositionUvToView=F.multiplyTransformation(b,this._transformPositionUvToWorld,f.transformPositionUvToView);let T=n.uniformState.inverseViewRotation;f.transformDirectionViewToLocal=$.multiply(this._transformDirectionWorldToLocal,T,f.transformDirectionViewToLocal),f.transformNormalLocalToWorld=$.clone(this._transformNormalLocalToWorld,f.transformNormalLocalToWorld);let C=e.camera.positionWC;f.cameraPositionUv=F.multiplyByPoint(this._transformPositionWorldToUv,C,f.cameraPositionUv),f.stepSize=this._stepSizeMultiplier;let A=e.passes.pick?this._drawCommandPick:e.passes.pickVoxel?this._drawCommandPickVoxel:this._drawCommand;A.boundingVolume=o.boundingSphere,e.commandList.push(A)};var nxt=new h,bZ=new h,ixt=new fe,oxt=new h;function rxt(e,t){if(e._exaggeratedMinBounds=h.clone(e._minBounds,e._exaggeratedMinBounds),e._exaggeratedMaxBounds=h.clone(e._maxBounds,e._exaggeratedMaxBounds),e.shape===Oi.ELLIPSOID){let n=t.verticalExaggerationRelativeHeight,i=t.verticalExaggeration;e._exaggeratedMinBounds.z=(e._minBounds.z-n)*i+n,e._exaggeratedMaxBounds.z=(e._maxBounds.z-n)*i+n}else if(e.shape===Oi.BOX){let n=h.fromElements(1,1,t.verticalExaggeration,nxt);e._exaggeratedModelMatrix=F.multiplyByScale(e._modelMatrix,n,e._exaggeratedModelMatrix),e._exaggeratedModelMatrix=F.multiplyByTranslation(e._exaggeratedModelMatrix,sxt(e,t),e._exaggeratedModelMatrix)}}function sxt(e,t){let{shapeTransform:n=F.IDENTITY,globalTransform:i=F.IDENTITY}=e._provider,o=F.getTranslation(n,bZ),r=F.multiplyByPoint(e._modelMatrix,o,bZ),s=F.multiplyByPoint(i,r,bZ),c=te.WGS84.cartesianToCartographic(s,ixt),u=0;l(c)&&(u=c.height);let f=pr.getHeight(u,t.verticalExaggeration,t.verticalExaggerationRelativeHeight);return h.fromElements(0,0,(f-u)/t.verticalExaggeration,oxt)}function axt(e,t,n){let i=e._uniforms;e._pickId=n.createPickId({primitive:e}),i.pickColor=H.clone(e._pickId.color,i.pickColor);let{shaderDefines:o,shaderUniforms:r}=e._shape;e._shapeDefinesOld=He(o,!0);let s=e._uniformMap;for(let a in r)if(r.hasOwnProperty(a)){let c=`u_${a}`;s[c]=function(){return r[a]}}i.dimensions=h.clone(t.dimensions,i.dimensions),e._paddingBefore=h.clone(y(t.paddingBefore,h.ZERO),e._paddingBefore),i.paddingBefore=h.clone(e._paddingBefore,i.paddingBefore),e._paddingAfter=h.clone(y(t.paddingAfter,h.ZERO),e._paddingBefore),i.paddingAfter=h.clone(e._paddingAfter,i.paddingAfter),e._traversal=cxt(e,t,n),lxt(e._traversal,i)}function qTe(e,t){let n=y(t.shapeTransform,F.IDENTITY),i=y(t.globalTransform,F.IDENTITY);return F.multiplyTransformation(i,e._exaggeratedModelMatrix,e._compoundModelMatrix),F.multiplyTransformation(e._compoundModelMatrix,n,e._compoundModelMatrix),uA(e,"_compoundModelMatrix","_compoundModelMatrixOld")+uA(e,"_minBounds","_minBoundsOld")+uA(e,"_maxBounds","_maxBoundsOld")+uA(e,"_exaggeratedMinBounds","_exaggeratedMinBoundsOld")+uA(e,"_exaggeratedMaxBounds","_exaggeratedMaxBoundsOld")+uA(e,"_minClippingBounds","_minClippingBoundsOld")+uA(e,"_maxClippingBounds","_maxClippingBoundsOld")>0}function uA(e,t,n){let i=e[t],o=e[n],r=!i.equals(o);return r&&i.clone(o),r?1:0}function YTe(e,t,n){if(!t.update(e._compoundModelMatrix,e._exaggeratedMinBounds,e._exaggeratedMaxBounds,e.minClippingBounds,e.maxClippingBounds))return!1;let o=t.shapeTransform,r=F.inverse(o,$0t),s=F.getRotation(o,K0t),a=F.getScale(o,Y0t),c=h.maximumComponent(a),u=h.divideByScalar(a,c,X0t),f=$.multiplyByScale(s,u,Z0t);return e._transformPositionWorldToUv=F.multiplyTransformation(ext,r,e._transformPositionWorldToUv),e._transformPositionUvToWorld=F.multiplyTransformation(o,txt,e._transformPositionUvToWorld),e._transformDirectionWorldToLocal=F.getMatrix3(r,e._transformDirectionWorldToLocal),e._transformNormalLocalToWorld=$.inverseTranspose(f,e._transformNormalLocalToWorld),!0}function cxt(e,t,n){let i=h.clone(t.dimensions,W0t);h.add(i,e._paddingBefore,i),h.add(i,e._paddingAfter,i);let o=t.maximumTileCount,r=l(o)?yv.getApproximateTextureMemoryByteLength(o,i,t.types,t.componentTypes):void 0,s=y(t.keyframeCount,1);return new yv(e,n,i,t.types,t.componentTypes,s,r)}function lxt(e,t){t.octreeInternalNodeTexture=e.internalNodeTexture,t.octreeInternalNodeTexelSizeUv=z.clone(e.internalNodeTexelSizeUv,t.octreeInternalNodeTexelSizeUv),t.octreeInternalNodeTilesPerRow=e.internalNodeTilesPerRow;let n=e.megatextures,i=n[0],o=n.length;t.megatextureTextures=new Array(o);for(let r=0;r<o;r++)t.megatextureTextures[r]=n[r].texture;t.megatextureSliceDimensions=z.clone(i.sliceCountPerRegion,t.megatextureSliceDimensions),t.megatextureTileDimensions=z.clone(i.regionCountPerMegatexture,t.megatextureTileDimensions),t.megatextureVoxelSizeUv=z.clone(i.voxelSizeUv,t.megatextureVoxelSizeUv),t.megatextureSliceSizeUv=z.clone(i.sliceSizeUv,t.megatextureSliceSizeUv),t.megatextureTileSizeUv=z.clone(i.regionSizeUv,t.megatextureTileSizeUv)}function uxt(e,t){let n=t.shaderDefines,i=Object.keys(n).some(o=>n[o]!==e._shapeDefinesOld[o]);return i&&(e._shapeDefinesOld=He(n,!0)),i}function fxt(e,t){if(!l(e)||!l(t))return 0;let n=t.currentTime,i,o=e.indexOf(n);o>=0?i=e.get(o):(o=~o,o===e.length?(o=e.length-1,i=e.get(o),n=i.stop):(i=e.get(o),n=i.start));let r=J.secondsDifference(i.stop,i.start),a=J.secondsDifference(n,i.start)/r;return o+a}function dxt(e,t){let n=e.clippingPlanes;if(!l(n))return!1;n.update(t);let{clippingPlanesState:i,enabled:o}=n;if(o){let r=e._uniforms;r.clippingPlanesTexture=n.texture,r.clippingPlanesMatrix=F.transpose(F.multiplyTransformation(F.inverse(n.modelMatrix,r.clippingPlanesMatrix),e._transformPositionUvToWorld,r.clippingPlanesMatrix),r.clippingPlanesMatrix)}return e._clippingPlanesState===i&&e._clippingPlanesEnabled===o?!1:(e._clippingPlanesState=i,e._clippingPlanesEnabled=o,!0)}ap.prototype.isDestroyed=function(){return!1};ap.prototype.destroy=function(){let e=this._drawCommand;l(e)&&(e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy());let t=this._drawCommandPick;return l(t)&&(t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()),this._pickId=this._pickId&&this._pickId.destroy(),this._traversal=this._traversal&&this._traversal.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),ue(this)};var jTe=new Array(new oe(-1,-1,-1,1),new oe(1,-1,-1,1),new oe(-1,1,-1,1),new oe(1,1,-1,1),new oe(-1,-1,1,1),new oe(1,-1,1,1),new oe(-1,1,1,1),new oe(1,1,1,1)),hxt=new Array(1,2,4,0,3,5,0,3,6,1,2,7,0,5,6,1,4,7,2,4,7,3,5,6),mxt=new Array(new oe,new oe,new oe,new oe,new oe,new oe,new oe,new oe);function pxt(e,t,n){let i=F.fromRotationTranslation(e.halfAxes,e.center,Q0t),o=F.multiply(t,i,J0t),r=+Number.MAX_VALUE,s=-Number.MAX_VALUE,a=+Number.MAX_VALUE,c=-Number.MAX_VALUE,u,f=mxt,d=jTe.length;for(u=0;u<d;u++)F.multiplyByVector(o,jTe[u],f[u]);for(u=0;u<d;u++){let p=f[u];if(p.z>=-p.w){let g=p.x/p.w,m=p.y/p.w;r=Math.min(r,g),s=Math.max(s,g),a=Math.min(a,m),c=Math.max(c,m)}else for(let g=0;g<3;g++){let m=hxt[u*3+g],x=f[m];if(x.z>=-x.w){let b=p.z+p.w,T=x.z+x.w,C=b/(b-T),A=oe.lerp(p,x,C,j0t),E=A.x/A.w,v=A.y/A.w;r=Math.min(r,E),s=Math.max(s,E),a=Math.min(a,v),c=Math.max(c,v)}}}return r=R.clamp(r,-1,1),a=R.clamp(a,-1,1),s=R.clamp(s,-1,1),c=R.clamp(c,-1,1),n=oe.fromElements(r,a,s,c,n),n}var TZ=3e7,_xt=new h(TZ,0,0),gxt=new h(0,TZ,0),yxt=new h(0,0,TZ);function xxt(e,t){let n=e._traversal,i=e._debugPolylines;i.removeAll();function o(c,u,f,d){i.add({positions:[c,u],width:d,material:Vi.fromType("Color",{color:f})})}function r(c,u,f){let d=c.computeCorners();o(d[0],d[1],u,f),o(d[2],d[3],u,f),o(d[4],d[5],u,f),o(d[6],d[7],u,f),o(d[0],d[2],u,f),o(d[4],d[6],u,f),o(d[1],d[3],u,f),o(d[5],d[7],u,f),o(d[0],d[4],u,f),o(d[2],d[6],u,f),o(d[1],d[5],u,f),o(d[3],d[7],u,f)}function s(c){if(!n.isRenderable(c))return;let u=c.level,d=Math.max(1,5/Math.pow(2,u)),g=[H.RED,H.LIME,H.BLUE][u%3];if(r(c.orientedBoundingBox,g,d),l(c.children))for(let m=0;m<8;m++)s(c.children[m])}r(e._shape.orientedBoundingBox,H.WHITE,5),s(n.rootNode);let a=10;o(h.ZERO,_xt,H.RED,a),o(h.ZERO,gxt,H.LIME,a),o(h.ZERO,yxt,H.BLUE,a),i.update(t)}ap.DefaultCustomShader=new lA({fragmentShaderText:`void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) { material.diffuse = vec3(1.0); material.alpha = 1.0; }`});function XTe(){this.ready=!0,this.shape=Oi.BOX,this.dimensions=new h(1,1,1),this.names=["data"],this.types=[Ht.SCALAR],this.componentTypes=[sn.FLOAT32],this.maximumTileCount=1}XTe.prototype.requestData=function(e){if(!((l(e)?y(e.tileLevel,0):0)>=1))return Promise.resolve([new Float32Array(1)])};ap.DefaultProvider=new XTe;var F0=ap;var JH=function(e){return function(){e.frameState.afterRender.push(function(){e.requestRender()})}};function fi(e){e=y(e,y.EMPTY_OBJECT);let t=e.canvas,n=e.creditContainer,i=e.creditViewport,o=He(e.contextOptions),r=l(n),s=new tF(t,o);r||(n=document.createElement("div"),n.style.position="absolute",n.style.bottom="0",n.style["text-shadow"]="0 0 2px #000000",n.style.color="#ffffff",n.style["font-size"]="10px",n.style["padding-right"]="5px",t.parentNode.appendChild(n)),l(i)||(i=t.parentNode),this._id=Hn(),this._jobScheduler=new k2,this._frameState=new F2(s,new P2(n," \u2022 ",i),this._jobScheduler),this._frameState.scene3DOnly=y(e.scene3DOnly,!1),this._removeCreditContainer=!r,this._creditContainer=n,this._canvas=t,this._context=s,this._computeEngine=new KN(s),this._globe=void 0,this._globeTranslucencyState=new B2,this._primitives=new Wl,this._groundPrimitives=new Wl,this._globeHeight=void 0,this._globeHeightDirty=!0,this._cameraUnderground=!1,this._removeUpdateHeightCallback=void 0,this._logDepthBuffer=fi.defaultLogDepthBuffer&&s.fragmentDepth,this._logDepthBufferDirty=!0,this._tweens=new iA,this._shaderFrameCount=0,this._sunPostProcess=void 0,this._computeCommandList=[],this._overlayCommandList=[],this._useOIT=y(e.orderIndependentTranslucency,!0),this._executeOITFunction=void 0,this._depthPlane=new O2(e.depthPlaneEllipsoidOffset),this._clearColorCommand=new ii({color:new H,stencil:0,owner:this}),this._depthClearCommand=new ii({depth:1,owner:this}),this._stencilClearCommand=new ii({stencil:0}),this._classificationStencilClearCommand=new ii({stencil:0,renderState:Ve.fromCache({stencilMask:Ft.CLASSIFICATION_MASK})}),this._depthOnlyRenderStateCache={},this._transitioner=new xB(this),this._preUpdate=new pe,this._postUpdate=new pe,this._renderError=new pe,this._preRender=new pe,this._postRender=new pe,this._minimumDisableDepthTestDistance=0,this._debugInspector=new DB,this._msaaSamples=y(e.msaaSamples,1),this.rethrowRenderErrors=!1,this.completeMorphOnUserInput=!0,this.morphStart=new pe,this.morphComplete=new pe,this.skyBox=void 0,this.skyAtmosphere=void 0,this.sun=void 0,this.sunBloom=!0,this._sunBloom=void 0,this.moon=void 0,this.backgroundColor=H.clone(H.BLACK),this._mode=ne.SCENE3D,this._mapProjection=l(e.mapProjection)?e.mapProjection:new Ci,this.morphTime=1,this.farToNearRatio=1e3,this.logarithmicDepthFarToNearRatio=1e9,this.nearToFarDistance2D=175e4,this.verticalExaggeration=1,this.verticalExaggerationRelativeHeight=0,this.debugCommandFilter=void 0,this.debugShowCommands=!1,this.debugShowFrustums=!1,this.debugShowFramesPerSecond=!1,this.debugShowDepthFrustum=1,this.debugShowFrustumPlanes=!1,this._debugShowFrustumPlanes=!1,this._debugFrustumPlanes=void 0,this.useDepthPicking=!0,this.pickTranslucentDepth=!1,this.cameraEventWaitTime=500,this.atmosphere=new T2,this.fog=new N2,this._shadowMapCamera=new ao(this),this.shadowMap=new fg({context:s,lightCamera:this._shadowMapCamera,enabled:y(e.shadows,!1)}),this.invertClassification=!1,this.invertClassificationColor=H.clone(H.WHITE),this._actualInvertClassificationColor=H.clone(this._invertClassificationColor),this._invertClassification=new fv,this.focalLength=void 0,this.eyeSeparation=void 0,this.postProcessStages=new gB,this._brdfLutGenerator=new C2,this._performanceDisplay=void 0,this._debugVolume=void 0,this._screenSpaceCameraController=new CB(this),this._cameraUnderground=!1,this._mapMode2D=y(e.mapMode2D,tu.INFINITE_SCROLL),this._environmentState={skyBoxCommand:void 0,skyAtmosphereCommand:void 0,sunDrawCommand:void 0,sunComputeCommand:void 0,moonCommand:void 0,isSunVisible:!1,isMoonVisible:!1,isReadyForAtmosphere:!1,isSkyAtmosphereVisible:!1,clearGlobeDepth:!1,useDepthPlane:!1,renderTranslucentDepthForPick:!1,originalFramebuffer:void 0,useGlobeDepthFramebuffer:!1,useOIT:!1,useInvertClassification:!1,usePostProcess:!1,usePostProcessSelected:!1,useWebVR:!1},this._useWebVR=!1,this._cameraVR=void 0,this._aspectRatioVR=void 0,this.requestRenderMode=y(e.requestRenderMode,!1),this._renderRequested=!0,this.maximumRenderTimeChange=y(e.maximumRenderTimeChange,0),this._lastRenderTime=void 0,this._frameRateMonitor=void 0,this._removeRequestListenerCallback=Ka.requestCompletedEvent.addEventListener(JH(this)),this._removeTaskProcessorListenerCallback=mi.taskCompletedEvent.addEventListener(JH(this)),this._removeGlobeCallbacks=[],this._removeTerrainProviderReadyListener=void 0;let a=new Ge(0,0,s.drawingBufferWidth,s.drawingBufferHeight),c=new ao(this);this._logDepthBuffer&&(c.frustum.near=.1,c.frustum.far=1e10),this.preloadFlightCamera=new ao(this),this.preloadFlightCullingVolume=void 0,this._picking=new K2(this),this._defaultView=new ZT(this,c,a),this._view=this._defaultView,this._hdr=void 0,this._hdrDirty=void 0,this.highDynamicRange=!1,this.gamma=2.2,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this._specularEnvironmentMapAtlas=void 0,this.light=new X_,QTe(this,0,J.now()),this.updateFrameState(),this.initializeFrame()}fi.defaultLogDepthBuffer=!0;function bxt(e,t){for(let i=0;i<e._removeGlobeCallbacks.length;++i)e._removeGlobeCallbacks[i]();e._removeGlobeCallbacks.length=0;let n=[];l(t)&&(n.push(t.imageryLayersUpdatedEvent.addEventListener(JH(e))),n.push(t.terrainProviderChanged.addEventListener(JH(e)))),e._removeGlobeCallbacks=n}Object.defineProperties(fi.prototype,{canvas:{get:function(){return this._canvas}},drawingBufferHeight:{get:function(){return this._context.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._context.drawingBufferWidth}},maximumAliasedLineWidth:{get:function(){return Nt.maximumAliasedLineWidth}},maximumCubeMapSize:{get:function(){return Nt.maximumCubeMapSize}},pickPositionSupported:{get:function(){return this._context.depthTexture}},sampleHeightSupported:{get:function(){return this._context.depthTexture}},clampToHeightSupported:{get:function(){return this._context.depthTexture}},invertClassificationSupported:{get:function(){return this._context.depthTexture}},specularEnvironmentMapsSupported:{get:function(){return Ld.isSupported(this._context)}},globe:{get:function(){return this._globe},set:function(e){this._globe=this._globe&&this._globe.destroy(),this._globe=e,bxt(this,e)}},primitives:{get:function(){return this._primitives}},groundPrimitives:{get:function(){return this._groundPrimitives}},camera:{get:function(){return this._view.camera},set:function(e){this._view.camera=e}},view:{get:function(){return this._view},set:function(e){this._view=e}},defaultView:{get:function(){return this._defaultView}},picking:{get:function(){return this._picking}},screenSpaceCameraController:{get:function(){return this._screenSpaceCameraController}},mapProjection:{get:function(){return this._mapProjection}},jobScheduler:{get:function(){return this._jobScheduler}},frameState:{get:function(){return this._frameState}},environmentState:{get:function(){return this._environmentState}},tweens:{get:function(){return this._tweens}},imageryLayers:{get:function(){if(l(this.globe))return this.globe.imageryLayers}},terrainProvider:{get:function(){if(l(this.globe))return this.globe.terrainProvider},set:function(e){this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),l(this.globe)&&(this.globe.terrainProvider=e)}},terrainProviderChanged:{get:function(){if(l(this.globe))return this.globe.terrainProviderChanged}},preUpdate:{get:function(){return this._preUpdate}},postUpdate:{get:function(){return this._postUpdate}},renderError:{get:function(){return this._renderError}},preRender:{get:function(){return this._preRender}},postRender:{get:function(){return this._postRender}},lastRenderTime:{get:function(){return this._lastRenderTime}},context:{get:function(){return this._context}},debugFrustumStatistics:{get:function(){return this._view.debugFrustumStatistics}},scene3DOnly:{get:function(){return this._frameState.scene3DOnly}},orderIndependentTranslucency:{get:function(){return this._useOIT}},id:{get:function(){return this._id}},mode:{get:function(){return this._mode},set:function(e){e===ne.SCENE2D?this.morphTo2D(0):e===ne.SCENE3D?this.morphTo3D(0):e===ne.COLUMBUS_VIEW&&this.morphToColumbusView(0),this._mode=e}},frustumCommandsList:{get:function(){return this._view.frustumCommandsList}},numberOfFrustums:{get:function(){return this._view.frustumCommandsList.length}},useWebVR:{get:function(){return this._useWebVR},set:function(e){this._useWebVR=e,this._useWebVR?(this._frameState.creditDisplay.container.style.visibility="hidden",this._cameraVR=new ao(this),l(this._deviceOrientationCameraController)||(this._deviceOrientationCameraController=new L2(this)),this._aspectRatioVR=this.camera.frustum.aspectRatio):(this._frameState.creditDisplay.container.style.visibility="visible",this._cameraVR=void 0,this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this.camera.frustum.aspectRatio=this._aspectRatioVR,this.camera.frustum.xOffset=0)}},mapMode2D:{get:function(){return this._mapMode2D}},splitPosition:{get:function(){return this._frameState.splitPosition},set:function(e){this._frameState.splitPosition=e}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance},set:function(e){this._minimumDisableDepthTestDistance=e}},logarithmicDepthBuffer:{get:function(){return this._logDepthBuffer},set:function(e){e=this._context.fragmentDepth&&e,this._logDepthBuffer!==e&&(this._logDepthBuffer=e,this._logDepthBufferDirty=!0)}},gamma:{get:function(){return this._context.uniformState.gamma},set:function(e){this._context.uniformState.gamma=e}},highDynamicRange:{get:function(){return this._hdr},set:function(e){let t=this._context,n=e&&t.depthTexture&&(t.colorBufferFloat||t.colorBufferHalfFloat);this._hdrDirty=n!==this._hdr,this._hdr=n}},highDynamicRangeSupported:{get:function(){let e=this._context;return e.depthTexture&&(e.colorBufferFloat||e.colorBufferHalfFloat)}},cameraUnderground:{get:function(){return this._cameraUnderground}},msaaSamples:{get:function(){return this._msaaSamples},set:function(e){e=Math.min(e,Nt.maximumSamples),this._msaaSamples=e}},msaaSupported:{get:function(){return this._context.msaa}},pixelRatio:{get:function(){return this._frameState.pixelRatio},set:function(e){this._frameState.pixelRatio=e}},opaqueFrustumNearOffset:{get:function(){return .9999}},globeHeight:{get:function(){return this._globeHeight}}});fi.prototype.getCompressedTextureFormatSupported=function(e){let t=this.context;return(e==="WEBGL_compressed_texture_s3tc"||e==="s3tc")&&t.s3tc||(e==="WEBGL_compressed_texture_pvrtc"||e==="pvrtc")&&t.pvrtc||(e==="WEBGL_compressed_texture_etc"||e==="etc")&&t.etc||(e==="WEBGL_compressed_texture_etc1"||e==="etc1")&&t.etc1||(e==="WEBGL_compressed_texture_astc"||e==="astc")&&t.astc||(e==="EXT_texture_compression_bptc"||e==="bc7")&&t.bc7};function KTe(e,t,n){let i=e._frameState,o=e._context,r=e._view.oit,s=i.shadowState.lightShadowMaps,a=i.shadowState.lightShadowsEnabled,c=t.derivedCommands;l(t.pickId)&&(c.picking=ag.createPickDerivedCommand(e,t,o,c.picking)),t.pickOnly||(c.depth=ag.createDepthOnlyDerivedCommand(e,t,o,c.depth)),c.originalCommand=t,e._hdr&&(c.hdr=ag.createHdrCommand(t,o,c.hdr),t=c.hdr.command,c=t.derivedCommands),a&&t.receiveShadows&&(c.shadows=fg.createReceiveDerivedCommand(s,t,n,o,c.shadows)),t.pass===Ee.TRANSLUCENT&&l(r)&&r.isSupported()&&(a&&t.receiveShadows?(c.oit=l(c.oit)?c.oit:{},c.oit.shadows=r.createDerivedCommands(c.shadows.receiveCommand,o,c.oit.shadows)):c.oit=r.createDerivedCommands(t,o,c.oit))}fi.prototype.updateDerivedCommands=function(e){if(!l(e.derivedCommands))return;let t=this._frameState,n=this._context,i=!1,o=t.shadowState.lastDirtyTime;e.lastDirtyTime!==o&&(e.lastDirtyTime=o,e.dirty=!0,i=!0);let r=t.useLogDepth,s=this._hdr,a=e.derivedCommands,c=l(a.logDepth),u=l(a.hdr),f=l(a.originalCommand),d=r&&!c,p=s&&!u,g=(!r||!s)&&!f;if(e.dirty=e.dirty||d||p||g,e.dirty){e.dirty=!1;let m=t.shadowState.shadowMaps;t.shadowState.shadowsEnabled&&e.castShadows&&(a.shadows=fg.createCastDerivedCommand(m,e,i,n,a.shadows)),(c||d)&&(a.logDepth=ag.createLogDepthCommand(e,n,a.logDepth),KTe(this,a.logDepth.command,i)),(f||g)&&KTe(this,e,i)}};var Txt=new ld({pass:Mo.RENDER}),AZ=new ld({pass:Mo.PRELOAD}),CZ=new ld({pass:Mo.PRELOAD_FLIGHT}),Axt=new ld({pass:Mo.REQUEST_RENDER_MODE_DEFER_CHECK}),ZTe=new ae,EZ;function Cxt(e){let t=e.globe;if(e._mode===ne.SCENE3D&&l(t)&&t.show&&!e._cameraUnderground&&!e._globeTranslucencyState.translucent){let n=t.ellipsoid,i=e.frameState.minimumTerrainHeight;return ZTe.radius=n.minimumRadius+i,EZ=_F.fromBoundingSphere(ZTe,e.camera.positionWC,EZ),EZ}}fi.prototype.clearPasses=function(e){e.render=!1,e.pick=!1,e.pickVoxel=!1,e.depth=!1,e.postProcess=!1,e.offscreen=!1};function QTe(e,t,n){let i=e._frameState;i.frameNumber=t,i.time=J.clone(n,i.time)}fi.prototype.updateFrameState=function(){let e=this.camera,t=this._frameState;t.commandList.length=0,t.shadowMaps.length=0,t.brdfLutGenerator=this._brdfLutGenerator,t.environmentMap=this.skyBox&&this.skyBox._cubeMap,t.mode=this._mode,t.morphTime=this.morphTime,t.mapProjection=this.mapProjection,t.camera=e,t.cullingVolume=e.frustum.computeCullingVolume(e.positionWC,e.directionWC,e.upWC),t.occluder=Cxt(this),t.minimumTerrainHeight=0,t.minimumDisableDepthTestDistance=this._minimumDisableDepthTestDistance,t.invertClassification=this.invertClassification,t.useLogDepth=this._logDepthBuffer&&!(this.camera.frustum instanceof rn||this.camera.frustum instanceof Er),t.light=this.light,t.cameraUnderground=this._cameraUnderground,t.globeTranslucencyState=this._globeTranslucencyState;let{globe:n}=this;l(n)&&n._terrainExaggerationChanged&&(this.verticalExaggeration=n._terrainExaggeration,this.verticalExaggerationRelativeHeight=n._terrainExaggerationRelativeHeight,n._terrainExaggerationChanged=!1),t.verticalExaggeration=this.verticalExaggeration,t.verticalExaggerationRelativeHeight=this.verticalExaggerationRelativeHeight,l(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready?(t.specularEnvironmentMaps=this._specularEnvironmentMapAtlas.texture,t.specularEnvironmentMapsMaximumLOD=this._specularEnvironmentMapAtlas.maximumMipmapLevel):(t.specularEnvironmentMaps=void 0,t.specularEnvironmentMapsMaximumLOD=void 0),t.sphericalHarmonicCoefficients=this.sphericalHarmonicCoefficients,this._actualInvertClassificationColor=H.clone(this.invertClassificationColor,this._actualInvertClassificationColor),fv.isTranslucencySupported(this._context)||(this._actualInvertClassificationColor.alpha=1),t.invertClassificationColor=this._actualInvertClassificationColor,l(this.globe)?t.maximumScreenSpaceError=this.globe.maximumScreenSpaceError:t.maximumScreenSpaceError=2,this.clearPasses(t.passes),t.tilesetPassState=void 0};fi.prototype.isVisible=function(e,t,n){return l(e)&&(!l(e.boundingVolume)||!e.cull||t.computeVisibility(e.boundingVolume)!==Gt.OUTSIDE&&(!l(n)||!e.occlude||!e.boundingVolume.isOccluded(n)))};var QH=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);QH=F.inverseTransformation(QH,QH);function Ext(e,t,n,i){let o=t._frameState,r=o.context,s=e.boundingVolume;l(t._debugVolume)&&t._debugVolume.destroy();let a,c=h.clone(s.center);if(o.mode!==ne.SCENE3D){c=F.multiplyByPoint(QH,c,c);let p=o.mapProjection,g=p.unproject(c);c=p.ellipsoid.cartographicToCartesian(g)}if(l(s.radius)){let p=s.radius;a=Nn.toWireframe(Ws.createGeometry(new Ws({radii:new h(p,p,p),vertexFormat:cn.FLAT_VERTEX_FORMAT}))),t._debugVolume=new vn({geometryInstances:new xt({geometry:a,modelMatrix:F.fromTranslation(c),attributes:{color:new zt(1,0,0,1)}}),appearance:new cn({flat:!0,translucent:!1}),asynchronous:!1})}else{let p=s.halfAxes;a=Nn.toWireframe(Al.createGeometry(Al.fromDimensions({dimensions:new h(2,2,2),vertexFormat:cn.FLAT_VERTEX_FORMAT}))),t._debugVolume=new vn({geometryInstances:new xt({geometry:a,modelMatrix:F.fromRotationTranslation(p,c,new F),attributes:{color:new zt(1,0,0,1)}}),appearance:new cn({flat:!0,translucent:!1}),asynchronous:!1})}let u=o.commandList,f=o.commandList=[];t._debugVolume.update(o),e=f[0],o.useLogDepth&&(e=ag.createLogDepthCommand(e,r).command);let d;l(i)&&(d=n.framebuffer,n.framebuffer=i),e.execute(r,n),l(d)&&(n.framebuffer=d),o.commandList=u}function Va(e,t,n,i,o){let r=t._frameState;if(l(t.debugCommandFilter)&&!t.debugCommandFilter(e))return;if(e instanceof ii){e.execute(n,i);return}e.debugShowBoundingVolume&&l(e.boundingVolume)&&Ext(e,t,i,o),r.useLogDepth&&l(e.derivedCommands.logDepth)&&(e=e.derivedCommands.logDepth.command);let s=r.passes;if(!s.pick&&!s.pickVoxel&&!s.depth&&t._hdr&&l(e.derivedCommands)&&l(e.derivedCommands.hdr)&&(e=e.derivedCommands.hdr.command),s.pick||s.depth){if(s.pick&&!s.depth&&l(e.derivedCommands.picking)){e=e.derivedCommands.picking.pickCommand,e.execute(n,i);return}else if(l(e.derivedCommands.depth)){e=e.derivedCommands.depth.depthOnlyCommand,e.execute(n,i);return}}if(t.debugShowCommands||t.debugShowFrustums){t._debugInspector.executeDebugShowFrustumsCommand(t,e,i);return}r.shadowState.lightShadowsEnabled&&e.receiveShadows&&l(e.derivedCommands.shadows)?e.derivedCommands.shadows.receiveCommand.execute(n,i):e.execute(n,i)}function $B(e,t,n,i){let o=t._frameState,r=e.derivedCommands;l(r)&&(o.useLogDepth&&l(r.logDepth)&&(e=r.logDepth.command),r=e.derivedCommands,l(r.picking)?(e=r.picking.pickCommand,e.execute(n,i)):l(r.depth)&&(e=r.depth.depthOnlyCommand,e.execute(n,i)))}function JTe(e,t,n){return t.boundingVolume.distanceSquaredTo(n)-e.boundingVolume.distanceSquaredTo(n)}function Sxt(e,t,n){return e.boundingVolume.distanceSquaredTo(n)-t.boundingVolume.distanceSquaredTo(n)+R.EPSILON12}function vxt(e,t,n,i,o){let r=e.context;J_(i,JTe,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,r,n);let s=i.length;for(let a=0;a<s;++a)t(i[a],e,r,n)}function wxt(e,t,n,i,o){let r=e.context;J_(i,Sxt,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,r,n);let s=i.length;for(let a=0;a<s;++a)t(i[a],e,r,n)}function Dxt(e,t,n,i){let o=e.context;J_(i,JTe,e.camera.positionWC);let r=i.length;for(let s=0;s<r;++s)t(i[s],e,o,n)}var Pxt=new Ti,Ixt=new ul,Rxt=new rn,Oxt=new Er;function vZ(e,t){let{camera:n,context:i,frameState:o}=e,{uniformState:r}=i;r.updateCamera(n);let s;l(n.frustum.fov)?s=n.frustum.clone(Pxt):l(n.frustum.infiniteProjectionMatrix)?s=n.frustum.clone(Ixt):l(n.frustum.width)?s=n.frustum.clone(Rxt):s=n.frustum.clone(Oxt),s.near=n.frustum.near,s.far=n.frustum.far,r.updateFrustum(s),r.updatePass(Ee.ENVIRONMENT);let a=o.passes,c=a.pick||a.pickVoxel,u=e._environmentState,f=e._view,d=u.renderTranslucentDepthForPick,p=u.useWebVR;if(!c){let S=u.skyBoxCommand;if(l(S)&&Va(S,e,i,t),u.isSkyAtmosphereVisible&&Va(u.skyAtmosphereCommand,e,i,t),u.isSunVisible&&(u.sunDrawCommand.execute(i,t),e.sunBloom&&!p)){let w;u.useGlobeDepthFramebuffer?w=f.globeDepth.framebuffer:u.usePostProcess?w=f.sceneFramebuffer.framebuffer:w=u.originalFramebuffer,e._sunPostProcess.execute(i),e._sunPostProcess.copy(i,w),t.framebuffer=w}u.isMoonVisible&&u.moonCommand.execute(i,t)}let g;u.useOIT?(l(e._executeOITFunction)||(e._executeOITFunction=function(S,w,P,M,B){f.globeDepth.prepareColorTextures(i),f.oit.executeCommands(S,w,P,M,B)}),g=e._executeOITFunction):a.render?g=vxt:g=wxt;let m=f.frustumCommandsList,x=m.length,b=u.clearGlobeDepth,T=u.useDepthPlane,C=e._globeTranslucencyState,A=C.translucent,E=e._view.globeTranslucencyFramebuffer,v=e._depthClearCommand,D=e._stencilClearCommand,O=e._classificationStencilClearCommand,I=e._depthPlane,L=u.usePostProcessSelected,N=n.position.z,_;for(let S=0;S<x;++S){let w=x-S-1,P=m[w];e.mode===ne.SCENE2D?(n.position.z=N-P.near+1,s.far=Math.max(1,P.far-P.near),s.near=1,r.update(o),r.updateFrustum(s)):(s.near=w!==0?P.near*e.opaqueFrustumNearOffset:P.near,s.far=P.far,r.updateFrustum(s)),v.execute(i,t),i.stencilBuffer&&D.execute(i,t),r.updatePass(Ee.GLOBE);let M=P.commands[Ee.GLOBE],B=P.indices[Ee.GLOBE];if(A)C.executeGlobeCommands(P,Va,E,e,t);else for(_=0;_<B;++_)Va(M[_],e,i,t);let U=f.globeDepth;if(l(U)&&u.useGlobeDepthFramebuffer&&U.executeCopyDepth(i,t),!u.renderTranslucentDepthForPick)if(r.updatePass(Ee.TERRAIN_CLASSIFICATION),M=P.commands[Ee.TERRAIN_CLASSIFICATION],B=P.indices[Ee.TERRAIN_CLASSIFICATION],A)C.executeGlobeClassificationCommands(P,Va,E,e,t);else for(_=0;_<B;++_)Va(M[_],e,i,t);if(b&&(v.execute(i,t),T&&I.execute(i,t)),!u.useInvertClassification||c||u.renderTranslucentDepthForPick){for(r.updatePass(Ee.CESIUM_3D_TILE),M=P.commands[Ee.CESIUM_3D_TILE],B=P.indices[Ee.CESIUM_3D_TILE],_=0;_<B;++_)Va(M[_],e,i,t);if(B>0&&(l(U)&&u.useGlobeDepthFramebuffer&&(U.prepareColorTextures(i,b),U.executeUpdateDepth(i,t,b,U.depthStencilTexture)),!u.renderTranslucentDepthForPick))for(r.updatePass(Ee.CESIUM_3D_TILE_CLASSIFICATION),M=P.commands[Ee.CESIUM_3D_TILE_CLASSIFICATION],B=P.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<B;++_)Va(M[_],e,i,t)}else{e._invertClassification.clear(i,t);let Y=t.framebuffer;for(t.framebuffer=e._invertClassification._fbo.framebuffer,r.updatePass(Ee.CESIUM_3D_TILE),M=P.commands[Ee.CESIUM_3D_TILE],B=P.indices[Ee.CESIUM_3D_TILE],_=0;_<B;++_)Va(M[_],e,i,t);for(l(U)&&u.useGlobeDepthFramebuffer&&(e._invertClassification.prepareTextures(i),U.executeUpdateDepth(i,t,b,e._invertClassification._fbo.getDepthStencilTexture())),r.updatePass(Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW),M=P.commands[Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],B=P.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],_=0;_<B;++_)Va(M[_],e,i,t);for(t.framebuffer=Y,e._invertClassification.executeClassified(i,t),o.invertClassificationColor.alpha===1&&e._invertClassification.executeUnclassified(i,t),B>0&&i.stencilBuffer&&O.execute(i,t),r.updatePass(Ee.CESIUM_3D_TILE_CLASSIFICATION),M=P.commands[Ee.CESIUM_3D_TILE_CLASSIFICATION],B=P.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<B;++_)Va(M[_],e,i,t)}for(B>0&&i.stencilBuffer&&D.execute(i,t),r.updatePass(Ee.VOXELS),M=P.commands[Ee.VOXELS],B=P.indices[Ee.VOXELS],M.length=B,Dxt(e,Va,t,M),r.updatePass(Ee.OPAQUE),M=P.commands[Ee.OPAQUE],B=P.indices[Ee.OPAQUE],_=0;_<B;++_)Va(M[_],e,i,t);w!==0&&e.mode!==ne.SCENE2D&&(s.near=P.near,r.updateFrustum(s));let V;if(!c&&u.useInvertClassification&&o.invertClassificationColor.alpha<1&&(V=e._invertClassification),r.updatePass(Ee.TRANSLUCENT),M=P.commands[Ee.TRANSLUCENT],M.length=P.indices[Ee.TRANSLUCENT],g(e,Va,t,M,V),P.indices[Ee.CESIUM_3D_TILE_CLASSIFICATION]>0&&f.translucentTileClassification.isSupported()&&(f.translucentTileClassification.executeTranslucentCommands(e,Va,t,M,U.depthStencilTexture),f.translucentTileClassification.executeClassificationCommands(e,Va,t,P)),i.depthTexture&&e.useDepthPicking&&(u.useGlobeDepthFramebuffer||d)){let Y=U.depthStencilTexture,W=e._picking.getPickDepth(e,w);W.update(i,Y),W.executeCopyDepth(i,t)}if(c||!L)continue;let k=t.framebuffer;if(t.framebuffer=f.sceneFramebuffer.getIdFramebuffer(),s.near=w!==0?P.near*e.opaqueFrustumNearOffset:P.near,s.far=P.far,r.updateFrustum(s),r.updatePass(Ee.GLOBE),M=P.commands[Ee.GLOBE],B=P.indices[Ee.GLOBE],A)C.executeGlobeCommands(P,$B,E,e,t);else for(_=0;_<B;++_)$B(M[_],e,i,t);for(b&&(v.framebuffer=t.framebuffer,v.execute(i,t),v.framebuffer=void 0),b&&T&&I.execute(i,t),r.updatePass(Ee.CESIUM_3D_TILE),M=P.commands[Ee.CESIUM_3D_TILE],B=P.indices[Ee.CESIUM_3D_TILE],_=0;_<B;++_)$B(M[_],e,i,t);for(r.updatePass(Ee.OPAQUE),M=P.commands[Ee.OPAQUE],B=P.indices[Ee.OPAQUE],_=0;_<B;++_)$B(M[_],e,i,t);for(r.updatePass(Ee.TRANSLUCENT),M=P.commands[Ee.TRANSLUCENT],B=P.indices[Ee.TRANSLUCENT],_=0;_<B;++_)$B(M[_],e,i,t);t.framebuffer=k}}function eAe(e){e.context.uniformState.updatePass(Ee.COMPUTE);let n=e._environmentState.sunComputeCommand;l(n)&&n.execute(e._computeEngine);let i=e._computeCommandList,o=i.length;for(let r=0;r<o;++r)i[r].execute(e._computeEngine)}function Mxt(e,t){e.context.uniformState.updatePass(Ee.OVERLAY);let i=e.context,o=e._overlayCommandList,r=o.length;for(let s=0;s<r;++s)o[s].execute(i,t)}function Lxt(e,t,n){let i=n.shadowMapCullingVolume,o=n.isPointLight,r=n.passes,s=r.length,a=t.length;for(let c=0;c<a;++c){let u=t[c];if(e.updateDerivedCommands(u),u.castShadows&&(u.pass===Ee.GLOBE||u.pass===Ee.CESIUM_3D_TILE||u.pass===Ee.OPAQUE||u.pass===Ee.TRANSLUCENT)&&e.isVisible(u,i))if(o)for(let f=0;f<s;++f)r[f].commandList.push(u);else if(s===1)r[0].commandList.push(u);else{let f=!1;for(let d=s-1;d>=0;--d){let p=r[d].cullingVolume;if(e.isVisible(u,p))r[d].commandList.push(u),f=!0;else if(f)break}}}}function tAe(e){let t=e.frameState,n=t.shadowState.shadowMaps,i=n.length;if(!t.shadowState.shadowsEnabled)return;let o=e.context,r=o.uniformState;for(let s=0;s<i;++s){let a=n[s];if(a.outOfView)continue;let c=a.passes,u=c.length;for(let d=0;d<u;++d)c[d].commandList.length=0;let f=e.frameState.commandList;Lxt(e,f,a);for(let d=0;d<u;++d){let p=a.passes[d];r.updateCamera(p.camera),a.updatePass(o,d);let g=p.commandList.length;for(let m=0;m<g;++m){let x=p.commandList[m];r.updatePass(x.pass),Va(x.derivedCommands.shadows.castCommands[s],e,o,p.passState)}}}}var Nxt=new h;fi.prototype.updateAndExecuteCommands=function(e,t){let i=this._frameState.mode;this._environmentState.useWebVR?Fxt(this,e,t):i!==ne.SCENE2D||this._mapMode2D===tu.ROTATE?B0(!0,this,e,t):(wZ(this,e,t),jxt(this,e))};function Fxt(e,t,n){let i=e._view,o=i.camera,s=e._environmentState.renderTranslucentDepthForPick;wZ(e,t,n),nAe(e),i.createPotentiallyVisibleSet(e),eAe(e),s||tAe(e);let a=t.viewport;a.x=0,a.y=0,a.width=a.width*.5;let c=ao.clone(o,e._cameraVR);c.frustum=o.frustum;let u=o.frustum.near,f=u*y(e.focalLength,5),d=y(e.eyeSeparation,f/30),p=h.multiplyByScalar(c.right,d*.5,Nxt);o.frustum.aspectRatio=a.width/a.height;let g=.5*d*u/f;h.add(c.position,p,o.position),o.frustum.xOffset=g,vZ(e,t),a.x=a.width,h.subtract(c.position,p,o.position),o.frustum.xOffset=-g,vZ(e,t),ao.clone(c,o)}var Bxt=new fe(Math.PI,R.PI_OVER_TWO),kxt=new h,Vxt=new h,Uxt=new F,zxt=new F,Hxt=new h,Gxt=new h,Wxt=new Ge;function jxt(e,t){let n=e.context,i=e.frameState,o=e.camera,r=t.viewport,s=Ge.clone(r,Wxt);t.viewport=s;let a=Bxt,c=kxt;e.mapProjection.project(a,c);let f=h.clone(o.position,Vxt),d=F.clone(o.transform,zxt),p=o.frustum.clone();o._setTransform(F.IDENTITY);let g=F.computeViewportTransformation(s,0,1,Uxt),m=o.frustum.projectionMatrix,x=o.positionWC.y,b=h.fromElements(R.sign(x)*c.x-x,0,-o.positionWC.x,Hxt),T=wt.pointToGLWindowCoordinates(m,g,b,Gxt);T.x=Math.floor(T.x);let C=s.x,A=s.width;if(x===0||T.x<=C||T.x>=C+A)B0(!0,e,t);else if(Math.abs(C+A*.5-T.x)<1)s.width=T.x-s.x,o.position.x*=R.sign(o.position.x),o.frustum.right=0,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),B0(!0,e,t),s.x=T.x,o.position.x=-o.position.x,o.frustum.right=-o.frustum.left,o.frustum.left=0,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),B0(!1,e,t);else if(T.x>C+A*.5){s.width=T.x-C;let E=o.frustum.right;o.frustum.right=c.x-x,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),B0(!0,e,t),s.x=T.x,s.width=C+A-T.x,o.position.x=-o.position.x,o.frustum.left=-o.frustum.right,o.frustum.right=E-o.frustum.right*2,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),B0(!1,e,t)}else{s.x=T.x,s.width=C+A-T.x;let E=o.frustum.left;o.frustum.left=-c.x-x,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),B0(!0,e,t),s.x=C,s.width=T.x-C,o.position.x=-o.position.x,o.frustum.right=-o.frustum.left,o.frustum.left=E-o.frustum.left*2,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),B0(!1,e,t)}o._setTransform(d),h.clone(f,o.position),o.frustum=p.clone(),t.viewport=r}function B0(e,t,n,i){let o=t._environmentState,r=t._view,s=o.renderTranslucentDepthForPick;e||(t.frameState.commandList.length=0),nAe(t),r.createPotentiallyVisibleSet(t),e&&(l(i)&&wZ(t,n,i),eAe(t),s||tAe(t)),vZ(t,n)}var $Te=new as;fi.prototype.updateEnvironment=function(){let e=this._frameState,t=this._view,n=this._environmentState,i=e.passes.render,o=e.passes.offscreen,r=this.atmosphere,s=this.skyAtmosphere,a=this.globe,c=this._globeTranslucencyState;if(!i||this._mode!==ne.SCENE2D&&t.camera.frustum instanceof rn||!c.environmentVisible)n.skyAtmosphereCommand=void 0,n.skyBoxCommand=void 0,n.sunDrawCommand=void 0,n.sunComputeCommand=void 0,n.moonCommand=void 0;else{if(l(s)){if(l(a))s.setDynamicLighting(HT.fromGlobeFlags(a)),n.isReadyForAtmosphere=n.isReadyForAtmosphere||!a.show||a._surface._tilesToRender.length>0;else{let T=r.dynamicLighting;s.setDynamicLighting(T),n.isReadyForAtmosphere=!0}n.skyAtmosphereCommand=s.update(e,a),l(n.skyAtmosphereCommand)&&this.updateDerivedCommands(n.skyAtmosphereCommand)}else n.skyAtmosphereCommand=void 0;n.skyBoxCommand=l(this.skyBox)?this.skyBox.update(e,this._hdr):void 0;let b=l(this.sun)?this.sun.update(e,t.passState,this._hdr):void 0;n.sunDrawCommand=l(b)?b.drawCommand:void 0,n.sunComputeCommand=l(b)?b.computeCommand:void 0,n.moonCommand=l(this.moon)?this.moon.update(e):void 0}let u=n.clearGlobeDepth=l(a)&&a.show&&(!a.depthTestAgainstTerrain||this.mode===ne.SCENE2D);(n.useDepthPlane=u&&this.mode===ne.SCENE3D&&c.useDepthPlane)&&this._depthPlane.update(e),n.renderTranslucentDepthForPick=!1,n.useWebVR=this._useWebVR&&this.mode!==ne.SCENE2D&&!o;let d=e.mode===ne.SCENE3D&&!c.sunVisibleThroughGlobe?e.occluder:void 0,p=e.cullingVolume,g=$Te.planes;for(let b=0;b<5;++b)g[b]=p.planes[b];p=$Te,n.isSkyAtmosphereVisible=l(n.skyAtmosphereCommand)&&n.isReadyForAtmosphere,n.isSunVisible=this.isVisible(n.sunDrawCommand,p,d),n.isMoonVisible=this.isVisible(n.moonCommand,p,d);let m=this.specularEnvironmentMaps,x=this._specularEnvironmentMapAtlas;l(m)&&(!l(x)||x.url!==m)?(x=x&&x.destroy(),this._specularEnvironmentMapAtlas=new Ld(m)):!l(m)&&l(x)&&(x.destroy(),this._specularEnvironmentMapAtlas=void 0),l(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.update(e)};function qxt(e){let t=e._frameState;e.debugShowFrustumPlanes!==e._debugShowFrustumPlanes&&(e.debugShowFrustumPlanes?e._debugFrustumPlanes=new $m({camera:e.camera,updateOnChange:!1,frustumSplits:t.frustumSplits}):e._debugFrustumPlanes=e._debugFrustumPlanes&&e._debugFrustumPlanes.destroy(),e._debugShowFrustumPlanes=e.debugShowFrustumPlanes),l(e._debugFrustumPlanes)&&e._debugFrustumPlanes.update(t)}function Yxt(e){let t=e._frameState,n=t.shadowMaps,i=n.length,o=i>0&&!t.passes.pick&&!t.passes.pickVoxel&&e.mode===ne.SCENE3D;if(o!==t.shadowState.shadowsEnabled&&(++t.shadowState.lastDirtyTime,t.shadowState.shadowsEnabled=o),t.shadowState.lightShadowsEnabled=!1,!!o){for(let r=0;r<i;++r)if(n[r]!==t.shadowState.shadowMaps[r]){++t.shadowState.lastDirtyTime;break}t.shadowState.shadowMaps.length=0,t.shadowState.lightShadowMaps.length=0;for(let r=0;r<i;++r){let s=n[r];s.update(t),t.shadowState.shadowMaps.push(s),s.fromLightSource&&(t.shadowState.lightShadowMaps.push(s),t.shadowState.lightShadowsEnabled=!0),s.dirty&&(++t.shadowState.lastDirtyTime,s.dirty=!1)}}}function nAe(e){let t=e._frameState;e._groundPrimitives.update(t),e._primitives.update(t),qxt(e),Yxt(e),e._globe&&e._globe.render(t)}function wZ(e,t,n){let i=e._context,o=e._frameState,r=e._environmentState,s=e._view,a=e._frameState.passes,c=a.pick||a.pickVoxel;l(s.globeDepth)&&(s.globeDepth.picking=c);let u=r.useWebVR;r.originalFramebuffer=t.framebuffer,l(e.sun)&&e.sunBloom!==e._sunBloom?(e.sunBloom&&!u?e._sunPostProcess=new vB:l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy()),e._sunBloom=e.sunBloom):!l(e.sun)&&l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy(),e._sunBloom=!1);let f=e._clearColorCommand;H.clone(n,f.color),f.execute(i,t);let d=r.useGlobeDepthFramebuffer=l(s.globeDepth);d&&(s.globeDepth.update(i,t,s.viewport,e.msaaSamples,e._hdr,r.clearGlobeDepth),s.globeDepth.clear(i,t,n));let p=s.oit,g=r.useOIT=!c&&l(p)&&p.isSupported();g&&(p.update(i,t,s.globeDepth.colorFramebufferManager,e._hdr,e.msaaSamples),p.clear(i,t,n),r.useOIT=p.isSupported());let m=e.postProcessStages,x=r.usePostProcess=!c&&(e._hdr||m.length>0||m.ambientOcclusion.enabled||m.fxaa.enabled||m.bloom.enabled);if(r.usePostProcessSelected=!1,x&&(s.sceneFramebuffer.update(i,s.viewport,e._hdr,e.msaaSamples),s.sceneFramebuffer.clear(i,t,n),m.update(i,o.useLogDepth,e._hdr),m.clear(i),x=r.usePostProcess=m.ready,r.usePostProcessSelected=x&&m.hasSelected),r.isSunVisible&&e.sunBloom&&!u?(t.framebuffer=e._sunPostProcess.update(t),e._sunPostProcess.clear(i,t,n)):d?t.framebuffer=s.globeDepth.framebuffer:x&&(t.framebuffer=s.sceneFramebuffer.framebuffer),l(t.framebuffer)&&f.execute(i,t),r.useInvertClassification=!c&&l(t.framebuffer)&&e.invertClassification){let T;if(e.frameState.invertClassificationColor.alpha===1&&r.useGlobeDepthFramebuffer&&(T=s.globeDepth.framebuffer),l(T)||i.depthTexture){if(e._invertClassification.previousFramebuffer=T,e._invertClassification.update(i,e.msaaSamples,s.globeDepth.colorFramebufferManager),e._invertClassification.clear(i,t),e.frameState.invertClassificationColor.alpha<1&&g){let C=e._invertClassification.unclassifiedCommand,A=C.derivedCommands;A.oit=p.createDerivedCommands(C,i,A.oit)}}else r.useInvertClassification=!1}e._globeTranslucencyState.translucent&&s.globeTranslucencyFramebuffer.updateAndClear(e._hdr,s.viewport,i,t)}fi.prototype.resolveFramebuffers=function(e){let t=this._context,n=this._environmentState,i=this._view,o=i.globeDepth;l(o)&&o.prepareColorTextures(t);let r=n.useOIT,s=n.useGlobeDepthFramebuffer,a=n.usePostProcess,c=n.originalFramebuffer,u=s?o.colorFramebufferManager:void 0,f=i.sceneFramebuffer._colorFramebuffer,d=i.sceneFramebuffer.idFramebuffer;r&&(e.framebuffer=a?f.framebuffer:c,i.oit.execute(t,e));let p=i.translucentTileClassification;if(p.hasTranslucentDepth&&p.isSupported()&&p.execute(this,e),a){i.sceneFramebuffer.prepareColorTextures(t);let g=f;s&&!r&&(g=u);let m=this.postProcessStages,x=g.getColorTexture(0),b=d.getColorTexture(0),T=y(u,f).getDepthStencilTexture();m.execute(t,x,T,b),m.copy(t,c)}!r&&!a&&s&&(e.framebuffer=c,o.executeCopyColor(t,e))};function Xxt(e){let t=e._frameState.afterRender;for(let n=0,i=t.length;n<i;++n)t[n]()&&e.requestRender();t.length=0}function Kxt(e){if(e.mode===ne.MORPHING)return;let n=e.camera.positionCartographic;return e.getHeight(n)}fi.prototype.getHeight=function(e,t){if(!l(e))return;let n=t===qe.CLAMP_TO_TERRAIN||t===qe.RELATIVE_TO_TERRAIN,i=t===qe.CLAMP_TO_3D_TILE||t===qe.RELATIVE_TO_3D_TILE;if(!l(e))return;let o=Number.NEGATIVE_INFINITY;if(!n){let s=this.primitives.length;for(let a=0;a<s;++a){let c=this.primitives.get(a);if(!c.isCesium3DTileset||!c.show||!c.enableCollision)continue;let u=c.getHeight(e,this);l(u)&&u>o&&(o=u)}}let r=this._globe;if(!i&&l(r)&&r.show){let s=r.getHeight(e);s>o&&(o=s)}if(o>Number.NEGATIVE_INFINITY)return o};var SZ=new fe;fi.prototype.updateHeight=function(e,t,n){let i=()=>{fe.clone(e,SZ);let g=this.getHeight(e,n);l(g)&&(SZ.height=g,t(SZ))},o=n===qe.CLAMP_TO_TERRAIN||n===qe.RELATIVE_TO_TERRAIN,r=n===qe.CLAMP_TO_3D_TILE||n===qe.RELATIVE_TO_3D_TILE,s;!r&&l(this.globe)&&(s=this.globe._surface.updateHeight(e,i));let a={},c=this.globe?.ellipsoid,u=g=>{if(o||g.isDestroyed()||!g.isCesium3DTileset)return;let m=g.updateHeight(e,i,c);a[g.id]=m};if(!o){let g=this.primitives.length;for(let m=0;m<g;++m){let x=this.primitives.get(m);u(x)}}let f=this.primitives.primitiveAdded.addEventListener(u),d=this.primitives.primitiveRemoved.addEventListener(g=>{g.isDestroyed()||!g.isCesium3DTileset||(l(a[g.id])&&a[g.id](),delete a[g.id])});return()=>{s=s&&s(),Object.values(a).forEach(g=>g()),a={},f(),d()}};function Zxt(e){let t=e.camera,n=e._mode,i=e._screenSpaceCameraController,o=t.positionCartographic;if(!l(o))return!1;if(!i.onMap()&&o.height<0)return!0;if(n===ne.SCENE2D||n===ne.MORPHING)return!1;let r=e._globeHeight;return l(r)&&o.height<r}fi.prototype.initializeFrame=function(){if(this._shaderFrameCount++===120&&(this._shaderFrameCount=0,this._context.shaderCache.destroyReleasedShaderPrograms(),this._context.textureCache.destroyReleasedTextures()),this._tweens.update(),this._globeHeightDirty){l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),this._globeHeight=Kxt(this),this._globeHeightDirty=!1;let e=this.camera.positionCartographic;this._removeUpdateHeightCallback=this.updateHeight(e,t=>{this.isDestroyed()||(this._globeHeight=t.height)})}this._cameraUnderground=Zxt(this),this._globeTranslucencyState.update(this),this._screenSpaceCameraController.update(),l(this._deviceOrientationCameraController)&&this._deviceOrientationCameraController.update(),this.camera.update(this._mode),this.camera._updateCameraChanged()};function $xt(e,t){if(e.debugShowFramesPerSecond){if(!l(e._performanceDisplay)){let n=document.createElement("div");n.className="cesium-performanceDisplay-defaultContainer",e._canvas.parentNode.appendChild(n);let o=new cg({container:n});e._performanceDisplay=o,e._performanceContainer=n}e._performanceDisplay.throttled=e.requestRenderMode,e._performanceDisplay.update(t)}else l(e._performanceDisplay)&&(e._performanceDisplay=e._performanceDisplay&&e._performanceDisplay.destroy(),e._performanceContainer.parentNode.removeChild(e._performanceContainer))}function Qxt(e){e._jobScheduler.resetBudgets();let t=e._frameState;e.primitives.prePassesUpdate(t),l(e.globe)&&e.globe.update(t),e._picking.update(),t.creditDisplay.update()}function Jxt(e){let t=e._frameState;e.primitives.postPassesUpdate(t),Ka.update()}var ebt=new H;function tbt(e){let t=e._frameState,n=e.context,i=n.uniformState,o=e._defaultView;e._view=o,e.updateFrameState(),t.passes.render=!0,t.passes.postProcess=e.postProcessStages.hasSelected,t.tilesetPassState=Txt;let r=y(e.backgroundColor,H.BLACK);e._hdr&&(r=H.clone(r,ebt),r.red=Math.pow(r.red,e.gamma),r.green=Math.pow(r.green,e.gamma),r.blue=Math.pow(r.blue,e.gamma)),t.backgroundColor=r,t.atmosphere=e.atmosphere,e.fog.update(t),i.update(t);let s=e.shadowMap;l(s)&&s.enabled&&(!l(e.light)||e.light instanceof X_?h.negate(i.sunDirectionWC,e._shadowMapCamera.direction):h.clone(e.light.direction,e._shadowMapCamera.direction),t.shadowMaps.push(s)),e._computeCommandList.length=0,e._overlayCommandList.length=0;let a=o.viewport;a.x=0,a.y=0,a.width=n.drawingBufferWidth,a.height=n.drawingBufferHeight;let c=o.passState;c.framebuffer=void 0,c.blendingEnabled=void 0,c.scissorTest=void 0,c.viewport=Ge.clone(a,c.viewport),l(e.globe)&&e.globe.beginFrame(t),e.updateEnvironment(),e.updateAndExecuteCommands(c,r),e.resolveFramebuffers(c),c.framebuffer=void 0,Mxt(e,c),l(e.globe)&&(e.globe.endFrame(t),e.globe.tilesLoaded||(e._renderRequested=!0)),n.endFrame()}function fA(e,t){try{t(e)}catch(n){if(e._renderError.raiseEvent(e,n),e.rethrowRenderErrors)throw n}}function nbt(e){return e._picking.updateMostDetailedRayPicks(e)}fi.prototype.render=function(e){this._preUpdate.raiseEvent(this,e);let t=this._frameState;t.newFrame=!1,l(e)||(e=J.now());let n=this._view.checkForCameraUpdates(this);n&&(this._globeHeightDirty=!0);let i=!this.requestRenderMode||this._renderRequested||n||this._logDepthBufferDirty||this._hdrDirty||this.mode===ne.MORPHING;if(!i&&l(this.maximumRenderTimeChange)&&l(this._lastRenderTime)){let o=Math.abs(J.secondsDifference(this._lastRenderTime,e));i=i||o>this.maximumRenderTimeChange}if(i){this._lastRenderTime=J.clone(e,this._lastRenderTime),this._renderRequested=!1,this._logDepthBufferDirty=!1,this._hdrDirty=!1;let o=R.incrementWrap(t.frameNumber,15e6,1);QTe(this,o,e),t.newFrame=!0}fA(this,Qxt),this.primitives.show&&(fA(this,nbt),fA(this,ibt),fA(this,obt),i||fA(this,rbt)),this._postUpdate.raiseEvent(this,e),i&&(this._preRender.raiseEvent(this,e),t.creditDisplay.beginFrame(),fA(this,tbt)),$xt(this,i),fA(this,Jxt),Xxt(this),i&&(this._postRender.raiseEvent(this,e),t.creditDisplay.endFrame())};fi.prototype.forceRender=function(e){this._renderRequested=!0,this.render(e)};fi.prototype.requestRender=function(){this._renderRequested=!0};fi.prototype.clampLineWidth=function(e){return Math.max(Nt.minimumAliasedLineWidth,Math.min(e,Nt.maximumAliasedLineWidth))};fi.prototype.pick=function(e,t,n){return this._picking.pick(this,e,t,n)};fi.prototype.pickVoxel=function(e,t,n){let i=this.pick(e,t,n);if(!l(i))return;let o=i.primitive;if(!(o instanceof F0))return;let r=this._picking.pickVoxelCoordinate(this,e,t,n),s=255*r[0]+r[1],a=o._traversal.findKeyframeNode(s);if(!l(a))return;let c=255*r[2]+r[3];return PB.fromKeyframeNode(o,s,c,a)};fi.prototype.pickPositionWorldCoordinates=function(e,t){return this._picking.pickPositionWorldCoordinates(this,e,t)};fi.prototype.pickPosition=function(e,t){return this._picking.pickPosition(this,e,t)};fi.prototype.drillPick=function(e,t,n,i){return this._picking.drillPick(this,e,t,n,i)};function ibt(e){let t=e._frameState;AZ.camera=t.camera,AZ.cullingVolume=t.cullingVolume,e.primitives.updateForPass(t,AZ)}function obt(e){let t=e._frameState;if(!t.camera.canPreloadFlight())return;CZ.camera=e.preloadFlightCamera,CZ.cullingVolume=e.preloadFlightCullingVolume,e.primitives.updateForPass(t,CZ)}function rbt(e){e.primitives.updateForPass(e._frameState,Axt)}fi.prototype.pickFromRay=function(e,t,n){return this._picking.pickFromRay(this,e,t,n)};fi.prototype.drillPickFromRay=function(e,t,n,i){return this._picking.drillPickFromRay(this,e,t,n,i)};fi.prototype.pickFromRayMostDetailed=function(e,t,n){return this._picking.pickFromRayMostDetailed(this,e,t,n)};fi.prototype.drillPickFromRayMostDetailed=function(e,t,n,i){return this._picking.drillPickFromRayMostDetailed(this,e,t,n,i)};fi.prototype.sampleHeight=function(e,t,n){return this._picking.sampleHeight(this,e,t,n)};fi.prototype.clampToHeight=function(e,t,n,i){return this._picking.clampToHeight(this,e,t,n,i)};fi.prototype.sampleHeightMostDetailed=function(e,t,n){return this._picking.sampleHeightMostDetailed(this,e,t,n)};fi.prototype.clampToHeightMostDetailed=function(e,t,n){return this._picking.clampToHeightMostDetailed(this,e,t,n)};fi.prototype.cartesianToCanvasCoordinates=function(e,t){return Hi.wgs84ToWindowCoordinates(this,e,t)};fi.prototype.completeMorph=function(){this._transitioner.completeMorph()};fi.prototype.morphTo2D=function(e){let t,n=this.globe;l(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphTo2D(e,t)};fi.prototype.morphToColumbusView=function(e){let t,n=this.globe;l(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphToColumbusView(e,t)};fi.prototype.morphTo3D=function(e){let t,n=this.globe;l(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphTo3D(e,t)};function sbt(e,t){if(e._removeTerrainProviderReadyListener=e._removeTerrainProviderReadyListener&&e._removeTerrainProviderReadyListener(),t.ready){l(e.globe)&&(e.globe.terrainProvider=t.provider);return}e.globe.terrainProvider=void 0,e._removeTerrainProviderReadyListener=t.readyEvent.addEventListener(n=>{l(e)&&l(e.globe)&&(e.globe.terrainProvider=n),e._removeTerrainProviderReadyListener()})}fi.prototype.setTerrain=function(e){return sbt(this,e),e};fi.prototype.isDestroyed=function(){return!1};fi.prototype.destroy=function(){this._tweens.removeAll(),this._computeEngine=this._computeEngine&&this._computeEngine.destroy(),this._screenSpaceCameraController=this._screenSpaceCameraController&&this._screenSpaceCameraController.destroy(),this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this._primitives=this._primitives&&this._primitives.destroy(),this._groundPrimitives=this._groundPrimitives&&this._groundPrimitives.destroy(),this._globe=this._globe&&this._globe.destroy(),this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),this.skyBox=this.skyBox&&this.skyBox.destroy(),this.skyAtmosphere=this.skyAtmosphere&&this.skyAtmosphere.destroy(),this._debugSphere=this._debugSphere&&this._debugSphere.destroy(),this.sun=this.sun&&this.sun.destroy(),this._sunPostProcess=this._sunPostProcess&&this._sunPostProcess.destroy(),this._depthPlane=this._depthPlane&&this._depthPlane.destroy(),this._transitioner=this._transitioner&&this._transitioner.destroy(),this._debugFrustumPlanes=this._debugFrustumPlanes&&this._debugFrustumPlanes.destroy(),this._brdfLutGenerator=this._brdfLutGenerator&&this._brdfLutGenerator.destroy(),this._picking=this._picking&&this._picking.destroy(),this._defaultView=this._defaultView&&this._defaultView.destroy(),this._view=void 0,this._removeCreditContainer&&this._canvas.parentNode.removeChild(this._creditContainer),this.postProcessStages=this.postProcessStages&&this.postProcessStages.destroy(),this._context=this._context&&this._context.destroy(),this._frameState.creditDisplay=this._frameState.creditDisplay&&this._frameState.creditDisplay.destroy(),l(this._performanceDisplay)&&(this._performanceDisplay=this._performanceDisplay&&this._performanceDisplay.destroy(),this._performanceContainer.parentNode.removeChild(this._performanceContainer)),this._removeRequestListenerCallback(),this._removeTaskProcessorListenerCallback();for(let e=0;e<this._removeGlobeCallbacks.length;++e)this._removeGlobeCallbacks[e]();return this._removeGlobeCallbacks.length=0,l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),ue(this)};var QB=fi;function Tv(e){e=y(e,te.WGS84),this.show=!0,this.perFragmentAtmosphere=!1,this._ellipsoid=e;let t=1.025,n=h.multiplyByScalar(e.radii,t,new h);this._scaleMatrix=F.fromScale(n),this._modelMatrix=new F,this._command=new Ze({owner:this,modelMatrix:this._modelMatrix}),this._spSkyFromSpace=void 0,this._spSkyFromAtmosphere=void 0,this._flags=void 0,this.atmosphereLightIntensity=50,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this._hueSaturationBrightness=new h;let i=new h;i.x=e.maximumRadius*t,i.y=e.maximumRadius,i.z=0,this._radiiAndDynamicAtmosphereColor=i;let o=this;this._command.uniformMap={u_radiiAndDynamicAtmosphereColor:function(){return o._radiiAndDynamicAtmosphereColor},u_hsbShift:function(){return o._hueSaturationBrightness.x=o.hueShift,o._hueSaturationBrightness.y=o.saturationShift,o._hueSaturationBrightness.z=o.brightnessShift,o._hueSaturationBrightness},u_atmosphereLightIntensity:function(){return o.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return o.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return o.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return o.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return o.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return o.atmosphereMieAnisotropy}}}Object.defineProperties(Tv.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});Tv.prototype.setDynamicLighting=function(e){this._radiiAndDynamicAtmosphereColor.z=e};var DZ=new F;Tv.prototype.update=function(e,t){if(!this.show)return;let n=e.mode;if(n!==ne.SCENE3D&&n!==ne.MORPHING||!e.passes.render)return;let i=F.fromRotationTranslation(e.context.uniformState.inverseViewRotation,h.ZERO,DZ),o=F.multiplyTransformation(i,Io.Y_UP_TO_Z_UP,DZ),r=F.multiply(this._scaleMatrix,o,DZ);F.clone(r,this._modelMatrix);let s=e.context,a=abt(this),c=e.globeTranslucencyState.translucent,u=this.perFragmentAtmosphere||c||!l(t)||!t.show,f=this._command;if(!l(f.vertexArray)){let p=Ws.createGeometry(new Ws({radii:new h(1,1,1),slicePartitions:256,stackPartitions:256,vertexFormat:Ie.POSITION_ONLY}));f.vertexArray=ei.fromGeometry({context:s,geometry:p,attributeLocations:Nn.createAttributeLocations(p),bufferUsage:Fe.STATIC_DRAW}),f.renderState=Ve.fromCache({cull:{enabled:!0,face:hi.FRONT},blending:un.ALPHA_BLEND,depthMask:!1})}let d=a|u<<2|c<<3;if(d!==this._flags){this._flags=d;let p=[];a&&p.push("COLOR_CORRECT"),u&&p.push("PER_FRAGMENT_ATMOSPHERE"),c&&p.push("GLOBE_TRANSLUCENT");let g=new ze({defines:p,sources:[eg,YS,VF]}),m=new ze({defines:p,sources:[eg,YS,kF]});this._spSkyAtmosphere=$t.fromCache({context:s,vertexShaderSource:g,fragmentShaderSource:m}),f.shaderProgram=this._spSkyAtmosphere}return f};function abt(e){return!(R.equalsEpsilon(e.hueShift,0,R.EPSILON7)&&R.equalsEpsilon(e.saturationShift,0,R.EPSILON7)&&R.equalsEpsilon(e.brightnessShift,0,R.EPSILON7))}Tv.prototype.isDestroyed=function(){return!1};Tv.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),this._spSkyAtmosphere=this._spSkyAtmosphere&&this._spSkyAtmosphere.destroy(),ue(this)};var JB=Tv;function e5(e){this.sources=e.sources,this._sources=void 0,this.show=y(e.show,!0),this._command=new Ze({modelMatrix:F.clone(F.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}e5.prototype.update=function(e,t){let n=this;if(!this.show||e.mode!==ne.SCENE3D&&e.mode!==ne.MORPHING||!e.passes.render)return;let i=e.context;if(this._sources!==this.sources){this._sources=this.sources;let r=this.sources;typeof r.positiveX=="string"?nF(i,this._sources).then(function(s){n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=s}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new Ja({context:i,source:r}))}let o=this._command;if(!l(o.vertexArray)){o.uniformMap={u_cubeMap:function(){return n._cubeMap}};let r=Al.createGeometry(Al.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Ie.POSITION_ONLY})),s=this._attributeLocations=Nn.createAttributeLocations(r);o.vertexArray=ei.fromGeometry({context:i,geometry:r,attributeLocations:s,bufferUsage:Fe.STATIC_DRAW}),o.renderState=Ve.fromCache({blending:un.ALPHA_BLEND})}if(!l(o.shaderProgram)||this._useHdr!==t){let r=new ze({defines:[t?"HDR":""],sources:[UF]});o.shaderProgram=$t.fromCache({context:i,vertexShaderSource:zF,fragmentShaderSource:r,attributeLocations:this._attributeLocations}),this._useHdr=t}if(l(this._cubeMap))return o};e5.prototype.isDestroyed=function(){return!1};e5.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),ue(this)};var e3=e5;function n3(){this.show=!0,this._drawCommand=new Ze({primitiveType:Le.TRIANGLES,boundingVolume:new ae,owner:this}),this._commands={drawCommand:this._drawCommand,computeCommand:void 0},this._boundingVolume=new ae,this._boundingVolume2D=new ae,this._texture=void 0,this._drawingBufferWidth=void 0,this._drawingBufferHeight=void 0,this._radiusTS=void 0,this._size=void 0,this.glowFactor=1,this._glowFactorDirty=!1,this._useHdr=void 0;let e=this;this._uniformMap={u_texture:function(){return e._texture},u_size:function(){return e._size}}}Object.defineProperties(n3.prototype,{glowFactor:{get:function(){return this._glowFactor},set:function(e){e=Math.max(e,0),this._glowFactor=e,this._glowFactorDirty=!0}}});var cbt=new z,lbt=new z,ubt=new oe,t3=new oe;n3.prototype.update=function(e,t,n){if(!this.show)return;let i=e.mode;if(i===ne.SCENE2D||i===ne.MORPHING||!e.passes.render)return;let o=e.context,r=t.viewport.width,s=t.viewport.height;if(!l(this._texture)||r!==this._drawingBufferWidth||s!==this._drawingBufferHeight||this._glowFactorDirty||n!==this._useHdr){this._texture=this._texture&&this._texture.destroy(),this._drawingBufferWidth=r,this._drawingBufferHeight=s,this._glowFactorDirty=!1,this._useHdr=n;let E=Math.max(r,s);E=Math.pow(2,Math.ceil(Math.log(E)/Math.log(2))-2),E=Math.max(1,E);let v=n?o.halfFloatingPointTexture?We.HALF_FLOAT:We.FLOAT:We.UNSIGNED_BYTE;this._texture=new Dt({context:o,width:E,height:E,pixelFormat:nt.RGBA,pixelDatatype:v}),this._glowLengthTS=this._glowFactor*5,this._radiusTS=1/(1+2*this._glowLengthTS)*.5;let D=this,O={u_radiusTS:function(){return D._radiusTS}};this._commands.computeCommand=new Dl({fragmentShaderSource:GF,outputTexture:this._texture,uniformMap:O,persists:!1,owner:this,postExecute:function(){D._commands.computeCommand=void 0}})}let a=this._drawCommand;if(!l(a.vertexArray)){let E={direction:0},v=new Uint8Array(4*2);v[0]=0,v[1]=0,v[2]=255,v[3]=0,v[4]=255,v[5]=255,v[6]=0,v[7]=255;let D=ct.createVertexBuffer({context:o,typedArray:v,usage:Fe.STATIC_DRAW}),O=[{index:E.direction,vertexBuffer:D,componentsPerAttribute:2,normalize:!0,componentDatatype:X.UNSIGNED_BYTE}],I=ct.createIndexBuffer({context:o,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT});a.vertexArray=new ei({context:o,attributes:O,indexBuffer:I}),a.shaderProgram=$t.fromCache({context:o,vertexShaderSource:WF,fragmentShaderSource:HF,attributeLocations:E}),a.renderState=Ve.fromCache({blending:un.ALPHA_BLEND}),a.uniformMap=this._uniformMap}let c=o.uniformState.sunPositionWC,u=o.uniformState.sunPositionColumbusView,f=this._boundingVolume,d=this._boundingVolume2D;h.clone(c,f.center),d.center.x=u.z,d.center.y=u.x,d.center.z=u.y,f.radius=R.SOLAR_RADIUS+R.SOLAR_RADIUS*this._glowLengthTS,d.radius=f.radius,i===ne.SCENE3D?ae.clone(f,a.boundingVolume):i===ne.COLUMBUS_VIEW&&ae.clone(d,a.boundingVolume);let p=Hi.computeActualWgs84Position(e,c,t3),g=h.magnitude(h.subtract(p,e.camera.position,t3)),m=o.uniformState.projection,x=ubt;x.x=0,x.y=0,x.z=-g,x.w=1;let b=F.multiplyByVector(m,x,t3),T=Hi.clipToGLWindowCoordinates(t.viewport,b,cbt);x.x=R.SOLAR_RADIUS;let C=F.multiplyByVector(m,x,t3),A=Hi.clipToGLWindowCoordinates(t.viewport,C,lbt);return this._size=z.magnitude(z.subtract(A,T,t3)),this._size=2*this._size*(1+2*this._glowLengthTS),this._size=Math.ceil(this._size),this._commands};n3.prototype.isDestroyed=function(){return!1};n3.prototype.destroy=function(){let e=this._drawCommand;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._texture=this._texture&&this._texture.destroy(),ue(this)};var i3=n3;function Av(e){return en(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}function fbt(e){e._renderLoopRunning=!0;let t=0;function n(i){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{let o=e._targetFrameRate;if(!l(o))e.resize(),e.render(),requestAnimationFrame(n);else{let r=1e3/o,s=i-t;s>r&&(e.resize(),e.render(),t=i-s%r),requestAnimationFrame(n)}}catch(o){e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors&&e.showErrorPanel("An error occurred while rendering. Rendering has stopped.",void 0,o)}else e._renderLoopRunning=!1}requestAnimationFrame(n)}function iAe(e){let t=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;return t*=e._resolutionScale,l(e._scene)&&(e._scene.pixelRatio=t),t}function oAe(e){let t=e._canvas,n=t.clientWidth,i=t.clientHeight,o=iAe(e);e._canvasClientWidth=n,e._canvasClientHeight=i,n*=o,i*=o,t.width=n,t.height=i,e._canRender=n!==0&&i!==0,e._lastDevicePixelRatio=window.devicePixelRatio}function rAe(e){let t=e._canvas,n=t.width,i=t.height;if(n!==0&&i!==0){let o=e._scene.camera.frustum;l(o.aspectRatio)?o.aspectRatio=n/i:(o.top=o.right*(i/n),o.bottom=-o.top)}}function dA(e,t){e=Pn(e),t=y(t,y.EMPTY_OBJECT);let n=document.createElement("div");n.className="cesium-widget",e.appendChild(n);let i=document.createElement("canvas"),o=Vt.supportsImageRenderingPixelated();this._supportsImageRenderingPixelated=o,o&&(i.style.imageRendering=Vt.imageRenderingValue()),i.oncontextmenu=function(){return!1},i.onselectstart=function(){return!1};function r(){i!==i.ownerDocument.activeElement&&i.ownerDocument.activeElement.blur()}y(t.blurActiveElementOnCanvasFocus,!0)&&(i.addEventListener("mousedown",r),i.addEventListener("pointerdown",r)),n.appendChild(i);let a=document.createElement("div");a.className="cesium-widget-credits";let c=l(t.creditContainer)?Pn(t.creditContainer):n;c.appendChild(a);let u=l(t.creditViewport)?Pn(t.creditViewport):n,f=y(t.showRenderLoopErrors,!0),d=y(t.useBrowserRecommendedResolution,!0);this._element=n,this._container=e,this._canvas=i,this._canvasClientWidth=0,this._canvasClientHeight=0,this._lastDevicePixelRatio=0,this._creditViewport=u,this._creditContainer=c,this._innerCreditContainer=a,this._canRender=!1,this._renderLoopRunning=!1,this._showRenderLoopErrors=f,this._resolutionScale=1,this._useBrowserRecommendedResolution=d,this._forceResize=!1,this._clock=l(t.clock)?t.clock:new ah,oAe(this);try{let p=new QB({canvas:i,contextOptions:t.contextOptions,creditContainer:a,creditViewport:u,mapProjection:t.mapProjection,orderIndependentTranslucency:t.orderIndependentTranslucency,scene3DOnly:y(t.scene3DOnly,!1),shadows:t.shadows,mapMode2D:t.mapMode2D,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples});this._scene=p,p.camera.constrainedAxis=h.UNIT_Z,iAe(this),rAe(this);let g=y(p.mapProjection.ellipsoid,te.WGS84),m=t.globe;l(m)||(m=new _2(g)),m!==!1&&(p.globe=m,p.globe.shadows=y(t.terrainShadows,yn.RECEIVE_ONLY));let x=t.skyBox;l(x)||(x=new e3({sources:{positiveX:Av("px"),negativeX:Av("mx"),positiveY:Av("py"),negativeY:Av("my"),positiveZ:Av("pz"),negativeZ:Av("mz")}})),x!==!1&&(p.skyBox=x,p.sun=new i3,p.moon=new x2);let b=t.skyAtmosphere;l(b)||(b=new JB(g),b.show=t.globe!==!1&&m.show),b!==!1&&(p.skyAtmosphere=b);let T=t.baseLayer;t.globe!==!1&&T!==!1&&(l(T)||(T=da.fromWorldImagery()),p.imageryLayers.add(T)),l(t.terrainProvider)&&t.globe!==!1&&(p.terrainProvider=t.terrainProvider),l(t.terrain)&&t.globe!==!1&&p.setTerrain(t.terrain),this._screenSpaceEventHandler=new Yu(i),l(t.sceneMode)&&(t.sceneMode===ne.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===ne.COLUMBUS_VIEW&&this._scene.morphToColumbusView(0)),this._useDefaultRenderLoop=void 0,this.useDefaultRenderLoop=y(t.useDefaultRenderLoop,!0),this._targetFrameRate=void 0,this.targetFrameRate=t.targetFrameRate;let C=this;this._onRenderError=function(A,E){C._useDefaultRenderLoop=!1,C._renderLoopRunning=!1,C._showRenderLoopErrors&&C.showErrorPanel("An error occurred while rendering. Rendering has stopped.",void 0,E)},p.renderError.addEventListener(this._onRenderError)}catch(p){throw f&&this.showErrorPanel("Error constructing CesiumWidget.",'Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:',p),p}}Object.defineProperties(dA.prototype,{container:{get:function(){return this._container}},canvas:{get:function(){return this._canvas}},creditContainer:{get:function(){return this._creditContainer}},creditViewport:{get:function(){return this._creditViewport}},scene:{get:function(){return this._scene}},imageryLayers:{get:function(){return this._scene.imageryLayers}},terrainProvider:{get:function(){return this._scene.terrainProvider},set:function(e){this._scene.terrainProvider=e}},creditDisplay:{get:function(){return this._scene.frameState.creditDisplay}},camera:{get:function(){return this._scene.camera}},clock:{get:function(){return this._clock}},screenSpaceEventHandler:{get:function(){return this._screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._targetFrameRate},set:function(e){this._targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._useDefaultRenderLoop},set:function(e){this._useDefaultRenderLoop!==e&&(this._useDefaultRenderLoop=e,e&&!this._renderLoopRunning&&fbt(this))}},resolutionScale:{get:function(){return this._resolutionScale},set:function(e){this._resolutionScale!==e&&(this._resolutionScale=e,this._forceResize=!0)}},useBrowserRecommendedResolution:{get:function(){return this._useBrowserRecommendedResolution},set:function(e){this._useBrowserRecommendedResolution!==e&&(this._useBrowserRecommendedResolution=e,this._forceResize=!0)}}});dA.prototype.showErrorPanel=function(e,t,n){let i=this._element,o=document.createElement("div");o.className="cesium-widget-errorPanel";let r=document.createElement("div");r.className="cesium-widget-errorPanel-content",o.appendChild(r);let s=document.createElement("div");s.className="cesium-widget-errorPanel-header",s.appendChild(document.createTextNode(e)),r.appendChild(s);let a=document.createElement("div");a.className="cesium-widget-errorPanel-scroll",r.appendChild(a);function c(){a.style.maxHeight=`${Math.max(Math.round(i.clientHeight*.9-100),30)}px`}c(),l(window.addEventListener)&&window.addEventListener("resize",c,!1);let u=l(t),f=l(n);if(u||f){let g=document.createElement("div");if(g.className="cesium-widget-errorPanel-message",a.appendChild(g),f){let m=jm(n);u||(typeof n=="string"&&(n=new Error(n)),t=jm({name:n.name,message:n.message}),m=n.stack),typeof console<"u"&&console.error(`${e} ${t} ${m}`);let x=document.createElement("div");x.className="cesium-widget-errorPanel-message-details collapsed";let b=document.createElement("span");b.className="cesium-widget-errorPanel-more-details",b.appendChild(document.createTextNode("See more...")),x.appendChild(b),x.onclick=function(T){x.removeChild(b),x.appendChild(document.createTextNode(m)),x.className="cesium-widget-errorPanel-message-details",r.className="cesium-widget-errorPanel-content expanded",x.onclick=void 0},a.appendChild(x)}g.innerHTML=`<p>${t}</p>`}let d=document.createElement("div");d.className="cesium-widget-errorPanel-buttonPanel",r.appendChild(d);let p=document.createElement("button");p.setAttribute("type","button"),p.className="cesium-button",p.appendChild(document.createTextNode("OK")),p.onclick=function(){l(c)&&l(window.removeEventListener)&&window.removeEventListener("resize",c,!1),i.removeChild(o)},d.appendChild(p),i.appendChild(o)};dA.prototype.isDestroyed=function(){return!1};dA.prototype.destroy=function(){l(this._scene)&&(this._scene.renderError.removeEventListener(this._onRenderError),this._scene=this._scene.destroy()),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),ue(this)};dA.prototype.resize=function(){let e=this._canvas;!this._forceResize&&this._canvasClientWidth===e.clientWidth&&this._canvasClientHeight===e.clientHeight&&this._lastDevicePixelRatio===window.devicePixelRatio||(this._forceResize=!1,oAe(this),rAe(this),this._scene.requestRender())};dA.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();let e=this._clock.tick();this._scene.render(e)}else this._clock.tick()};var o3=dA;var dbt=new h(1,1,1);function PZ(e){e=y(e,dbt),this._dimensions=h.clone(e)}Object.defineProperties(PZ.prototype,{dimensions:{get:function(){return this._dimensions},set:function(e){h.clone(e,this._dimensions)}}});var hbt=new h;PZ.prototype.emit=function(e){let t=this._dimensions,n=h.multiplyByScalar(t,.5,hbt),i=R.randomBetween(-n.x,n.x),o=R.randomBetween(-n.y,n.y),r=R.randomBetween(-n.z,n.z);e.position=h.fromElements(i,o,r,e.position),e.velocity=h.normalize(e.position,e.velocity)};var IZ=PZ;function cp(){this.featurePropertiesDirty=!1}Object.defineProperties(cp.prototype,{featuresLength:{get:function(){de.throwInstantiationError()}},pointsLength:{get:function(){de.throwInstantiationError()}},trianglesLength:{get:function(){de.throwInstantiationError()}},geometryByteLength:{get:function(){de.throwInstantiationError()}},texturesByteLength:{get:function(){de.throwInstantiationError()}},batchTableByteLength:{get:function(){de.throwInstantiationError()}},innerContents:{get:function(){de.throwInstantiationError()}},ready:{get:function(){de.throwInstantiationError()}},tileset:{get:function(){de.throwInstantiationError()}},tile:{get:function(){de.throwInstantiationError()}},url:{get:function(){de.throwInstantiationError()}},batchTable:{get:function(){de.throwInstantiationError()}},metadata:{get:function(){de.throwInstantiationError()},set:function(e){de.throwInstantiationError()}},group:{get:function(){de.throwInstantiationError()},set:function(e){de.throwInstantiationError()}}});cp.prototype.hasProperty=function(e,t){de.throwInstantiationError()};cp.prototype.getFeature=function(e){de.throwInstantiationError()};cp.prototype.applyDebugSettings=function(e,t){de.throwInstantiationError()};cp.prototype.applyStyle=function(e){de.throwInstantiationError()};cp.prototype.update=function(e,t){de.throwInstantiationError()};cp.prototype.pick=function(e,t,n){de.throwInstantiationError()};cp.prototype.isDestroyed=function(){de.throwInstantiationError()};cp.prototype.destroy=function(){de.throwInstantiationError()};var RZ=cp;function Cv(e,t){this._conditionsExpression=He(e,!0),this._conditions=e.conditions,this._runtimeConditions=void 0,pbt(this,t)}Object.defineProperties(Cv.prototype,{conditionsExpression:{get:function(){return this._conditionsExpression}}});function mbt(e,t){this.condition=e,this.expression=t}function pbt(e,t){let n=[],i=e._conditions;if(!l(i))return;let o=i.length;for(let r=0;r<o;++r){let s=i[r],a=String(s[0]),c=String(s[1]);n.push(new mbt(new Af(a,t),new Af(c,t)))}e._runtimeConditions=n}Cv.prototype.evaluate=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluate(e,t)}};Cv.prototype.evaluateColor=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluateColor(e,t)}};Cv.prototype.getShaderFunction=function(e,t,n,i){let o=this._runtimeConditions;if(!l(o)||o.length===0)return;let r="",s=o.length;for(let a=0;a<s;++a){let c=o[a],u=c.condition.getShaderExpression(t,n),f=c.expression.getShaderExpression(t,n);r+=` ${a===0?"if":"else if"} (${u}) { return ${f}; } `}return r=`${i} ${e} { ${r} return ${i}(1.0); } `,r};Cv.prototype.getVariables=function(){let e=[],t=this._runtimeConditions;if(!l(t)||t.length===0)return e;let n=t.length;for(let i=0;i<n;++i){let o=t[i];e.push.apply(e,o.condition.getVariables()),e.push.apply(e,o.expression.getVariables())}return e=e.filter(function(i,o,r){return r.indexOf(i)===o}),e};var r3=Cv;function k0(e){this._style={},this._ready=!1,this._show=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._labelColor=void 0,this._labelOutlineColor=void 0,this._labelOutlineWidth=void 0,this._font=void 0,this._labelStyle=void 0,this._labelText=void 0,this._backgroundColor=void 0,this._backgroundPadding=void 0,this._backgroundEnabled=void 0,this._scaleByDistance=void 0,this._translucencyByDistance=void 0,this._distanceDisplayCondition=void 0,this._heightOffset=void 0,this._anchorLineEnabled=void 0,this._anchorLineColor=void 0,this._image=void 0,this._disableDepthTestDistance=void 0,this._horizontalOrigin=void 0,this._verticalOrigin=void 0,this._labelHorizontalOrigin=void 0,this._labelVerticalOrigin=void 0,this._meta=void 0,this._colorShaderFunction=void 0,this._showShaderFunction=void 0,this._pointSizeShaderFunction=void 0,this._colorShaderFunctionReady=!1,this._showShaderFunctionReady=!1,this._pointSizeShaderFunctionReady=!1,this._colorShaderTranslucent=!1,_bt(this,e)}function _bt(e,t){t=y(He(t,!0),e._style),e._style=t,e.show=t.show,e.color=t.color,e.pointSize=t.pointSize,e.pointOutlineColor=t.pointOutlineColor,e.pointOutlineWidth=t.pointOutlineWidth,e.labelColor=t.labelColor,e.labelOutlineColor=t.labelOutlineColor,e.labelOutlineWidth=t.labelOutlineWidth,e.labelStyle=t.labelStyle,e.font=t.font,e.labelText=t.labelText,e.backgroundColor=t.backgroundColor,e.backgroundPadding=t.backgroundPadding,e.backgroundEnabled=t.backgroundEnabled,e.scaleByDistance=t.scaleByDistance,e.translucencyByDistance=t.translucencyByDistance,e.distanceDisplayCondition=t.distanceDisplayCondition,e.heightOffset=t.heightOffset,e.anchorLineEnabled=t.anchorLineEnabled,e.anchorLineColor=t.anchorLineColor,e.image=t.image,e.disableDepthTestDistance=t.disableDepthTestDistance,e.horizontalOrigin=t.horizontalOrigin,e.verticalOrigin=t.verticalOrigin,e.labelHorizontalOrigin=t.labelHorizontalOrigin,e.labelVerticalOrigin=t.labelVerticalOrigin;let n={};if(l(t.meta)){let i=t.defines,o=y(t.meta,y.EMPTY_OBJECT);for(let r in o)o.hasOwnProperty(r)&&(n[r]=new Af(o[r],i))}e._meta=n,e._ready=!0}function nr(e,t){let n=y(e._style,y.EMPTY_OBJECT).defines;if(l(t)){if(typeof t=="boolean"||typeof t=="number")return new Af(String(t));if(typeof t=="string")return new Af(t,n);if(l(t.conditions))return new r3(t,n)}else return;return t}function ir(e){if(l(e)){if(l(e.expression))return e.expression;if(l(e.conditionsExpression))return He(e.conditionsExpression,!0)}else return;return e}Object.defineProperties(k0.prototype,{style:{get:function(){return this._style}},show:{get:function(){return this._show},set:function(e){this._show=nr(this,e),this._style.show=ir(this._show),this._showShaderFunctionReady=!1}},color:{get:function(){return this._color},set:function(e){this._color=nr(this,e),this._style.color=ir(this._color),this._colorShaderFunctionReady=!1}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=nr(this,e),this._style.pointSize=ir(this._pointSize),this._pointSizeShaderFunctionReady=!1}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=nr(this,e),this._style.pointOutlineColor=ir(this._pointOutlineColor)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=nr(this,e),this._style.pointOutlineWidth=ir(this._pointOutlineWidth)}},labelColor:{get:function(){return this._labelColor},set:function(e){this._labelColor=nr(this,e),this._style.labelColor=ir(this._labelColor)}},labelOutlineColor:{get:function(){return this._labelOutlineColor},set:function(e){this._labelOutlineColor=nr(this,e),this._style.labelOutlineColor=ir(this._labelOutlineColor)}},labelOutlineWidth:{get:function(){return this._labelOutlineWidth},set:function(e){this._labelOutlineWidth=nr(this,e),this._style.labelOutlineWidth=ir(this._labelOutlineWidth)}},font:{get:function(){return this._font},set:function(e){this._font=nr(this,e),this._style.font=ir(this._font)}},labelStyle:{get:function(){return this._labelStyle},set:function(e){this._labelStyle=nr(this,e),this._style.labelStyle=ir(this._labelStyle)}},labelText:{get:function(){return this._labelText},set:function(e){this._labelText=nr(this,e),this._style.labelText=ir(this._labelText)}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){this._backgroundColor=nr(this,e),this._style.backgroundColor=ir(this._backgroundColor)}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){this._backgroundPadding=nr(this,e),this._style.backgroundPadding=ir(this._backgroundPadding)}},backgroundEnabled:{get:function(){return this._backgroundEnabled},set:function(e){this._backgroundEnabled=nr(this,e),this._style.backgroundEnabled=ir(this._backgroundEnabled)}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){this._scaleByDistance=nr(this,e),this._style.scaleByDistance=ir(this._scaleByDistance)}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){this._translucencyByDistance=nr(this,e),this._style.translucencyByDistance=ir(this._translucencyByDistance)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=nr(this,e),this._style.distanceDisplayCondition=ir(this._distanceDisplayCondition)}},heightOffset:{get:function(){return this._heightOffset},set:function(e){this._heightOffset=nr(this,e),this._style.heightOffset=ir(this._heightOffset)}},anchorLineEnabled:{get:function(){return this._anchorLineEnabled},set:function(e){this._anchorLineEnabled=nr(this,e),this._style.anchorLineEnabled=ir(this._anchorLineEnabled)}},anchorLineColor:{get:function(){return this._anchorLineColor},set:function(e){this._anchorLineColor=nr(this,e),this._style.anchorLineColor=ir(this._anchorLineColor)}},image:{get:function(){return this._image},set:function(e){this._image=nr(this,e),this._style.image=ir(this._image)}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance=nr(this,e),this._style.disableDepthTestDistance=ir(this._disableDepthTestDistance)}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin=nr(this,e),this._style.horizontalOrigin=ir(this._horizontalOrigin)}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin=nr(this,e),this._style.verticalOrigin=ir(this._verticalOrigin)}},labelHorizontalOrigin:{get:function(){return this._labelHorizontalOrigin},set:function(e){this._labelHorizontalOrigin=nr(this,e),this._style.labelHorizontalOrigin=ir(this._labelHorizontalOrigin)}},labelVerticalOrigin:{get:function(){return this._labelVerticalOrigin},set:function(e){this._labelVerticalOrigin=nr(this,e),this._style.labelVerticalOrigin=ir(this._labelVerticalOrigin)}},meta:{get:function(){return this._meta},set:function(e){this._meta=e}}});k0.fromUrl=function(e){return De.createIfNeeded(e).fetchJson(e).then(function(n){return new k0(n)})};k0.prototype.getColorShaderFunction=function(e,t,n){return this._colorShaderFunctionReady?(n.translucent=this._colorShaderTranslucent,this._colorShaderFunction):(this._colorShaderFunctionReady=!0,l(this.color)&&l(this.color.getShaderFunction)?this._colorShaderFunction=this.color.getShaderFunction(e,t,n,"vec4"):this._colorShaderFunction=void 0,this._colorShaderTranslucent=n.translucent,this._colorShaderFunction)};k0.prototype.getShowShaderFunction=function(e,t,n){return this._showShaderFunctionReady?this._showShaderFunction:(this._showShaderFunctionReady=!0,l(this.show)&&l(this.show.getShaderFunction)?this._showShaderFunction=this.show.getShaderFunction(e,t,n,"bool"):this._showShaderFunction=void 0,this._showShaderFunction)};k0.prototype.getPointSizeShaderFunction=function(e,t,n){return this._pointSizeShaderFunctionReady?this._pointSizeShaderFunction:(this._pointSizeShaderFunctionReady=!0,l(this.pointSize)&&l(this.pointSize.getShaderFunction)?this._pointSizeShaderFunction=this.pointSize.getShaderFunction(e,t,n,"float"):this._pointSizeShaderFunction=void 0,this._pointSizeShaderFunction)};k0.prototype.getVariables=function(){let e=[];return l(this.color)&&l(this.color.getVariables)&&e.push.apply(e,this.color.getVariables()),l(this.show)&&l(this.show.getVariables)&&e.push.apply(e,this.show.getVariables()),l(this.pointSize)&&l(this.pointSize.getVariables)&&e.push.apply(e,this.pointSize.getVariables()),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var hA=k0;function s3(e){e=y(e,y.EMPTY_OBJECT),this._maximumSubtreeCount=y(e.maximumSubtreeCount,0),this._subtreeRequestCounter=0,this._queue=new DT({comparator:s3.comparator})}s3.prototype.addSubtree=function(e){let t=new gbt(e,this._subtreeRequestCounter);this._subtreeRequestCounter++,this._queue.insert(t);let n=e.implicitCoordinates;if(n.level>0){let i=n.getParentSubtreeCoordinates(),o=this.find(i)}if(this._maximumSubtreeCount>0)for(;this._queue.length>this._maximumSubtreeCount&&this._queue.getMinimum()!==t;)this._queue.removeMinimum()};s3.prototype.find=function(e){let t=this._queue,n=t.internalArray,i=t.length;for(let o=0;o<i;o++){let r=n[o],a=r.subtree.implicitCoordinates;if(e.isEqual(a))return r.subtree}};s3.comparator=function(e,t){let n=e.subtree.implicitCoordinates,i=t.subtree.implicitCoordinates;return n.isAncestor(i)?1:i.isAncestor(n)?-1:e.stamp-t.stamp};function gbt(e,t){this.subtree=e,this.stamp=t}var a3=s3;function t5(e){this._resource=e,this._metadataTable=void 0}Object.defineProperties(t5.prototype,{metadataTable:{get:function(){return this._metadataTable}}});t5.fromJson=async function(e,t,n,i){let o;l(t)?o={json:t,binary:void 0}:o=xbt(n);let r=await ybt(e,o.json,o.binary),s={},a=o.json.bufferViews.length;for(let d=0;d<a;++d){let p=o.json.bufferViews[d],g=p.byteOffset,m=g+p.byteLength,b=r[p.buffer].subarray(g,m);s[d]=b}let c=o.json.voxelTable,u=o.json.propertyTables[c],f=new t5(e);return f._metadataTable=new Ml({count:u.count,properties:u.properties,class:i.classes[u.class],bufferViews:s}),f};function ybt(e,t,n){let i=t.buffers.length,o=new Array(i);for(let r=0;r<i;r++){let s=t.buffers[r];if(l(s.uri)){let c=e.getDerivedResource({url:s.uri});o[r]=c.fetchArrayBuffer().then(function(u){return new Uint8Array(u)})}else o[r]=Promise.resolve(n)}return Promise.all(o)}function xbt(e){let n=new DataView(e.buffer,e.byteOffset),i=8,o=n.getUint32(i,!0);i+=8;let r=n.getUint32(i,!0);i+=8;let s=Ro(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}var c3=t5;function n5(e){e=y(e,y.EMPTY_OBJECT),this.shapeTransform=void 0,this.globalTransform=void 0,this.shape=void 0,this.minBounds=void 0,this.maxBounds=void 0,this.dimensions=void 0,this.paddingBefore=void 0,this.paddingAfter=void 0,this.names=void 0,this.types=void 0,this.componentTypes=void 0,this.minimumValues=void 0,this.maximumValues=void 0,this.maximumTileCount=void 0,this._implicitTileset=void 0,this._subtreeCache=new a3}n5.fromUrl=async function(e){let t=De.createIfNeeded(e),n=await t.fetchJson();Tbt(n);let i=vbt(n,t);await i.load();let o=n.root,r=o.content.extensions["3DTILES_content_voxels"],s=r.class,a=oi(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,c=i.schema,u=new Mb({metadataJson:a,schema:c}),f=new n5;wbt(f,u,s);let d=new Nb(t,o,c),{shape:p,minBounds:g,maxBounds:m,shapeTransform:x,globalTransform:b}=Abt(o);f.shape=p,f.minBounds=g,f.maxBounds=m,f.dimensions=h.unpack(r.dimensions),f.shapeTransform=x,f.globalTransform=b,f.maximumTileCount=bbt(u);let T,C;return l(r.padding)&&(T=h.unpack(r.padding.before),C=h.unpack(r.padding.after)),f.paddingBefore=T,f.paddingAfter=C,f._implicitTileset=d,zi.unload(i),f};function bbt(e){if(l(e.tileset))return e.tileset.getPropertyBySemantic(tb.TILESET_TILE_COUNT)}function Tbt(e){let t=e.root;if(!l(t.content))throw new le("Root must have content");if(!oi(t.content,"3DTILES_content_voxels"))throw new le("Root tile content must have 3DTILES_content_voxels extension");if(!oi(t,"3DTILES_implicit_tiling")&&!l(t.implicitTiling))throw new le("Root tile must have implicit tiling");if(!l(e.schema)&&!l(e.schemaUri)&&!oi(e,"3DTILES_metadata"))throw new le("Tileset must have a metadata schema")}function Abt(e){let t=e.boundingVolume,n;if(l(e.transform)?n=F.unpack(e.transform):n=F.clone(F.IDENTITY),l(t.box))return Ebt(t.box,n);if(l(t.region))return Cbt(t.region);if(oi(t,"3DTILES_bounding_volume_cylinder"))return Sbt(t.extensions["3DTILES_bounding_volume_cylinder"].cylinder,n);throw new le("Only box, region and 3DTILES_bounding_volume_cylinder are supported in Cesium3DTilesVoxelProvider")}function Cbt(e){let t=e[0],n=e[1],i=e[2],o=e[3],r=e[4],s=e[5],a=F.fromScale(te.WGS84.radii),c=new h(t,n,r),u=new h(i,o,s);return{shape:Oi.ELLIPSOID,minBounds:c,maxBounds:u,shapeTransform:a,globalTransform:F.clone(F.IDENTITY)}}function Ebt(e,t){let n=Sn.unpack(e),i=F.fromRotationTranslation(n.halfAxes,n.center);return{shape:Oi.BOX,minBounds:h.clone(rp.DefaultMinBounds),maxBounds:h.clone(rp.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function Sbt(e,t){let n=Sn.unpack(e),i=F.fromRotationTranslation(n.halfAxes,n.center);return{shape:Oi.CYLINDER,minBounds:h.clone(sp.DefaultMinBounds),maxBounds:h.clone(sp.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function vbt(e,t){let{schemaUri:n,schema:i}=e;return l(n)?zi.getSchemaLoader({resource:t.getDerivedResource({url:n})}):zi.getSchemaLoader({schema:i})}function wbt(e,t,n){let{schema:i,statistics:o}=t,r=o?.classes[n],s=i.classes[n].properties,a=Object.entries(s).map(([d,p])=>{let{type:g,componentType:m}=p,x=r?.properties[d].min,b=r?.properties[d].max,T=Ht.getComponentCount(g),C=sAe(x,T),A=sAe(b,T);return{id:d,type:g,componentType:m,minValue:C,maxValue:A}});e.names=a.map(d=>d.id),e.types=a.map(d=>d.type),e.componentTypes=a.map(d=>d.componentType);let c=a.map(d=>d.minValue),u=a.map(d=>d.maxValue),f=c.some(l);e.minimumValues=f?c:void 0,e.maximumValues=f?u:void 0}function sAe(e,t){if(!l(e))return;let n=Array.isArray(e)?e:[e];return Array.from({length:t},(i,o)=>n[o])}async function Dbt(e,t){let n=e.contentUriTemplates[0].getDerivedResource({templateValues:t.getTemplateValues()}),i=e.baseResource.getDerivedResource({url:n.url}),o=await i.fetchArrayBuffer(),r=Am(o);return await c3.fromJson(i,r.jsonPayload,r.binaryPayload,e.metadataSchema)}async function Pbt(e,t){let n=e._implicitTileset,i=e._subtreeCache,o=i.find(t);if(l(o))return o;let r=n.subtreeUriTemplate.getDerivedResource({templateValues:t.getTemplateValues()}),s=n.baseResource.getDerivedResource({url:r.url}),a=await s.fetchArrayBuffer();if(o=i.find(t),l(o))return o;let c=Am(a);return o=await eb.fromSubtreeJson(s,c.jsonPayload,c.binaryPayload,n,t),i.addSubtree(o),o}n5.prototype.requestData=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.tileLevel,0),n=y(e.tileX,0),i=y(e.tileY,0),o=y(e.tileZ,0);if(y(e.keyframe,0)!==0)return;let s=this._implicitTileset,a=this.names,c=new Fb({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:t,x:n,y:i,z:o}),u=c.isSubtreeRoot()&&c.level>0,f=u?c.getParentSubtreeCoordinates():c.getSubtreeCoordinates();return Pbt(this,f).then(function(p){return(u?p.childSubtreeIsAvailableAtCoordinates(c):p.tileIsAvailableAtCoordinates(c))?Dbt(s,c):Promise.reject("Tile is not available")}).then(function(p){return a.map(function(g){return p.metadataTable.getPropertyTypedArray(g)})})};var OZ=n5;function MZ(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(MZ.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});MZ.prototype.emit=function(e){let t=R.randomBetween(0,R.TWO_PI),n=R.randomBetween(0,this._radius),i=n*Math.cos(t),o=n*Math.sin(t),r=0;e.position=h.fromElements(i,o,r,e.position),e.velocity=h.clone(h.UNIT_Z,e.velocity)};var l3=MZ;var LZ={CUMULUS:0};LZ.validate=function(e){return e===LZ.CUMULUS};var Ev=Object.freeze(LZ);function kh(e,t){if(e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),!l(e.scale)&&l(e.maximumSize))this._maximumSize=h.clone(e.maximumSize),this._scale=new z(this._maximumSize.x,this._maximumSize.y);else{this._scale=z.clone(y(e.scale,new z(20,12)));let n=new h(this._scale.x,this._scale.y,Math.min(this._scale.x,this._scale.y)/1.5);this._maximumSize=h.clone(y(e.maximumSize,n))}this._slice=y(e.slice,-1),this._color=H.clone(y(e.color,H.WHITE)),this._brightness=y(e.brightness,1),this._cloudCollection=t,this._index=-1}var Ibt=kh.SHOW_INDEX=0,Rbt=kh.POSITION_INDEX=1,Obt=kh.SCALE_INDEX=2,Mbt=kh.MAXIMUM_SIZE_INDEX=3,Lbt=kh.SLICE_INDEX=4,Nbt=kh.BRIGHTNESS_INDEX=5,Fbt=kh.COLOR_INDEX=6;kh.NUMBER_OF_PROPERTIES=7;function mA(e,t){let n=e._cloudCollection;l(n)&&(n._updateCloud(e,t),e._dirty=!0)}Object.defineProperties(kh.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,mA(this,Ibt))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),mA(this,Rbt))}},scale:{get:function(){return this._scale},set:function(e){let t=this._scale;z.equals(t,e)||(z.clone(e,t),mA(this,Obt))}},maximumSize:{get:function(){return this._maximumSize},set:function(e){let t=this._maximumSize;h.equals(t,e)||(h.clone(e,t),mA(this,Mbt))}},color:{get:function(){return this._color},set:function(e){let t=this._color;H.equals(t,e)||(H.clone(e,t),mA(this,Fbt))}},slice:{get:function(){return this._slice},set:function(e){this._slice!==e&&(this._slice=e,mA(this,Lbt))}},brightness:{get:function(){return this._brightness},set:function(e){this._brightness!==e&&(this._brightness=e,mA(this,Nbt))}}});kh.prototype._destroy=function(){this._cloudCollection=void 0};var tf=kh;var nf,i5=new h,Bbt={positionHighAndScaleX:0,positionLowAndScaleY:1,packedAttribute0:2,packedAttribute1:3,color:4},kbt={direction:0,positionHighAndScaleX:1,positionLowAndScaleY:2,packedAttribute0:3,packedAttribute1:4,color:5},Vbt=tf.SHOW_INDEX,Ubt=tf.POSITION_INDEX,zbt=tf.SCALE_INDEX,Hbt=tf.MAXIMUM_SIZE_INDEX,Gbt=tf.SLICE_INDEX,Wbt=tf.BRIGHTNESS_INDEX,jbt=tf.NUMBER_OF_PROPERTIES,qbt=tf.COLOR_INDEX;function Vh(e){e=y(e,y.EMPTY_OBJECT),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(jbt),this._noiseTexture=void 0,this._textureSliceWidth=128,this._noiseTextureRows=4,this.noiseDetail=y(e.noiseDetail,16),this.noiseOffset=h.clone(y(e.noiseOffset,h.ZERO)),this._loading=!1,this._ready=!1;let t=this;this._uniforms={u_noiseTexture:function(){return t._noiseTexture},u_noiseTextureDimensions:aAe(t),u_noiseDetail:function(){return t.noiseDetail}},this._vaNoise=void 0,this._spNoise=void 0,this._spCreated=!1,this._sp=void 0,this._rs=void 0,this.show=y(e.show,!0),this._colorCommands=[],this.debugBillboards=y(e.debugBillboards,!1),this._compiledDebugBillboards=!1,this.debugEllipsoids=y(e.debugEllipsoids,!1),this._compiledDebugEllipsoids=!1}function aAe(e){return function(){return i5.x=e._textureSliceWidth,i5.y=e._noiseTextureRows,i5.z=1/e._noiseTextureRows,i5}}Object.defineProperties(Vh.prototype,{length:{get:function(){return FZ(this),this._clouds.length}}});function cAe(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}Vh.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.cloudType,Ev.CUMULUS),n;return t===Ev.CUMULUS&&(n=new tf(e,this),n._index=this._clouds.length,this._clouds.push(n),this._createVertexArray=!0),n};Vh.prototype.remove=function(e){return this.contains(e)?(this._clouds[e._index]=void 0,this._cloudsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};Vh.prototype.removeAll=function(){cAe(this._clouds),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!0};function FZ(e){if(e._cloudsRemoved){e._cloudsRemoved=!1;let t=[],n=e._clouds,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];l(s)&&(n._index=r++,t.push(s))}e._clouds=t}}Vh.prototype._updateCloud=function(e,t){e._dirty||(this._cloudsToUpdate[this._cloudsToUpdateIndex++]=e),++this._propertiesChanged[t]};Vh.prototype.contains=function(e){return l(e)&&e._cloudCollection===this};Vh.prototype.get=function(e){return FZ(this),this._clouds[e]};var Ybt=new Float32Array([-1,-1,1,-1,1,1,-1,1]),Xbt=new Uint16Array([0,1,2,0,2,3]);function Kbt(e){let t=ct.createVertexBuffer({context:e,typedArray:Ybt,usage:Fe.STATIC_DRAW}),n=ct.createIndexBuffer({context:e,typedArray:Xbt,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),i=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:X.FLOAT}];return new ei({context:e,attributes:i,indexBuffer:n})}var BZ;function Zbt(e){let n=e.cache.cloudCollection_indexBufferBatched;if(l(n))return n;let i=16384*6-6,o=new Uint16Array(i);for(let r=0,s=0;r<i;r+=6,s+=4)o[r]=s,o[r+1]=s+1,o[r+2]=s+2,o[r+3]=s,o[r+4]=s+2,o[r+5]=s+3;return n=ct.createIndexBuffer({context:e,typedArray:o,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferBatched=n,n}function $bt(e){let t=e.cache.cloudCollection_indexBufferInstanced;return l(t)||(t=ct.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferInstanced=t),t}function Qbt(e){let t=e.cache.cloudCollection_vertexBufferInstanced;return l(t)||(t=ct.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_vertexBufferInstanced=t),t}function Jbt(e,t,n){let i=[{index:nf.positionHighAndScaleX,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:nf.positionLowAndScaleY,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:nf.packedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:nf.packedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:nf.color,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,usage:Fe.STATIC_DRAW}];n&&i.push({index:nf.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:Qbt(e)});let o=n?t:4*t;return new s_(e,i,o,n)}var NZ=new Gn;function lAe(e,t,n,i){let o,r=n[nf.positionHighAndScaleX],s=n[nf.positionLowAndScaleY],a=i.position;Gn.fromCartesian(a,NZ);let c=i.scale,u=NZ.high,f=NZ.low;e._instanced?(o=i._index,r(o,u.x,u.y,u.z,c.x),s(o,f.x,f.y,f.z,c.y)):(o=i._index*4,r(o+0,u.x,u.y,u.z,c.x),r(o+1,u.x,u.y,u.z,c.x),r(o+2,u.x,u.y,u.z,c.x),r(o+3,u.x,u.y,u.z,c.x),s(o+0,f.x,f.y,f.z,c.y),s(o+1,f.x,f.y,f.z,c.y),s(o+2,f.x,f.y,f.z,c.y),s(o+3,f.x,f.y,f.z,c.y))}function uAe(e,t,n,i){let o,r=n[nf.packedAttribute0],s=i.show,a=i.brightness;e._instanced?(o=i._index,r(o,s,a,0,0)):(o=i._index*4,r(o+0,s,a,0,0),r(o+1,s,a,1,0),r(o+2,s,a,1,1),r(o+3,s,a,0,1))}function fAe(e,t,n,i){let o,r=n[nf.packedAttribute1],s=i.maximumSize,a=i.slice;e._instanced?(o=i._index,r(o,s.x,s.y,s.z,a)):(o=i._index*4,r(o+0,s.x,s.y,s.z,a),r(o+1,s.x,s.y,s.z,a),r(o+2,s.x,s.y,s.z,a),r(o+3,s.x,s.y,s.z,a))}function dAe(e,t,n,i){let o,r=n[nf.color],s=i.color,a=H.floatToByte(s.red),c=H.floatToByte(s.green),u=H.floatToByte(s.blue),f=H.floatToByte(s.alpha);e._instanced?(o=i._index,r(o,a,c,u,f)):(o=i._index*4,r(o+0,a,c,u,f),r(o+1,a,c,u,f),r(o+2,a,c,u,f),r(o+3,a,c,u,f))}function eTt(e,t,n,i){lAe(e,t,n,i),uAe(e,t,n,i),fAe(e,t,n,i),dAe(e,t,n,i)}function tTt(e,t,n,i){let o=e,r=o._textureSliceWidth,s=o._noiseTextureRows,a=t.context;o._vaNoise=Kbt(a),o._spNoise=$t.fromCache({context:a,vertexShaderSource:n,fragmentShaderSource:i,attributeLocations:{position:0}});let c=o.noiseDetail,u=o.noiseOffset;o._noiseTexture=new Dt({context:a,width:r*r/s,height:r*s,pixelDatatype:We.UNSIGNED_BYTE,pixelFormat:nt.RGBA,sampler:new on({wrapS:An.REPEAT,wrapT:An.REPEAT,minificationFilter:nn.NEAREST,magnificationFilter:li.NEAREST})});let f=new Dl({vertexArray:o._vaNoise,shaderProgram:o._spNoise,outputTexture:o._noiseTexture,uniformMap:{u_noiseTextureDimensions:aAe(o),u_noiseDetail:function(){return c},u_noiseOffset:function(){return u}},persists:!1,owner:e,postExecute:function(d){o._ready=!0,o._loading=!1}});t.commandList.push(f),o._loading=!0}function nTt(e,t){let n=e,i=t.context;n._createVertexArray=!1,n._vaf=n._vaf&&n._vaf.destroy();let o=e._clouds,r=o.length;if(r>0){n._vaf=Jbt(i,r,n._instanced);let s=n._vaf.writers,a;for(a=0;a<r;++a){let c=o[a];eTt(e,t,s,c)}n._vaf.commit(BZ(i))}}var iTt=[];function oTt(e,t){let n=t.context,i=e,r=i._clouds.length,s=i._cloudsToUpdate,a=i._cloudsToUpdateIndex,c=i._propertiesChanged,u=iTt;u.length=0,(c[Ubt]||c[zbt])&&u.push(lAe),(c[Vbt]||c[Wbt])&&u.push(uAe),(c[Hbt]||c[Gbt])&&u.push(fAe),c[qbt]&&u.push(dAe);let f=u.length,d=i._vaf.writers,p,g,m;if(a/r>.1){for(p=0;p<a;++p)for(g=s[p],g._dirty=!1,m=0;m<f;++m)u[m](e,t,d,g);i._vaf.commit(BZ(n))}else{for(p=0;p<a;++p){for(g=s[p],g._dirty=!1,m=0;m<f;++m)u[m](e,t,d,g);i._instanced?i._vaf.subCommit(g._index,1):i._vaf.subCommit(g._index*4,4)}i._vaf.endSubCommits()}i._cloudsToUpdateIndex=0}function rTt(e,t,n,i){let o=t.context,r=e,s=new ze({defines:[],sources:[n]});r._instanced&&s.defines.push("INSTANCED");let a=new ze({defines:[],sources:[i]});r.debugBillboards&&a.defines.push("DEBUG_BILLBOARDS"),r.debugEllipsoids&&a.defines.push("DEBUG_ELLIPSOIDS"),r._sp=$t.replaceCache({context:o,shaderProgram:r._sp,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:nf}),r._rs=Ve.fromCache({depthTest:{enabled:!0,func:ee.LESS},depthMask:!1,blending:un.ALPHA_BLEND}),r._spCreated=!0,r._compiledDebugBillboards=r.debugBillboards,r._compiledDebugEllipsoids=r.debugEllipsoids}function sTt(e,t){let n=e,i=t.passes,o=n._uniforms,r=t.commandList;if(i.render){let s=n._colorCommands,a=n._vaf.va,c=a.length;s.length=c;for(let u=0;u<c;u++){let f=s[u];l(f)||(f=s[u]=new Ze),f.pass=Ee.TRANSLUCENT,f.owner=e,f.uniformMap=o,f.count=a[u].indicesCount,f.vertexArray=a[u].va,f.shaderProgram=n._sp,f.renderState=n._rs,n._instanced&&(f.count=6,f.instanceCount=n._clouds.length),r.push(f)}}}Vh.prototype.update=function(e){if(FZ(this),!this.show)return;let t=this.debugBillboards||this.debugEllipsoids;this._ready=t?!0:l(this._noiseTexture),!this._ready&&!this._loading&&!t&&tTt(this,e,DF,wF),this._instanced=e.context.instancedArrays,nf=this._instanced?kbt:Bbt,BZ=this._instanced?$bt:Zbt;let i=this._clouds.length,o=this._cloudsToUpdate,r=this._cloudsToUpdateIndex;this._createVertexArray?nTt(this,e):r>0&&oTt(this,e),r>i*1.5&&(o.length=i),!(!l(this._vaf)||!l(this._vaf.va)||!this._ready&!t)&&((!this._spCreated||this.debugBillboards!==this._compiledDebugBillboards||this.debugEllipsoids!==this._compiledDebugEllipsoids)&&rTt(this,e,vF,SF),sTt(this,e))};Vh.prototype.isDestroyed=function(){return!1};Vh.prototype.destroy=function(){return this._noiseTexture=this._noiseTexture&&this._noiseTexture.destroy(),this._sp=this._sp&&this._sp.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),cAe(this._clouds),ue(this)};var kZ=Vh;var aTt=R.toRadians(30);function VZ(e){this._angle=y(e,aTt)}Object.defineProperties(VZ.prototype,{angle:{get:function(){return this._angle},set:function(e){this._angle=e}}});VZ.prototype.emit=function(e){let t=Math.tan(this._angle),n=R.randomBetween(0,R.TWO_PI),i=R.randomBetween(0,t),o=i*Math.cos(n),r=i*Math.sin(n),s=1;e.velocity=h.fromElements(o,r,s,e.velocity),h.normalize(e.velocity,e.velocity),e.position=h.clone(h.ZERO,e.position)};var UZ=VZ;function u3(e){e=y(e,y.EMPTY_OBJECT);let t=e.attributeName,n=e.perInstanceAttribute;l(n)||(n=!1);let i=y(e.glslDatatype,"vec3"),o=`v_${t}`,r;if(t==="normal"||t==="tangent"||t==="bitangent")r=`vec4 getColor() { return vec4((${o} + vec3(1.0)) * 0.5, 1.0); } `;else switch(t==="st"&&(i="vec2"),i){case"float":r=`vec4 getColor() { return vec4(vec3(${o}), 1.0); } `;break;case"vec2":r=`vec4 getColor() { return vec4(${o}, 0.0, 1.0); } `;break;case"vec3":r=`vec4 getColor() { return vec4(${o}, 1.0); } `;break;case"vec4":r=`vec4 getColor() { return ${o}; } `;break}let s=`in vec3 position3DHigh; in vec3 position3DLow; in float batchId; ${n?"":`in ${i} ${t}; `}out ${i} ${o}; void main() { vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow); ${n?`${o} = czm_batchTable_${t}(batchId); `:`${o} = ${t}; `}gl_Position = czm_modelViewProjectionRelativeToEye * p; }`,a=`in ${i} ${o}; ${r} void main() { out_FragColor = getColor(); }`;this.material=void 0,this.translucent=y(e.translucent,!1),this._vertexShaderSource=y(e.vertexShaderSource,s),this._fragmentShaderSource=y(e.fragmentShaderSource,a),this._renderState=Ji.getDefaultRenderState(!1,!1,e.renderState),this._closed=y(e.closed,!1),this._attributeName=t,this._glslDatatype=i}Object.defineProperties(u3.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},attributeName:{get:function(){return this._attributeName}},glslDatatype:{get:function(){return this._glslDatatype}}});u3.prototype.getFragmentShaderSource=Ji.prototype.getFragmentShaderSource;u3.prototype.isTranslucent=Ji.prototype.isTranslucent;u3.prototype.getRenderState=Ji.prototype.getRenderState;var zZ=u3;function o5(e){e=y(e,y.EMPTY_OBJECT),this.length=y(e.length,1e7),this._length=void 0,this.width=y(e.width,2),this._width=void 0,this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=new F,this.id=e.id,this._id=void 0,this._primitive=void 0}o5.prototype.update=function(e){if(this.show){if(!l(this._primitive)||!F.equals(this._modelMatrix,this.modelMatrix)||this._length!==this.length||this._width!==this.width||this._id!==this.id){this._modelMatrix=F.clone(this.modelMatrix,this._modelMatrix),this._length=this.length,this._width=this.width,this._id=this.id,l(this._primitive)&&this._primitive.destroy(),this.modelMatrix[12]===0&&this.modelMatrix[13]===0&&this.modelMatrix[14]===0&&(this.modelMatrix[14]=.01);let t=new xt({geometry:new z_({positions:[h.ZERO,h.UNIT_X],width:this.width,vertexFormat:Gr.VERTEX_FORMAT,colors:[H.RED,H.RED],arcType:Qt.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this}),n=new xt({geometry:new z_({positions:[h.ZERO,h.UNIT_Y],width:this.width,vertexFormat:Gr.VERTEX_FORMAT,colors:[H.GREEN,H.GREEN],arcType:Qt.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this}),i=new xt({geometry:new z_({positions:[h.ZERO,h.UNIT_Z],width:this.width,vertexFormat:Gr.VERTEX_FORMAT,colors:[H.BLUE,H.BLUE],arcType:Qt.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this});this._primitive=new vn({geometryInstances:[t,n,i],appearance:new Gr,asynchronous:!1})}this._primitive.update(e)}};o5.prototype.isDestroyed=function(){return!1};o5.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var f3=o5;function cTt(e){this.direction=h.clone(e.direction),this.color=H.clone(y(e.color,H.WHITE)),this.intensity=y(e.intensity,1)}var HZ=cTt;var d3=`in vec3 v_positionMC; in vec3 v_positionEC; in vec2 v_st; void main() { czm_materialInput materialInput; vec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0))); #ifdef FACE_FORWARD normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); #endif materialInput.s = v_st.s; materialInput.st = v_st; materialInput.str = vec3(v_st, 0.0); // Convert tangent space material normal to eye space materialInput.normalEC = normalEC; materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC); // Convert view vector to world space vec3 positionToEyeEC = -v_positionEC; materialInput.positionToEyeEC = positionToEyeEC; czm_material material = czm_getMaterial(materialInput); #ifdef FLAT out_FragColor = vec4(material.diffuse + material.emission, material.alpha); #else out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); #endif } `;var h3=`in vec3 position3DHigh; in vec3 position3DLow; in vec2 st; in float batchId; out vec3 v_positionMC; out vec3 v_positionEC; out vec2 v_st; void main() { vec4 p = czm_computePosition(); v_positionMC = position3DHigh + position3DLow; // position in model coordinates v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates v_st = st; gl_Position = czm_modelViewProjectionRelativeToEye * p; } `;function pA(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.aboveGround,!1);this.material=l(e.material)?e.material:Vi.fromType(Vi.ColorType),this.translucent=y(e.translucent,!0),this._vertexShaderSource=y(e.vertexShaderSource,h3),this._fragmentShaderSource=y(e.fragmentShaderSource,d3),this._renderState=Ji.getDefaultRenderState(t,!n,e.renderState),this._closed=!1,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,n),this._aboveGround=n}Object.defineProperties(pA.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return pA.VERTEX_FORMAT}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}},aboveGround:{get:function(){return this._aboveGround}}});pA.VERTEX_FORMAT=Ie.POSITION_AND_ST;pA.prototype.getFragmentShaderSource=Ji.prototype.getFragmentShaderSource;pA.prototype.isTranslucent=Ji.prototype.isTranslucent;pA.prototype.getRenderState=Ji.prototype.getRenderState;var GZ=pA;function ou(e){this._scene=e.scene,this.samplingWindow=y(e.samplingWindow,ou.defaultSettings.samplingWindow),this.quietPeriod=y(e.quietPeriod,ou.defaultSettings.quietPeriod),this.warmupPeriod=y(e.warmupPeriod,ou.defaultSettings.warmupPeriod),this.minimumFrameRateDuringWarmup=y(e.minimumFrameRateDuringWarmup,ou.defaultSettings.minimumFrameRateDuringWarmup),this.minimumFrameRateAfterWarmup=y(e.minimumFrameRateAfterWarmup,ou.defaultSettings.minimumFrameRateAfterWarmup),this._lowFrameRate=new pe,this._nominalFrameRate=new pe,this._frameTimes=[],this._needsQuietPeriod=!0,this._quietPeriodEndTime=0,this._warmupPeriodEndTime=0,this._frameRateIsLow=!1,this._lastFramesPerSecond=void 0,this._pauseCount=0;let t=this;this._preUpdateRemoveListener=this._scene.preUpdate.addEventListener(function(o,r){lTt(t,r)}),this._hiddenPropertyName=document.hidden!==void 0?"hidden":document.mozHidden!==void 0?"mozHidden":document.msHidden!==void 0?"msHidden":document.webkitHidden!==void 0?"webkitHidden":void 0;let n=document.hidden!==void 0?"visibilitychange":document.mozHidden!==void 0?"mozvisibilitychange":document.msHidden!==void 0?"msvisibilitychange":document.webkitHidden!==void 0?"webkitvisibilitychange":void 0;function i(){uTt(t)}this._visibilityChangeRemoveListener=void 0,l(n)&&(document.addEventListener(n,i,!1),this._visibilityChangeRemoveListener=function(){document.removeEventListener(n,i,!1)})}ou.defaultSettings={samplingWindow:5,quietPeriod:2,warmupPeriod:5,minimumFrameRateDuringWarmup:4,minimumFrameRateAfterWarmup:8};ou.fromScene=function(e){return(!l(e._frameRateMonitor)||e._frameRateMonitor.isDestroyed())&&(e._frameRateMonitor=new ou({scene:e})),e._frameRateMonitor};Object.defineProperties(ou.prototype,{scene:{get:function(){return this._scene}},lowFrameRate:{get:function(){return this._lowFrameRate}},nominalFrameRate:{get:function(){return this._nominalFrameRate}},lastFramesPerSecond:{get:function(){return this._lastFramesPerSecond}}});ou.prototype.pause=function(){++this._pauseCount,this._pauseCount===1&&(this._frameTimes.length=0,this._lastFramesPerSecond=void 0)};ou.prototype.unpause=function(){--this._pauseCount,this._pauseCount<=0&&(this._pauseCount=0,this._needsQuietPeriod=!0)};ou.prototype.isDestroyed=function(){return!1};ou.prototype.destroy=function(){return this._preUpdateRemoveListener(),l(this._visibilityChangeRemoveListener)&&this._visibilityChangeRemoveListener(),ue(this)};function lTt(e,t){if(e._pauseCount>0)return;let n=pi();if(e._needsQuietPeriod)e._needsQuietPeriod=!1,e._frameTimes.length=0,e._quietPeriodEndTime=n+e.quietPeriod/Xn.SECONDS_PER_MILLISECOND,e._warmupPeriodEndTime=e._quietPeriodEndTime+(e.warmupPeriod+e.samplingWindow)/Xn.SECONDS_PER_MILLISECOND;else if(n>=e._quietPeriodEndTime){e._frameTimes.push(n);let i=n-e.samplingWindow/Xn.SECONDS_PER_MILLISECOND;if(e._frameTimes.length>=2&&e._frameTimes[0]<=i){for(;e._frameTimes.length>=2&&e._frameTimes[1]<i;)e._frameTimes.shift();let o=(n-e._frameTimes[0])/(e._frameTimes.length-1);e._lastFramesPerSecond=1e3/o;let r=1e3/(n>e._warmupPeriodEndTime?e.minimumFrameRateAfterWarmup:e.minimumFrameRateDuringWarmup);o>r?e._frameRateIsLow||(e._frameRateIsLow=!0,e._needsQuietPeriod=!0,e.lowFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond)):e._frameRateIsLow&&(e._frameRateIsLow=!1,e._needsQuietPeriod=!0,e.nominalFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond))}}}function uTt(e){document[e._hiddenPropertyName]?e.pause():e.unpause()}var m3=ou;var hAe=wo(cX(),1);function WZ(){this._image=new Image}WZ.prototype.isReady=function(){return!0};WZ.prototype.shouldDiscardImage=function(e){return e===this._image};function _A(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=new Ui({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new se(-R.PI,-R.PI,R.PI,R.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new Tt(t)),this._credit=t,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=23,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new WZ),this._errorEvent=new pe}Object.defineProperties(_A.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}}});_A.fromMetadata=function(e,t){if(!e.imageryPresent)throw new le(`The server ${e.url} doesn't have imagery`);let n=new _A(t);return n._metadata=e,n};_A.prototype.getTileCredits=function(e,t,n){let i=this._metadata,o=i.getTileInformation(e,t,n);if(l(o)){let r=i.providers[o.imageryProvider];if(l(r))return[r]}};_A.prototype.requestImage=function(e,t,n,i){let o=this._tileDiscardPolicy._image,r=this._metadata,s=Q_.tileXYToQuadKey(e,t,n),a=r.getTileInformation(e,t,n);if(!l(a)){if(r.isValid(s)){let u=new qo({throttle:i.throttle,throttleByServer:i.throttleByServer,type:i.type,priorityFunction:i.priorityFunction});r.populateSubtree(e,t,n,u);return}return Promise.resolve(o)}if(!a.hasImagery())return Promise.resolve(o);let c=fTt(this,a,e,t,n,i).fetchArrayBuffer();if(l(c))return c.then(function(u){bF(r.key,u);let f=new Uint8Array(u),d,p=r.protoImagery;if((!l(p)||!p)&&(d=dTt(f)),!l(d)&&(!l(p)||p)){let g=hTt(f);d=g.imageType,f=g.imageData}return!l(d)||!l(f)?o:Yx({uint8Array:f,format:d,flipY:!0})})};_A.prototype.pickFeatures=function(e,t,n,i,o){};function fTt(e,t,n,i,o,r){let s=Q_.tileXYToQuadKey(n,i,o),a=t.imageryVersion;return a=l(a)&&a>0?a:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1-0${s}-i.${a.toString()}`,request:r})}function dTt(e){let t="JFIF";if(e[6]===t.charCodeAt(0)&&e[7]===t.charCodeAt(1)&&e[8]===t.charCodeAt(2)&&e[9]===t.charCodeAt(3))return"image/jpeg";let n="PNG";if(e[1]===n.charCodeAt(0)&&e[2]===n.charCodeAt(1)&&e[3]===n.charCodeAt(2))return"image/png"}function hTt(e){let t=hAe.Reader.create(e),n=t.len,i={};for(;t.pos<n;){let s=t.uint32(),a;switch(s>>>3){case 1:i.imageType=t.uint32();break;case 2:i.imageData=t.bytes();break;case 3:i.alphaType=t.uint32();break;case 4:i.imageAlpha=t.bytes();break;case 5:if(a=i.copyrightIds,l(a)||(a=i.copyrightIds=[]),(s&7)===2){let c=t.uint32()+t.pos;for(;t.pos<c;)a.push(t.uint32())}else a.push(t.uint32());break;default:t.skipType(s&7);break}}let o=i.imageType;if(l(o))switch(o){case 0:i.imageType="image/jpeg";break;case 4:i.imageType="image/png";break;default:throw new le("GoogleEarthEnterpriseImageryProvider: Unsupported image type.")}let r=i.alphaType;return l(r)&&r!==0&&(console.log("GoogleEarthEnterpriseImageryProvider: External alpha not supported."),delete i.alphaType,delete i.imageAlpha),i}var jZ=_A;var mTt=new H(1,1,1,.4),pTt=new H(0,1,0,.05),_Tt=new H(0,.5,0,.2);function gA(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Ui({ellipsoid:e.ellipsoid}),this._cells=y(e.cells,8),this._color=y(e.color,mTt),this._glowColor=y(e.glowColor,pTt),this._glowWidth=y(e.glowWidth,6),this._backgroundColor=y(e.backgroundColor,_Tt),this._errorEvent=new pe,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._canvasSize=y(e.canvasSize,256),this._canvas=this._createGridCanvas()}Object.defineProperties(gA.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}});gA.prototype._drawGrid=function(e){let n=this._canvasSize;for(let i=0;i<=this._cells;++i){let r=1+i/this._cells*(n-1);e.moveTo(r,0),e.lineTo(r,n),e.moveTo(0,r),e.lineTo(n,r)}e.stroke()};gA.prototype._createGridCanvas=function(){let e=document.createElement("canvas");e.width=this._canvasSize,e.height=this._canvasSize;let t=0,n=this._canvasSize,i=e.getContext("2d"),o=this._backgroundColor.toCssColorString();i.fillStyle=o,i.fillRect(t,t,n,n);let r=this._glowColor.toCssColorString();i.strokeStyle=r,i.lineWidth=this._glowWidth,i.strokeRect(t,t,n,n),this._drawGrid(i),i.lineWidth=this._glowWidth*.5,i.strokeRect(t,t,n,n),this._drawGrid(i);let s=this._color.toCssColorString();return i.strokeStyle=s,i.lineWidth=2,i.strokeRect(t,t,n,n),i.lineWidth=1,this._drawGrid(i),e};gA.prototype.getTileCredits=function(e,t,n){};gA.prototype.requestImage=function(e,t,n,i){return Promise.resolve(this._canvas)};gA.prototype.pickFeatures=function(e,t,n,i,o){};var qZ=gA;function Uh(){}Uh._maxDecodingConcurrency=Math.max(Vt.hardwareConcurrency-1,1);Uh._decodeTaskProcessor=new mi("decodeI3S",Uh._maxDecodingConcurrency);Uh._promise=void 0;async function gTt(){if(await Uh._decodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}))return Uh._decodeTaskProcessor;throw new le("I3S decoder could not be initialized.")}Uh.decode=async function(e,t,n,i,o){return l(Uh._promise)||(Uh._promise=gTt()),Uh._promise.then(function(r){let s=n._parent._data,a=n._parent._inverseRotationMatrix,c=0,u=0,f=0;l(s.obb)?(c=s.obb.center[0],u=s.obb.center[1],f=s.obb.center[2]):l(s.mbs)&&(c=s.mbs[0],u=s.mbs[1],f=s.mbs[2]);let d=$.fromRotationX(-R.PI_OVER_TWO),p=new $;$.multiply(d,a,p);let g=fe.fromDegrees(c,u,f),m=te.WGS84.cartographicToCartesian(g),x={binaryData:n._data,featureData:l(i)&&l(i[0])?i[0].data:void 0,schema:t,bufferInfo:n._geometryBufferInfo,ellipsoidRadiiSquare:te.WGS84.radiiSquared,url:e,geoidDataList:n._dataProvider._geoidDataList,cartographicCenter:g,cartesianCenter:m,parentRotation:p,enableFeatures:n._dataProvider.showFeatures,splitGeometryByColorTransparency:n._dataProvider.adjustMaterialAlphaMode,symbologyData:o,calculateNormals:n._dataProvider.calculateNormals};return r.scheduleTask(x)})};var p3=Uh;function YZ(e,t){this._parent=e,this._dataProvider=e._dataProvider,this._layer=e._layer,l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${t}`}):this._resource=this._parent.resource.getDerivedResource({url:t})}Object.defineProperties(YZ.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}}});YZ.prototype.load=async function(){return this._data=await zh.loadJson(this._resource),this._data};var _3=YZ;function yg(e,t){this._storageInfo=t,this._parent=e,this._dataProvider=e._dataProvider,this._loadPromise=void 0;let n=`attributes/${t.key}/0`;l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${n}`}):this._resource=this._parent.resource.getDerivedResource({url:n})}Object.defineProperties(yg.prototype,{resource:{get:function(){return this._resource}},header:{get:function(){return this._header}},values:{get:function(){if(l(this._values)){if(l(this._values.attributeValues))return this._values.attributeValues;if(l(this._values.objectIds))return this._values.objectIds}return[]}},name:{get:function(){return this._storageInfo.name}}});function r5(e){return e==="UInt8"||e==="Int8"?1:e==="UInt16"||e==="Int16"?2:e==="UInt32"||e==="Int32"||e==="Oid32"||e==="Float32"?4:e==="UInt64"||e==="Int64"||e==="Float64"?8:0}function yTt(e){return e==="String"?1:r5(e)}async function xTt(e){let t=await e._dataProvider._loadBinary(e._resource),n=new DataView(t);e._data=t,e._validateHeader(n);let i=e._parseHeader(n),o=e._getBodyOffset(i);e._validateBody(n,o),e._parseBody(n,o)}yg.prototype.load=function(){return l(this._loadPromise)?this._loadPromise:(this._loadPromise=xTt(this).catch(function(e){console.error(e)}),this._loadPromise)};yg.prototype._parseValue=function(e,t,n){let i;if(t==="UInt8")i=e.getUint8(n),n+=1;else if(t==="Int8")i=e.getInt8(n),n+=1;else if(t==="UInt16")i=e.getUint16(n,!0),n+=2;else if(t==="Int16")i=e.getInt16(n,!0),n+=2;else if(t==="UInt32")i=e.getUint32(n,!0),n+=4;else if(t==="Oid32")i=e.getUint32(n,!0),n+=4;else if(t==="Int32")i=e.getInt32(n,!0),n+=4;else if(t==="UInt64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);i=o+Math.pow(2,32)*r,n+=8}else if(t==="Int64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);r<Math.pow(2,31)?i=o+Math.pow(2,32)*r:i=o+Math.pow(2,32)*(r-Math.pow(2,32)),n+=8}else t==="Float32"?(i=e.getFloat32(n,!0),n+=4):t==="Float64"?(i=e.getFloat64(n,!0),n+=8):t==="String"&&(i=String.fromCharCode(e.getUint8(n)),n+=1);return{value:i,offset:n}};yg.prototype._parseHeader=function(e){let t=0;this._header={};for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n],o=this._parseValue(e,i.valueType,t);this._header[i.property]=o.value,t=o.offset}return t};yg.prototype._parseBody=function(e,t){this._values={};for(let n=0;n<this._storageInfo.ordering.length;n++){let i=this._storageInfo.ordering[n],o=i==="ObjectIds"?"objectIds":i,r=this._storageInfo[o];if(l(r)){this._values[o]=[];for(let s=0;s<this._header.count;++s)if(r.valueType!=="String"){let a=this._parseValue(e,r.valueType,t);this._values[o].push(a.value),t=a.offset}else{let a=this._values.attributeByteCounts[s],c="";for(let u=0;u<a;++u){let f=this._parseValue(e,r.valueType,t);f.value.charCodeAt(0)!==0&&(c+=f.value),t=f.offset}this._values[o].push(c)}}}};yg.prototype._getBodyOffset=function(e){let t=0;return l(this._storageInfo.attributeValues)?t=r5(this._storageInfo.attributeValues.valueType):l(this._storageInfo.objectIds)&&(t=r5(this._storageInfo.objectIds.valueType)),t>0?Math.ceil(e/t)*t:e};yg.prototype._validateHeader=function(e){let t=0;for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n];t+=yTt(i.valueType)}if(e.byteLength<t)throw new le(`Invalid attribute buffer size (field: ${this.name}, header: ${t}, actual: ${e.byteLength})`)};yg.prototype._validateBody=function(e,t){if(!l(this._header.count))throw new le(`Invalid attribute buffer (field: ${this.name}, count is missing)`);let n;for(let i=0;i<this._storageInfo.ordering.length&&t<e.byteLength;i++){let o=this._storageInfo.ordering[i],r=o==="ObjectIds"?"objectIds":o,s=this._storageInfo[r];if(l(s))if(s.valueType!=="String"){r==="attributeByteCounts"&&(n=t);let a=r5(s.valueType);t+=a*this._header.count}else{if(!l(n))throw new le(`Invalid attribute buffer (field: ${this.name}, attributeByteCounts is missing)`);for(let a=0;a<this._header.count&&t<e.byteLength;++a){let c=this._parseValue(e,this._storageInfo.attributeByteCounts.valueType,n);t+=c.value,n=c.offset}}else throw new le(`Invalid attribute buffer (field: ${this.name}, ${r} is missing)`)}if(e.byteLength<t)throw new le(`Invalid attribute buffer size (field: ${this.name}, expected: ${t}, actual: ${e.byteLength})`)};var g3=yg;function y3(e,t){let n=e._dataProvider,i=e._layer,o;l(e._nodeIndex)?o=i.resource.getDerivedResource({url:`nodes/${e._data.mesh.geometry.resource}/${t}`}):o=e.resource.getDerivedResource({url:t}),this._parent=e,this._dataProvider=n,this._layer=i,this._resource=o,this._customAttributes=void 0}Object.defineProperties(y3.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},customAttributes:{get:function(){return this._customAttributes}}});y3.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){return e._data=t,t})};var bTt=new h,TTt=new h,ATt=new h,CTt=new h,ETt=new h;function XZ(e,t,n,i){let o=h.subtract(i,n,bTt),r=h.cross(o,h.subtract(e,n,TTt),CTt),s=h.cross(o,h.subtract(t,n,ATt),ETt);return h.dot(r,s)>=0}var STt=new h,vTt=new h,wTt=new h,DTt=new h,PTt=new h,ITt=new h,RTt=new h,OTt=new h,MTt=new h,LTt=new h;y3.prototype.getClosestPointIndexOnTriangle=function(e,t,n){if(l(this._customAttributes)&&l(this._customAttributes.positions)){let i=new h(e,t,n);i.x-=this._customAttributes.cartesianCenter.x,i.y-=this._customAttributes.cartesianCenter.y,i.z-=this._customAttributes.cartesianCenter.z,$.multiplyByVector(this._customAttributes.parentRotation,i,i);let o=Number.MAX_VALUE,r,s,a,c,u=this._customAttributes.positions,f=this._customAttributes.indices,d;l(f)?d=f.length:d=u.length/3;for(let p=0;p<d;p++){let g,m,x;l(f)?(g=f[p],m=f[p+1],x=f[p+2]):(g=p*3,m=p*3+1,x=p*3+2);let b=h.fromElements(u[g*3],u[g*3+1],u[g*3+2],STt),T=h.fromElements(u[m*3],u[m*3+1],u[m*3+2],vTt),C=new h(u[x*3],u[x*3+1],u[x*3+2],wTt);if(!XZ(i,b,T,C)||!XZ(i,T,b,C)||!XZ(i,C,b,T))continue;let A=h.subtract(T,b,DTt),E=h.subtract(C,b,PTt),v=h.cross(A,E,ITt);if(h.magnitude(v)===0)continue;let D=h.normalize(v,RTt),O=h.subtract(i,b,OTt),I=Math.abs(h.dot(O,D));if(I<o){o=I,r=p;let L=h.magnitudeSquared(h.subtract(i,b,O)),N=h.magnitudeSquared(h.subtract(i,T,MTt)),_=h.magnitudeSquared(h.subtract(i,C,LTt));L<N&&L<_?(a=g,c=b,s=L):N<_?(a=m,c=T,s=N):(a=x,c=C,s=_)}}if(l(r))return{index:a,distanceSquared:s,distance:Math.sqrt(s),queriedPosition:i,closestPosition:h.clone(c)}}return{index:-1,distanceSquared:Number.Infinity,distance:Number.Infinity}};function mAe(e){let t=[],n=e.length;for(let i=0;i<n;i++)i<3?t.push(BT(e[i])):t.push(e[i]);return t}y3.prototype._generateGltf=function(e,t,n,i,o,r,s,a){let c={pbrMetallicRoughness:{metallicFactor:0},doubleSided:!0,name:"Material"},u=!1,f,d="";if(l(this._parent._data.mesh)&&l(this._layer._data.materialDefinitions)){let A=this._parent._data.mesh.material.definition;if(A>=0&&A<this._layer._data.materialDefinitions.length){if(f=this._layer._data.materialDefinitions[A],c=f,l(c.pbrMetallicRoughness)&&l(c.pbrMetallicRoughness.baseColorTexture)){u=!0,c.pbrMetallicRoughness.baseColorTexture.index=0;let E="0";if(l(this._layer._data.textureSetDefinitions))for(let v=0;v<this._layer._data.textureSetDefinitions.length;v++){let D=this._layer._data.textureSetDefinitions[v];for(let O=0;O<D.formats.length;O++){let I=D.formats[O];if(I.format==="jpg"){E=I.name;break}}}l(this._parent._data.mesh)&&this._parent._data.mesh.material.resource>=0&&(d=this._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.material.resource}/textures/${E}`}).url)}l(c.pbrMetallicRoughness)&&l(c.pbrMetallicRoughness.baseColorFactor)&&(c.pbrMetallicRoughness.baseColorFactor=mAe(c.pbrMetallicRoughness.baseColorFactor)),l(c.emissiveFactor)&&(c.emissiveFactor=mAe(c.emissiveFactor))}}else l(this._parent._data.textureData)&&(u=!0,d=this._parent.resource.getDerivedResource({url:`${this._parent._data.textureData[0].href}`}).url,c.pbrMetallicRoughness.baseColorTexture={index:0});l(c.alphaMode)&&(c.alphaMode=c.alphaMode.toUpperCase());let p=[],g=[],m=[];u&&(p=[{sampler:0,source:0}],g=[{uri:d}],m=[{magFilter:9729,minFilter:9986,wrapS:10497,wrapT:10497}]);let x=[],b=n.length;for(let C=0;C<b;C++){let A=n[C].primitives,E=A.length;for(let v=0;v<E;v++){let D=A[v];if(l(D.material)){for(;D.material>=x.length;){let I=He(c,!0);x.push(I)}let O=x[D.material];l(D.extra)&&D.extra.isTransparent?l(O.alphaMode)||(O.alphaMode="BLEND"):O.alphaMode==="BLEND"&&(O.alphaMode="OPAQUE")}}}return{scene:0,scenes:[{nodes:e}],nodes:t,meshes:n,buffers:i,bufferViews:o,accessors:r,materials:x,textures:p,images:g,samplers:m,asset:{version:"2.0"},extensions:s,extensionsUsed:a}};var Sv=y3;function Oc(e,t,n){let i,o,r,s;n?(i=0,o=e):(i=e._level+1,o=e._layer),typeof t=="number"?r=t:s=e.resource.getDerivedResource({url:`${t}/`}),this._parent=e,this._dataProvider=e._dataProvider,this._isRoot=n,this._level=i,this._layer=o,this._nodeIndex=r,this._resource=s,this._isLoading=!1,this._tile=void 0,this._data=void 0,this._geometryData=[],this._featureData=[],this._fields={},this._children=[],this._childrenReadyPromise=void 0,this._globalTransform=void 0,this._inverseGlobalTransform=void 0,this._inverseRotationMatrix=void 0,this._symbologyData=void 0}Object.defineProperties(Oc.prototype,{resource:{get:function(){return this._resource}},layer:{get:function(){return this._layer}},parent:{get:function(){return this._parent}},children:{get:function(){return this._children}},geometryData:{get:function(){return this._geometryData}},featureData:{get:function(){return this._featureData}},fields:{get:function(){return this._fields}},tile:{get:function(){return this._tile}},data:{get:function(){return this._data}}});Oc.prototype.load=async function(){let e=this;function t(){if(!e._isRoot){let o=e._create3DTileDefinition();e._tile=new zf(e._layer._tileset,e._dataProvider.resource,o,e._parent._tile),e._tile._i3sNode=e}}if(!l(this._nodeIndex)){let o=await zh.loadJson(this._resource);e._data=o,t();return}let n=await this._layer._getNodeInNodePages(this._nodeIndex);e._data=n;let i;e._isRoot?i="nodes/root/":l(n.mesh)&&(i=`../${n.mesh.geometry.resource}/`),l(i)&&(e._resource=e._parent.resource.getDerivedResource({url:i})),t()};function pAe(e,t){let n=new g3(e,t);return e._fields[t.name]=n,n.load()}Oc.prototype.loadFields=function(){let e=this._layer._data.attributeStorageInfo,t=[];if(l(e))for(let n=0;n<e.length;n++){let i=e[n],o=this._fields[i.name];l(o)?t.push(o.load()):t.push(pAe(this,i))}return Promise.all(t)};Oc.prototype.loadField=function(e){let t=this._fields[e];if(l(t))return t.load();let n=this._layer._data.attributeStorageInfo;if(l(n))for(let i=0;i<n.length;i++){let o=n[i];if(o.name===e)return pAe(this,o)}return Promise.resolve()};Oc.prototype.getFieldsForPickedPosition=function(e){let t=this.geometryData[0];if(!l(t.customAttributes.featureIndex))return{};let n=t.getClosestPointIndexOnTriangle(e.x,e.y,e.z);if(n.index===-1||n.index>t.customAttributes.featureIndex.length)return{};let i=t.customAttributes.featureIndex[n.index];return this.getFieldsForFeature(i)};Oc.prototype.getFieldsForFeature=function(e){let t={};for(let n in this.fields)if(this.fields.hasOwnProperty(n)){let i=this.fields[n];e>=0&&e<i.values.length&&(t[i.name]=i.values[e])}return t};Oc.prototype._loadChildren=function(){let e=this;if(l(this._childrenReadyPromise))return this._childrenReadyPromise;let t=[];if(l(e._data.children))for(let n=0;n<e._data.children.length;n++){let i=e._data.children[n],o=new Oc(e,y(i.href,i),!1);e._children.push(o),t.push(o.load())}return this._childrenReadyPromise=Promise.all(t).then(function(){for(let n=0;n<e._children.length;n++)e._tile.children.push(e._children[n]._tile)}),this._childrenReadyPromise};Oc.prototype._loadGeometryData=function(){let e=[];if(l(this._data.geometryData))for(let t=0;t<this._data.geometryData.length;t++){let n=new Sv(this,this._data.geometryData[t].href);this._geometryData.push(n),e.push(n.load())}else if(l(this._data.mesh)){let t=this._layer._findBestGeometryBuffers(this._data.mesh.geometry.definition,["position","uv0"]),n=`./geometries/${t.bufferIndex}/`,i=new Sv(this,n);i._geometryDefinitions=t.definition,i._geometryBufferInfo=t.geometryBufferInfo,this._geometryData.push(i),e.push(i.load())}return Promise.all(e)};Oc.prototype._loadFeatureData=function(){let e=[];if(l(this._data.featureData))for(let t=0;t<this._data.featureData.length;t++){let n=new _3(this,this._data.featureData[t].href);this._featureData.push(n),e.push(n.load())}return Promise.all(e)};Oc.prototype._clearGeometryData=function(){this._geometryData=[]};Oc.prototype._create3DTileDefinition=function(){let e=this._data.obb,t=this._data.mbs;if(!l(e)&&!l(t)){console.error("Failed to load I3S node. Bounding volume is required.");return}let n;if(l(e)?n=fe.fromDegrees(e.center[0],e.center[1],e.center[2]):n=fe.fromDegrees(t[0],t[1],t[2]),l(this._dataProvider._geoidDataList)&&l(n))for(let T=0;T<this._dataProvider._geoidDataList.length;T++){let C=this._dataProvider._geoidDataList[T],A=C.projection.project(n);if(A.x>C.nativeExtent.west&&A.x<C.nativeExtent.east&&A.y>C.nativeExtent.south&&A.y<C.nativeExtent.north){n.height+=kTt(A.x,A.y,C);break}}let i={},o,r=0;l(e)?(i={box:[0,0,0,e.halfSize[0],0,0,0,e.halfSize[1],0,0,0,e.halfSize[2]]},r=Math.max(Math.max(this._data.obb.halfSize[0],this._data.obb.halfSize[1]),this._data.obb.halfSize[2]),o=te.WGS84.cartographicToCartesian(n)):(i={sphere:[0,0,0,t[3]]},o=te.WGS84.cartographicToCartesian(n),r=this._data.mbs[3]),r*=2;let s=1/0;if(l(this._data.lodThreshold))if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThresholdSQ"){let T=Math.sqrt(this._data.lodThreshold/(Math.PI*.25));s=r/T}else if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThreshold"){let T=this._data.lodThreshold;s=r/T}else console.error("Invalid lodSelectionMetricType in Layer");else if(l(this._data.lodSelection))for(let T=0;T<this._data.lodSelection.length;T++)this._data.lodSelection[T].metricType==="maxScreenThreshold"&&(s=r/this._data.lodSelection[T].maxError);s===1/0&&(s=1e5);let a=s*16,c=new $a(0,0,0),u=wt.headingPitchRollQuaternion(o,c);l(this._data.obb)&&(u=new Me(this._data.obb.quaternion[0],this._data.obb.quaternion[1],this._data.obb.quaternion[2],this._data.obb.quaternion[3]));let f=$.fromQuaternion(u),d=$.inverse(f,new $),p=new F(f[0],f[1],f[2],0,f[3],f[4],f[5],0,f[6],f[7],f[8],0,o.x,o.y,o.z,1),g=F.inverse(p,new F),m=F.clone(p);l(this._parent._globalTransform)&&F.multiply(p,this._parent._inverseGlobalTransform,m),this._globalTransform=p,this._inverseGlobalTransform=g,this._inverseRotationMatrix=d;let x=[];for(let T=0;T<this._children.length;T++)x.push(this._children[T]._create3DTileDefinition());return{children:x,refine:"REPLACE",boundingVolume:i,transform:[m[0],m[4],m[8],m[12],m[1],m[5],m[9],m[13],m[2],m[6],m[10],m[14],m[3],m[7],m[11],m[15]],content:{uri:l(this._resource)?this._resource.url:void 0},geometricError:a}};Oc.prototype._loadSymbology=async function(){!l(this._symbologyData)&&l(this._layer._symbology)&&(this._symbologyData=await this._layer._symbology._getSymbology(this))};Oc.prototype._createContentURL=async function(){let e={scene:0,scenes:[{nodes:[0]}],nodes:[{name:"singleNode"}],meshes:[],buffers:[],bufferViews:[],accessors:[],materials:[],textures:[],images:[],samplers:[],asset:{version:"2.0"}},t=[this._loadGeometryData()];if(this._dataProvider.legacyVersion16&&t.push(this._loadFeatureData()),await Promise.all(t),l(this._geometryData)&&this._geometryData.length>0){this._dataProvider._applySymbology&&await this._loadSymbology();let o=this._geometryData[0].resource.url,r=this._layer._data.store.defaultGeometrySchema,s=this._geometryData[0],a=await p3.decode(o,r,s,this._featureData[0],this._symbologyData);if(!l(a))return;e=s._generateGltf(a.meshData.nodesInScene,a.meshData.nodes,a.meshData.meshes,a.meshData.buffers,a.meshData.bufferViews,a.meshData.accessors,a.meshData.rootExtensions,a.meshData.extensionsUsed),this._geometryData[0]._customAttributes=a.meshData._customAttributes}let n=this._dataProvider._binarizeGltf(e),i=new Blob([n],{type:"application/binary"});return URL.createObjectURL(i)};async function NTt(e){let t=e._layer._filters,n=[];for(let i=0;i<t.length;i++){let o=e.loadField(t[i].name);n.push(o)}return await Promise.all(n),t}function FTt(e,t,n){if(!l(n.values)||n.values.length===0)return!1;let i=l(t)?t.values:[],o;e<i.length&&(o=i[e]);let r=!1;for(let s=0;s<n.values.length;s++)if(n.values[s]===o){r=!0;break}return r}async function _Ae(e,t){let n=e._tile.content.batchTable;if(l(n)&&n.featuresLength>0){n.setAllShow(!0);let i=await NTt(e);if(i.length>0)for(let o=0;o<n.featuresLength;o++)for(let r=0;r<i.length;r++){let s=i[r];if(!FTt(o,e._fields[s.name],s)){n.setShow(o,!1);break}}}t.show=!0}Oc.prototype._filterFeatures=function(){let e=[];for(let n=0;n<this._children.length;n++){let i=this._children[n]._filterFeatures();e.push(i)}let t=this._tile?.content?._model;if(l(this._geometryData)&&this._geometryData.length>0&&l(t)&&t.ready){t.show=!1;let n=_Ae(this,t);e.push(n)}return Promise.all(e)};zf.prototype._hookedRequestContent=zf.prototype.requestContent;zf.prototype.requestContent=function(){if(!this.tileset._isI3STileSet)return this._hookedRequestContent();if(!this._isLoading){this._isLoading=!0;let e=this;return this._i3sNode._createContentURL().then(t=>{if(!l(t)){e._isLoading=!1;return}return e._contentResource=new De({url:t}),e._hookedRequestContent()}).then(t=>{let n=t?._model;return l(e._i3sNode._geometryData)&&e._i3sNode._geometryData.length>0&&l(n)&&(n.show=!1,n.readyEvent.addEventListener(()=>{_Ae(e._i3sNode,n)})),e._isLoading=!1,t})}};function BTt(e,t,n,i,o,r){let s=n*(1-e)+i*e,a=o*(1-e)+r*e;return s*(1-t)+a*t}function s5(e,t,n,i){let o=e+t*n;return i[o]}function kTt(e,t,n){let i=n.nativeExtent,o=(e-i.west)/(i.east-i.west)*(n.width-1),r=(t-i.south)/(i.north-i.south)*(n.height-1),s=Math.floor(o),a=Math.floor(r);o-=s,r-=a;let c=s<n.width?s+1:s,u=a<n.height?a+1:a;a=n.height-1-a,u=n.height-1-u;let f=s5(s,a,n.width,n.buffer),d=s5(c,a,n.width,n.buffer),p=s5(s,u,n.width,n.buffer),g=s5(c,u,n.width,n.buffer),m=BTt(o,r,f,d,p,g);return m=m*n.scale+n.offset,m}Object.defineProperties(zf.prototype,{i3sNode:{get:function(){return this._i3sNode}}});var vv=Oc;function a5(e){this._layer=e,this._defaultSymbology=void 0,this._valueFields=[],this._uniqueValueHash=void 0,this._classBreaksHash=void 0,this._parseLayerSymbology()}Object.defineProperties(a5.prototype,{defaultSymbology:{get:function(){return this._defaultSymbology}}});function KZ(e,t){let n=[];for(let i=0;i<e.length;i++){let o=H.byteToFloat(e[i]);i<3?n.push(BT(o)):n.push(o)}return n.length===3&&(l(t)?n.push(1-t/100):n.push(1)),n}function wv(e,t){let n={edges:void 0,material:void 0};if(l(e)&&l(e.symbolLayers))for(let i=0;i<e.symbolLayers.length;i++){let o=e.symbolLayers[i];if(o.type==="Fill"){let r=o.edges,s=o.outline;if(l(r)?(n.edges={},l(r.color)&&(n.edges.color=KZ(r.color,r.transparency))):l(s)&&(n.edges={},l(s.color)&&(n.edges.color=KZ(s.color,s.transparency))),!t){let a=o.material;l(a)&&(n.material={colorMixMode:a.colorMixMode},l(a.color)&&(n.material.color=KZ(a.color,a.transparency)))}break}}return n}function VTt(e,t){if(l(e.uniqueValueGroups)){let n={};for(let i=0;i<e.uniqueValueGroups.length;i++){let o=e.uniqueValueGroups[i].classes;if(l(o))for(let r=0;r<o.length;r++){let s=wv(o[r].symbol,t),a=o[r].values;for(let c=0;c<a.length;c++){let u=a[c],f=n;for(let d=0;d<u.length;d++){let p=u[d];d===u.length-1?f[p]=s:(l(f[p])||(f[p]={}),f=f[p])}}}}return n}if(l(e.uniqueValueInfos)){let n={};for(let i=0;i<e.uniqueValueInfos.length;i++){let o=e.uniqueValueInfos[i];n[o.value]=wv(o.symbol,t)}return n}}function UTt(e,t){if(l(e.classBreakInfos)){let n=[...e.classBreakInfos];n.sort(function(o,r){let s=y(o.classMaxValue,o.classMinValue),a=y(r.classMaxValue,r.classMinValue);return s-a});let i={ranges:[],symbols:[]};l(e.minValue)&&(i.ranges.push(e.minValue),i.symbols.push(void 0));for(let o=0;o<n.length;o++){let r=n[o];l(r.classMinValue)&&(i.ranges.length===0||r.classMinValue>i.ranges[i.ranges.length-1])&&(i.ranges.push(r.classMinValue),i.symbols.push(void 0)),l(r.classMaxValue)&&(i.ranges.length===0||r.classMaxValue>i.ranges[i.ranges.length-1])&&(i.ranges.push(r.classMaxValue),i.symbols.push(wv(r.symbol,t)))}return i.symbols.push(void 0),i}}a5.prototype._parseLayerSymbology=function(){let e=this._layer.data.drawingInfo;if(l(e)&&l(e.renderer)){let t=this._layer.data.cachedDrawingInfo,n=l(t)&&t.color===!0,i=e.renderer;i.type==="simple"?this._defaultSymbology=wv(i.symbol,n):i.type==="uniqueValue"?(this._defaultSymbology=wv(i.defaultSymbol,n),this._valueFields.push(i.field1),l(i.field2)&&this._valueFields.push(i.field2),l(i.field3)&&this._valueFields.push(i.field3),this._uniqueValueHash=VTt(i,n)):i.type==="classBreaks"&&(this._defaultSymbology=wv(i.defaultSymbol,n),this._valueFields.push(i.field),this._classBreaksHash=UTt(i,n))}};function gAe(e,t,n,i){let o=t[n];if(i<o.length){let r=o[i],s=e[r];return l(s)&&++n<t.length?gAe(s,t,n,i):s}}function zTt(e,t){let n=0,i=e.length;if(n<i)do{let o=n+i>>>1;e[o]<t?n=o+1:i=o}while(n<i);return n}function HTt(e,t,n){let i=t[n],o=zTt(e.ranges,i);return e.symbols[o]}a5.prototype._getSymbology=async function(e){let t={default:this._defaultSymbology};if(this._valueFields.length>0){let n=[];for(let r=0;r<this._valueFields.length;r++)n.push(e.loadField(this._valueFields[r]));await Promise.all(n);let i=[];for(let r=0;r<this._valueFields.length;r++)i.push(e.fields[this._valueFields[r]].values);let o;if(l(this._uniqueValueHash)?o=r=>gAe(this._uniqueValueHash,i,0,r):l(this._classBreaksHash)&&(o=r=>HTt(this._classBreaksHash,i[0],r)),l(o)){let r=i[0];for(let s=0;s<r.length;s++){let a=o(s);l(a)&&(t[s]=a)}}}return t};var x3=a5;function ru(e,t,n){this._dataProvider=e,this._parent=n,!l(t.href)&&l(t.id)&&(t.href=`layers/${t.id}`);let i=this._parent.resource.getUrlComponent(),o="";i.match(/layers\/\d/)?o=`${i}`.replace(/\/+$/,""):o=`${i}`.replace(/\/?$/,"/").concat(`${t.href}`),this._version=t.store.version;let r=this._version.split(".");this._majorVersion=parseInt(r[0]),this._minorVersion=r.length>1?parseInt(r[1]):0,this._resource=new De({url:o}),this._resource.setQueryParameters(this._dataProvider.resource.queryParameters),this._resource.appendForwardSlash(),this._data=t,this._rootNode=void 0,this._nodePages={},this._nodePageFetches={},this._extent=void 0,this._tileset=void 0,this._geometryDefinitions=void 0,this._filters=[],this._symbology=void 0,this._computeGeometryDefinitions(!0),this._computeExtent()}Object.defineProperties(ru.prototype,{resource:{get:function(){return this._resource}},rootNode:{get:function(){return this._rootNode}},tileset:{get:function(){return this._tileset}},data:{get:function(){return this._data}},version:{get:function(){return this._version}},majorVersion:{get:function(){return this._majorVersion}},minorVersion:{get:function(){return this._minorVersion}},legacyVersion16:{get:function(){if(l(this.version))return this.majorVersion<1||this.majorVersion===1&&this.minorVersion<=6}}});ru.prototype.load=async function(e){if(this._data.spatialReference.wkid!==4326)throw new le(`Unsupported spatial reference: ${this._data.spatialReference.wkid}`);if(this._dataProvider.applySymbology&&(this._symbology=new x3(this)),await this._dataProvider.loadGeoidData(),await this._loadRootNode(e),await this._create3DTileset(e),this._rootNode._tile=this._tileset._root,this._tileset._root._i3sNode=this._rootNode,this.legacyVersion16)return this._rootNode._loadChildren()};ru.prototype._computeGeometryDefinitions=function(e){if(this._geometryDefinitions=[],l(this._data.geometryDefinitions))for(let t=0;t<this._data.geometryDefinitions.length;t++){let n=[],i=this._data.geometryDefinitions[t].geometryBuffers;for(let o=0;o<i.length;o++){let r=i[o],s=[],a=!1;if(l(r.compressedAttributes)&&e){a=!0;let c=r.compressedAttributes.attributes;for(let u=0;u<c.length;u++)s.push(c[u])}else for(let c in r)c!=="offset"&&s.push(c);n.push({compressed:a,attributes:s,index:i.indexOf(r)})}n.sort(function(o,r){return o.compressed&&!r.compressed?-1:!o.compressed&&r.compressed?1:o.attributes.length-r.attributes.length}),this._geometryDefinitions.push(n)}};ru.prototype._findBestGeometryBuffers=function(e,t){let n=this._geometryDefinitions[e];if(l(n))for(let i=0;i<n.length;++i){let o=n[i],r=!1,s=o.attributes;for(let a=0;a<t.length;a++)if(!s.includes(t[a])){r=!0;break}if(!r)return{bufferIndex:o.index,definition:n,geometryBufferInfo:o}}return 0};ru.prototype._loadRootNode=function(e){if(l(this._data.nodePages)){let t=0;l(this._data.nodePages.rootIndex)&&(t=this._data.nodePages.rootIndex),this._rootNode=new vv(this,t,!0)}else this._rootNode=new vv(this,this._data.store.rootNode,!0);return this._rootNode.load(e)};ru.prototype._getNodeInNodePages=function(e){let t=Math.floor(e/this._data.nodePages.nodesPerPage),n=e%this._data.nodePages.nodesPerPage;return this._loadNodePage(t).then(function(i){return i.nodes[n]})};ru._fetchJson=function(e){return e.fetchJson()};ru.prototype._loadNodePage=function(e){let t=this;if(!l(this._nodePageFetches[e])){let n=this.resource.getDerivedResource({url:`nodepages/${e}/`}),i=ru._fetchJson(n).then(function(o){return l(o.error)&&o.error.code!==200?Promise.reject(o.error):(t._nodePages[e]=o.nodes,o)});this._nodePageFetches[e]=i}return this._nodePageFetches[e]};ru.prototype._computeExtent=function(){l(this._data.fullExtent)?this._extent=se.fromDegrees(this._data.fullExtent.xmin,this._data.fullExtent.ymin,this._data.fullExtent.xmax,this._data.fullExtent.ymax):l(this._data.store.extent)&&(this._extent=se.fromDegrees(this._data.store.extent[0],this._data.store.extent[1],this._data.store.extent[2],this._data.store.extent[3]))};ru.prototype._create3DTileset=async function(e){let t={asset:{version:"1.0"},geometricError:Number.MAX_VALUE,root:this._rootNode._create3DTileDefinition()},n=new Blob([JSON.stringify(t)],{type:"application/json"}),i=URL.createObjectURL(n),o=this._symbology?.defaultSymbology?.edges?.color;l(o)&&!l(e?.outlineColor)&&(e=l(e)?He(e):{},e.outlineColor=H.fromCartesian4(oe.fromArray(o))),this._tileset=await oa.fromUrl(i,e),this._tileset.show=this._parent.show,this._tileset._isI3STileSet=!0,this._tileset.tileUnload.addEventListener(function(r){r._i3sNode._clearGeometryData(),URL.revokeObjectURL(r._contentResource._url),r._contentResource=r._i3sNode.resource}),this._tileset.tileVisible.addEventListener(function(r){l(r._i3sNode)&&r._i3sNode._loadChildren()})};ru.prototype._updateVisibility=function(){l(this._tileset)&&(this._tileset.show=this._parent.show)};ru.prototype.filterByAttributes=function(e){this._filters=l(e)?He(e,!0):[];let t=this._rootNode;return l(t)?t._filterFeatures():Promise.resolve()};var yA=ru;function c5(e,t){this._dataProvider=e,this._resource=new De({url:t}),this._resource.setQueryParameters(e.resource.queryParameters),this._resource.appendForwardSlash()}Object.defineProperties(c5.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},names:{get:function(){let e=[],t=this._data.summary;if(l(t))for(let n=0;n<t.length;++n)e.push(t[n].fieldName);return e}}});c5.prototype.load=async function(){return this._data=await zh.loadJson(this._resource),this._data};c5.prototype._getValues=function(e){let t=this._data.summary;if(l(t))for(let n=0;n<t.length;++n){let i=t[n];if(i.fieldName===e)return l(i.mostFrequentValues)?[...i.mostFrequentValues]:[]}};var b3=c5;function T3(e,t,n){this._dataProvider=e,this._parent=t,this._data=n,this._name=n.name,this._modelName=n.modelName,this._visibility=y(n.visibility,!0),this._resource=void 0,this._sublayers=[],this._i3sLayers=[]}Object.defineProperties(T3.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},name:{get:function(){return this._name}},modelName:{get:function(){return this._modelName}},sublayers:{get:function(){return this._sublayers}},visibility:{get:function(){return this._visibility},set:function(e){if(this._visibility!==e){this._visibility=e;for(let t=0;t<this._i3sLayers.length;t++)this._i3sLayers[t]._updateVisibility()}}},show:{get:function(){return this._visibility&&this._parent.show}}});T3._fromData=async function(e,t,n,i){let o=new T3(e,i,n);if(o._data.layerType==="group"){let r=o._data.sublayers;if(l(r)){let s=[];for(let c=0;c<r.length;c++){let u=T3._fromData(e,t,r[c],o);s.push(u)}let a=await Promise.all(s);for(let c=0;c<a.length;c++){let u=a[c];o._sublayers.push(u),o._i3sLayers.push(...u._i3sLayers)}}}else if(o._data.layerType==="3DObject"){let r=t.concat(`/sublayers/${o._data.id}`),s=new De({url:r});s.setQueryParameters(e.resource.queryParameters),s.appendForwardSlash(),o._resource=s;let a=await zh.loadJson(o._resource),c=new yA(e,a,o);o._i3sLayers.push(c)}else console.log(`${o._data.layerType} layer ${o._data.name} is skipped as not supported.`);return o};var A3=T3;var bAe=wo(yAe(),1);function ds(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._show=y(e.show,!0),this._geoidTiledTerrainProvider=e.geoidTiledTerrainProvider,this._showFeatures=y(e.showFeatures,!1),this._adjustMaterialAlphaMode=y(e.adjustMaterialAlphaMode,!1),this._applySymbology=y(e.applySymbology,!1),this._calculateNormals=y(e.calculateNormals,!1),this._cesium3dTilesetOptions=y(e.cesium3dTilesetOptions,y.EMPTY_OBJECT),this._layers=[],this._sublayers=[],this._data=void 0,this._extent=void 0,this._geoidDataPromise=void 0,this._geoidDataList=void 0,this._decoderTaskProcessor=void 0,this._taskProcessorReadyPromise=void 0,this._attributeStatistics=[],this._layersExtent=[]}Object.defineProperties(ds.prototype,{name:{get:function(){return this._name}},show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;for(let t=0;t<this._layers.length;t++)this._layers[t]._updateVisibility()}}},geoidTiledTerrainProvider:{get:function(){return this._geoidTiledTerrainProvider}},layers:{get:function(){return this._layers}},sublayers:{get:function(){return this._sublayers}},data:{get:function(){return this._data}},extent:{get:function(){return this._extent}},resource:{get:function(){return this._resource}},showFeatures:{get:function(){return this._showFeatures}},adjustMaterialAlphaMode:{get:function(){return this._adjustMaterialAlphaMode}},applySymbology:{get:function(){return this._applySymbology}},calculateNormals:{get:function(){return this._calculateNormals}}});ds.prototype.destroy=function(){for(let e=0;e<this._layers.length;e++)l(this._layers[e]._tileset)&&this._layers[e]._tileset.destroy();return ue(this)};ds.prototype.isDestroyed=function(){return!1};ds.prototype.update=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.update(e)};ds.prototype.prePassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.prePassesUpdate(e)};ds.prototype.postPassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.postPassesUpdate(e)};ds.prototype.updateForPass=function(e,t){for(let n=0;n<this._layers.length;n++)l(this._layers[n]._tileset)&&this._layers[n]._tileset.updateForPass(e,t)};function GTt(e,t){let n=e.resource.getUrlComponent(),i="";return n.match(/layers\/\d/)?i=`${n}`.replace(/\/+$/,""):i=`${n}`.replace(/\/?$/,"/").concat(`layers/${t}`),i}async function xAe(e,t,n){if(t.layerType==="Building"){l(n.showFeatures)||(e._showFeatures=!0),l(n.adjustMaterialAlphaMode)||(e._adjustMaterialAlphaMode=!0),l(n.applySymbology)||(e._applySymbology=!0),l(n.calculateNormals)||(e._calculateNormals=!0);let i=GTt(e,t.id);if(l(t.sublayers)){let o=[];for(let s=0;s<t.sublayers.length;s++){let a=A3._fromData(e,i,t.sublayers[s],e);o.push(a)}let r=await Promise.all(o);for(let s=0;s<r.length;s++){let a=r[s];e._sublayers.push(a),e._layers.push(...a._i3sLayers)}}if(l(t.statisticsHRef)){let o=i.concat(`/${t.statisticsHRef}`),r=new b3(e,o);await r.load(),e._attributeStatistics.push(r)}if(l(t.fullExtent)){let o=se.fromDegrees(t.fullExtent.xmin,t.fullExtent.ymin,t.fullExtent.xmax,t.fullExtent.ymax);e._layersExtent.push(o)}}else if(t.layerType==="3DObject"||t.layerType==="IntegratedMesh"){!l(n.calculateNormals)&&!l(t.textureSetDefinitions)&&(e._calculateNormals=!0);let i=new yA(e,t,e);e._layers.push(i),l(i._extent)&&e._layersExtent.push(i._extent)}else console.log(`${t.layerType} layer ${t.name} is skipped as not supported.`)}ds.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=De.createIfNeeded(e);n.setQueryParameters({f:"pjson"},!0);let i=await ds.loadJson(n),o=new ds(t);if(o._resource=n,o._data=i,l(i.layers)){let s=[];for(let a=0;a<i.layers.length;a++){let c=xAe(o,i.layers[a],t);s.push(c)}await Promise.all(s)}else await xAe(o,i,t);o._computeExtent();let r=[];for(let s=0;s<o._layers.length;s++)r.push(o._layers[s].load(t.cesium3dTilesetOptions));return await Promise.all(r),o};ds._fetchJson=function(e){return e.fetchJson()};ds.loadJson=async function(e){let t=await ds._fetchJson(e);if(l(t.error)){if(console.error("Failed to fetch I3S ",e.url),l(t.error.message)&&console.error(t.error.message),l(t.error.details))for(let n=0;n<t.error.details.length;n++)console.log(t.error.details[n]);throw new le(t.error)}return t};ds.prototype._loadBinary=async function(e){let t=await e.fetchArrayBuffer();if(t.byteLength>0&&new Uint8Array(t)[0]===123&&new TextDecoder().decode(t).includes("404"))throw new le(`Failed to load binary: ${e.url}`);return t};ds.prototype._binarizeGltf=function(e){let n=new TextEncoder().encode(JSON.stringify(e)),i=new Uint8Array(n.byteLength+20),o={magic:new Uint8Array(i.buffer,0,4),version:new Uint32Array(i.buffer,4,1),length:new Uint32Array(i.buffer,8,1),chunkLength:new Uint32Array(i.buffer,12,1),chunkType:new Uint32Array(i.buffer,16,1),chunkData:new Uint8Array(i.buffer,20,n.byteLength)};return o.magic[0]=103,o.magic[1]=108,o.magic[2]=84,o.magic[3]=70,o.version[0]=2,o.length[0]=i.byteLength,o.chunkLength[0]=n.byteLength,o.chunkType[0]=1313821514,o.chunkData.set(n),i};var WTt=new z;function jTt(e,t){let n=e.tilingScheme,i=[],o={},r=e._lodCount,s=fe.fromRadians(t.west,t.north),a=fe.fromRadians(t.east,t.south),c=n.positionToTileXY(s,r),u=n.positionToTileXY(a,r);for(let d=c.x;d<=u.x;d++)for(let p=c.y;p<=u.y;p++){let g=z.fromElements(d,p,WTt),m=g.toString();if(!o.hasOwnProperty(m)){let x={x:g.x,y:g.y,level:r,tilingScheme:n,terrainProvider:e,positions:[]};o[m]=x,i.push(x)}}let f=[];for(let d=0;d<i.length;++d){let p=i[d],g=p.terrainProvider.requestTileGeometry(p.x,p.y,p.level);f.push(g)}return Promise.all(f).then(function(d){let p=[];for(let g=0;g<d.length;g++){let m={tilingScheme:n,x:i[g].x,y:i[g].y,level:i[g].level},x=d[g],b="Geographic";n._projection instanceof Si&&(b="WebMercator");let T={projectionType:b,projection:n._projection,nativeExtent:n.tileXYToNativeRectangle(m.x,m.y,m.level),height:x._height,width:x._width,scale:x._structure.heightScale,offset:x._structure.heightOffset};if(x._encoding===nd.LERC){let C=bAe.default.decode(x._buffer);T.buffer=C.pixels[0]}else T.buffer=x._buffer;p.push(T)}return p})}async function qTt(e){let t=e._geoidTiledTerrainProvider;if(l(t))try{let n=await jTt(t,e._extent);e._geoidDataList=n}catch{console.log("Error retrieving Geoid Terrain tiles - no geoid conversion will be performed.")}}ds.prototype.loadGeoidData=async function(){return l(this._geoidDataPromise)?this._geoidDataPromise:(this._geoidDataPromise=qTt(this),this._geoidDataPromise)};ds.prototype._computeExtent=function(){let e;for(let t=0;t<this._layersExtent.length;t++){let n=this._layersExtent[t];l(e)?se.union(e,n,e):e=se.clone(n)}this._extent=e};ds.prototype.getAttributeNames=function(){let e=[];for(let t=0;t<this._attributeStatistics.length;++t)e.push(...this._attributeStatistics[t].names);return e};ds.prototype.getAttributeValues=function(e){for(let t=0;t<this._attributeStatistics.length;++t){let n=this._attributeStatistics[t]._getValues(e);if(l(n))return n}return[]};ds.prototype.filterByAttributes=function(e){let t=[];for(let n=0;n<this._layers.length;n++){let i=this._layers[n].filterByAttributes(e);t.push(i)}return Promise.all(t)};var zh=ds;function TAe(){}Object.defineProperties(TAe.prototype,{color:{get:de.throwInstantiationError},intensity:{get:de.throwInstantiationError}});var ZZ=TAe;var YTt=/\/$/,AAe=new Tt('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function Dv(e){e=y(e,y.EMPTY_OBJECT);let t=e.styleId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=De.createIfNeeded(y(e.url,"https://api.mapbox.com/styles/v1/"));this._styleId=t,this._accessToken=n;let o=y(e.tilesize,512);this._tilesize=o;let r=y(e.username,"mapbox");this._username=r;let s=l(e.scaleFactor)?"@2x":"",a=i.getUrlComponent();YTt.test(a)||(a+="/"),a+=`${this._username}/${t}/tiles/${this._tilesize}/{z}/{x}/{y}${s}`,i.url=a,i.setQueryParameters({access_token:n});let c;l(e.credit)?(c=e.credit,typeof c=="string"&&(c=new Tt(c))):c=AAe,this._resource=i,this._imageryProvider=new Ba({url:i,credit:c,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(Dv.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});Dv.prototype.getTileCredits=function(e,t,n){};Dv.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};Dv.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};Dv._defaultCredit=AAe;var $Z=Dv;function QZ(e){}QZ.prototype.isReady=function(){return!0};QZ.prototype.shouldDiscardImage=function(e){return!1};var JZ=QZ;var XTt=new Tt("MapQuest, Open Street Map and contributors, CC-BY-SA");function u5(e){e=y(e,y.EMPTY_OBJECT);let t=De.createIfNeeded(y(e.url,"https://tile.openstreetmap.org/"));t.appendForwardSlash(),t.url+=`{z}/{x}/{y}${e.retinaTiles?"@2x":""}.${y(e.fileExtension,"png")}`;let n=new Zr({ellipsoid:e.ellipsoid}),i=256,o=256,r=y(e.minimumLevel,0),s=e.maximumLevel,a=y(e.rectangle,n.rectangle),c=n.positionToTileXY(se.southwest(a),r),u=n.positionToTileXY(se.northeast(a),r),f=(Math.abs(u.x-c.x)+1)*(Math.abs(u.y-c.y)+1),d=y(e.credit,XTt);typeof d=="string"&&(d=new Tt(d)),Ba.call(this,{url:t,credit:d,tilingScheme:n,tileWidth:i,tileHeight:o,minimumLevel:r,maximumLevel:s,rectangle:a})}l(Object.create)&&(u5.prototype=Object.create(Ba.prototype),u5.prototype.constructor=u5);var xg=u5;var KTt=new z(1,1);function e$(e){e=y(e,y.EMPTY_OBJECT),this.mass=y(e.mass,1),this.position=h.clone(y(e.position,h.ZERO)),this.velocity=h.clone(y(e.velocity,h.ZERO)),this.life=y(e.life,Number.MAX_VALUE),this.image=e.image,this.startColor=H.clone(y(e.startColor,H.WHITE)),this.endColor=H.clone(y(e.endColor,H.WHITE)),this.startScale=y(e.startScale,1),this.endScale=y(e.endScale,1),this.imageSize=z.clone(y(e.imageSize,KTt)),this._age=0,this._normalizedAge=0,this._billboard=void 0}Object.defineProperties(e$.prototype,{age:{get:function(){return this._age}},normalizedAge:{get:function(){return this._normalizedAge}}});var CAe=new h;e$.prototype.update=function(e,t){return h.multiplyByScalar(this.velocity,e,CAe),h.add(this.position,CAe,this.position),l(t)&&t(this,e),this._age+=e,this.life===Number.MAX_VALUE?this._normalizedAge=0:this._normalizedAge=this._age/this.life,this._age<=this.life};var Pv=e$;function EAe(e){e=y(e,y.EMPTY_OBJECT),this.time=y(e.time,0),this.minimum=y(e.minimum,0),this.maximum=y(e.maximum,50),this._complete=!1}Object.defineProperties(EAe.prototype,{complete:{get:function(){return this._complete}}});var t$=EAe;function SAe(e){}SAe.prototype.emit=function(e){de.throwInstantiationError()};var n$=SAe;var vAe=new z(1,1);function C3(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.updateCallback=e.updateCallback,this.loop=y(e.loop,!0),this.image=y(e.image,void 0);let t=e.emitter;l(t)||(t=new l3(.5)),this._emitter=t,this._bursts=e.bursts,this._modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._emitterModelMatrix=F.clone(y(e.emitterModelMatrix,F.IDENTITY)),this._matrixDirty=!0,this._combinedMatrix=new F,this._startColor=H.clone(y(e.color,y(e.startColor,H.WHITE))),this._endColor=H.clone(y(e.color,y(e.endColor,H.WHITE))),this._startScale=y(e.scale,y(e.startScale,1)),this._endScale=y(e.scale,y(e.endScale,1)),this._emissionRate=y(e.emissionRate,5),this._minimumSpeed=y(e.speed,y(e.minimumSpeed,1)),this._maximumSpeed=y(e.speed,y(e.maximumSpeed,1)),this._minimumParticleLife=y(e.particleLife,y(e.minimumParticleLife,5)),this._maximumParticleLife=y(e.particleLife,y(e.maximumParticleLife,5)),this._minimumMass=y(e.mass,y(e.minimumMass,1)),this._maximumMass=y(e.mass,y(e.maximumMass,1)),this._minimumImageSize=z.clone(y(e.imageSize,y(e.minimumImageSize,vAe))),this._maximumImageSize=z.clone(y(e.imageSize,y(e.maximumImageSize,vAe))),this._sizeInMeters=y(e.sizeInMeters,!1),this._lifetime=y(e.lifetime,Number.MAX_VALUE),this._billboardCollection=void 0,this._particles=[],this._particlePool=[],this._previousTime=void 0,this._currentTime=0,this._carryOver=0,this._complete=new pe,this._isComplete=!1,this._updateParticlePool=!0,this._particleEstimate=0}Object.defineProperties(C3.prototype,{emitter:{get:function(){return this._emitter},set:function(e){this._emitter=e}},bursts:{get:function(){return this._bursts},set:function(e){this._bursts=e,this._updateParticlePool=!0}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!F.equals(this._modelMatrix,e),F.clone(e,this._modelMatrix)}},emitterModelMatrix:{get:function(){return this._emitterModelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!F.equals(this._emitterModelMatrix,e),F.clone(e,this._emitterModelMatrix)}},startColor:{get:function(){return this._startColor},set:function(e){H.clone(e,this._startColor)}},endColor:{get:function(){return this._endColor},set:function(e){H.clone(e,this._endColor)}},startScale:{get:function(){return this._startScale},set:function(e){this._startScale=e}},endScale:{get:function(){return this._endScale},set:function(e){this._endScale=e}},emissionRate:{get:function(){return this._emissionRate},set:function(e){this._emissionRate=e,this._updateParticlePool=!0}},minimumSpeed:{get:function(){return this._minimumSpeed},set:function(e){this._minimumSpeed=e}},maximumSpeed:{get:function(){return this._maximumSpeed},set:function(e){this._maximumSpeed=e}},minimumParticleLife:{get:function(){return this._minimumParticleLife},set:function(e){this._minimumParticleLife=e}},maximumParticleLife:{get:function(){return this._maximumParticleLife},set:function(e){this._maximumParticleLife=e,this._updateParticlePool=!0}},minimumMass:{get:function(){return this._minimumMass},set:function(e){this._minimumMass=e}},maximumMass:{get:function(){return this._maximumMass},set:function(e){this._maximumMass=e}},minimumImageSize:{get:function(){return this._minimumImageSize},set:function(e){this._minimumImageSize=e}},maximumImageSize:{get:function(){return this._maximumImageSize},set:function(e){this._maximumImageSize=e}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters=e}},lifetime:{get:function(){return this._lifetime},set:function(e){this._lifetime=e}},complete:{get:function(){return this._complete}},isComplete:{get:function(){return this._isComplete}}});function ZTt(e){let t=e._emissionRate,n=e._maximumParticleLife,i=0,o=e._bursts;if(l(o)){let d=o.length;for(let p=0;p<d;++p)i+=o[p].maximum}let r=e._billboardCollection,s=e.image,a=Math.ceil(t*n+i),c=e._particles,u=e._particlePool,f=Math.max(a-c.length-u.length,0);for(let d=0;d<f;++d){let p=new Pv;p._billboard=r.add({image:s,show:!1}),u.push(p)}e._particleEstimate=a}function $Tt(e){let t=e._particlePool.pop();return l(t)||(t=new Pv),t}function QTt(e,t){e._particlePool.push(t)}function JTt(e){let t=e._particles,n=e._particlePool,i=e._billboardCollection,o=t.length,r=n.length,s=e._particleEstimate,a=r-Math.max(s-o-r,0);for(let c=a;c<r;++c){let u=n[c];i.remove(u._billboard)}n.length=a}function eAt(e){l(e._billboard)&&(e._billboard.show=!1)}function wAe(e,t){let n=t._billboard;l(n)||(n=t._billboard=e._billboardCollection.add({image:t.image})),n.width=t.imageSize.x,n.height=t.imageSize.y,n.position=t.position,n.sizeInMeters=e.sizeInMeters,n.show=!0;let i=R.lerp(t.startColor.red,t.endColor.red,t.normalizedAge),o=R.lerp(t.startColor.green,t.endColor.green,t.normalizedAge),r=R.lerp(t.startColor.blue,t.endColor.blue,t.normalizedAge),s=R.lerp(t.startColor.alpha,t.endColor.alpha,t.normalizedAge);n.color=new H(i,o,r,s),n.scale=R.lerp(t.startScale,t.endScale,t.normalizedAge)}function tAt(e,t){t.startColor=H.clone(e._startColor,t.startColor),t.endColor=H.clone(e._endColor,t.endColor),t.startScale=e._startScale,t.endScale=e._endScale,t.image=e.image,t.life=R.randomBetween(e._minimumParticleLife,e._maximumParticleLife),t.mass=R.randomBetween(e._minimumMass,e._maximumMass),t.imageSize.x=R.randomBetween(e._minimumImageSize.x,e._maximumImageSize.x),t.imageSize.y=R.randomBetween(e._minimumImageSize.y,e._maximumImageSize.y),t._normalizedAge=0,t._age=0;let n=R.randomBetween(e._minimumSpeed,e._maximumSpeed);h.multiplyByScalar(t.velocity,n,t.velocity),e._particles.push(t)}function nAt(e,t){if(e._isComplete)return 0;t=R.mod(t,e._lifetime);let n=t*e._emissionRate,i=Math.floor(n);if(e._carryOver+=n-i,e._carryOver>1&&(i++,e._carryOver-=1),l(e.bursts)){let o=e.bursts.length;for(let r=0;r<o;r++){let s=e.bursts[r],a=e._currentTime;l(s)&&!s._complete&&a>s.time&&(i+=R.randomBetween(s.minimum,s.maximum),s._complete=!0)}}return i}var f5=new h;C3.prototype.update=function(e){if(!this.show)return;l(this._billboardCollection)||(this._billboardCollection=new Cu),this._updateParticlePool&&(ZTt(this),this._updateParticlePool=!1);let t=0;this._previousTime&&(t=J.secondsDifference(e.time,this._previousTime)),t<0&&(t=0);let n=this._particles,i=this._emitter,o=this.updateCallback,r,s,a=n.length;for(r=0;r<a;++r)s=n[r],s.update(t,o)?wAe(this,s):(eAt(s),QTt(this,s),n[r]=n[a-1],--r,--a);n.length=a;let c=nAt(this,t);if(c>0&&l(i)){this._matrixDirty&&(this._combinedMatrix=F.multiply(this.modelMatrix,this.emitterModelMatrix,this._combinedMatrix),this._matrixDirty=!1);let u=this._combinedMatrix;for(r=0;r<c;r++)s=$Tt(this),this._emitter.emit(s),h.add(s.position,s.velocity,f5),F.multiplyByPoint(u,f5,f5),s.position=F.multiplyByPoint(u,s.position,s.position),h.subtract(f5,s.position,s.velocity),h.normalize(s.velocity,s.velocity),tAt(this,s),wAe(this,s)}if(this._billboardCollection.update(e),this._previousTime=J.clone(e.time,this._previousTime),this._currentTime+=t,this._lifetime!==Number.MAX_VALUE&&this._currentTime>this._lifetime)if(this.loop){if(this._currentTime=R.mod(this._currentTime,this._lifetime),this.bursts){let u=this.bursts.length;for(r=0;r<u;r++)this.bursts[r]._complete=!1}}else this._isComplete=!0,this._complete.raiseEvent(this);e.frameNumber%120===0&&JTt(this)};C3.prototype.isDestroyed=function(){return!1};C3.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),ue(this)};var i$=C3;var IAe=wo(Pk(),1);function iAt(e,t,n){return` float clipDistance = clip(gl_FragCoord, ${e}, ${t}); vec4 clippingPlanesEdgeColor = vec4(1.0); clippingPlanesEdgeColor.rgb = ${n}.rgb; float clippingPlanesEdgeWidth = ${n}.a; if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) { out_FragColor = clippingPlanesEdgeColor; } `}var E3=iAt;var oAt={modifyFragmentShader:function(t){return t=ze.replaceMain(t,"czm_splitter_main"),t+=`uniform float czm_splitDirection; void main() { #ifndef SHADOW_MAP if (czm_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; if (czm_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; #endif czm_splitter_main(); } `,t},addUniforms:function(t,n){n.czm_splitDirection=function(){return t.splitDirection}}},Iv=oAt;var xA={NEEDS_DECODE:0,DECODING:1,READY:2,FAILED:3};function S3(e){this._parsedContent=void 0,this._drawCommand=void 0,this._isTranslucent=!1,this._styleTranslucent=!1,this._constantColor=H.clone(H.DARKGRAY),this._highlightColor=H.clone(H.WHITE),this._pointSize=1,this._rtcCenter=void 0,this._quantizedVolumeScale=void 0,this._quantizedVolumeOffset=void 0,this._styleableShaderAttributes=void 0,this._isQuantized=!1,this._isOctEncoded16P=!1,this._isRGB565=!1,this._hasColors=!1,this._hasNormals=!1,this._hasBatchIds=!1,this._decodingState=xA.READY,this._dequantizeInShader=!0,this._isQuantizedDraco=!1,this._isOctEncodedDraco=!1,this._quantizedRange=0,this._octEncodedRange=0,this.backFaceCulling=!1,this._backFaceCulling=!1,this.normalShading=!0,this._normalShading=!0,this._opaqueRenderState=void 0,this._translucentRenderState=void 0,this._mode=void 0,this._ready=!1,this._pointsLength=0,this._geometryByteLength=0,this._vertexShaderLoaded=e.vertexShaderLoaded,this._fragmentShaderLoaded=e.fragmentShaderLoaded,this._uniformMapLoaded=e.uniformMapLoaded,this._batchTableLoaded=e.batchTableLoaded,this._pickIdLoaded=e.pickIdLoaded,this._opaquePass=y(e.opaquePass,Ee.OPAQUE),this._cull=y(e.cull,!0),this.style=void 0,this._style=void 0,this.styleDirty=!1,this.modelMatrix=F.clone(F.IDENTITY),this._modelMatrix=F.clone(F.IDENTITY),this.time=0,this.shadows=yn.ENABLED,this._boundingSphere=void 0,this.clippingPlanes=void 0,this.isClipped=!1,this.clippingPlanesDirty=!1,this.clippingPlanesOriginMatrix=void 0,this.attenuation=!1,this._attenuation=!1,this.geometricError=0,this.geometricErrorScale=1,this.maximumAttenuation=this._pointSize,this.splitDirection=y(e.splitDirection,Qc.NONE),this._splittingEnabled=!1,this._error=void 0,rAt(this,e)}Object.defineProperties(S3.prototype,{pointsLength:{get:function(){return this._pointsLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}},color:{get:function(){return H.clone(this._highlightColor)},set:function(e){this._highlightColor=H.clone(e,this._highlightColor)}},boundingSphere:{get:function(){if(l(this._drawCommand))return this._drawCommand.boundingVolume},set:function(e){this._boundingSphere=ae.clone(e,this._boundingSphere)}}});function rAt(e,t){let n=gb.parse(t.arrayBuffer,t.byteOffset);if(e._parsedContent=n,e._rtcCenter=n.rtcCenter,e._hasNormals=n.hasNormals,e._hasColors=n.hasColors,e._hasBatchIds=n.hasBatchIds,e._isTranslucent=n.isTranslucent,!n.hasBatchIds&&l(n.batchTableBinary)&&(n.styleableProperties=Bp.getBinaryProperties(n.pointsLength,n.batchTableJson,n.batchTableBinary)),l(n.draco)){let a=n.draco;e._decodingState=xA.NEEDS_DECODE,a.dequantizeInShader=e._dequantizeInShader}let i=n.positions;l(i)&&(e._isQuantized=i.isQuantized,e._quantizedVolumeScale=i.quantizedVolumeScale,e._quantizedVolumeOffset=i.quantizedVolumeOffset,e._quantizedRange=i.quantizedRange);let o=n.normals;l(o)&&(e._isOctEncoded16P=o.octEncoded);let r=n.colors;l(r)&&(l(r.constantColor)&&(e._constantColor=H.clone(r.constantColor,e._constantColor),e._hasColors=!1),e._isRGB565=r.isRGB565);let s=n.batchIds;l(n.batchIds)&&(s.name="BATCH_ID",s.semantic="BATCH_ID",s.setIndex=void 0),n.hasBatchIds&&e._batchTableLoaded(n.batchLength,n.batchTableJson,n.batchTableBinary),e._pointsLength=n.pointsLength}var sAt=new h,aAt=new h,cAt=new h,DAe,d5;function lAt(e){if(!l(d5)){DAe=new IAe.default(0),d5=new Array(e);for(let t=0;t<e;++t)d5[t]=DAe.random()}return d5}function uAt(e){let n=e.length/3,i=Math.min(n,20),o=lAt(20),r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=h.fromElements(r,r,r,sAt),c=h.fromElements(s,s,s,aAt);for(let f=0;f<i;++f){let d=Math.floor(o[f]*n),p=h.unpack(e,d*3,cAt);h.minimumByComponent(a,p,a),h.maximumByComponent(c,p,c)}let u=ae.fromCornerPoints(a,c);return u.radius+=R.EPSILON2,u}function PAe(e,t){let n=X.fromTypedArray(e);return n===X.INT||n===X.UNSIGNED_INT||n===X.DOUBLE?(Lt("Cast pnts property to floats",`Point cloud property "${t}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),new Float32Array(e)):e}var fAt=new oe,dAt=new oe,hAt=new H,RAe=0,h5=1,c$=2,OAe=3,mAt=4,o$=new F,pAt=new F;function _At(e,t){let n=t.context,i=e._parsedContent,o=e._pointsLength,r=i.positions,s=i.colors,a=i.normals,c=i.batchIds,u=i.styleableProperties,f=l(u),d=e._isQuantized,p=e._isQuantizedDraco,g=e._isOctEncoded16P,m=e._isOctEncodedDraco,x=e._quantizedRange,b=e._octEncodedRange,T=e._isRGB565,C=e._isTranslucent,A=e._hasColors,E=e._hasNormals,v=e._hasBatchIds,D,O,I=[],L={};if(e._styleableShaderAttributes=L,f){let V=mAt;for(let G in u)if(u.hasOwnProperty(G)){let k=u[G],Y=PAe(k.typedArray,G);D=k.componentCount,O=X.fromTypedArray(Y);let W=ct.createVertexBuffer({context:n,typedArray:Y,usage:Fe.STATIC_DRAW});e._geometryByteLength+=W.sizeInBytes;let Q={index:V,vertexBuffer:W,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0};I.push(Q),L[G]={location:V,componentCount:D},++V}}let N=ct.createVertexBuffer({context:n,typedArray:r.typedArray,usage:Fe.STATIC_DRAW});e._geometryByteLength+=N.sizeInBytes;let _;A&&(_=ct.createVertexBuffer({context:n,typedArray:s.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=_.sizeInBytes);let S;E&&(S=ct.createVertexBuffer({context:n,typedArray:a.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=S.sizeInBytes);let w;v&&(c.typedArray=PAe(c.typedArray,"batchIds"),w=ct.createVertexBuffer({context:n,typedArray:c.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=w.sizeInBytes);let P=[];if(d?O=X.UNSIGNED_SHORT:p?O=x<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT:O=X.FLOAT,P.push({index:RAe,vertexBuffer:N,componentsPerAttribute:3,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0}),e._cull&&(d||p?e._boundingSphere=ae.fromCornerPoints(h.ZERO,e._quantizedVolumeScale):e._boundingSphere=uAt(r.typedArray)),A)if(T)P.push({index:h5,vertexBuffer:_,componentsPerAttribute:1,componentDatatype:X.UNSIGNED_SHORT,normalize:!1,offsetInBytes:0,strideInBytes:0});else{let V=C?4:3;P.push({index:h5,vertexBuffer:_,componentsPerAttribute:V,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0})}E&&(g?(D=2,O=X.UNSIGNED_BYTE):m?(D=2,O=b<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT):(D=3,O=X.FLOAT),P.push({index:c$,vertexBuffer:S,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0})),v&&P.push({index:OAe,vertexBuffer:w,componentsPerAttribute:1,componentDatatype:X.fromTypedArray(c.typedArray),normalize:!1,offsetInBytes:0,strideInBytes:0}),f&&(P=P.concat(I));let M=new ei({context:n,attributes:P}),B={depthTest:{enabled:!0}},U={depthTest:{enabled:!0},depthMask:!1,blending:un.ALPHA_BLEND};e._opaquePass===Ee.CESIUM_3D_TILE&&(B.stencilTest=Ft.setCesium3DTileBit(),B.stencilMask=Ft.CESIUM_3D_TILE_MASK,U.stencilTest=Ft.setCesium3DTileBit(),U.stencilMask=Ft.CESIUM_3D_TILE_MASK),e._opaqueRenderState=Ve.fromCache(B),e._translucentRenderState=Ve.fromCache(U),e._drawCommand=new Ze({boundingVolume:new ae,cull:e._cull,modelMatrix:new F,primitiveType:Le.POINTS,vertexArray:M,count:o,shaderProgram:void 0,uniformMap:void 0,renderState:C?e._translucentRenderState:e._opaqueRenderState,pass:C?Ee.TRANSLUCENT:e._opaquePass,owner:e,castShadows:!1,receiveShadows:!1,pickId:e._pickIdLoaded()})}function gAt(e,t){let n=t.context,i=e._isQuantized,o=e._isQuantizedDraco,r=e._isOctEncodedDraco,s={u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier:function(){let a=fAt;if(a.x=e._attenuation?e.maximumAttenuation:e._pointSize,a.x*=t.pixelRatio,a.y=e.time,e._attenuation){let c=t.camera.frustum,u;t.mode===ne.SCENE2D||c instanceof rn?u=Number.POSITIVE_INFINITY:u=n.drawingBufferHeight/t.camera.frustum.sseDenominator,a.z=e.geometricError*e.geometricErrorScale,a.w=u}return a},u_highlightColor:function(){return e._highlightColor},u_constantColor:function(){return e._constantColor},u_clippingPlanes:function(){let a=e.clippingPlanes;return e.isClipped?a.texture:n.defaultTexture},u_clippingPlanesEdgeStyle:function(){let a=e.clippingPlanes;if(!l(a))return H.TRANSPARENT;let c=H.clone(a.edgeColor,hAt);return c.alpha=a.edgeWidth,c},u_clippingPlanesMatrix:function(){let a=e.clippingPlanes;if(!l(a))return F.IDENTITY;let c=y(e.clippingPlanesOriginMatrix,e._modelMatrix);F.multiply(n.uniformState.view3D,c,o$);let u=F.multiply(o$,a.modelMatrix,o$);return F.inverseTranspose(u,pAt)}};Iv.addUniforms(e,s),(i||o||r)&&(s=_t(s,{u_quantizedVolumeScaleAndOctEncodedRange:function(){let a=dAt;if(l(e._quantizedVolumeScale)){let c=h.clone(e._quantizedVolumeScale,a);h.divideByScalar(c,e._quantizedRange,a)}return a.w=e._octEncodedRange,a}})),l(e._uniformMapLoaded)&&(s=e._uniformMapLoaded(s)),e._drawCommand.uniformMap=s}function r$(e,t){let n=/czm_3dtiles_property_(\d+)/g,i=n.exec(e);for(;i!==null;){let o=parseInt(i[1]);t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function s$(e,t){e=e.slice(e.indexOf(` `));let n=/czm_3dtiles_builtin_property_(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function a$(e,t){let n=e.numberOfAttributes;for(let i=0;i<n;++i){let o=e.getAttribute(i);if(o.index===t)return o}}var yAt={POSITION:"czm_3dtiles_builtin_property_POSITION",POSITION_ABSOLUTE:"czm_3dtiles_builtin_property_POSITION_ABSOLUTE",COLOR:"czm_3dtiles_builtin_property_COLOR",NORMAL:"czm_3dtiles_builtin_property_NORMAL"};function xAt(e,t,n){let i,o,r,s=t.context,a=l(n),c=e._isQuantized,u=e._isQuantizedDraco,f=e._isOctEncoded16P,d=e._isOctEncodedDraco,p=e._isRGB565,g=e._isTranslucent,m=e._hasColors,x=e._hasNormals,b=e._hasBatchIds,T=e._backFaceCulling,C=e._normalShading,A=e._drawCommand.vertexArray,E=e.clippingPlanes,v=e._attenuation,D,O,I,L=g,N=He(yAt),_={},S=e._styleableShaderAttributes;for(o in S)S.hasOwnProperty(o)&&(r=S[o],N[o]=`czm_3dtiles_property_${r.location}`,_[r.location]=r);if(a){let re={translucent:!1},_e="(vec3 czm_3dtiles_builtin_property_POSITION, vec3 czm_3dtiles_builtin_property_POSITION_ABSOLUTE, vec4 czm_3dtiles_builtin_property_COLOR, vec3 czm_3dtiles_builtin_property_NORMAL)";D=n.getColorShaderFunction(`getColorFromStyle${_e}`,N,re),O=n.getShowShaderFunction(`getShowFromStyle${_e}`,N,re),I=n.getPointSizeShaderFunction(`getPointSizeFromStyle${_e}`,N,re),l(D)&&re.translucent&&(L=!0)}e._styleTranslucent=L;let w=l(D),P=l(O),M=l(I),B=e.isClipped,U=[],V=[];w&&(r$(D,U),s$(D,V)),P&&(r$(O,U),s$(O,V)),M&&(r$(I,U),s$(I,V));let G=V.indexOf("COLOR")>=0,k=V.indexOf("NORMAL")>=0;if(k&&!x)throw new le("Style references the NORMAL semantic but the point cloud does not have normals");for(o in S)if(S.hasOwnProperty(o)){r=S[o];let re=U.indexOf(r.location)>=0,_e=a$(A,r.location);_e.enabled=re}let Y=m&&(!w||G);if(m){let re=a$(A,h5);re.enabled=Y}let W=x&&(C||T||k);if(x){let re=a$(A,c$);re.enabled=W}let Q={a_position:RAe};Y&&(Q.a_color=h5),W&&(Q.a_normal=c$),b&&(Q.a_batchId=OAe);let j="",K=U.length;for(i=0;i<K;++i){let re=U[i];r=_[re];let _e=r.componentCount,xe=`czm_3dtiles_property_${re}`,Ce;_e===1?Ce="float":Ce=`vec${_e}`,j+=`in ${Ce} ${xe}; `,Q[xe]=r.location}gAt(e,t);let Z=`in vec3 a_position; out vec4 v_color; uniform vec4 u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier; uniform vec4 u_constantColor; uniform vec4 u_highlightColor; `;Z+=`float u_pointSize; float tiles3d_tileset_time; `,v&&(Z+=`float u_geometricError; float u_depthMultiplier; `),Z+=j,Y&&(g?Z+=`in vec4 a_color; `:p?Z+=`in float a_color; const float SHIFT_RIGHT_11 = 1.0 / 2048.0; const float SHIFT_RIGHT_5 = 1.0 / 32.0; const float SHIFT_LEFT_11 = 2048.0; const float SHIFT_LEFT_5 = 32.0; const float NORMALIZE_6 = 1.0 / 64.0; const float NORMALIZE_5 = 1.0 / 32.0; `:Z+=`in vec3 a_color; `),W&&(f||d?Z+=`in vec2 a_normal; `:Z+=`in vec3 a_normal; `),b&&(Z+=`in float a_batchId; `),(c||u||d)&&(Z+=`uniform vec4 u_quantizedVolumeScaleAndOctEncodedRange; `),w&&(Z+=D),P&&(Z+=O),M&&(Z+=I),Z+=`void main() { u_pointSize = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.x; tiles3d_tileset_time = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.y; `,v&&(Z+=` u_geometricError = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.z; u_depthMultiplier = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.w; `),Y?g?Z+=` vec4 color = a_color; `:p?Z+=` float compressed = a_color; float r = floor(compressed * SHIFT_RIGHT_11); compressed -= r * SHIFT_LEFT_11; float g = floor(compressed * SHIFT_RIGHT_5); compressed -= g * SHIFT_LEFT_5; float b = compressed; vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5); vec4 color = vec4(rgb, 1.0); `:Z+=` vec4 color = vec4(a_color, 1.0); `:Z+=` vec4 color = u_constantColor; `,c||u?Z+=` vec3 position = a_position * u_quantizedVolumeScaleAndOctEncodedRange.xyz; `:Z+=` vec3 position = a_position; `,Z+=` vec3 position_absolute = vec3(czm_model * vec4(position, 1.0)); `,W?(f?Z+=` vec3 normal = czm_octDecode(a_normal); `:d?Z+=` vec3 normal = czm_octDecode(a_normal, u_quantizedVolumeScaleAndOctEncodedRange.w).zxy; `:Z+=` vec3 normal = a_normal; `,Z+=` vec3 normalEC = czm_normal * normal; `):Z+=` vec3 normal = vec3(1.0); `,w&&(Z+=` color = getColorFromStyle(position, position_absolute, color, normal); `),P&&(Z+=` float show = float(getShowFromStyle(position, position_absolute, color, normal)); `),M?Z+=` gl_PointSize = getPointSizeFromStyle(position, position_absolute, color, normal) * czm_pixelRatio; `:v?Z+=` vec4 positionEC = czm_modelView * vec4(position, 1.0); float depth = -positionEC.z; gl_PointSize = min((u_geometricError / depth) * u_depthMultiplier, u_pointSize); `:Z+=` gl_PointSize = u_pointSize; `,Z+=` color = color * u_highlightColor; `,W&&C&&(Z+=` float diffuseStrength = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC); diffuseStrength = max(diffuseStrength, 0.4); color.xyz *= diffuseStrength * czm_lightColor; `),Z+=` v_color = color; gl_Position = czm_modelViewProjection * vec4(position, 1.0); `,W&&T&&(Z+=` float visible = step(-normalEC.z, 0.0); gl_Position *= visible; gl_PointSize *= visible; `),P&&(Z+=` gl_Position.w *= float(show); gl_PointSize *= float(show); `),Z+=`} `;let he=`in vec4 v_color; `;B&&(he+=`uniform highp sampler2D u_clippingPlanes; uniform mat4 u_clippingPlanesMatrix; uniform vec4 u_clippingPlanesEdgeStyle; `,he+=` `,he+=tg(E,s),he+=` `),he+=`void main() { out_FragColor = czm_gammaCorrect(v_color); `,B&&(he+=E3("u_clippingPlanes","u_clippingPlanesMatrix","u_clippingPlanesEdgeStyle")),he+=`} `,e.splitDirection!==Qc.NONE&&(he=Iv.modifyFragmentShader(he)),l(e._vertexShaderLoaded)&&(Z=e._vertexShaderLoaded(Z)),l(e._fragmentShaderLoaded)&&(he=e._fragmentShaderLoaded(he));let be=e._drawCommand;l(be.shaderProgram)&&be.shaderProgram.destroy(),be.shaderProgram=$t.fromCache({context:s,vertexShaderSource:Z,fragmentShaderSource:he,attributeLocations:Q});try{be.shaderProgram._bind()}catch{throw new le("Error generating style shader: this may be caused by a type mismatch, index out-of-bounds, or other syntax error.")}}function bAt(e,t){if(e._decodingState===xA.READY)return!1;if(e._decodingState===xA.NEEDS_DECODE){let n=e._parsedContent,i=n.draco,o=Wp.decodePointCloud(i,t);l(o)&&(e._decodingState=xA.DECODING,o.then(function(r){e._decodingState=xA.READY;let s=l(r.POSITION)?r.POSITION.array:void 0,a=l(r.RGB)?r.RGB.array:void 0,c=l(r.RGBA)?r.RGBA.array:void 0,u=l(r.NORMAL)?r.NORMAL.array:void 0,f=l(r.BATCH_ID)?r.BATCH_ID.array:void 0,d=l(s)&&l(r.POSITION.data.quantization),p=l(u)&&l(r.NORMAL.data.quantization);if(d){let b=r.POSITION.data.quantization,T=b.range;e._quantizedVolumeScale=h.fromElements(T,T,T),e._quantizedVolumeOffset=h.unpack(b.minValues),e._quantizedRange=(1<<b.quantizationBits)-1,e._isQuantizedDraco=!0}p&&(e._octEncodedRange=(1<<r.NORMAL.data.quantization.quantizationBits)-1,e._isOctEncodedDraco=!0);let g=n.styleableProperties,m=i.batchTableProperties;for(let b in m)if(m.hasOwnProperty(b)){let T=r[b];l(g)||(g={}),g[b]={typedArray:T.array,componentCount:T.data.componentsPerAttribute}}l(s)&&(n.positions={typedArray:s});let x=y(c,a);l(x)&&(n.colors={typedArray:x}),l(u)&&(n.normals={typedArray:u}),l(f)&&(n.batchIds={typedArray:f}),n.styleableProperties=g}).catch(function(r){e._decodingState=xA.FAILED,e._error=r}))}return!0}var TAt=new oe,AAt=new h;S3.prototype.update=function(e){let t=e.context;if(l(this._error)){let u=this._error;throw this._error=void 0,u}if(bAt(this,t))return;let i=!1,o=!F.equals(this._modelMatrix,this.modelMatrix);if(this._mode!==e.mode&&(this._mode=e.mode,o=!0),l(this._drawCommand)||(_At(this,e),o=!0,i=!0,this._ready=!0,this._parsedContent=void 0),o){F.clone(this.modelMatrix,this._modelMatrix);let u=this._drawCommand.modelMatrix;if(F.clone(this._modelMatrix,u),l(this._rtcCenter)&&F.multiplyByTranslation(u,this._rtcCenter,u),l(this._quantizedVolumeOffset)&&F.multiplyByTranslation(u,this._quantizedVolumeOffset,u),e.mode!==ne.SCENE3D){let d=e.mapProjection,p=F.getColumn(u,3,TAt);oe.equals(p,oe.UNIT_W)||wt.basisTo2D(d,u,u)}let f=this._drawCommand.boundingVolume;if(ae.clone(this._boundingSphere,f),this._cull){let d=f.center;F.multiplyByPoint(u,d,d);let p=F.getScale(u,AAt);f.radius*=h.maximumComponent(p)}}this.clippingPlanesDirty&&(this.clippingPlanesDirty=!1,i=!0),this._attenuation!==this.attenuation&&(this._attenuation=this.attenuation,i=!0),this.backFaceCulling!==this._backFaceCulling&&(this._backFaceCulling=this.backFaceCulling,i=!0),this.normalShading!==this._normalShading&&(this._normalShading=this.normalShading,i=!0),(this._style!==this.style||this.styleDirty)&&(this._style=this.style,this.styleDirty=!1,i=!0);let r=this.splitDirection!==Qc.NONE;this._splittingEnabled!==r&&(this._splittingEnabled=r,i=!0),i&&xAt(this,e,this._style),this._drawCommand.castShadows=yn.castShadows(this.shadows),this._drawCommand.receiveShadows=yn.receiveShadows(this.shadows);let s=this._highlightColor.alpha<1||this._constantColor.alpha<1||this._styleTranslucent;this._drawCommand.renderState=s?this._translucentRenderState:this._opaqueRenderState,this._drawCommand.pass=s?Ee.TRANSLUCENT:this._opaquePass;let a=e.commandList,c=e.passes;(c.render||c.pick)&&a.push(this._drawCommand)};S3.prototype.isDestroyed=function(){return!1};S3.prototype.destroy=function(){let e=this._drawCommand;return l(e)&&(e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy()),ue(this)};var v3=S3;function of(){de.throwInstantiationError()}of.computeDefaultLevelZeroMaximumGeometricError=function(e){return e.ellipsoid.maximumRadius*2*Math.PI*.25/(65*e.getNumberOfXTilesAtLevel(0))};Object.defineProperties(of.prototype,{quadtree:{get:de.throwInstantiationError,set:de.throwInstantiationError},tilingScheme:{get:de.throwInstantiationError},errorEvent:{get:de.throwInstantiationError}});of.prototype.update=de.throwInstantiationError;of.prototype.beginUpdate=de.throwInstantiationError;of.prototype.endUpdate=de.throwInstantiationError;of.prototype.getLevelMaximumGeometricError=de.throwInstantiationError;of.prototype.loadTile=de.throwInstantiationError;of.prototype.computeTileVisibility=de.throwInstantiationError;of.prototype.showTileThisFrame=de.throwInstantiationError;of.prototype.computeDistanceToTile=de.throwInstantiationError;of.prototype.isDestroyed=de.throwInstantiationError;of.prototype.destroy=de.throwInstantiationError;var l$=of;function u$(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(u$.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});u$.prototype.emit=function(e){let t=R.randomBetween(0,R.TWO_PI),n=R.randomBetween(0,R.PI),i=R.randomBetween(0,this._radius),o=i*Math.cos(t)*Math.sin(n),r=i*Math.sin(t)*Math.sin(n),s=i*Math.cos(n);e.position=h.fromElements(o,r,s,e.position),e.velocity=h.normalize(e.position,e.velocity)};var f$=u$;function w3(){}w3.prototype.evaluate=function(e,t){de.throwInstantiationError()};w3.prototype.evaluateColor=function(e,t){de.throwInstantiationError()};w3.prototype.getShaderFunction=function(e,t,n,i){de.throwInstantiationError()};w3.prototype.getVariables=function(){de.throwInstantiationError()};var d$=w3;function Rv(e){this._ready=!1,this._provider=void 0,this._errorEvent=new pe,this._readyEvent=new pe,EAt(this,e)}Object.defineProperties(Rv.prototype,{errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}}});Rv.fromWorldTerrain=function(e){return new Rv(NT(e))};Rv.fromWorldBathymetry=function(e){return new Rv(xF(e))};function CAt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function EAt(e,t){let n;try{n=await Promise.resolve(t),e._provider=n,e._ready=!0,e._readyEvent.raiseEvent(n)}catch(i){CAt(e._errorEvent,i)}}var D3=Rv;function Ov(){}Ov.prototype.boundingVolume=void 0;Ov.prototype.boundingSphere=void 0;Ov.prototype.distanceToCamera=function(e){de.throwInstantiationError()};Ov.prototype.intersectPlane=function(e){de.throwInstantiationError()};Ov.prototype.createDebugVolume=function(e){de.throwInstantiationError()};var h$=Ov;function P3(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Ui({ellipsoid:e.ellipsoid}),this._color=y(e.color,H.YELLOW),this._errorEvent=new pe,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0}Object.defineProperties(P3.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}});P3.prototype.getTileCredits=function(e,t,n){};P3.prototype.requestImage=function(e,t,n,i){let o=document.createElement("canvas");o.width=256,o.height=256;let r=o.getContext("2d"),s=this._color.toCssColorString();return r.strokeStyle=s,r.lineWidth=2,r.strokeRect(1,1,255,255),r.font="bold 25px Arial",r.textAlign="center",r.fillStyle=s,r.fillText(`L: ${n}`,124,86),r.fillText(`X: ${e}`,124,136),r.fillText(`Y: ${t}`,124,186),Promise.resolve(o)};P3.prototype.pickFeatures=function(e,t,n,i,o){};var I3=P3;function m$(e){de.throwInstantiationError()}m$.prototype.isReady=de.throwInstantiationError;m$.prototype.shouldDiscardImage=de.throwInstantiationError;var p$=m$;var SAt={START:0,LOADING:1,READY:2,UPSAMPLED_ONLY:3},_$=Object.freeze(SAt);function TA(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.shadows=y(e.shadows,yn.ENABLED),this.maximumMemoryUsage=y(e.maximumMemoryUsage,256),this.shading=new mm(e.shading),this.style=e.style,this.frameFailed=new pe,this.frameChanged=new pe,this._clock=e.clock,this._intervals=e.intervals,this._clippingPlanes=void 0,this.clippingPlanes=e.clippingPlanes,this._pointCloudEyeDomeLighting=new $p,this._loadTimestamp=void 0,this._clippingPlanesState=0,this._styleDirty=!1,this._pickId=void 0,this._totalMemoryUsageInBytes=0,this._frames=[],this._previousInterval=void 0,this._nextInterval=void 0,this._lastRenderedFrame=void 0,this._clockMultiplier=0,this._runningSum=0,this._runningLength=0,this._runningIndex=0,this._runningSamples=new Array(5).fill(0),this._runningAverage=0}Object.defineProperties(TA.prototype,{clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){cs.setOwner(e,this,"_clippingPlanes")}},totalMemoryUsageInBytes:{get:function(){return this._totalMemoryUsageInBytes}},boundingSphere:{get:function(){if(l(this._lastRenderedFrame))return this._lastRenderedFrame.pointCloud.boundingSphere}}});function vAt(e){return`uniform vec4 czm_pickColor; ${e}`}function wAt(e){return function(t){return _t(t,{czm_pickColor:function(){return e._pickId.color}})}}function DAt(){return"czm_pickColor"}TA.prototype.makeStyleDirty=function(){this._styleDirty=!0};TA.prototype._getAverageLoadTime=function(){return this._runningLength===0?.05:this._runningAverage};var PAt=new J;function y$(e){let t=e._clock,n=t.canAnimate&&t.shouldAnimate,i=t.multiplier;return n?i:0}function bA(e,t){return e._intervals.indexOf(t.start)}function IAt(e,t){let n=e._intervals,i=e._clock,o=y$(e);if(o===0)return;let r=e._getAverageLoadTime(),s=J.addSeconds(i.currentTime,r*o,PAt),a=n.indexOf(s),c=bA(e,t);return a===c&&(o>=0?++a:--a),n.get(a)}function RAt(e){let t=e._intervals,i=e._clock.currentTime,o=t.indexOf(i);return t.get(o)}function OAt(e,t,n){let i=y$(e),o=bA(e,t),r=bA(e,n);return i>=0?o>=r:o<=r}function LAe(e,t){return function(n){let i=l(n.message)?n.message:n.toString();e.frameFailed.numberOfListeners>0?e.frameFailed.raiseEvent({uri:t,message:i}):(console.log(`A frame failed to load: ${t}`),console.log(`Error: ${i}`))}}function MAt(e,t,n){let i=bA(e,t),o=e._frames,r=o[i];if(!l(r)){let s=t.data.transform,a=l(s)?F.fromArray(s):void 0,c=t.data.uri;r={pointCloud:void 0,transform:a,timestamp:pi(),sequential:!0,ready:!1,touchedFrameNumber:n.frameNumber,uri:c},o[i]=r,De.fetchArrayBuffer({url:c}).then(function(u){r.pointCloud=new v3({arrayBuffer:u,cull:!0,fragmentShaderLoaded:vAt,uniformMapLoaded:wAt(e),pickIdLoaded:DAt})}).catch(LAe(e,c))}return r}function LAt(e,t){e._runningSum+=t,e._runningSum-=e._runningSamples[e._runningIndex],e._runningSamples[e._runningIndex]=t,e._runningLength=Math.min(e._runningLength+1,e._runningSamples.length),e._runningIndex=(e._runningIndex+1)%e._runningSamples.length,e._runningAverage=e._runningSum/e._runningLength}function NAt(e,t,n,i){t.touchedFrameNumber<i.frameNumber-1&&(t.sequential=!1);let o=t.pointCloud;if(l(o)&&!t.ready){let r=i.commandList,s=r.length;if(NAe(e,t,n,i),o.ready&&(t.ready=!0,e._totalMemoryUsageInBytes+=o.geometryByteLength,r.length=s,t.sequential)){let a=(pi()-t.timestamp)/1e3;LAt(e,a)}}t.touchedFrameNumber=i.frameNumber}var FAt=new F;function BAt(e,t){let n=e.shading;return l(n)&&l(n.baseResolution)?n.baseResolution:l(t.boundingSphere)?R.cbrt(t.boundingSphere.volume()/t.pointsLength):0}function kAt(e){let t=e.shading;return l(t)&&l(t.maximumAttenuation)?t.maximumAttenuation:10}var VAt=new mm;function NAe(e,t,n,i){let o=y(e.shading,VAt),r=t.pointCloud,s=y(t.transform,F.IDENTITY);r.modelMatrix=F.multiplyTransformation(e.modelMatrix,s,FAt),r.style=e.style,r.time=n.timeSinceLoad,r.shadows=e.shadows,r.clippingPlanes=e._clippingPlanes,r.isClipped=n.isClipped,r.attenuation=o.attenuation,r.backFaceCulling=o.backFaceCulling,r.normalShading=o.normalShading,r.geometricError=BAt(e,r),r.geometricErrorScale=o.geometricErrorScale,r.maximumAttenuation=kAt(e);try{r.update(i)}catch(a){LAe(e,t.uri)(a)}t.touchedFrameNumber=i.frameNumber}function g$(e,t,n,i){let o=MAt(e,t,i);NAt(e,o,n,i)}function UAt(e){return function(t){return t.touchedFrameNumber<e.frameNumber}}function FAe(e,t){let n=e._frames,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(l(r)&&(!l(t)||t(r))){let s=r.pointCloud;r.ready&&(e._totalMemoryUsageInBytes-=s.geometryByteLength),l(s)&&s.destroy(),r===e._lastRenderedFrame&&(e._lastRenderedFrame=void 0),n[o]=void 0}}}function zAt(e,t){let n=bA(e,t),i=e._frames[n];if(l(i)&&i.ready)return i}function MAe(e,t,n,i,o){return l(n)?n.ready?!0:(g$(e,t,i,o),n.ready):!1}function HAt(e,t,n,i,o){let r,s,a,c=e._intervals,u=e._frames,f=bA(e,n),d=bA(e,t);if(f>=d){for(r=f;r>=d;--r)if(s=c.get(r),a=u[r],MAe(e,s,a,i,o))return s}else for(r=f;r<=d;++r)if(s=c.get(r),a=u[r],MAe(e,s,a,i,o))return s;return t}function GAt(e,t,n){let i=e._frames,o=i.length;for(let r=0;r<o;++r){let s=i[r];l(s)&&l(s.pointCloud)&&(s.pointCloud.clippingPlanesDirty=t,s.pointCloud.styleDirty=n)}}var Mv={timeSinceLoad:0,isClipped:!1,clippingPlanesDirty:!1};TA.prototype.update=function(e){if(e.mode===ne.MORPHING||!this.show)return;l(this._pickId)||(this._pickId=e.context.createPickId({primitive:this})),l(this._loadTimestamp)||(this._loadTimestamp=J.clone(e.time));let t=Math.max(J.secondsDifference(e.time,this._loadTimestamp)*1e3,0),n=this._clippingPlanes,i=0,o=!1,r=l(n)&&n.enabled;r&&(n.update(e),i=n.clippingPlanesState),this._clippingPlanesState!==i&&(this._clippingPlanesState=i,o=!0);let s=this._styleDirty;this._styleDirty=!1,(o||s)&&GAt(this,o,s),Mv.timeSinceLoad=t,Mv.isClipped=r;let a=this.shading,c=this._pointCloudEyeDomeLighting,u=e.commandList,f=u.length,d=this._previousInterval,p=this._nextInterval,g=RAt(this);if(!l(g))return;let m=!1,x=y$(this),b=x===0;x!==this._clockMultiplier&&(m=!0,this._clockMultiplier=x),(!l(d)||b)&&(d=g),(!l(p)||m||OAt(this,g,p))&&(p=IAt(this,g)),d=HAt(this,d,g,Mv,e);let T=zAt(this,d);l(T)||(g$(this,d,Mv,e),T=this._lastRenderedFrame),l(T)&&NAe(this,T,Mv,e),l(p)&&g$(this,p,Mv,e);let C=this;l(T)&&!l(this._lastRenderedFrame)&&e.afterRender.push(function(){return!0}),l(T)&&T!==this._lastRenderedFrame&&C.frameChanged.numberOfListeners>0&&e.afterRender.push(function(){return C.frameChanged.raiseEvent(C),!0}),this._previousInterval=d,this._nextInterval=p,this._lastRenderedFrame=T;let A=this._totalMemoryUsageInBytes,E=this.maximumMemoryUsage*1024*1024;A>E&&FAe(this,UAt(e));let D=u.length-f;l(a)&&a.attenuation&&a.eyeDomeLighting&&D>0&&c.update(e,f,a,this.boundingSphere)};TA.prototype.isDestroyed=function(){return!1};TA.prototype.destroy=function(){return FAe(this),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var Lv=TA;function m5(e,t){this.show=!0,l(e)||(e=new Ge),this.rectangle=Ge.clone(e),l(t)||(t=Vi.fromType(Vi.ColorType,{color:new H(1,1,1,1)})),this.material=t,this._material=void 0,this._overlayCommand=void 0,this._rs=void 0}m5.prototype.update=function(e){if(!this.show)return;let t=this._rs;if((!l(t)||!Ge.equals(t.viewport,this.rectangle))&&(this._rs=Ve.fromCache({blending:un.ALPHA_BLEND,viewport:this.rectangle})),e.passes.render){let i=e.context;if(this._material!==this.material||!l(this._overlayCommand)){this._material=this.material,l(this._overlayCommand)&&this._overlayCommand.shaderProgram.destroy();let o=new ze({sources:[this._material.shaderSource,jF]});this._overlayCommand=i.createViewportQuadCommand(o,{renderState:this._rs,uniformMap:this._material._uniforms,owner:this}),this._overlayCommand.pass=Ee.OVERLAY}this._material.update(i),this._overlayCommand.renderState=this._rs,this._overlayCommand.uniformMap=this._material._uniforms,e.commandList.push(this._overlayCommand)}};m5.prototype.isDestroyed=function(){return!1};m5.prototype.destroy=function(){return l(this._overlayCommand)&&(this._overlayCommand.shaderProgram=this._overlayCommand.shaderProgram&&this._overlayCommand.shaderProgram.destroy()),ue(this)};var x$=m5;function b$(){de.throwInstantiationError()}Object.defineProperties(b$.prototype,{globalTransform:{get:de.throwInstantiationError},shapeTransform:{get:de.throwInstantiationError},shape:{get:de.throwInstantiationError},minBounds:{get:de.throwInstantiationError},maxBounds:{get:de.throwInstantiationError},dimensions:{get:de.throwInstantiationError},paddingBefore:{get:de.throwInstantiationError},paddingAfter:{get:de.throwInstantiationError},names:{get:de.throwInstantiationError},types:{get:de.throwInstantiationError},componentTypes:{get:de.throwInstantiationError},minimumValues:{get:de.throwInstantiationError},maximumValues:{get:de.throwInstantiationError},maximumTileCount:{get:de.throwInstantiationError},keyframeCount:{get:de.throwInstantiationError},timeIntervalCollection:{get:de.throwInstantiationError}});b$.prototype.requestData=de.throwInstantiationError;var T$=b$;function AA(){de.throwInstantiationError()}Object.defineProperties(AA.prototype,{orientedBoundingBox:{get:de.throwInstantiationError},boundingSphere:{get:de.throwInstantiationError},boundTransform:{get:de.throwInstantiationError},shapeTransform:{get:de.throwInstantiationError},shaderUniforms:{get:de.throwInstantiationError},shaderDefines:{get:de.throwInstantiationError},shaderMaximumIntersectionsLength:{get:de.throwInstantiationError}});AA.prototype.update=de.throwInstantiationError;AA.prototype.computeOrientedBoundingBoxForTile=de.throwInstantiationError;AA.prototype.computeOrientedBoundingBoxForSample=de.throwInstantiationError;AA.DefaultMinBounds=de.throwInstantiationError;AA.DefaultMaxBounds=de.throwInstantiationError;var A$=AA;async function C$(e,t){let n=t.terrainProvider,i=t.mapProjection,o=i.ellipsoid,r,s=t.camera.getRectangleCameraCoordinates(e);if(t.mode===ne.SCENE3D?r=o.cartesianToCartographic(s):r=i.unproject(s),!l(n))return r;let a=n.availability;if(!l(a)||t.mode===ne.SCENE2D)return r;let c=[se.center(e),se.southeast(e),se.southwest(e),se.northeast(e),se.northwest(e)],u=await C$._sampleTerrainMostDetailed(n,c),f=!1,d=u.reduce(function(g,m){return l(m.height)?(f=!0,Math.max(m.height,g)):g},-Number.MAX_VALUE),p=r;return f&&(p.height+=d),p}C$._sampleTerrainMostDetailed=FT;var CA=C$;var WAt=new H,jAt=new H,qAt=new H,YAt=new H,BAe=new oe,R3=new Uint8Array(4);function kAe(e,t,n,i){let o=t.height===n.height?0:(e-t.height)/(n.height-t.height);return H.lerp(t.color,n.color,o,i)}function p5(e,t){return{height:e,color:H.clone(t)}}function VAe(e){return e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?t.height===i[n-1].height:!0,a=r?t.height===i[n+1].height:!0;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?H.equals(t.color,i[n-1].color):!1,a=r?H.equals(t.color,i[n+1].color):!1;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=o?H.equals(t.color,i[n-1].color):!1,s=o?t.height===i[n-1].height:!0;return!r||!s}),e}function XAt(e){let t,n,i=[],o=e.length;for(t=0;t<o;t++){let r=e[t],s=r.entries,a=s.length,c=[];for(n=0;n<a;n++){let g=s[n],m=R.clamp(g.height,su._minimumHeight,su._maximumHeight),x=H.clone(g.color,WAt);x.red*=x.alpha,x.green*=x.alpha,x.blue*=x.alpha,c.push(p5(m,x))}let u=!0,f=!0;for(n=0;n<a-1;n++){let g=c[n+0],m=c[n+1];u=u&&g.height<=m.height,f=f&&g.height>=m.height}f?c=c.reverse():u||J_(c,function(g,m){return R.sign(g.height-m.height)});let d=y(r.extendDownwards,!1),p=y(r.extendUpwards,!1);c.length===1&&!d&&!p&&(d=!0,p=!0),d&&c.splice(0,0,p5(su._minimumHeight,c[0].color)),p&&c.splice(c.length,0,p5(su._maximumHeight,c[c.length-1].color)),c=VAe(c),i.push(c)}return i}function KAt(e){let t=XAt(e),n=[],i=[],o;function r(u,f){n.push(p5(u,f))}function s(u,f,d){let p=H.multiplyByScalar(d,1-f.alpha,YAt);p=H.add(p,f,p),r(u,p)}let a=t.length;for(o=0;o<a;o++){let u=t[o],f=0,d=0;i=n,n=[];let p=u.length,g=i.length;for(;f<p||d<g;){let m=f<p?u[f]:void 0,x=f>0?u[f-1]:void 0,b=f<p-1?u[f+1]:void 0,T=d<g?i[d]:void 0,C=d>0?i[d-1]:void 0,A=d<g-1?i[d+1]:void 0;if(l(m)&&l(T)&&m.height===T.height){let E=l(A)&&T.height===A.height,v=!l(C),D=!l(A),O=l(b)&&m.height===b.height,I=!l(x),L=!l(b);E?O?(s(m.height,m.color,T.color),s(m.height,b.color,A.color)):I?(r(m.height,T.color),s(m.height,m.color,A.color)):L?(s(m.height,m.color,T.color),r(m.height,A.color)):(s(m.height,m.color,T.color),s(m.height,m.color,A.color)):v?O?(r(m.height,m.color),s(m.height,b.color,T.color)):L?(r(m.height,m.color),r(m.height,T.color)):(I||r(m.height,m.color),s(m.height,m.color,T.color)):D?O?(s(m.height,m.color,T.color),r(m.height,b.color)):I?(r(m.height,T.color),r(m.height,m.color)):L?s(m.height,m.color,T.color):(s(m.height,m.color,T.color),r(m.height,m.color)):O?(s(m.height,m.color,T.color),s(m.height,b.color,T.color)):I?(r(m.height,T.color),s(m.height,m.color,T.color)):L?(s(m.height,m.color,T.color),r(m.height,T.color)):s(m.height,m.color,T.color),f+=O?2:1,d+=E?2:1}else if(l(m)&&l(T)&&l(C)&&m.height<T.height){let E=kAe(m.height,C,T,qAt);l(x)?l(b)?s(m.height,m.color,E):(s(m.height,m.color,E),r(m.height,E)):(r(m.height,E),s(m.height,m.color,E)),f++}else if(l(T)&&l(m)&&l(x)&&T.height<m.height){let E=kAe(T.height,x,m,jAt);l(C)?l(A)?s(T.height,E,T.color):(s(T.height,E,T.color),r(T.height,E)):(r(T.height,E),s(T.height,E,T.color)),d++}else l(m)&&(!l(T)||m.height<T.height)?(l(T)&&!l(C)&&!l(b)?(r(m.height,m.color),r(m.height,su._emptyColor),r(T.height,su._emptyColor)):(!l(T)&&l(C)&&!l(x)&&(r(C.height,su._emptyColor),r(m.height,su._emptyColor)),r(m.height,m.color)),f++):l(T)&&(!l(m)||T.height<m.height)&&(r(T.height,T.color),d++)}}return VAe(n)}function su(e){let{scene:t,layers:n}=y(e,y.EMPTY_OBJECT),{context:i}=t,o=KAt(n),r=o.length,s,a,c;if(!su._useFloatTexture(i)){a=We.UNSIGNED_BYTE,c=nt.RGBA,s=new Uint8Array(r*4);for(let g=0;g<r;g++)oe.packFloat(o[g].height,BAe),oe.pack(BAe,s,g*4)}else{a=We.FLOAT,c=i.webgl2?nt.RED:nt.LUMINANCE,s=new Float32Array(r);for(let g=0;g<r;g++)s[g]=o[g].height}let f=Dt.create({context:i,pixelFormat:c,pixelDatatype:a,source:{arrayBufferView:s,width:r,height:1},sampler:new on({wrapS:An.CLAMP_TO_EDGE,wrapT:An.CLAMP_TO_EDGE,minificationFilter:nn.NEAREST,magnificationFilter:li.NEAREST})}),d=new Uint8Array(r*4);for(let g=0;g<r;g++)o[g].color.toBytes(R3),d[g*4+0]=R3[0],d[g*4+1]=R3[1],d[g*4+2]=R3[2],d[g*4+3]=R3[3];let p=Dt.create({context:i,pixelFormat:nt.RGBA,pixelDatatype:We.UNSIGNED_BYTE,source:{arrayBufferView:d,width:r,height:1},sampler:new on({wrapS:An.CLAMP_TO_EDGE,wrapT:An.CLAMP_TO_EDGE,minificationFilter:nn.LINEAR,magnificationFilter:li.LINEAR})});return Vi.fromType("ElevationBand",{heights:f,colors:p})}su._useFloatTexture=function(e){return e.floatingPointTexture};su._maximumHeight=5906376425472;su._minimumHeight=-5906376425472;su._emptyColor=new H(0,0,0,0);var E$=su;async function ZAt(e,t){if(t=y(t,{}),t.cacheBytes=y(t.cacheBytes,1536*1024*1024),t.maximumCacheOverflowBytes=y(t.maximumCacheOverflowBytes,1024*1024*1024),t.enableCollision=y(t.enableCollision,!0),e=y(e,OT.defaultApiKey),!l(e))return $At(t);let n,i=OT.getDefaultCredit();l(i)&&(n=[i]);let o=new De({url:`${OT.mapTilesApiEndpoint}3dtiles/root.json`,queryParameters:{key:e},credits:n});return oa.fromUrl(o,t)}var UAe={};async function $At(e){let i=UAe[2275207];l(i)||(i=_u.fromAssetId(2275207),UAe[2275207]=i);let o=await i;return oa.fromUrl(o,e)}var S$=ZAt;async function QAt(e){let t=await oa.fromIonAssetId(96188,e);e=y(e,y.EMPTY_OBJECT);let n=e.style;if(!l(n)){let i=y(e.defaultColor,H.WHITE).toCssColorString();n=new hA({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var v$=QAt;function JAt(e){e=y(e,y.EMPTY_OBJECT);let t=[],n=e.geometry;(!l(n.attributes)||!l(n.primitiveType))&&(n=n.constructor.createGeometry(n));let i=n.attributes,o=F.clone(y(e.modelMatrix,F.IDENTITY)),r=y(e.length,1e4);if(l(i.normal)&&t.push(new xt({geometry:Nn.createLineSegmentsForVectors(n,"normal",r),attributes:{color:new zt(1,0,0,1)},modelMatrix:o})),l(i.tangent)&&t.push(new xt({geometry:Nn.createLineSegmentsForVectors(n,"tangent",r),attributes:{color:new zt(0,1,0,1)},modelMatrix:o})),l(i.bitangent)&&t.push(new xt({geometry:Nn.createLineSegmentsForVectors(n,"bitangent",r),attributes:{color:new zt(0,0,1,1)},modelMatrix:o})),t.length>0)return new vn({asynchronous:!1,geometryInstances:t,appearance:new cn({flat:!0,translucent:!1})})}var w$=JAt;var D$=`uniform sampler2D u_depthTexture; in vec2 v_textureCoordinates; void main() { float z_window = czm_unpackDepth(texture(u_depthTexture, v_textureCoordinates)); z_window = czm_reverseLogDepth(z_window); float n_range = czm_depthRange.near; float f_range = czm_depthRange.far; float z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range); float scale = pow(z_ndc * 0.5 + 0.5, 8.0); out_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0); } `;function eCt(e){e=y(e,y.EMPTY_OBJECT),this.typedArray=e.typedArray,this.width=e.width,this.height=e.height,this.pixelFormat=y(e.pixelFormat,nt.RGBA),this.pixelDatatype=y(e.pixelDatatype,We.UNSIGNED_BYTE);let t=e.url;typeof t=="string"&&(t=De.createIfNeeded(t)),this.resource=t;let i=y(e.repeat,!0)?An.REPEAT:An.CLAMP_TO_EDGE;this.sampler=new on({wrapS:i,wrapT:i,minificationFilter:e.minificationFilter,magnificationFilter:e.magnificationFilter,maximumAnisotropy:e.maximumAnisotropy})}var P$=eCt;var tCt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",MAT2:"mat2",MAT3:"mat2",MAT4:"mat4"},I$=Object.freeze(tCt);function nCt(e){async function t({data:i}){let o=[],r={id:i.id,result:void 0,error:void 0};self.CESIUM_BASE_URL=i.baseUrl;try{let s=await e(i.parameters,o);r.result=s}catch(s){s instanceof Error?r.error={name:s.name,message:s.message,stack:s.stack}:r.error=s}i.canTransferArrayBuffer||(o.length=0);try{postMessage(r,o)}catch(s){r.result=void 0,r.error=`postMessage failed with error: ${jm(s)} with responseMessage: ${JSON.stringify(r)}`,postMessage(r)}}function n(i){postMessage({id:i.data?.id,error:`postMessage failed with error: ${JSON.stringify(i)}`})}return self.onmessage=t,self.onmessageerror=n,self}var R$=nCt;globalThis.CESIUM_VERSION="1.118.1";var O3;typeof ko<"u"&&(O3=ko);(function(){/*! * Knockout JavaScript library v3.5.1 * (c) The Knockout.js team - http://knockoutjs.com/ * License: MIT (http://www.opensource.org/licenses/mit-license.php) */(function(){(function(e){var t=this||(0,eval)("this"),n=t.document,i=t.navigator,o=t.jQuery,r=t.JSON;o||typeof jQuery>"u"||(o=jQuery),function(s){s(t.ko={})}(function(s,a){function c(_,S){return _===null||typeof _ in x?_===S:!1}function u(_,S){var w;return function(){w||(w=m.a.setTimeout(function(){w=e,_()},S))}}function f(_,S){var w;return function(){clearTimeout(w),w=m.a.setTimeout(_,S)}}function d(_,S){S&&S!=="change"?S==="beforeChange"?this.pc(_):this.gb(_,S):this.qc(_)}function p(_,S){S!==null&&S.s&&S.s()}function g(_,S){var w=this.qd,P=w[E];P.ra||(this.Qb&&this.mb[S]?(w.uc(S,_,this.mb[S]),this.mb[S]=null,--this.Qb):P.I[S]||w.uc(S,_,P.J?{da:_}:w.$c(_)),_.Ja&&_.gd())}var m=typeof s<"u"?s:{};m.b=function(_,S){for(var w=_.split("."),P=m,M=0;M<w.length-1;M++)P=P[w[M]];P[w[w.length-1]]=S},m.L=function(_,S,w){_[S]=w},m.version="3.5.1",m.b("version",m.version),m.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1},m.a=function(){function _(j,K){for(var Z in j)M.call(j,Z)&&K(Z,j[Z])}function S(j,K){if(K)for(var Z in K)M.call(K,Z)&&(j[Z]=K[Z]);return j}function w(j,K){return j.__proto__=K,j}function P(j,K,Z,he){var be=j[K].match(W)||[];m.a.D(Z.match(W),function(re){m.a.Na(be,re,he)}),j[K]=be.join(" ")}var M=Object.prototype.hasOwnProperty,B={__proto__:[]}instanceof Array,U=typeof Symbol=="function",V={},G={};V[i&&/Firefox\/2/i.test(i.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"],V.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),_(V,function(j,K){if(K.length)for(var Z=0,he=K.length;Z<he;Z++)G[K[Z]]=j});var k={propertychange:!0},Y=n&&function(){for(var j=3,K=n.createElement("div"),Z=K.getElementsByTagName("i");K.innerHTML="<!--[if gt IE "+ ++j+"]><i></i><![endif]-->",Z[0];);return 4<j?j:e}(),W=/\S+/g,Q;return{Jc:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],D:function(j,K,Z){for(var he=0,be=j.length;he<be;he++)K.call(Z,j[he],he,j)},A:typeof Array.prototype.indexOf=="function"?function(j,K){return Array.prototype.indexOf.call(j,K)}:function(j,K){for(var Z=0,he=j.length;Z<he;Z++)if(j[Z]===K)return Z;return-1},Lb:function(j,K,Z){for(var he=0,be=j.length;he<be;he++)if(K.call(Z,j[he],he,j))return j[he];return e},Pa:function(j,K){var Z=m.a.A(j,K);0<Z?j.splice(Z,1):Z===0&&j.shift()},wc:function(j){var K=[];return j&&m.a.D(j,function(Z){0>m.a.A(K,Z)&&K.push(Z)}),K},Mb:function(j,K,Z){var he=[];if(j)for(var be=0,re=j.length;be<re;be++)he.push(K.call(Z,j[be],be));return he},jb:function(j,K,Z){var he=[];if(j)for(var be=0,re=j.length;be<re;be++)K.call(Z,j[be],be)&&he.push(j[be]);return he},Nb:function(j,K){if(K instanceof Array)j.push.apply(j,K);else for(var Z=0,he=K.length;Z<he;Z++)j.push(K[Z]);return j},Na:function(j,K,Z){var he=m.a.A(m.a.bc(j),K);0>he?Z&&j.push(K):Z||j.splice(he,1)},Ba:B,extend:S,setPrototypeOf:w,Ab:B?w:S,P:_,Ga:function(j,K,Z){if(!j)return j;var he={},be;for(be in j)M.call(j,be)&&(he[be]=K.call(Z,j[be],be,j));return he},Tb:function(j){for(;j.firstChild;)m.removeNode(j.firstChild)},Yb:function(j){j=m.a.la(j);for(var K=(j[0]&&j[0].ownerDocument||n).createElement("div"),Z=0,he=j.length;Z<he;Z++)K.appendChild(m.oa(j[Z]));return K},Ca:function(j,K){for(var Z=0,he=j.length,be=[];Z<he;Z++){var re=j[Z].cloneNode(!0);be.push(K?m.oa(re):re)}return be},va:function(j,K){if(m.a.Tb(j),K)for(var Z=0,he=K.length;Z<he;Z++)j.appendChild(K[Z])},Xc:function(j,K){var Z=j.nodeType?[j]:j;if(0<Z.length){for(var he=Z[0],be=he.parentNode,re=0,_e=K.length;re<_e;re++)be.insertBefore(K[re],he);for(re=0,_e=Z.length;re<_e;re++)m.removeNode(Z[re])}},Ua:function(j,K){if(j.length){for(K=K.nodeType===8&&K.parentNode||K;j.length&&j[0].parentNode!==K;)j.splice(0,1);for(;1<j.length&&j[j.length-1].parentNode!==K;)j.length--;if(1<j.length){var Z=j[0],he=j[j.length-1];for(j.length=0;Z!==he;)j.push(Z),Z=Z.nextSibling;j.push(he)}}return j},Zc:function(j,K){7>Y?j.setAttribute("selected",K):j.selected=K},Db:function(j){return j===null||j===e?"":j.trim?j.trim():j.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Ud:function(j,K){return j=j||"",K.length>j.length?!1:j.substring(0,K.length)===K},vd:function(j,K){if(j===K)return!0;if(j.nodeType===11)return!1;if(K.contains)return K.contains(j.nodeType!==1?j.parentNode:j);if(K.compareDocumentPosition)return(K.compareDocumentPosition(j)&16)==16;for(;j&&j!=K;)j=j.parentNode;return!!j},Sb:function(j){return m.a.vd(j,j.ownerDocument.documentElement)},kd:function(j){return!!m.a.Lb(j,m.a.Sb)},R:function(j){return j&&j.tagName&&j.tagName.toLowerCase()},Ac:function(j){return m.onError?function(){try{return j.apply(this,arguments)}catch(K){throw m.onError&&m.onError(K),K}}:j},setTimeout:function(j,K){return setTimeout(m.a.Ac(j),K)},Gc:function(j){setTimeout(function(){throw m.onError&&m.onError(j),j},0)},B:function(j,K,Z){var he=m.a.Ac(Z);if(Z=k[K],m.options.useOnlyNativeEvents||Z||!o)if(Z||typeof j.addEventListener!="function")if(typeof j.attachEvent<"u"){var be=function(_e){he.call(j,_e)},re="on"+K;j.attachEvent(re,be),m.a.K.za(j,function(){j.detachEvent(re,be)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else j.addEventListener(K,he,!1);else Q||(Q=typeof o(j).on=="function"?"on":"bind"),o(j)[Q](K,he)},Fb:function(j,K){if(!j||!j.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var Z;if(m.a.R(j)==="input"&&j.type&&K.toLowerCase()=="click"?(Z=j.type,Z=Z=="checkbox"||Z=="radio"):Z=!1,m.options.useOnlyNativeEvents||!o||Z)if(typeof n.createEvent=="function")if(typeof j.dispatchEvent=="function")Z=n.createEvent(G[K]||"HTMLEvents"),Z.initEvent(K,!0,!0,t,0,0,0,0,0,!1,!1,!1,!1,0,j),j.dispatchEvent(Z);else throw Error("The supplied element doesn't support dispatchEvent");else if(Z&&j.click)j.click();else if(typeof j.fireEvent<"u")j.fireEvent("on"+K);else throw Error("Browser doesn't support triggering events");else o(j).trigger(K)},f:function(j){return m.O(j)?j():j},bc:function(j){return m.O(j)?j.v():j},Eb:function(j,K,Z){var he;K&&(typeof j.classList=="object"?(he=j.classList[Z?"add":"remove"],m.a.D(K.match(W),function(be){he.call(j.classList,be)})):typeof j.className.baseVal=="string"?P(j.className,"baseVal",K,Z):P(j,"className",K,Z))},Bb:function(j,K){var Z=m.a.f(K);(Z===null||Z===e)&&(Z="");var he=m.h.firstChild(j);!he||he.nodeType!=3||m.h.nextSibling(he)?m.h.va(j,[j.ownerDocument.createTextNode(Z)]):he.data=Z,m.a.Ad(j)},Yc:function(j,K){if(j.name=K,7>=Y)try{var Z=j.name.replace(/[&<>'"]/g,function(he){return"&#"+he.charCodeAt(0)+";"});j.mergeAttributes(n.createElement("<input name='"+Z+"'/>"),!1)}catch{}},Ad:function(j){9<=Y&&(j=j.nodeType==1?j:j.parentNode,j.style&&(j.style.zoom=j.style.zoom))},wd:function(j){if(Y){var K=j.style.width;j.style.width=0,j.style.width=K}},Pd:function(j,K){j=m.a.f(j),K=m.a.f(K);for(var Z=[],he=j;he<=K;he++)Z.push(he);return Z},la:function(j){for(var K=[],Z=0,he=j.length;Z<he;Z++)K.push(j[Z]);return K},Da:function(j){return U?Symbol(j):j},Zd:Y===6,$d:Y===7,W:Y,Lc:function(j,K){for(var Z=m.a.la(j.getElementsByTagName("input")).concat(m.a.la(j.getElementsByTagName("textarea"))),he=typeof K=="string"?function(_e){return _e.name===K}:function(_e){return K.test(_e.name)},be=[],re=Z.length-1;0<=re;re--)he(Z[re])&&be.push(Z[re]);return be},Nd:function(j){return typeof j=="string"&&(j=m.a.Db(j))?r&&r.parse?r.parse(j):new Function("return "+j)():null},hc:function(j,K,Z){if(!r||!r.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return r.stringify(m.a.f(j),K,Z)},Od:function(j,K,Z){Z=Z||{};var he=Z.params||{},be=Z.includeFields||this.Jc,re=j;if(typeof j=="object"&&m.a.R(j)==="form")for(var re=j.action,_e=be.length-1;0<=_e;_e--)for(var xe=m.a.Lc(j,be[_e]),Ce=xe.length-1;0<=Ce;Ce--)he[xe[Ce].name]=xe[Ce].value;K=m.a.f(K);var we=n.createElement("form");we.style.display="none",we.action=re,we.method="post";for(var Oe in K)j=n.createElement("input"),j.type="hidden",j.name=Oe,j.value=m.a.hc(m.a.f(K[Oe])),we.appendChild(j);_(he,function(ke,At){var Bt=n.createElement("input");Bt.type="hidden",Bt.name=ke,Bt.value=At,we.appendChild(Bt)}),n.body.appendChild(we),Z.submitter?Z.submitter(we):we.submit(),setTimeout(function(){we.parentNode.removeChild(we)},0)}}}(),m.b("utils",m.a),m.b("utils.arrayForEach",m.a.D),m.b("utils.arrayFirst",m.a.Lb),m.b("utils.arrayFilter",m.a.jb),m.b("utils.arrayGetDistinctValues",m.a.wc),m.b("utils.arrayIndexOf",m.a.A),m.b("utils.arrayMap",m.a.Mb),m.b("utils.arrayPushAll",m.a.Nb),m.b("utils.arrayRemoveItem",m.a.Pa),m.b("utils.cloneNodes",m.a.Ca),m.b("utils.createSymbolOrString",m.a.Da),m.b("utils.extend",m.a.extend),m.b("utils.fieldsIncludedWithJsonPost",m.a.Jc),m.b("utils.getFormFields",m.a.Lc),m.b("utils.objectMap",m.a.Ga),m.b("utils.peekObservable",m.a.bc),m.b("utils.postJson",m.a.Od),m.b("utils.parseJson",m.a.Nd),m.b("utils.registerEventHandler",m.a.B),m.b("utils.stringifyJson",m.a.hc),m.b("utils.range",m.a.Pd),m.b("utils.toggleDomNodeCssClass",m.a.Eb),m.b("utils.triggerEvent",m.a.Fb),m.b("utils.unwrapObservable",m.a.f),m.b("utils.objectForEach",m.a.P),m.b("utils.addOrRemoveItem",m.a.Na),m.b("utils.setTextContent",m.a.Bb),m.b("unwrap",m.a.f),Function.prototype.bind||(Function.prototype.bind=function(_){var S=this;if(arguments.length===1)return function(){return S.apply(_,arguments)};var w=Array.prototype.slice.call(arguments,1);return function(){var P=w.slice(0);return P.push.apply(P,arguments),S.apply(_,P)}}),m.a.g=new function(){var _=0,S="__ko__"+new Date().getTime(),w={},P,M;return m.a.W?(P=function(B,U){var V=B[S];if(!V||V==="null"||!w[V]){if(!U)return e;V=B[S]="ko"+_++,w[V]={}}return w[V]},M=function(B){var U=B[S];return U?(delete w[U],B[S]=null,!0):!1}):(P=function(B,U){var V=B[S];return!V&&U&&(V=B[S]={}),V},M=function(B){return B[S]?(delete B[S],!0):!1}),{get:function(B,U){var V=P(B,!1);return V&&V[U]},set:function(B,U,V){(B=P(B,V!==e))&&(B[U]=V)},Ub:function(B,U,V){return B=P(B,!0),B[U]||(B[U]=V)},clear:M,Z:function(){return _+++S}}},m.b("utils.domData",m.a.g),m.b("utils.domData.clear",m.a.g.clear),m.a.K=new function(){function _(U,V){var G=m.a.g.get(U,P);return G===e&&V&&(G=[],m.a.g.set(U,P,G)),G}function S(U){var V=_(U,!1);if(V)for(var V=V.slice(0),G=0;G<V.length;G++)V[G](U);m.a.g.clear(U),m.a.K.cleanExternalData(U),B[U.nodeType]&&w(U.childNodes,!0)}function w(U,V){for(var G=[],k,Y=0;Y<U.length;Y++)if((!V||U[Y].nodeType===8)&&(S(G[G.length]=k=U[Y]),U[Y]!==k))for(;Y--&&m.a.A(G,U[Y])==-1;);}var P=m.a.g.Z(),M={1:!0,8:!0,9:!0},B={1:!0,9:!0};return{za:function(U,V){if(typeof V!="function")throw Error("Callback must be a function");_(U,!0).push(V)},yb:function(U,V){var G=_(U,!1);G&&(m.a.Pa(G,V),G.length==0&&m.a.g.set(U,P,e))},oa:function(U){return m.u.G(function(){M[U.nodeType]&&(S(U),B[U.nodeType]&&w(U.getElementsByTagName("*")))}),U},removeNode:function(U){m.oa(U),U.parentNode&&U.parentNode.removeChild(U)},cleanExternalData:function(U){o&&typeof o.cleanData=="function"&&o.cleanData([U])}}},m.oa=m.a.K.oa,m.removeNode=m.a.K.removeNode,m.b("cleanNode",m.oa),m.b("removeNode",m.removeNode),m.b("utils.domNodeDisposal",m.a.K),m.b("utils.domNodeDisposal.addDisposeCallback",m.a.K.za),m.b("utils.domNodeDisposal.removeDisposeCallback",m.a.K.yb),function(){var _=[0,"",""],S=[1,"<table>","</table>"],w=[3,"<table><tbody><tr>","</tr></tbody></table>"],P=[1,"<select multiple='multiple'>","</select>"],M={thead:S,tbody:S,tfoot:S,tr:[2,"<table><tbody>","</tbody></table>"],td:w,th:w,option:P,optgroup:P},B=8>=m.a.W;m.a.ua=function(U,V){var G;if(o){if(o.parseHTML)G=o.parseHTML(U,V)||[];else if((G=o.clean([U],V))&&G[0]){for(var k=G[0];k.parentNode&&k.parentNode.nodeType!==11;)k=k.parentNode;k.parentNode&&k.parentNode.removeChild(k)}}else{(G=V)||(G=n);var k=G.parentWindow||G.defaultView||t,Y=m.a.Db(U).toLowerCase(),W=G.createElement("div"),Q;for(Q=(Y=Y.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&M[Y[1]]||_,Y=Q[0],Q="ignored<div>"+Q[1]+U+Q[2]+"</div>",typeof k.innerShiv=="function"?W.appendChild(k.innerShiv(Q)):(B&&G.body.appendChild(W),W.innerHTML=Q,B&&W.parentNode.removeChild(W));Y--;)W=W.lastChild;G=m.a.la(W.lastChild.childNodes)}return G},m.a.Md=function(U,V){var G=m.a.ua(U,V);return G.length&&G[0].parentElement||m.a.Yb(G)},m.a.fc=function(U,V){if(m.a.Tb(U),V=m.a.f(V),V!==null&&V!==e)if(typeof V!="string"&&(V=V.toString()),o)o(U).html(V);else for(var G=m.a.ua(V,U.ownerDocument),k=0;k<G.length;k++)U.appendChild(G[k])}}(),m.b("utils.parseHtmlFragment",m.a.ua),m.b("utils.setHtml",m.a.fc),m.aa=function(){function _(w,P){if(w){if(w.nodeType==8){var M=m.aa.Uc(w.nodeValue);M!=null&&P.push({ud:w,Kd:M})}else if(w.nodeType==1)for(var M=0,B=w.childNodes,U=B.length;M<U;M++)_(B[M],P)}}var S={};return{Xb:function(w){if(typeof w!="function")throw Error("You can only pass a function to ko.memoization.memoize()");var P=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);return S[P]=w,"<!--[ko_memo:"+P+"]-->"},bd:function(w,P){var M=S[w];if(M===e)throw Error("Couldn't find any memo with ID "+w+". Perhaps it's already been unmemoized.");try{return M.apply(null,P||[]),!0}finally{delete S[w]}},cd:function(w,P){var M=[];_(w,M);for(var B=0,U=M.length;B<U;B++){var V=M[B].ud,G=[V];P&&m.a.Nb(G,P),m.aa.bd(M[B].Kd,G),V.nodeValue="",V.parentNode&&V.parentNode.removeChild(V)}},Uc:function(w){return(w=w.match(/^\[ko_memo\:(.*?)\]$/))?w[1]:null}}}(),m.b("memoization",m.aa),m.b("memoization.memoize",m.aa.Xb),m.b("memoization.unmemoize",m.aa.bd),m.b("memoization.parseMemoText",m.aa.Uc),m.b("memoization.unmemoizeDomNodeAndDescendants",m.aa.cd),m.na=function(){function _(){if(M){for(var V=M,G=0,k;U<M;)if(k=P[U++]){if(U>V){if(5e3<=++G){U=M,m.a.Gc(Error("'Too much recursion' after processing "+G+" task groups."));break}V=M}try{k()}catch(Y){m.a.Gc(Y)}}}}function S(){_(),U=M=P.length=0}var w,P=[],M=0,B=1,U=0;return t.MutationObserver?w=function(V){var G=n.createElement("div");return new MutationObserver(V).observe(G,{attributes:!0}),function(){G.classList.toggle("foo")}}(S):w=n&&"onreadystatechange"in n.createElement("script")?function(V){var G=n.createElement("script");G.onreadystatechange=function(){G.onreadystatechange=null,n.documentElement.removeChild(G),G=null,V()},n.documentElement.appendChild(G)}:function(V){setTimeout(V,0)},{scheduler:w,zb:function(V){return M||m.na.scheduler(S),P[M++]=V,B++},cancel:function(V){V=V-(B-M),V>=U&&V<M&&(P[V]=null)},resetForTesting:function(){var V=M-U;return U=M=P.length=0,V},Sd:_}}(),m.b("tasks",m.na),m.b("tasks.schedule",m.na.zb),m.b("tasks.runEarly",m.na.Sd),m.Ta={throttle:function(_,S){_.throttleEvaluation=S;var w=null;return m.$({read:_,write:function(P){clearTimeout(w),w=m.a.setTimeout(function(){_(P)},S)}})},rateLimit:function(_,S){var w,P,M;typeof S=="number"?w=S:(w=S.timeout,P=S.method),_.Hb=!1,M=typeof P=="function"?P:P=="notifyWhenChangesStop"?f:u,_.ub(function(B){return M(B,w,S)})},deferred:function(_,S){if(S!==!0)throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");_.Hb||(_.Hb=!0,_.ub(function(w){var P,M=!1;return function(){if(!M){m.na.cancel(P),P=m.na.zb(w);try{M=!0,_.notifySubscribers(e,"dirty")}finally{M=!1}}}}))},notify:function(_,S){_.equalityComparer=S=="always"?null:c}};var x={undefined:1,boolean:1,number:1,string:1};m.b("extenders",m.Ta),m.ic=function(_,S,w){this.da=_,this.lc=S,this.mc=w,this.Ib=!1,this.fb=this.Jb=null,m.L(this,"dispose",this.s),m.L(this,"disposeWhenNodeIsRemoved",this.l)},m.ic.prototype.s=function(){this.Ib||(this.fb&&m.a.K.yb(this.Jb,this.fb),this.Ib=!0,this.mc(),this.da=this.lc=this.mc=this.Jb=this.fb=null)},m.ic.prototype.l=function(_){this.Jb=_,m.a.K.za(_,this.fb=this.s.bind(this))},m.T=function(){m.a.Ab(this,b),b.qb(this)};var b={qb:function(_){_.U={change:[]},_.sc=1},subscribe:function(_,S,w){var P=this;w=w||"change";var M=new m.ic(P,S?_.bind(S):_,function(){m.a.Pa(P.U[w],M),P.hb&&P.hb(w)});return P.Qa&&P.Qa(w),P.U[w]||(P.U[w]=[]),P.U[w].push(M),M},notifySubscribers:function(_,S){if(S=S||"change",S==="change"&&this.Gb(),this.Wa(S)){var w=S==="change"&&this.ed||this.U[S].slice(0);try{m.u.xc();for(var P=0,M;M=w[P];++P)M.Ib||M.lc(_)}finally{m.u.end()}}},ob:function(){return this.sc},Dd:function(_){return this.ob()!==_},Gb:function(){++this.sc},ub:function(_){var S=this,w=m.O(S),P,M,B,U,V;S.gb||(S.gb=S.notifySubscribers,S.notifySubscribers=d);var G=_(function(){S.Ja=!1,w&&U===S&&(U=S.nc?S.nc():S());var k=M||V&&S.sb(B,U);V=M=P=!1,k&&S.gb(B=U)});S.qc=function(k,Y){Y&&S.Ja||(V=!Y),S.ed=S.U.change.slice(0),S.Ja=P=!0,U=k,G()},S.pc=function(k){P||(B=k,S.gb(k,"beforeChange"))},S.rc=function(){V=!0},S.gd=function(){S.sb(B,S.v(!0))&&(M=!0)}},Wa:function(_){return this.U[_]&&this.U[_].length},Bd:function(_){if(_)return this.U[_]&&this.U[_].length||0;var S=0;return m.a.P(this.U,function(w,P){w!=="dirty"&&(S+=P.length)}),S},sb:function(_,S){return!this.equalityComparer||!this.equalityComparer(_,S)},toString:function(){return"[object Object]"},extend:function(_){var S=this;return _&&m.a.P(_,function(w,P){var M=m.Ta[w];typeof M=="function"&&(S=M(S,P)||S)}),S}};m.L(b,"init",b.qb),m.L(b,"subscribe",b.subscribe),m.L(b,"extend",b.extend),m.L(b,"getSubscriptionsCount",b.Bd),m.a.Ba&&m.a.setPrototypeOf(b,Function.prototype),m.T.fn=b,m.Qc=function(_){return _!=null&&typeof _.subscribe=="function"&&typeof _.notifySubscribers=="function"},m.b("subscribable",m.T),m.b("isSubscribable",m.Qc),m.S=m.u=function(){function _(B){w.push(P),P=B}function S(){P=w.pop()}var w=[],P,M=0;return{xc:_,end:S,cc:function(B){if(P){if(!m.Qc(B))throw Error("Only subscribable things can act as dependencies");P.od.call(P.pd,B,B.fd||(B.fd=++M))}},G:function(B,U,V){try{return _(),B.apply(U,V||[])}finally{S()}},qa:function(){if(P)return P.o.qa()},Va:function(){if(P)return P.o.Va()},Ya:function(){if(P)return P.Ya},o:function(){if(P)return P.o}}}(),m.b("computedContext",m.S),m.b("computedContext.getDependenciesCount",m.S.qa),m.b("computedContext.getDependencies",m.S.Va),m.b("computedContext.isInitial",m.S.Ya),m.b("computedContext.registerDependency",m.S.cc),m.b("ignoreDependencies",m.Yd=m.u.G);var T=m.a.Da("_latestValue");m.ta=function(_){function S(){return 0<arguments.length?(S.sb(S[T],arguments[0])&&(S.ya(),S[T]=arguments[0],S.xa()),this):(m.u.cc(S),S[T])}return S[T]=_,m.a.Ba||m.a.extend(S,m.T.fn),m.T.fn.qb(S),m.a.Ab(S,C),m.options.deferUpdates&&m.Ta.deferred(S,!0),S};var C={equalityComparer:c,v:function(){return this[T]},xa:function(){this.notifySubscribers(this[T],"spectate"),this.notifySubscribers(this[T])},ya:function(){this.notifySubscribers(this[T],"beforeChange")}};m.a.Ba&&m.a.setPrototypeOf(C,m.T.fn);var A=m.ta.Ma="__ko_proto__";C[A]=m.ta,m.O=function(_){if((_=typeof _=="function"&&_[A])&&_!==C[A]&&_!==m.o.fn[A])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!_},m.Za=function(_){return typeof _=="function"&&(_[A]===C[A]||_[A]===m.o.fn[A]&&_.Nc)},m.b("observable",m.ta),m.b("isObservable",m.O),m.b("isWriteableObservable",m.Za),m.b("isWritableObservable",m.Za),m.b("observable.fn",C),m.L(C,"peek",C.v),m.L(C,"valueHasMutated",C.xa),m.L(C,"valueWillMutate",C.ya),m.Ha=function(_){if(_=_||[],typeof _!="object"||!("length"in _))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");return _=m.ta(_),m.a.Ab(_,m.Ha.fn),_.extend({trackArrayChanges:!0})},m.Ha.fn={remove:function(_){for(var S=this.v(),w=[],P=typeof _!="function"||m.O(_)?function(U){return U===_}:_,M=0;M<S.length;M++){var B=S[M];if(P(B)){if(w.length===0&&this.ya(),S[M]!==B)throw Error("Array modified during remove; cannot remove item");w.push(B),S.splice(M,1),M--}}return w.length&&this.xa(),w},removeAll:function(_){if(_===e){var S=this.v(),w=S.slice(0);return this.ya(),S.splice(0,S.length),this.xa(),w}return _?this.remove(function(P){return 0<=m.a.A(_,P)}):[]},destroy:function(_){var S=this.v(),w=typeof _!="function"||m.O(_)?function(B){return B===_}:_;this.ya();for(var P=S.length-1;0<=P;P--){var M=S[P];w(M)&&(M._destroy=!0)}this.xa()},destroyAll:function(_){return _===e?this.destroy(function(){return!0}):_?this.destroy(function(S){return 0<=m.a.A(_,S)}):[]},indexOf:function(_){var S=this();return m.a.A(S,_)},replace:function(_,S){var w=this.indexOf(_);0<=w&&(this.ya(),this.v()[w]=S,this.xa())},sorted:function(_){var S=this().slice(0);return _?S.sort(_):S.sort()},reversed:function(){return this().slice(0).reverse()}},m.a.Ba&&m.a.setPrototypeOf(m.Ha.fn,m.ta.fn),m.a.D("pop push reverse shift sort splice unshift".split(" "),function(_){m.Ha.fn[_]=function(){var S=this.v();this.ya(),this.zc(S,_,arguments);var w=S[_].apply(S,arguments);return this.xa(),w===S?this:w}}),m.a.D(["slice"],function(_){m.Ha.fn[_]=function(){var S=this();return S[_].apply(S,arguments)}}),m.Pc=function(_){return m.O(_)&&typeof _.remove=="function"&&typeof _.push=="function"},m.b("observableArray",m.Ha),m.b("isObservableArray",m.Pc),m.Ta.trackArrayChanges=function(_,S){function w(){function W(){if(V){var Q=[].concat(_.v()||[]),j;_.Wa("arrayChange")&&((!M||1<V)&&(M=m.a.Pb(G,Q,_.Ob)),j=M),G=Q,M=null,V=0,j&&j.length&&_.notifySubscribers(j,"arrayChange")}}P?W():(P=!0,U=_.subscribe(function(){++V},null,"spectate"),G=[].concat(_.v()||[]),M=null,B=_.subscribe(W))}if(_.Ob={},S&&typeof S=="object"&&m.a.extend(_.Ob,S),_.Ob.sparse=!0,!_.zc){var P=!1,M=null,B,U,V=0,G,k=_.Qa,Y=_.hb;_.Qa=function(W){k&&k.call(_,W),W==="arrayChange"&&w()},_.hb=function(W){Y&&Y.call(_,W),W!=="arrayChange"||_.Wa("arrayChange")||(B&&B.s(),U&&U.s(),U=B=null,P=!1,G=e)},_.zc=function(W,Q,j){function K(we,Oe,ke){return Z[Z.length]={status:we,value:Oe,index:ke}}if(P&&!V){var Z=[],he=W.length,be=j.length,re=0;switch(Q){case"push":re=he;case"unshift":for(Q=0;Q<be;Q++)K("added",j[Q],re+Q);break;case"pop":re=he-1;case"shift":he&&K("deleted",W[re],re);break;case"splice":Q=Math.min(Math.max(0,0>j[0]?he+j[0]:j[0]),he);for(var he=be===1?he:Math.min(Q+(j[1]||0),he),be=Q+be-2,re=Math.max(he,be),_e=[],xe=[],Ce=2;Q<re;++Q,++Ce)Q<he&&xe.push(K("deleted",W[Q],Q)),Q<be&&_e.push(K("added",j[Ce],Q));m.a.Kc(xe,_e);break;default:return}M=Z}}}};var E=m.a.Da("_state");m.o=m.$=function(_,S,w){function P(){if(0<arguments.length){if(typeof M=="function")M.apply(B.nb,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}return B.ra||m.u.cc(P),(B.ka||B.J&&P.Xa())&&P.ha(),B.X}if(typeof _=="object"?w=_:(w=w||{},_&&(w.read=_)),typeof w.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var M=w.write,B={X:e,sa:!0,ka:!0,rb:!1,jc:!1,ra:!1,wb:!1,J:!1,Wc:w.read,nb:S||w.owner,l:w.disposeWhenNodeIsRemoved||w.l||null,Sa:w.disposeWhen||w.Sa,Rb:null,I:{},V:0,Ic:null};return P[E]=B,P.Nc=typeof M=="function",m.a.Ba||m.a.extend(P,m.T.fn),m.T.fn.qb(P),m.a.Ab(P,v),w.pure?(B.wb=!0,B.J=!0,m.a.extend(P,D)):w.deferEvaluation&&m.a.extend(P,O),m.options.deferUpdates&&m.Ta.deferred(P,!0),B.l&&(B.jc=!0,B.l.nodeType||(B.l=null)),B.J||w.deferEvaluation||P.ha(),B.l&&P.ja()&&m.a.K.za(B.l,B.Rb=function(){P.s()}),P};var v={equalityComparer:c,qa:function(){return this[E].V},Va:function(){var _=[];return m.a.P(this[E].I,function(S,w){_[w.Ka]=w.da}),_},Vb:function(_){if(!this[E].V)return!1;var S=this.Va();return m.a.A(S,_)!==-1?!0:!!m.a.Lb(S,function(w){return w.Vb&&w.Vb(_)})},uc:function(_,S,w){if(this[E].wb&&S===this)throw Error("A 'pure' computed must not be called recursively");this[E].I[_]=w,w.Ka=this[E].V++,w.La=S.ob()},Xa:function(){var _,S,w=this[E].I;for(_ in w)if(Object.prototype.hasOwnProperty.call(w,_)&&(S=w[_],this.Ia&&S.da.Ja||S.da.Dd(S.La)))return!0},Jd:function(){this.Ia&&!this[E].rb&&this.Ia(!1)},ja:function(){var _=this[E];return _.ka||0<_.V},Rd:function(){this.Ja?this[E].ka&&(this[E].sa=!0):this.Hc()},$c:function(_){if(_.Hb){var S=_.subscribe(this.Jd,this,"dirty"),w=_.subscribe(this.Rd,this);return{da:_,s:function(){S.s(),w.s()}}}return _.subscribe(this.Hc,this)},Hc:function(){var _=this,S=_.throttleEvaluation;S&&0<=S?(clearTimeout(this[E].Ic),this[E].Ic=m.a.setTimeout(function(){_.ha(!0)},S)):_.Ia?_.Ia(!0):_.ha(!0)},ha:function(_){var S=this[E],w=S.Sa,P=!1;if(!S.rb&&!S.ra){if(S.l&&!m.a.Sb(S.l)||w&&w()){if(!S.jc){this.s();return}}else S.jc=!1;S.rb=!0;try{P=this.zd(_)}finally{S.rb=!1}return P}},zd:function(_){var S=this[E],P=!1,w=S.wb?e:!S.V,P={qd:this,mb:S.I,Qb:S.V};m.u.xc({pd:P,od:g,o:this,Ya:w}),S.I={},S.V=0;var M=this.yd(S,P);return S.V?P=this.sb(S.X,M):(this.s(),P=!0),P&&(S.J?this.Gb():this.notifySubscribers(S.X,"beforeChange"),S.X=M,this.notifySubscribers(S.X,"spectate"),!S.J&&_&&this.notifySubscribers(S.X),this.rc&&this.rc()),w&&this.notifySubscribers(S.X,"awake"),P},yd:function(_,S){try{var w=_.Wc;return _.nb?w.call(_.nb):w()}finally{m.u.end(),S.Qb&&!_.J&&m.a.P(S.mb,p),_.sa=_.ka=!1}},v:function(_){var S=this[E];return(S.ka&&(_||!S.V)||S.J&&this.Xa())&&this.ha(),S.X},ub:function(_){m.T.fn.ub.call(this,_),this.nc=function(){return this[E].J||(this[E].sa?this.ha():this[E].ka=!1),this[E].X},this.Ia=function(S){this.pc(this[E].X),this[E].ka=!0,S&&(this[E].sa=!0),this.qc(this,!S)}},s:function(){var _=this[E];!_.J&&_.I&&m.a.P(_.I,function(S,w){w.s&&w.s()}),_.l&&_.Rb&&m.a.K.yb(_.l,_.Rb),_.I=e,_.V=0,_.ra=!0,_.sa=!1,_.ka=!1,_.J=!1,_.l=e,_.Sa=e,_.Wc=e,this.Nc||(_.nb=e)}},D={Qa:function(_){var S=this,w=S[E];if(!w.ra&&w.J&&_=="change"){if(w.J=!1,w.sa||S.Xa())w.I=null,w.V=0,S.ha()&&S.Gb();else{var P=[];m.a.P(w.I,function(M,B){P[B.Ka]=M}),m.a.D(P,function(M,B){var U=w.I[M],V=S.$c(U.da);V.Ka=B,V.La=U.La,w.I[M]=V}),S.Xa()&&S.ha()&&S.Gb()}w.ra||S.notifySubscribers(w.X,"awake")}},hb:function(_){var S=this[E];S.ra||_!="change"||this.Wa("change")||(m.a.P(S.I,function(w,P){P.s&&(S.I[w]={da:P.da,Ka:P.Ka,La:P.La},P.s())}),S.J=!0,this.notifySubscribers(e,"asleep"))},ob:function(){var _=this[E];return _.J&&(_.sa||this.Xa())&&this.ha(),m.T.fn.ob.call(this)}},O={Qa:function(_){_!="change"&&_!="beforeChange"||this.v()}};m.a.Ba&&m.a.setPrototypeOf(v,m.T.fn);var I=m.ta.Ma;v[I]=m.o,m.Oc=function(_){return typeof _=="function"&&_[I]===v[I]},m.Fd=function(_){return m.Oc(_)&&_[E]&&_[E].wb},m.b("computed",m.o),m.b("dependentObservable",m.o),m.b("isComputed",m.Oc),m.b("isPureComputed",m.Fd),m.b("computed.fn",v),m.L(v,"peek",v.v),m.L(v,"dispose",v.s),m.L(v,"isActive",v.ja),m.L(v,"getDependenciesCount",v.qa),m.L(v,"getDependencies",v.Va),m.xb=function(_,S){return typeof _=="function"?m.o(_,S,{pure:!0}):(_=m.a.extend({},_),_.pure=!0,m.o(_,S))},m.b("pureComputed",m.xb),function(){function _(P,M,B){if(B=B||new w,P=M(P),typeof P!="object"||P===null||P===e||P instanceof RegExp||P instanceof Date||P instanceof String||P instanceof Number||P instanceof Boolean)return P;var U=P instanceof Array?[]:{};return B.save(P,U),S(P,function(V){var G=M(P[V]);switch(typeof G){case"boolean":case"number":case"string":case"function":U[V]=G;break;case"object":case"undefined":var k=B.get(G);U[V]=k!==e?k:_(G,M,B)}}),U}function S(P,M){if(P instanceof Array){for(var B=0;B<P.length;B++)M(B);typeof P.toJSON=="function"&&M("toJSON")}else for(B in P)M(B)}function w(){this.keys=[],this.values=[]}m.ad=function(P){if(arguments.length==0)throw Error("When calling ko.toJS, pass the object you want to convert.");return _(P,function(M){for(var B=0;m.O(M)&&10>B;B++)M=M();return M})},m.toJSON=function(P,M,B){return P=m.ad(P),m.a.hc(P,M,B)},w.prototype={constructor:w,save:function(P,M){var B=m.a.A(this.keys,P);0<=B?this.values[B]=M:(this.keys.push(P),this.values.push(M))},get:function(P){return P=m.a.A(this.keys,P),0<=P?this.values[P]:e}}}(),m.b("toJS",m.ad),m.b("toJSON",m.toJSON),m.Wd=function(_,S,w){function P(M){var B=m.xb(_,w).extend({ma:"always"}),U=B.subscribe(function(V){V&&(U.s(),M(V))});return B.notifySubscribers(B.v()),U}return typeof Promise!="function"||S?P(S.bind(w)):new Promise(P)},m.b("when",m.Wd),function(){m.w={M:function(_){switch(m.a.R(_)){case"option":return _.__ko__hasDomDataOptionValue__===!0?m.a.g.get(_,m.c.options.$b):7>=m.a.W?_.getAttributeNode("value")&&_.getAttributeNode("value").specified?_.value:_.text:_.value;case"select":return 0<=_.selectedIndex?m.w.M(_.options[_.selectedIndex]):e;default:return _.value}},cb:function(_,S,w){switch(m.a.R(_)){case"option":typeof S=="string"?(m.a.g.set(_,m.c.options.$b,e),"__ko__hasDomDataOptionValue__"in _&&delete _.__ko__hasDomDataOptionValue__,_.value=S):(m.a.g.set(_,m.c.options.$b,S),_.__ko__hasDomDataOptionValue__=!0,_.value=typeof S=="number"?S:"");break;case"select":(S===""||S===null)&&(S=e);for(var P=-1,M=0,B=_.options.length,U;M<B;++M)if(U=m.w.M(_.options[M]),U==S||U===""&&S===e){P=M;break}(w||0<=P||S===e&&1<_.size)&&(_.selectedIndex=P,m.a.W===6&&m.a.setTimeout(function(){_.selectedIndex=P},0));break;default:(S===null||S===e)&&(S=""),_.value=S}}}}(),m.b("selectExtensions",m.w),m.b("selectExtensions.readValue",m.w.M),m.b("selectExtensions.writeValue",m.w.cb),m.m=function(){function _(V){V=m.a.Db(V),V.charCodeAt(0)===123&&(V=V.slice(1,-1)),V+=` ,`;var G=[],k=V.match(P),Y,W=[],Q=0;if(1<k.length){for(var j=0,K;K=k[j];++j){var Z=K.charCodeAt(0);if(Z===44){if(0>=Q){G.push(Y&&W.length?{key:Y,value:W.join("")}:{unknown:Y||W.join("")}),Y=Q=0,W=[];continue}}else if(Z===58){if(!Q&&!Y&&W.length===1){Y=W.pop();continue}}else{if(Z===47&&1<K.length&&(K.charCodeAt(1)===47||K.charCodeAt(1)===42))continue;Z===47&&j&&1<K.length?(Z=k[j-1].match(M))&&!B[Z[0]]&&(V=V.substr(V.indexOf(K)+1),k=V.match(P),j=-1,K="/"):Z===40||Z===123||Z===91?++Q:Z===41||Z===125||Z===93?--Q:Y||W.length||Z!==34&&Z!==39||(K=K.slice(1,-1))}W.push(K)}if(0<Q)throw Error("Unbalanced parentheses, braces, or brackets")}return G}var S=["true","false","null","undefined"],w=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,P=RegExp(`"(?:\\\\.|[^"])*"|'(?:\\\\.|[^'])*'|\`(?:\\\\.|[^\`])*\`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.* |/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,"'\`{}()/:[\\]]*[^\\s,"'\`{}()/:[\\]]|[^\\s]`,"g"),M=/[\])"'A-Za-z0-9_$]+$/,B={in:1,return:1,typeof:1},U={};return{Ra:[],wa:U,ac:_,vb:function(V,G){function k(Z,he){var be;if(!j){var re=m.getBindingHandler(Z);if(re&&re.preprocess&&!(he=re.preprocess(he,Z,k)))return;(re=U[Z])&&(be=he,0<=m.a.A(S,be)?be=!1:(re=be.match(w),be=re===null?!1:re[1]?"Object("+re[1]+")"+re[2]:be),re=be),re&&W.push("'"+(typeof U[Z]=="string"?U[Z]:Z)+"':function(_z){"+be+"=_z}")}Q&&(he="function(){return "+he+" }"),Y.push("'"+Z+"':"+he)}G=G||{};var Y=[],W=[],Q=G.valueAccessors,j=G.bindingParams,K=typeof V=="string"?_(V):V;return m.a.D(K,function(Z){k(Z.key||Z.unknown,Z.value)}),W.length&&k("_ko_property_writers","{"+W.join(",")+" }"),Y.join(",")},Id:function(V,G){for(var k=0;k<V.length;k++)if(V[k].key==G)return!0;return!1},eb:function(V,G,k,Y,W){V&&m.O(V)?!m.Za(V)||W&&V.v()===Y||V(Y):(V=G.get("_ko_property_writers"))&&V[k]&&V[k](Y)}}}(),m.b("expressionRewriting",m.m),m.b("expressionRewriting.bindingRewriteValidators",m.m.Ra),m.b("expressionRewriting.parseObjectLiteral",m.m.ac),m.b("expressionRewriting.preProcessBindings",m.m.vb),m.b("expressionRewriting._twoWayBindings",m.m.wa),m.b("jsonExpressionRewriting",m.m),m.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",m.m.vb),function(){function _(k){return k.nodeType==8&&B.test(M?k.text:k.nodeValue)}function S(k){return k.nodeType==8&&U.test(M?k.text:k.nodeValue)}function w(k,Y){for(var W=k,Q=1,j=[];W=W.nextSibling;){if(S(W)&&(m.a.g.set(W,G,!0),Q--,Q===0))return j;j.push(W),_(W)&&Q++}if(!Y)throw Error("Cannot find closing comment tag to match: "+k.nodeValue);return null}function P(k,Y){var W=w(k,Y);return W?0<W.length?W[W.length-1].nextSibling:k.nextSibling:null}var M=n&&n.createComment("test").text==="<!--test-->",B=M?/^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,U=M?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,V={ul:!0,ol:!0},G="__ko_matchedEndComment__";m.h={ea:{},childNodes:function(k){return _(k)?w(k):k.childNodes},Ea:function(k){if(_(k)){k=m.h.childNodes(k);for(var Y=0,W=k.length;Y<W;Y++)m.removeNode(k[Y])}else m.a.Tb(k)},va:function(k,Y){if(_(k)){m.h.Ea(k);for(var W=k.nextSibling,Q=0,j=Y.length;Q<j;Q++)W.parentNode.insertBefore(Y[Q],W)}else m.a.va(k,Y)},Vc:function(k,Y){var W;_(k)?(W=k.nextSibling,k=k.parentNode):W=k.firstChild,W?Y!==W&&k.insertBefore(Y,W):k.appendChild(Y)},Wb:function(k,Y,W){W?(W=W.nextSibling,_(k)&&(k=k.parentNode),W?Y!==W&&k.insertBefore(Y,W):k.appendChild(Y)):m.h.Vc(k,Y)},firstChild:function(k){if(_(k))return!k.nextSibling||S(k.nextSibling)?null:k.nextSibling;if(k.firstChild&&S(k.firstChild))throw Error("Found invalid end comment, as the first child of "+k);return k.firstChild},nextSibling:function(k){if(_(k)&&(k=P(k)),k.nextSibling&&S(k.nextSibling)){var Y=k.nextSibling;if(S(Y)&&!m.a.g.get(Y,G))throw Error("Found end comment without a matching opening comment, as child of "+k);return null}return k.nextSibling},Cd:_,Vd:function(k){return(k=(M?k.text:k.nodeValue).match(B))?k[1]:null},Sc:function(k){if(V[m.a.R(k)]){var Y=k.firstChild;if(Y)do if(Y.nodeType===1){var W;W=Y.firstChild;var Q=null;if(W)do if(Q)Q.push(W);else if(_(W)){var j=P(W,!0);j?W=j:Q=[W]}else S(W)&&(Q=[W]);while(W=W.nextSibling);if(W=Q)for(Q=Y.nextSibling,j=0;j<W.length;j++)Q?k.insertBefore(W[j],Q):k.appendChild(W[j])}while(Y=Y.nextSibling)}}}}(),m.b("virtualElements",m.h),m.b("virtualElements.allowedBindings",m.h.ea),m.b("virtualElements.emptyNode",m.h.Ea),m.b("virtualElements.insertAfter",m.h.Wb),m.b("virtualElements.prepend",m.h.Vc),m.b("virtualElements.setDomNodeChildren",m.h.va),function(){m.ga=function(){this.nd={}},m.a.extend(m.ga.prototype,{nodeHasBindings:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind")!=null||m.j.getComponentNameForNode(_);case 8:return m.h.Cd(_);default:return!1}},getBindings:function(_,S){var w=this.getBindingsString(_,S),w=w?this.parseBindingsString(w,S,_):null;return m.j.tc(w,_,S,!1)},getBindingAccessors:function(_,S){var w=this.getBindingsString(_,S),w=w?this.parseBindingsString(w,S,_,{valueAccessors:!0}):null;return m.j.tc(w,_,S,!0)},getBindingsString:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind");case 8:return m.h.Vd(_);default:return null}},parseBindingsString:function(_,S,w,P){try{var M=this.nd,B=_+(P&&P.valueAccessors||""),U;if(!(U=M[B])){var V,G="with($context){with($data||{}){return{"+m.m.vb(_,P)+"}}}";V=new Function("$context","$element",G),U=M[B]=V}return U(S,w)}catch(k){throw k.message=`Unable to parse bindings. Bindings value: `+_+` Message: `+k.message,k}}}),m.ga.instance=new m.ga}(),m.b("bindingProvider",m.ga),function(){function _(re){var _e=(re=m.a.g.get(re,be))&&re.N;_e&&(re.N=null,_e.Tc())}function S(re,_e,xe){this.node=re,this.yc=_e,this.kb=[],this.H=!1,_e.N||m.a.K.za(re,_),xe&&xe.N&&(xe.N.kb.push(re),this.Kb=xe)}function w(re){return function(){return re}}function P(re){return re()}function M(re){return m.a.Ga(m.u.G(re),function(_e,xe){return function(){return re()[xe]}})}function B(re,_e,xe){return typeof re=="function"?M(re.bind(null,_e,xe)):m.a.Ga(re,w)}function U(re,_e){return M(this.getBindings.bind(this,re,_e))}function V(re,_e){var xe=m.h.firstChild(_e);if(xe){var Ce,we=m.ga.instance,Oe=we.preprocessNode;if(Oe){for(;Ce=xe;)xe=m.h.nextSibling(Ce),Oe.call(we,Ce);xe=m.h.firstChild(_e)}for(;Ce=xe;)xe=m.h.nextSibling(Ce),G(re,Ce)}m.i.ma(_e,m.i.H)}function G(re,_e){var xe=re,Ce=_e.nodeType===1;Ce&&m.h.Sc(_e),(Ce||m.ga.instance.nodeHasBindings(_e))&&(xe=Y(_e,null,re).bindingContextForDescendants),xe&&!Z[m.a.R(_e)]&&V(xe,_e)}function k(re){var _e=[],xe={},Ce=[];return m.a.P(re,function we(Oe){if(!xe[Oe]){var ke=m.getBindingHandler(Oe);ke&&(ke.after&&(Ce.push(Oe),m.a.D(ke.after,function(At){if(re[At]){if(m.a.A(Ce,At)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+Ce.join(", "));we(At)}}),Ce.length--),_e.push({key:Oe,Mc:ke})),xe[Oe]=!0}}),_e}function Y(re,_e,xe){var Ce=m.a.g.Ub(re,be,{}),we=Ce.hd;if(!_e){if(we)throw Error("You cannot apply bindings multiple times to the same element.");Ce.hd=!0}we||(Ce.context=xe),Ce.Zb||(Ce.Zb={});var Oe;if(_e&&typeof _e!="function")Oe=_e;else{var ke=m.ga.instance,At=ke.getBindingAccessors||U,Bt=m.$(function(){return(Oe=_e?_e(xe,re):At.call(ke,re,xe))&&(xe[Q]&&xe[Q](),xe[K]&&xe[K]()),Oe},null,{l:re});Oe&&Bt.ja()||(Bt=null)}var rt=xe,Qe;if(Oe){var Kt=function(){return m.a.Ga(Bt?Bt():Oe,P)},ht=Bt?function(mt){return function(){return P(Bt()[mt])}}:function(mt){return Oe[mt]};Kt.get=function(mt){return Oe[mt]&&P(ht(mt))},Kt.has=function(mt){return mt in Oe},m.i.H in Oe&&m.i.subscribe(re,m.i.H,function(){var mt=(0,Oe[m.i.H])();if(mt){var Zt=m.h.childNodes(re);Zt.length&&mt(Zt,m.Ec(Zt[0]))}}),m.i.pa in Oe&&(rt=m.i.Cb(re,xe),m.i.subscribe(re,m.i.pa,function(){var mt=(0,Oe[m.i.pa])();mt&&m.h.firstChild(re)&&mt(re)})),Ce=k(Oe),m.a.D(Ce,function(mt){var Zt=mt.Mc.init,me=mt.Mc.update,Ae=mt.key;if(re.nodeType===8&&!m.h.ea[Ae])throw Error("The binding '"+Ae+"' cannot be used with virtual elements");try{typeof Zt=="function"&&m.u.G(function(){var Ut=Zt(re,ht(Ae),Kt,rt.$data,rt);if(Ut&&Ut.controlsDescendantBindings){if(Qe!==e)throw Error("Multiple bindings ("+Qe+" and "+Ae+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");Qe=Ae}}),typeof me=="function"&&m.$(function(){me(re,ht(Ae),Kt,rt.$data,rt)},null,{l:re})}catch(Ut){throw Ut.message='Unable to process binding "'+Ae+": "+Oe[Ae]+`" Message: `+Ut.message,Ut}})}return Ce=Qe===e,{shouldBindDescendants:Ce,bindingContextForDescendants:Ce&&rt}}function W(re,_e){return re&&re instanceof m.fa?re:new m.fa(re,e,e,_e)}var Q=m.a.Da("_subscribable"),j=m.a.Da("_ancestorBindingInfo"),K=m.a.Da("_dataDependency");m.c={};var Z={script:!0,textarea:!0,template:!0};m.getBindingHandler=function(re){return m.c[re]};var he={};m.fa=function(re,_e,xe,Ce,we){function Oe(){var ht=rt?Bt():Bt,mt=m.a.f(ht);return _e?(m.a.extend(ke,_e),j in _e&&(ke[j]=_e[j])):(ke.$parents=[],ke.$root=mt,ke.ko=m),ke[Q]=Qe,At?mt=ke.$data:(ke.$rawData=ht,ke.$data=mt),xe&&(ke[xe]=mt),Ce&&Ce(ke,_e,mt),_e&&_e[Q]&&!m.S.o().Vb(_e[Q])&&_e[Q](),Kt&&(ke[K]=Kt),ke.$data}var ke=this,At=re===he,Bt=At?e:re,rt=typeof Bt=="function"&&!m.O(Bt),Qe,Kt=we&&we.dataDependency;we&&we.exportDependencies?Oe():(Qe=m.xb(Oe),Qe.v(),Qe.ja()?Qe.equalityComparer=null:ke[Q]=e)},m.fa.prototype.createChildContext=function(re,_e,xe,Ce){if(!Ce&&_e&&typeof _e=="object"&&(Ce=_e,_e=Ce.as,xe=Ce.extend),_e&&Ce&&Ce.noChildContext){var we=typeof re=="function"&&!m.O(re);return new m.fa(he,this,null,function(Oe){xe&&xe(Oe),Oe[_e]=we?re():re},Ce)}return new m.fa(re,this,_e,function(Oe,ke){Oe.$parentContext=ke,Oe.$parent=ke.$data,Oe.$parents=(ke.$parents||[]).slice(0),Oe.$parents.unshift(Oe.$parent),xe&&xe(Oe)},Ce)},m.fa.prototype.extend=function(re,_e){return new m.fa(he,this,null,function(xe){m.a.extend(xe,typeof re=="function"?re(xe):re)},_e)};var be=m.a.g.Z();S.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)},S.prototype.sd=function(re){m.a.Pa(this.kb,re),!this.kb.length&&this.H&&this.Cc()},S.prototype.Cc=function(){this.H=!0,this.yc.N&&!this.kb.length&&(this.yc.N=null,m.a.K.yb(this.node,_),m.i.ma(this.node,m.i.pa),this.Tc())},m.i={H:"childrenComplete",pa:"descendantsComplete",subscribe:function(re,_e,xe,Ce,we){var Oe=m.a.g.Ub(re,be,{});return Oe.Fa||(Oe.Fa=new m.T),we&&we.notifyImmediately&&Oe.Zb[_e]&&m.u.G(xe,Ce,[re]),Oe.Fa.subscribe(xe,Ce,_e)},ma:function(re,_e){var xe=m.a.g.get(re,be);if(xe&&(xe.Zb[_e]=!0,xe.Fa&&xe.Fa.notifySubscribers(re,_e),_e==m.i.H)){if(xe.N)xe.N.Cc();else if(xe.N===e&&xe.Fa&&xe.Fa.Wa(m.i.pa))throw Error("descendantsComplete event not supported for bindings on this node")}},Cb:function(re,_e){var xe=m.a.g.Ub(re,be,{});return xe.N||(xe.N=new S(re,xe,_e[j])),_e[j]==xe?_e:_e.extend(function(Ce){Ce[j]=xe})}},m.Td=function(re){return(re=m.a.g.get(re,be))&&re.context},m.ib=function(re,_e,xe){return re.nodeType===1&&m.h.Sc(re),Y(re,_e,W(xe))},m.ld=function(re,_e,xe){return xe=W(xe),m.ib(re,B(_e,xe,re),xe)},m.Oa=function(re,_e){_e.nodeType!==1&&_e.nodeType!==8||V(W(re),_e)},m.vc=function(re,_e,xe){if(!o&&t.jQuery&&(o=t.jQuery),2>arguments.length){if(_e=n.body,!_e)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?")}else if(!_e||_e.nodeType!==1&&_e.nodeType!==8)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");G(W(re,xe),_e)},m.Dc=function(re){return!re||re.nodeType!==1&&re.nodeType!==8?e:m.Td(re)},m.Ec=function(re){return(re=m.Dc(re))?re.$data:e},m.b("bindingHandlers",m.c),m.b("bindingEvent",m.i),m.b("bindingEvent.subscribe",m.i.subscribe),m.b("bindingEvent.startPossiblyAsyncContentBinding",m.i.Cb),m.b("applyBindings",m.vc),m.b("applyBindingsToDescendants",m.Oa),m.b("applyBindingAccessorsToNode",m.ib),m.b("applyBindingsToNode",m.ld),m.b("contextFor",m.Dc),m.b("dataFor",m.Ec)}(),function(_){function S(U,V){var G=Object.prototype.hasOwnProperty.call(M,U)?M[U]:_,k;G?G.subscribe(V):(G=M[U]=new m.T,G.subscribe(V),w(U,function(Y,W){var Q=!(!W||!W.synchronous);B[U]={definition:Y,Gd:Q},delete M[U],k||Q?G.notifySubscribers(Y):m.na.zb(function(){G.notifySubscribers(Y)})}),k=!0)}function w(U,V){P("getConfig",[U],function(G){G?P("loadComponent",[U,G],function(k){V(k,G)}):V(null,null)})}function P(U,V,G,k){k||(k=m.j.loaders.slice(0));var Y=k.shift();if(Y){var W=Y[U];if(W){var Q=!1;if(W.apply(Y,V.concat(function(j){Q?G(null):j!==null?G(j):P(U,V,G,k)}))!==_&&(Q=!0,!Y.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.")}else P(U,V,G,k)}else G(null)}var M={},B={};m.j={get:function(U,V){var G=Object.prototype.hasOwnProperty.call(B,U)?B[U]:_;G?G.Gd?m.u.G(function(){V(G.definition)}):m.na.zb(function(){V(G.definition)}):S(U,V)},Bc:function(U){delete B[U]},oc:P},m.j.loaders=[],m.b("components",m.j),m.b("components.get",m.j.get),m.b("components.clearCachedDefinition",m.j.Bc)}(),function(){function _(G,k,Y,W){function Q(){--K===0&&W(j)}var j={},K=2,Z=Y.template;Y=Y.viewModel,Z?M(k,Z,function(he){m.j.oc("loadTemplate",[G,he],function(be){j.template=be,Q()})}):Q(),Y?M(k,Y,function(he){m.j.oc("loadViewModel",[G,he],function(be){j[V]=be,Q()})}):Q()}function S(G,k,Y){if(typeof k=="function")Y(function(Q){return new k(Q)});else if(typeof k[V]=="function")Y(k[V]);else if("instance"in k){var W=k.instance;Y(function(){return W})}else"viewModel"in k?S(G,k.viewModel,Y):G("Unknown viewModel value: "+k)}function w(G){switch(m.a.R(G)){case"script":return m.a.ua(G.text);case"textarea":return m.a.ua(G.value);case"template":if(P(G.content))return m.a.Ca(G.content.childNodes)}return m.a.Ca(G.childNodes)}function P(G){return t.DocumentFragment?G instanceof DocumentFragment:G&&G.nodeType===11}function M(G,k,Y){typeof k.require=="string"?a||t.require?(a||t.require)([k.require],function(W){W&&typeof W=="object"&&W.Xd&&W.default&&(W=W.default),Y(W)}):G("Uses require, but no AMD loader is present"):Y(k)}function B(G){return function(k){throw Error("Component '"+G+"': "+k)}}var U={};m.j.register=function(G,k){if(!k)throw Error("Invalid configuration for "+G);if(m.j.tb(G))throw Error("Component "+G+" is already registered");U[G]=k},m.j.tb=function(G){return Object.prototype.hasOwnProperty.call(U,G)},m.j.unregister=function(G){delete U[G],m.j.Bc(G)},m.j.Fc={getConfig:function(G,k){k(m.j.tb(G)?U[G]:null)},loadComponent:function(G,k,Y){var W=B(G);M(W,k,function(Q){_(G,W,Q,Y)})},loadTemplate:function(G,k,Y){if(G=B(G),typeof k=="string")Y(m.a.ua(k));else if(k instanceof Array)Y(k);else if(P(k))Y(m.a.la(k.childNodes));else if(k.element)if(k=k.element,t.HTMLElement?k instanceof HTMLElement:k&&k.tagName&&k.nodeType===1)Y(w(k));else if(typeof k=="string"){var W=n.getElementById(k);W?Y(w(W)):G("Cannot find element with ID "+k)}else G("Unknown element type: "+k);else G("Unknown template value: "+k)},loadViewModel:function(G,k,Y){S(B(G),k,Y)}};var V="createViewModel";m.b("components.register",m.j.register),m.b("components.isRegistered",m.j.tb),m.b("components.unregister",m.j.unregister),m.b("components.defaultLoader",m.j.Fc),m.j.loaders.push(m.j.Fc),m.j.dd=U}(),function(){function _(w,P){var M=w.getAttribute("params");if(M){var M=S.parseBindingsString(M,P,w,{valueAccessors:!0,bindingParams:!0}),M=m.a.Ga(M,function(V){return m.o(V,null,{l:w})}),B=m.a.Ga(M,function(V){var G=V.v();return V.ja()?m.o({read:function(){return m.a.f(V())},write:m.Za(G)&&function(k){V()(k)},l:w}):G});return Object.prototype.hasOwnProperty.call(B,"$raw")||(B.$raw=M),B}return{$raw:{}}}m.j.getComponentNameForNode=function(w){var P=m.a.R(w);if(m.j.tb(P)&&(P.indexOf("-")!=-1||""+w=="[object HTMLUnknownElement]"||8>=m.a.W&&w.tagName===P))return P},m.j.tc=function(w,P,M,B){if(P.nodeType===1){var U=m.j.getComponentNameForNode(P);if(U){if(w=w||{},w.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var V={name:U,params:_(P,M)};w.component=B?function(){return V}:V}}return w};var S=new m.ga;9>m.a.W&&(m.j.register=function(w){return function(P){return w.apply(this,arguments)}}(m.j.register),n.createDocumentFragment=function(w){return function(){var P=w(),M=m.j.dd,B;for(B in M);return P}}(n.createDocumentFragment))}(),function(){function _(P,M,B){if(M=M.template,!M)throw Error("Component '"+P+"' has no template");P=m.a.Ca(M),m.h.va(B,P)}function S(P,M,B){var U=P.createViewModel;return U?U.call(P,M,B):M}var w=0;m.c.component={init:function(P,M,B,U,V){function G(){var j=k&&k.dispose;typeof j=="function"&&j.call(k),W&&W.s(),Y=k=W=null}var k,Y,W,Q=m.a.la(m.h.childNodes(P));return m.h.Ea(P),m.a.K.za(P,G),m.o(function(){var j=m.a.f(M()),K,Z;if(typeof j=="string"?K=j:(K=m.a.f(j.name),Z=m.a.f(j.params)),!K)throw Error("No component name specified");var he=m.i.Cb(P,V),be=Y=++w;m.j.get(K,function(re){if(Y===be){if(G(),!re)throw Error("Unknown component '"+K+"'");_(K,re,P);var _e=S(re,Z,{element:P,templateNodes:Q});re=he.createChildContext(_e,{extend:function(xe){xe.$component=_e,xe.$componentTemplateNodes=Q}}),_e&&_e.koDescendantsComplete&&(W=m.i.subscribe(P,m.i.pa,_e.koDescendantsComplete,_e)),k=_e,m.Oa(re,P)}})},null,{l:P}),{controlsDescendantBindings:!0}}},m.h.ea.component=!0}();var L={class:"className",for:"htmlFor"};m.c.attr={update:function(_,S){var w=m.a.f(S())||{};m.a.P(w,function(P,M){M=m.a.f(M);var B=P.indexOf(":"),B="lookupNamespaceURI"in _&&0<B&&_.lookupNamespaceURI(P.substr(0,B)),U=M===!1||M===null||M===e;U?B?_.removeAttributeNS(B,P):_.removeAttribute(P):M=M.toString(),8>=m.a.W&&P in L?(P=L[P],U?_.removeAttribute(P):_[P]=M):U||(B?_.setAttributeNS(B,P,M):_.setAttribute(P,M)),P==="name"&&m.a.Yc(_,U?"":M)})}},function(){m.c.checked={after:["value","attr"],init:function(_,S,w){function P(){var j=_.checked,K=B();if(!m.S.Ya()&&(j||!V&&!m.S.qa())){var Z=m.u.G(S);if(k){var he=Y?Z.v():Z,be=Q;Q=K,be!==K?j&&(m.a.Na(he,K,!0),m.a.Na(he,be,!1)):m.a.Na(he,K,j),Y&&m.Za(Z)&&Z(he)}else U&&(K===e?K=j:j||(K=e)),m.m.eb(Z,w,"checked",K,!0)}}function M(){var j=m.a.f(S()),K=B();k?(_.checked=0<=m.a.A(j,K),Q=K):_.checked=U&&K===e?!!j:B()===j}var B=m.xb(function(){if(w.has("checkedValue"))return m.a.f(w.get("checkedValue"));if(W)return w.has("value")?m.a.f(w.get("value")):_.value}),U=_.type=="checkbox",V=_.type=="radio";if(U||V){var G=S(),k=U&&m.a.f(G)instanceof Array,Y=!(k&&G.push&&G.splice),W=V||k,Q=k?B():e;V&&!_.name&&m.c.uniqueName.init(_,function(){return!0}),m.o(P,null,{l:_}),m.a.B(_,"click",P),m.o(M,null,{l:_}),G=e}}},m.m.wa.checked=!0,m.c.checkedValue={update:function(_,S){_.value=m.a.f(S())}}}(),m.c.class={update:function(_,S){var w=m.a.Db(m.a.f(S()));m.a.Eb(_,_.__ko__cssValue,!1),_.__ko__cssValue=w,m.a.Eb(_,w,!0)}},m.c.css={update:function(_,S){var w=m.a.f(S());w!==null&&typeof w=="object"?m.a.P(w,function(P,M){M=m.a.f(M),m.a.Eb(_,P,M)}):m.c.class.update(_,S)}},m.c.enable={update:function(_,S){var w=m.a.f(S());w&&_.disabled?_.removeAttribute("disabled"):w||_.disabled||(_.disabled=!0)}},m.c.disable={update:function(_,S){m.c.enable.update(_,function(){return!m.a.f(S())})}},m.c.event={init:function(_,S,w,P,M){var B=S()||{};m.a.P(B,function(U){typeof U=="string"&&m.a.B(_,U,function(V){var G,k=S()[U];if(k){try{var Y=m.a.la(arguments);P=M.$data,Y.unshift(P),G=k.apply(P,Y)}finally{G!==!0&&(V.preventDefault?V.preventDefault():V.returnValue=!1)}w.get(U+"Bubble")===!1&&(V.cancelBubble=!0,V.stopPropagation&&V.stopPropagation())}})})}},m.c.foreach={Rc:function(_){return function(){var S=_(),w=m.a.bc(S);return!w||typeof w.length=="number"?{foreach:S,templateEngine:m.ba.Ma}:(m.a.f(S),{foreach:w.data,as:w.as,noChildContext:w.noChildContext,includeDestroyed:w.includeDestroyed,afterAdd:w.afterAdd,beforeRemove:w.beforeRemove,afterRender:w.afterRender,beforeMove:w.beforeMove,afterMove:w.afterMove,templateEngine:m.ba.Ma})}},init:function(_,S){return m.c.template.init(_,m.c.foreach.Rc(S))},update:function(_,S,w,P,M){return m.c.template.update(_,m.c.foreach.Rc(S),w,P,M)}},m.m.Ra.foreach=!1,m.h.ea.foreach=!0,m.c.hasfocus={init:function(_,S,w){function P(U){_.__ko_hasfocusUpdating=!0;var V=_.ownerDocument;if("activeElement"in V){var G;try{G=V.activeElement}catch{G=V.body}U=G===_}V=S(),m.m.eb(V,w,"hasfocus",U,!0),_.__ko_hasfocusLastValue=U,_.__ko_hasfocusUpdating=!1}var M=P.bind(null,!0),B=P.bind(null,!1);m.a.B(_,"focus",M),m.a.B(_,"focusin",M),m.a.B(_,"blur",B),m.a.B(_,"focusout",B),_.__ko_hasfocusLastValue=!1},update:function(_,S){var w=!!m.a.f(S());_.__ko_hasfocusUpdating||_.__ko_hasfocusLastValue===w||(w?_.focus():_.blur(),!w&&_.__ko_hasfocusLastValue&&_.ownerDocument.body.focus(),m.u.G(m.a.Fb,null,[_,w?"focusin":"focusout"]))}},m.m.wa.hasfocus=!0,m.c.hasFocus=m.c.hasfocus,m.m.wa.hasFocus="hasfocus",m.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(_,S){m.a.fc(_,S())}},function(){function _(S,w,P){m.c[S]={init:function(M,B,U,V,G){var k,Y,W={},Q,j,K;if(w){V=U.get("as");var Z=U.get("noChildContext");K=!(V&&Z),W={as:V,noChildContext:Z,exportDependencies:K}}return j=(Q=U.get("completeOn")=="render")||U.has(m.i.pa),m.o(function(){var he=m.a.f(B()),be=!P!=!he,re=!Y,_e;(K||be!==k)&&(j&&(G=m.i.Cb(M,G)),be&&((!w||K)&&(W.dataDependency=m.S.o()),_e=w?G.createChildContext(typeof he=="function"?he:B,W):m.S.qa()?G.extend(null,W):G),re&&m.S.qa()&&(Y=m.a.Ca(m.h.childNodes(M),!0)),be?(re||m.h.va(M,m.a.Ca(Y)),m.Oa(_e,M)):(m.h.Ea(M),Q||m.i.ma(M,m.i.H)),k=be)},null,{l:M}),{controlsDescendantBindings:!0}}},m.m.Ra[S]=!1,m.h.ea[S]=!0}_("if"),_("ifnot",!1,!0),_("with",!0)}(),m.c.let={init:function(_,S,w,P,M){return S=M.extend(S),m.Oa(S,_),{controlsDescendantBindings:!0}}},m.h.ea.let=!0;var N={};m.c.options={init:function(_){if(m.a.R(_)!=="select")throw Error("options binding applies only to SELECT elements");for(;0<_.length;)_.remove(0);return{controlsDescendantBindings:!0}},update:function(_,S,w){function P(){return m.a.jb(_.options,function(Z){return Z.selected})}function M(Z,he,be){var re=typeof he;return re=="function"?he(Z):re=="string"?Z[he]:be}function B(Z,he){if(j&&k)m.i.ma(_,m.i.H);else if(Q.length){var be=0<=m.a.A(Q,m.w.M(he[0]));m.a.Zc(he[0],be),j&&!be&&m.u.G(m.a.Fb,null,[_,"change"])}}var U=_.multiple,V=_.length!=0&&U?_.scrollTop:null,G=m.a.f(S()),k=w.get("valueAllowUnset")&&w.has("value"),Y=w.get("optionsIncludeDestroyed");S={};var W,Q=[];k||(U?Q=m.a.Mb(P(),m.w.M):0<=_.selectedIndex&&Q.push(m.w.M(_.options[_.selectedIndex]))),G&&(typeof G.length>"u"&&(G=[G]),W=m.a.jb(G,function(Z){return Y||Z===e||Z===null||!m.a.f(Z._destroy)}),w.has("optionsCaption")&&(G=m.a.f(w.get("optionsCaption")),G!==null&&G!==e&&W.unshift(N)));var j=!1;if(S.beforeRemove=function(Z){_.removeChild(Z)},G=B,w.has("optionsAfterRender")&&typeof w.get("optionsAfterRender")=="function"&&(G=function(Z,he){B(0,he),m.u.G(w.get("optionsAfterRender"),null,[he[0],Z!==N?Z:e])}),m.a.ec(_,W,function(Z,he,be){return be.length&&(Q=!k&&be[0].selected?[m.w.M(be[0])]:[],j=!0),he=_.ownerDocument.createElement("option"),Z===N?(m.a.Bb(he,w.get("optionsCaption")),m.w.cb(he,e)):(be=M(Z,w.get("optionsValue"),Z),m.w.cb(he,m.a.f(be)),Z=M(Z,w.get("optionsText"),be),m.a.Bb(he,Z)),[he]},S,G),!k){var K;U?K=Q.length&&P().length<Q.length:K=Q.length&&0<=_.selectedIndex?m.w.M(_.options[_.selectedIndex])!==Q[0]:Q.length||0<=_.selectedIndex,K&&m.u.G(m.a.Fb,null,[_,"change"])}(k||m.S.Ya())&&m.i.ma(_,m.i.H),m.a.wd(_),V&&20<Math.abs(V-_.scrollTop)&&(_.scrollTop=V)}},m.c.options.$b=m.a.g.Z(),m.c.selectedOptions={init:function(_,S,w){function P(){var U=S(),V=[];m.a.D(_.getElementsByTagName("option"),function(G){G.selected&&V.push(m.w.M(G))}),m.m.eb(U,w,"selectedOptions",V)}function M(){var U=m.a.f(S()),V=_.scrollTop;U&&typeof U.length=="number"&&m.a.D(_.getElementsByTagName("option"),function(G){var k=0<=m.a.A(U,m.w.M(G));G.selected!=k&&m.a.Zc(G,k)}),_.scrollTop=V}if(m.a.R(_)!="select")throw Error("selectedOptions binding applies only to SELECT elements");var B;m.i.subscribe(_,m.i.H,function(){B?P():(m.a.B(_,"change",P),B=m.o(M,null,{l:_}))},null,{notifyImmediately:!0})},update:function(){}},m.m.wa.selectedOptions=!0,m.c.style={update:function(_,S){var w=m.a.f(S()||{});m.a.P(w,function(P,M){if(M=m.a.f(M),(M===null||M===e||M===!1)&&(M=""),o)o(_).css(P,M);else if(/^--/.test(P))_.style.setProperty(P,M);else{P=P.replace(/-(\w)/g,function(U,V){return V.toUpperCase()});var B=_.style[P];_.style[P]=M,M===B||_.style[P]!=B||isNaN(M)||(_.style[P]=M+"px")}})}},m.c.submit={init:function(_,S,w,P,M){if(typeof S()!="function")throw Error("The value for a submit binding must be a function");m.a.B(_,"submit",function(B){var U,V=S();try{U=V.call(M.$data,_)}finally{U!==!0&&(B.preventDefault?B.preventDefault():B.returnValue=!1)}})}},m.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(_,S){m.a.Bb(_,S())}},m.h.ea.text=!0,function(){if(t&&t.navigator){var _=function(W){if(W)return parseFloat(W[1])},S=t.navigator.userAgent,w,P,M,B,U;(w=t.opera&&t.opera.version&&parseInt(t.opera.version()))||(U=_(S.match(/Edge\/([^ ]+)$/)))||_(S.match(/Chrome\/([^ ]+)/))||(P=_(S.match(/Version\/([^ ]+) Safari/)))||(M=_(S.match(/Firefox\/([^ ]+)/)))||(B=m.a.W||_(S.match(/MSIE ([^ ]+)/)))||(B=_(S.match(/rv:([^ )]+)/)))}if(8<=B&&10>B)var V=m.a.g.Z(),G=m.a.g.Z(),k=function(W){var Q=this.activeElement;(Q=Q&&m.a.g.get(Q,G))&&Q(W)},Y=function(W,Q){var j=W.ownerDocument;m.a.g.get(j,V)||(m.a.g.set(j,V,!0),m.a.B(j,"selectionchange",k)),m.a.g.set(W,G,Q)};m.c.textInput={init:function(W,Q,j){function K(Oe,ke){m.a.B(W,Oe,ke)}function Z(){var Oe=m.a.f(Q());(Oe===null||Oe===e)&&(Oe=""),xe!==e&&Oe===xe?m.a.setTimeout(Z,4):W.value!==Oe&&(we=!0,W.value=Oe,we=!1,re=W.value)}function he(){_e||(xe=W.value,_e=m.a.setTimeout(be,4))}function be(){clearTimeout(_e),xe=_e=e;var Oe=W.value;re!==Oe&&(re=Oe,m.m.eb(Q(),j,"textInput",Oe))}var re=W.value,_e,xe,Ce=m.a.W==9?he:be,we=!1;B&&K("keypress",be),11>B&&K("propertychange",function(Oe){we||Oe.propertyName!=="value"||Ce(Oe)}),B==8&&(K("keyup",be),K("keydown",be)),Y&&(Y(W,Ce),K("dragend",he)),(!B||9<=B)&&K("input",Ce),5>P&&m.a.R(W)==="textarea"?(K("keydown",he),K("paste",he),K("cut",he)):11>w?K("keydown",he):4>M?(K("DOMAutoComplete",be),K("dragdrop",be),K("drop",be)):U&&W.type==="number"&&K("keydown",he),K("change",be),K("blur",be),m.o(Z,null,{l:W})}},m.m.wa.textInput=!0,m.c.textinput={preprocess:function(W,Q,j){j("textInput",W)}}}(),m.c.uniqueName={init:function(_,S){if(S()){var w="ko_unique_"+ ++m.c.uniqueName.rd;m.a.Yc(_,w)}}},m.c.uniqueName.rd=0,m.c.using={init:function(_,S,w,P,M){var B;return w.has("as")&&(B={as:w.get("as"),noChildContext:w.get("noChildContext")}),S=M.createChildContext(S,B),m.Oa(S,_),{controlsDescendantBindings:!0}}},m.h.ea.using=!0,m.c.value={init:function(_,S,w){var P=m.a.R(_),M=P=="input";if(!M||_.type!="checkbox"&&_.type!="radio"){var B=[],U=w.get("valueUpdate"),V=!1,G=null;U&&(typeof U=="string"?B=[U]:B=m.a.wc(U),m.a.Pa(B,"change"));var k=function(){G=null,V=!1;var Q=S(),j=m.w.M(_);m.m.eb(Q,w,"value",j)};!m.a.W||!M||_.type!="text"||_.autocomplete=="off"||_.form&&_.form.autocomplete=="off"||m.a.A(B,"propertychange")!=-1||(m.a.B(_,"propertychange",function(){V=!0}),m.a.B(_,"focus",function(){V=!1}),m.a.B(_,"blur",function(){V&&k()})),m.a.D(B,function(Q){var j=k;m.a.Ud(Q,"after")&&(j=function(){G=m.w.M(_),m.a.setTimeout(k,0)},Q=Q.substring(5)),m.a.B(_,Q,j)});var Y;if(Y=M&&_.type=="file"?function(){var Q=m.a.f(S());Q===null||Q===e||Q===""?_.value="":m.u.G(k)}:function(){var Q=m.a.f(S()),j=m.w.M(_);G!==null&&Q===G?m.a.setTimeout(Y,0):(Q!==j||j===e)&&(P==="select"?(j=w.get("valueAllowUnset"),m.w.cb(_,Q,j),j||Q===m.w.M(_)||m.u.G(k)):m.w.cb(_,Q))},P==="select"){var W;m.i.subscribe(_,m.i.H,function(){W?w.get("valueAllowUnset")?Y():k():(m.a.B(_,"change",k),W=m.o(Y,null,{l:_}))},null,{notifyImmediately:!0})}else m.a.B(_,"change",k),m.o(Y,null,{l:_})}else m.ib(_,{checkedValue:S})},update:function(){}},m.m.wa.value=!0,m.c.visible={update:function(_,S){var w=m.a.f(S()),P=_.style.display!="none";w&&!P?_.style.display="":!w&&P&&(_.style.display="none")}},m.c.hidden={update:function(_,S){m.c.visible.update(_,function(){return!m.a.f(S())})}},function(_){m.c[_]={init:function(S,w,P,M,B){return m.c.event.init.call(this,S,function(){var U={};return U[_]=w(),U},P,M,B)}}}("click"),m.ca=function(){},m.ca.prototype.renderTemplateSource=function(){throw Error("Override renderTemplateSource")},m.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock")},m.ca.prototype.makeTemplateSource=function(_,S){if(typeof _=="string"){S=S||n;var w=S.getElementById(_);if(!w)throw Error("Cannot find template with ID "+_);return new m.C.F(w)}if(_.nodeType==1||_.nodeType==8)return new m.C.ia(_);throw Error("Unknown template type: "+_)},m.ca.prototype.renderTemplate=function(_,S,w,P){return _=this.makeTemplateSource(_,P),this.renderTemplateSource(_,S,w,P)},m.ca.prototype.isTemplateRewritten=function(_,S){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(_,S).data("isRewritten")},m.ca.prototype.rewriteTemplate=function(_,S,w){_=this.makeTemplateSource(_,w),S=S(_.text()),_.text(S),_.data("isRewritten",!0)},m.b("templateEngine",m.ca),m.kc=function(){function _(P,M,B,U){P=m.m.ac(P);for(var V=m.m.Ra,G=0;G<P.length;G++){var k=P[G].key;if(Object.prototype.hasOwnProperty.call(V,k)){var Y=V[k];if(typeof Y=="function"){if(k=Y(P[G].value))throw Error(k)}else if(!Y)throw Error("This template engine does not support the '"+k+"' binding within its templates")}}return B="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+m.m.vb(P,{valueAccessors:!0})+" } })()},'"+B.toLowerCase()+"')",U.createJavaScriptEvaluatorBlock(B)+M}var S=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,w=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{xd:function(P,M,B){M.isTemplateRewritten(P,B)||M.rewriteTemplate(P,function(U){return m.kc.Ld(U,M)},B)},Ld:function(P,M){return P.replace(S,function(B,U,V,G,k){return _(k,U,V,M)}).replace(w,function(B,U){return _(U,"<!-- ko -->","#comment",M)})},md:function(P,M){return m.aa.Xb(function(B,U){var V=B.nextSibling;V&&V.nodeName.toLowerCase()===M&&m.ib(V,P,U)})}}}(),m.b("__tr_ambtns",m.kc.md),function(){m.C={},m.C.F=function(w){if(this.F=w){var P=m.a.R(w);this.ab=P==="script"?1:P==="textarea"?2:P=="template"&&w.content&&w.content.nodeType===11?3:4}},m.C.F.prototype.text=function(){var w=this.ab===1?"text":this.ab===2?"value":"innerHTML";if(arguments.length==0)return this.F[w];var P=arguments[0];w==="innerHTML"?m.a.fc(this.F,P):this.F[w]=P};var _=m.a.g.Z()+"_";m.C.F.prototype.data=function(w){if(arguments.length===1)return m.a.g.get(this.F,_+w);m.a.g.set(this.F,_+w,arguments[1])};var S=m.a.g.Z();m.C.F.prototype.nodes=function(){var w=this.F;if(arguments.length==0){var P=m.a.g.get(w,S)||{},M=P.lb||(this.ab===3?w.content:this.ab===4?w:e);if(!M||P.jd){var B=this.text();B&&B!==P.bb&&(M=m.a.Md(B,w.ownerDocument),m.a.g.set(w,S,{lb:M,bb:B,jd:!0}))}return M}P=arguments[0],this.ab!==e&&this.text(""),m.a.g.set(w,S,{lb:P})},m.C.ia=function(w){this.F=w},m.C.ia.prototype=new m.C.F,m.C.ia.prototype.constructor=m.C.ia,m.C.ia.prototype.text=function(){if(arguments.length==0){var w=m.a.g.get(this.F,S)||{};return w.bb===e&&w.lb&&(w.bb=w.lb.innerHTML),w.bb}m.a.g.set(this.F,S,{bb:arguments[0]})},m.b("templateSources",m.C),m.b("templateSources.domElement",m.C.F),m.b("templateSources.anonymousTemplate",m.C.ia)}(),function(){function _(G,k,Y){var W;for(k=m.h.nextSibling(k);G&&(W=G)!==k;)G=m.h.nextSibling(W),Y(W,G)}function S(G,k){if(G.length){var Y=G[0],W=G[G.length-1],Q=Y.parentNode,j=m.ga.instance,K=j.preprocessNode;if(K){if(_(Y,W,function(Z,he){var be=Z.previousSibling,re=K.call(j,Z);re&&(Z===Y&&(Y=re[0]||he),Z===W&&(W=re[re.length-1]||be))}),G.length=0,!Y)return;Y===W?G.push(Y):(G.push(Y,W),m.a.Ua(G,Q))}_(Y,W,function(Z){Z.nodeType!==1&&Z.nodeType!==8||m.vc(k,Z)}),_(Y,W,function(Z){Z.nodeType!==1&&Z.nodeType!==8||m.aa.cd(Z,[k])}),m.a.Ua(G,Q)}}function w(G){return G.nodeType?G:0<G.length?G[0]:null}function P(G,k,Y,W,Q){Q=Q||{};var j=(G&&w(G)||Y||{}).ownerDocument,K=Q.templateEngine||B;if(m.kc.xd(Y,K,j),Y=K.renderTemplate(Y,W,Q,j),typeof Y.length!="number"||0<Y.length&&typeof Y[0].nodeType!="number")throw Error("Template engine must return an array of DOM nodes");switch(j=!1,k){case"replaceChildren":m.h.va(G,Y),j=!0;break;case"replaceNode":m.a.Xc(G,Y),j=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+k)}return j&&(S(Y,W),Q.afterRender&&m.u.G(Q.afterRender,null,[Y,W[Q.as||"$data"]]),k=="replaceChildren"&&m.i.ma(G,m.i.H)),Y}function M(G,k,Y){return m.O(G)?G():typeof G=="function"?G(k,Y):G}var B;m.gc=function(G){if(G!=e&&!(G instanceof m.ca))throw Error("templateEngine must inherit from ko.templateEngine");B=G},m.dc=function(G,k,Y,W,Q){if(Y=Y||{},(Y.templateEngine||B)==e)throw Error("Set a template engine before calling renderTemplate");if(Q=Q||"replaceChildren",W){var j=w(W);return m.$(function(){var Z=k&&k instanceof m.fa?k:new m.fa(k,null,null,null,{exportDependencies:!0}),K=M(G,Z.$data,Z),Z=P(W,Q,K,Z,Y);Q=="replaceNode"&&(W=Z,j=w(W))},null,{Sa:function(){return!j||!m.a.Sb(j)},l:j&&Q=="replaceNode"?j.parentNode:j})}return m.aa.Xb(function(K){m.dc(G,k,Y,K,"replaceNode")})},m.Qd=function(G,k,Y,W,Q){function j(xe,Ce){m.u.G(m.a.ec,null,[W,xe,Z,Y,K,Ce]),m.i.ma(W,m.i.H)}function K(xe,Ce){S(Ce,he),Y.afterRender&&Y.afterRender(Ce,xe),he=null}function Z(xe,Ce){he=Q.createChildContext(xe,{as:be,noChildContext:Y.noChildContext,extend:function(Oe){Oe.$index=Ce,be&&(Oe[be+"Index"]=Ce)}});var we=M(G,xe,he);return P(W,"ignoreTargetNode",we,he,Y)}var he,be=Y.as,re=Y.includeDestroyed===!1||m.options.foreachHidesDestroyed&&!Y.includeDestroyed;if(re||Y.beforeRemove||!m.Pc(k))return m.$(function(){var xe=m.a.f(k)||[];typeof xe.length>"u"&&(xe=[xe]),re&&(xe=m.a.jb(xe,function(Ce){return Ce===e||Ce===null||!m.a.f(Ce._destroy)})),j(xe)},null,{l:W});j(k.v());var _e=k.subscribe(function(xe){j(k(),xe)},null,"arrayChange");return _e.l(W),_e};var U=m.a.g.Z(),V=m.a.g.Z();m.c.template={init:function(G,k){var Y=m.a.f(k());if(typeof Y=="string"||"name"in Y)m.h.Ea(G);else if("nodes"in Y){if(Y=Y.nodes||[],m.O(Y))throw Error('The "nodes" option must be a plain, non-observable array.');var W=Y[0]&&Y[0].parentNode;W&&m.a.g.get(W,V)||(W=m.a.Yb(Y),m.a.g.set(W,V,!0)),new m.C.ia(G).nodes(W)}else if(Y=m.h.childNodes(G),0<Y.length)W=m.a.Yb(Y),new m.C.ia(G).nodes(W);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:function(G,k,Y,W,Q){var j=k();k=m.a.f(j),Y=!0,W=null,typeof k=="string"?k={}:(j="name"in k?k.name:G,"if"in k&&(Y=m.a.f(k.if)),Y&&"ifnot"in k&&(Y=!m.a.f(k.ifnot)),Y&&!j&&(Y=!1)),"foreach"in k?W=m.Qd(j,Y&&k.foreach||[],k,G,Q):Y?(Y=Q,"data"in k&&(Y=Q.createChildContext(k.data,{as:k.as,noChildContext:k.noChildContext,exportDependencies:!0})),W=m.dc(j,Y,k,G)):m.h.Ea(G),Q=W,(k=m.a.g.get(G,U))&&typeof k.s=="function"&&k.s(),m.a.g.set(G,U,!Q||Q.ja&&!Q.ja()?e:Q)}},m.m.Ra.template=function(G){return G=m.m.ac(G),G.length==1&&G[0].unknown||m.m.Id(G,"name")?null:"This template engine does not support anonymous templates nested within its templates"},m.h.ea.template=!0}(),m.b("setTemplateEngine",m.gc),m.b("renderTemplate",m.dc),m.a.Kc=function(_,S,w){if(_.length&&S.length){var P,M,B,U,V;for(P=M=0;(!w||P<w)&&(U=_[M]);++M){for(B=0;V=S[B];++B)if(U.value===V.value){U.moved=V.index,V.moved=U.index,S.splice(B,1),P=B=0;break}P+=B}}},m.a.Pb=function(){function _(S,w,P,M,B){var U=Math.min,V=Math.max,G=[],k,Y=S.length,W,Q=w.length,j=Q-Y||1,K=Y+Q+1,Z,he,be;for(k=0;k<=Y;k++)for(he=Z,G.push(Z=[]),be=U(Q,k+j),W=V(0,k-1);W<=be;W++)Z[W]=W?k?S[k-1]===w[W-1]?he[W-1]:U(he[W]||K,Z[W-1]||K)+1:W+1:k+1;for(U=[],V=[],j=[],k=Y,W=Q;k||W;)Q=G[k][W]-1,W&&Q===G[k][W-1]?V.push(U[U.length]={status:P,value:w[--W],index:W}):k&&Q===G[k-1][W]?j.push(U[U.length]={status:M,value:S[--k],index:k}):(--W,--k,B.sparse||U.push({status:"retained",value:w[W]}));return m.a.Kc(j,V,!B.dontLimitMoves&&10*Y),U.reverse()}return function(S,w,P){return P=typeof P=="boolean"?{dontLimitMoves:P}:P||{},S=S||[],w=w||[],S.length<w.length?_(S,w,"added","deleted",P):_(w,S,"deleted","added",P)}}(),m.b("utils.compareArrays",m.a.Pb),function(){function _(P,M,B,U,V){var G=[],k=m.$(function(){var Y=M(B,V,m.a.Ua(G,P))||[];0<G.length&&(m.a.Xc(G,Y),U&&m.u.G(U,null,[B,Y,V])),G.length=0,m.a.Nb(G,Y)},null,{l:P,Sa:function(){return!m.a.kd(G)}});return{Y:G,$:k.ja()?k:e}}var S=m.a.g.Z(),w=m.a.g.Z();m.a.ec=function(P,M,B,U,V,G){function k(mt){we={Aa:mt,pb:m.ta(he++)},K.push(we),j||Ce.push(we)}function Y(mt){we=Q[mt],he!==we.pb.v()&&xe.push(we),we.pb(he++),m.a.Ua(we.Y,P),K.push(we)}function W(mt,Zt){if(mt)for(var me=0,Ae=Zt.length;me<Ae;me++)m.a.D(Zt[me].Y,function(Ut){mt(Ut,me,Zt[me].Aa)})}M=M||[],typeof M.length>"u"&&(M=[M]),U=U||{};var Q=m.a.g.get(P,S),j=!Q,K=[],Z=0,he=0,be=[],re=[],_e=[],xe=[],Ce=[],we,Oe=0;if(j)m.a.D(M,k);else{if(!G||Q&&Q._countWaitingForRemove){var ke=m.a.Mb(Q,function(mt){return mt.Aa});G=m.a.Pb(ke,M,{dontLimitMoves:U.dontLimitMoves,sparse:!0})}for(var ke=0,At,Bt,rt;At=G[ke];ke++)switch(Bt=At.moved,rt=At.index,At.status){case"deleted":for(;Z<rt;)Y(Z++);Bt===e&&(we=Q[Z],we.$&&(we.$.s(),we.$=e),m.a.Ua(we.Y,P).length&&(U.beforeRemove&&(K.push(we),Oe++,we.Aa===w?we=null:_e.push(we)),we&&be.push.apply(be,we.Y))),Z++;break;case"added":for(;he<rt;)Y(Z++);Bt!==e?(re.push(K.length),Y(Bt)):k(At.value)}for(;he<M.length;)Y(Z++);K._countWaitingForRemove=Oe}m.a.g.set(P,S,K),W(U.beforeMove,xe),m.a.D(be,U.beforeRemove?m.oa:m.removeNode);var Qe,Kt,ht;try{ht=P.ownerDocument.activeElement}catch{}if(re.length)for(;(ke=re.shift())!=e;){for(we=K[ke],Qe=e;ke;)if((Kt=K[--ke].Y)&&Kt.length){Qe=Kt[Kt.length-1];break}for(M=0;Z=we.Y[M];Qe=Z,M++)m.h.Wb(P,Z,Qe)}for(ke=0;we=K[ke];ke++){for(we.Y||m.a.extend(we,_(P,B,we.Aa,V,we.pb)),M=0;Z=we.Y[M];Qe=Z,M++)m.h.Wb(P,Z,Qe);!we.Ed&&V&&(V(we.Aa,we.Y,we.pb),we.Ed=!0,Qe=we.Y[we.Y.length-1])}for(ht&&P.ownerDocument.activeElement!=ht&&ht.focus(),W(U.beforeRemove,_e),ke=0;ke<_e.length;++ke)_e[ke].Aa=w;W(U.afterMove,xe),W(U.afterAdd,Ce)}}(),m.b("utils.setDomNodeChildrenFromArrayMapping",m.a.ec),m.ba=function(){this.allowTemplateRewriting=!1},m.ba.prototype=new m.ca,m.ba.prototype.constructor=m.ba,m.ba.prototype.renderTemplateSource=function(_,S,w,P){return(S=!(9>m.a.W)&&_.nodes?_.nodes():null)?m.a.la(S.cloneNode(!0).childNodes):(_=_.text(),m.a.ua(_,P))},m.ba.Ma=new m.ba,m.gc(m.ba.Ma),m.b("nativeTemplateEngine",m.ba),function(){m.$a=function(){var S=this.Hd=function(){if(!o||!o.tmpl)return 0;try{if(0<=o.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch{}return 1}();this.renderTemplateSource=function(w,P,M,B){if(B=B||n,M=M||{},2>S)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var U=w.data("precompiled");return U||(U=w.text()||"",U=o.template(null,"{{ko_with $item.koBindingContext}}"+U+"{{/ko_with}}"),w.data("precompiled",U)),w=[P.$data],P=o.extend({koBindingContext:P},M.templateOptions),P=o.tmpl(U,w,P),P.appendTo(B.createElement("div")),o.fragments={},P},this.createJavaScriptEvaluatorBlock=function(w){return"{{ko_code ((function() { return "+w+" })()) }}"},this.addTemplate=function(w,P){n.write("<script type='text/html' id='"+w+"'>"+P+"</script>")},0<S&&(o.tmpl.tag.ko_code={open:"__.push($1 || '');"},o.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},m.$a.prototype=new m.ca,m.$a.prototype.constructor=m.$a;var _=new m.$a;0<_.Hd&&m.gc(_),m.b("jqueryTmplTemplateEngine",m.$a)}()})})()})()})();var iCt=ko;typeof window<"u"?(ko=window.ko,typeof O3<"u"?window.ko=O3:delete window.ko):(ko=global.ko,typeof O3<"u"?global.ko=O3:delete global.ko);var EA=iCt;/** * @license * Knockout ES5 plugin - https://github.com/SteveSanderson/knockout-es5 * Copyright (c) Steve Sanderson * MIT license */var O$="__knockoutObservables",M$="__knockoutSubscribable";function zAe(e,t){if(!e)throw new Error("When calling ko.track, you must pass an object as the first parameter.");var n=this,i=HAe(e,!0);return t=t||Object.getOwnPropertyNames(e),t.forEach(function(o){if(!(o===O$||o===M$)&&!(o in i)){var r=e[o],s=r instanceof Array,a=n.isObservable(r)?r:s?n.observableArray(r):n.observable(r);Object.defineProperty(e,o,{configurable:!0,enumerable:!0,get:a,set:n.isWriteableObservable(a)?a:void 0}),i[o]=a,s&&rCt(n,a)}}),e}function HAe(e,t){var n=e[O$];return!n&&t&&(n={},Object.defineProperty(e,O$,{value:n})),n}function oCt(e,t,n){var i=this,o={owner:e,deferEvaluation:!0};if(typeof n=="function")o.read=n;else{if("value"in n)throw new Error('For ko.defineProperty, you must not specify a "value" for the property. You must provide a "get" function.');if(typeof n.get!="function")throw new Error('For ko.defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called "get".');o.read=n.get,o.write=n.set}return e[t]=i.computed(o),zAe.call(i,e,[t]),e}function rCt(e,t){var n=null;e.computed(function(){n&&(n.dispose(),n=null);var i=t();i instanceof Array&&(n=sCt(e,t,i))})}function sCt(e,t,n){var i=aCt(e,n);return i.subscribe(t)}function aCt(e,t){var n=t[M$];if(!n){n=new e.subscribable,Object.defineProperty(t,M$,{value:n});var i={};cCt(t,n,i),lCt(e,t,n,i)}return n}function cCt(e,t,n){["pop","push","reverse","shift","sort","splice","unshift"].forEach(function(i){var o=e[i];e[i]=function(){var r=o.apply(this,arguments);return n.pause!==!0&&t.notifySubscribers(this),r}})}function lCt(e,t,n,i){["remove","removeAll","destroy","destroyAll","replace"].forEach(function(o){Object.defineProperty(t,o,{enumerable:!1,value:function(){var r;i.pause=!0;try{r=e.observableArray.fn[o].apply(e.observableArray(t),arguments)}finally{i.pause=!1}return n.notifySubscribers(t),r}})})}function GAe(e,t){if(!e)return null;var n=HAe(e,!1);return n&&n[t]||null}function uCt(e,t){var n=GAe(e,t);n&&n.valueHasMutated()}function fCt(e){e.track=zAe,e.getObservable=GAe,e.valueHasMutated=uCt,e.defineProperty=oCt}var M3={attachToKo:fCt};var WAe="http://www.w3.org/2000/svg",jAe="cesium-svgPath-svg",dCt={register:function(e){e.bindingHandlers.cesiumSvgPath={init:function(t,n){let i=document.createElementNS(WAe,"svg:svg");i.setAttribute("class",jAe);let o=document.createElementNS(WAe,"path");return i.appendChild(o),e.virtualElements.setDomNodeChildren(t,[i]),e.computed({read:function(){let r=e.unwrap(n());o.setAttribute("d",e.unwrap(r.path));let s=e.unwrap(r.width),a=e.unwrap(r.height);i.setAttribute("width",s),i.setAttribute("height",a),i.setAttribute("viewBox",`0 0 ${s} ${a}`),r.css&&i.setAttribute("class",`${jAe} ${e.unwrap(r.css)}`)},disposeWhenNodeIsRemoved:t}),{controlsDescendantBindings:!0}}},e.virtualElements.allowedBindings.cesiumSvgPath=!0}},L3=dCt;M3.attachToKo(EA);L3.register(EA);var Te=EA;function N3(e){l(e)||(e=new ah),this._clock=e,this._eventHelper=new Ir,this._eventHelper.add(e.onTick,this.synchronize,this),this.systemTime=Te.observable(J.now()),this.systemTime.equalityComparer=J.equals,this.startTime=Te.observable(e.startTime),this.startTime.equalityComparer=J.equals,this.startTime.subscribe(function(t){e.startTime=t,this.synchronize()},this),this.stopTime=Te.observable(e.stopTime),this.stopTime.equalityComparer=J.equals,this.stopTime.subscribe(function(t){e.stopTime=t,this.synchronize()},this),this.currentTime=Te.observable(e.currentTime),this.currentTime.equalityComparer=J.equals,this.currentTime.subscribe(function(t){e.currentTime=t,this.synchronize()},this),this.multiplier=Te.observable(e.multiplier),this.multiplier.subscribe(function(t){e.multiplier=t,this.synchronize()},this),this.clockStep=Te.observable(e.clockStep),this.clockStep.subscribe(function(t){e.clockStep=t,this.synchronize()},this),this.clockRange=Te.observable(e.clockRange),this.clockRange.subscribe(function(t){e.clockRange=t,this.synchronize()},this),this.canAnimate=Te.observable(e.canAnimate),this.canAnimate.subscribe(function(t){e.canAnimate=t,this.synchronize()},this),this.shouldAnimate=Te.observable(e.shouldAnimate),this.shouldAnimate.subscribe(function(t){e.shouldAnimate=t,this.synchronize()},this),Te.track(this,["systemTime","startTime","stopTime","currentTime","multiplier","clockStep","clockRange","canAnimate","shouldAnimate"])}Object.defineProperties(N3.prototype,{clock:{get:function(){return this._clock}}});N3.prototype.synchronize=function(){let e=this._clock;this.systemTime=J.now(),this.startTime=e.startTime,this.stopTime=e.stopTime,this.currentTime=e.currentTime,this.multiplier=e.multiplier,this.clockStep=e.clockStep,this.clockRange=e.clockRange,this.canAnimate=e.canAnimate,this.shouldAnimate=e.shouldAnimate};N3.prototype.isDestroyed=function(){return!1};N3.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var F3=N3;function hCt(){this.canExecute=void 0,this.beforeExecute=void 0,this.afterExecute=void 0,de.throwInstantiationError()}var L$=hCt;var B3={};B3.createCheckbox=function(e,t,n){let i=document.createElement("div"),o=document.createElement("label"),r=document.createElement("input");r.type="checkbox";let s=`checked: ${t}`;return l(n)&&(s+=`, enable: ${n}`),r.setAttribute("data-bind",s),o.appendChild(r),o.appendChild(document.createTextNode(e)),i.appendChild(o),i};B3.createSection=function(e,t,n,i){let o=document.createElement("div");o.className="cesium-cesiumInspector-section",o.setAttribute("data-bind",`css: { "cesium-cesiumInspector-section-collapsed": !${n} }`),e.appendChild(o);let r=document.createElement("h3");r.className="cesium-cesiumInspector-sectionHeader",r.appendChild(document.createTextNode(t)),r.setAttribute("data-bind",`click: ${i}`),o.appendChild(r);let s=document.createElement("div");return s.className="cesium-cesiumInspector-sectionContent",o.appendChild(s),s};B3.createRangeInput=function(e,t,n,i,o,r){r=y(r,t);let s=document.createElement("input");s.setAttribute("data-bind",`value: ${r}`),s.type="number";let a=document.createElement("input");a.type="range",a.min=n,a.max=i,a.step=y(o,"any"),a.setAttribute("data-bind",`valueUpdate: "input", value: ${t}`);let c=document.createElement("div");c.appendChild(a);let u=document.createElement("div");return u.className="cesium-cesiumInspector-slider",u.appendChild(document.createTextNode(e)),u.appendChild(s),u.appendChild(c),u};B3.createButton=function(e,t,n){let i=document.createElement("button");i.type="button",i.textContent=e,i.className="cesium-cesiumInspector-pickButton";let o=`click: ${t}`;return l(n)&&(o+=`, css: {"cesium-cesiumInspector-pickButtonHighlight" : ${n}}`),i.setAttribute("data-bind",o),i};var Ua=B3;function qAe(e,t){this._command=e,t=y(t,y.EMPTY_OBJECT),this.toggled=y(t.toggled,!1),this.tooltip=y(t.tooltip,""),Te.track(this,["toggled","tooltip"])}Object.defineProperties(qAe.prototype,{command:{get:function(){return this._command}}});var V0=qAe;function mCt(e,t){t=y(t,!0);let n=new pe,i=new pe;function o(){let r={args:arguments,cancel:!1},s;return n.raiseEvent(r),r.cancel||(s=e.apply(null,arguments),i.raiseEvent(s)),s}return o.canExecute=t,Te.track(o,["canExecute"]),Object.defineProperties(o,{beforeExecute:{value:n},afterExecute:{value:i}}),o}var Cn=mCt;function pCt(e,t,n,i,o){return n.call(i,e[t]),Te.getObservable(e,t).subscribe(n,i,o)}var _a=pCt;var SA="http://www.w3.org/2000/svg",KAe="http://www.w3.org/1999/xlink",_5,k3=H.fromCssColorString("rgba(247,250,255,0.384)"),g5=H.fromCssColorString("rgba(143,191,255,0.216)"),N$=H.fromCssColorString("rgba(153,197,255,0.098)"),y5=H.fromCssColorString("rgba(255,255,255,0.086)"),_Ct=H.fromCssColorString("rgba(255,255,255,0.267)"),gCt=H.fromCssColorString("rgba(255,255,255,0)"),YAe=H.fromCssColorString("rgba(66,67,68,0.3)"),XAe=H.fromCssColorString("rgba(0,0,0,0.5)");function U0(e){return H.fromCssColorString(window.getComputedStyle(e).getPropertyValue("color"))}var V3={animation_pathReset:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z"},animation_pathPause:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M13,5.5,7.5,5.5,7.5,25.5,13,25.5zM24.5,5.5,19,5.5,19,25.5,24.5,25.5z"},animation_pathPlay:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathPlayReverse:{tagName:"path",transform:"translate(16,16) scale(-0.85,0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathLoop:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z"},animation_pathClock:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-15.5)",d:"M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z"},animation_pathWingButton:{tagName:"path",d:"m 4.5,0.5 c -2.216,0 -4,1.784 -4,4 l 0,24 c 0,2.216 1.784,4 4,4 l 13.71875,0 C 22.478584,27.272785 27.273681,22.511272 32.5,18.25 l 0,-13.75 c 0,-2.216 -1.784,-4 -4,-4 l -24,0 z"},animation_pathPointer:{tagName:"path",d:"M-15,-65,-15,-55,15,-55,15,-65,0,-95z"},animation_pathSwooshFX:{tagName:"path",d:"m 85,0 c 0,16.617 -4.813944,35.356 -13.131081,48.4508 h 6.099803 c 8.317138,-13.0948 13.13322,-28.5955 13.13322,-45.2124 0,-46.94483 -38.402714,-85.00262 -85.7743869,-85.00262 -1.0218522,0 -2.0373001,0.0241 -3.0506131,0.0589 45.958443,1.59437 82.723058,35.77285 82.723058,81.70532 z"}};function Hh(e){let t=document.createElementNS(SA,e.tagName);for(let n in e)if(e.hasOwnProperty(n)&&n!=="tagName")if(n==="children"){let i=e.children.length;for(let o=0;o<i;++o)t.appendChild(Hh(e.children[o]))}else n.indexOf("xlink:")===0?t.setAttributeNS(KAe,n.substring(6),e[n]):n==="textContent"?t.textContent=e[n]:t.setAttribute(n,e[n]);return t}function F$(e,t,n){let i=document.createElementNS(SA,"text");i.setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("class","cesium-animation-svgText");let o=document.createElementNS(SA,"tspan");return o.textContent=n,i.appendChild(o),i}function yCt(e,t,n){e.setAttribute("transform",`translate(100,100) rotate(${n})`),t.setAttribute("transform",`rotate(${n})`)}var x5=new H;function Qr(e,t){let n=t.alpha,i=1-n;return x5.red=e.red*i+t.red*n,x5.green=e.green*i+t.green*n,x5.blue=e.blue*i+t.blue*n,x5.toCssColorString()}function B$(e,t,n){let i=V3[n],o={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{tagName:"rect",class:"cesium-animation-buttonGlow",width:32,height:32,rx:2,ry:2},{tagName:"rect",class:"cesium-animation-buttonMain",width:32,height:32,rx:4,ry:4},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return Hh(o)}function xCt(e,t,n){let i=V3[n],o=V3.animation_pathWingButton,r={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{class:"cesium-animation-buttonGlow",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonMain",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return Hh(r)}function bCt(e,t){let n=e._viewModel,i=n.shuttleRingDragging;if(!(i&&_5!==e))if(t.type==="mousedown"||i&&t.type==="mousemove"||t.type==="touchstart"&&t.touches.length===1||i&&t.type==="touchmove"&&t.touches.length===1){let o=e._centerX,r=e._centerY,a=e._svgNode.getBoundingClientRect(),c,u;if(t.type==="touchstart"||t.type==="touchmove"?(c=t.touches[0].clientX,u=t.touches[0].clientY):(c=t.clientX,u=t.clientY),!i&&(c>a.right||c<a.left||u<a.top||u>a.bottom))return;let f=e._shuttleRingPointer.getBoundingClientRect(),d=c-o-a.left,p=u-r-a.top,g=Math.atan2(p,d)*180/Math.PI+90;g>180&&(g-=360);let m=n.shuttleRingAngle;i||c<f.right&&c>f.left&&u>f.top&&u<f.bottom?(_5=e,n.shuttleRingDragging=!0,n.shuttleRingAngle=g):g<m?n.slower():g>m&&n.faster(),t.preventDefault()}else e===_5&&(_5=void 0),n.shuttleRingDragging=!1}function bg(e,t){this._viewModel=t,this.svgElement=e,this._enabled=void 0,this._toggled=void 0;let n=this;this._clickFunction=function(){let i=n._viewModel.command;i.canExecute&&i()},e.addEventListener("click",this._clickFunction,!0),this._subscriptions=[_a(t,"toggled",this.setToggled,this),_a(t,"tooltip",this.setTooltip,this),_a(t.command,"canExecute",this.setEnabled,this)]}bg.prototype.destroy=function(){this.svgElement.removeEventListener("click",this._clickFunction,!0);let e=this._subscriptions;for(let t=0,n=e.length;t<n;t++)e[t].dispose();ue(this)};bg.prototype.isDestroyed=function(){return!1};bg.prototype.setEnabled=function(e){if(this._enabled!==e){if(this._enabled=e,!e){this.svgElement.setAttribute("class","cesium-animation-buttonDisabled");return}if(this._toggled){this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled");return}this.svgElement.setAttribute("class","cesium-animation-rectButton")}};bg.prototype.setToggled=function(e){this._toggled!==e&&(this._toggled=e,this._enabled&&(e?this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled"):this.svgElement.setAttribute("class","cesium-animation-rectButton")))};bg.prototype.setTooltip=function(e){this.svgElement.getElementsByTagName("title")[0].textContent=e};function Nv(e,t){e=Pn(e),this._viewModel=t,this._container=e,this._centerX=0,this._centerY=0,this._defsElement=void 0,this._svgNode=void 0,this._topG=void 0,this._lastHeight=void 0,this._lastWidth=void 0;let n=e.ownerDocument,i=document.createElement("style");i.textContent=".cesium-animation-rectButton .cesium-animation-buttonGlow { filter: url(#animation_blurred); }.cesium-animation-rectButton .cesium-animation-buttonMain { fill: url(#animation_buttonNormal); }.cesium-animation-buttonToggled .cesium-animation-buttonMain { fill: url(#animation_buttonToggled); }.cesium-animation-rectButton:hover .cesium-animation-buttonMain { fill: url(#animation_buttonHovered); }.cesium-animation-buttonDisabled .cesium-animation-buttonMain { fill: url(#animation_buttonDisabled); }.cesium-animation-shuttleRingG .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshGradient); }.cesium-animation-shuttleRingG:hover .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshHovered); }.cesium-animation-shuttleRingPointer { fill: url(#animation_shuttleRingPointerGradient); }.cesium-animation-shuttleRingPausePointer { fill: url(#animation_shuttleRingPointerPaused); }.cesium-animation-knobOuter { fill: url(#animation_knobOuter); }.cesium-animation-knobInner { fill: url(#animation_knobInner); }",n.head.insertBefore(i,n.head.childNodes[0]);let o=document.createElement("div");o.className="cesium-animation-theme",o.innerHTML='<div class="cesium-animation-themeNormal"></div><div class="cesium-animation-themeHover"></div><div class="cesium-animation-themeSelect"></div><div class="cesium-animation-themeDisabled"></div><div class="cesium-animation-themeKnob"></div><div class="cesium-animation-themePointer"></div><div class="cesium-animation-themeSwoosh"></div><div class="cesium-animation-themeSwooshHover"></div>',this._theme=o,this._themeNormal=o.childNodes[0],this._themeHover=o.childNodes[1],this._themeSelect=o.childNodes[2],this._themeDisabled=o.childNodes[3],this._themeKnob=o.childNodes[4],this._themePointer=o.childNodes[5],this._themeSwoosh=o.childNodes[6],this._themeSwooshHover=o.childNodes[7];let r=document.createElementNS(SA,"svg:svg");this._svgNode=r,r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",KAe);let s=document.createElementNS(SA,"g");this._topG=s,this._realtimeSVG=new bg(xCt(3,4,"animation_pathClock"),t.playRealtimeViewModel),this._playReverseSVG=new bg(B$(44,99,"animation_pathPlayReverse"),t.playReverseViewModel),this._playForwardSVG=new bg(B$(124,99,"animation_pathPlay"),t.playForwardViewModel),this._pauseSVG=new bg(B$(84,99,"animation_pathPause"),t.pauseViewModel);let a=document.createElementNS(SA,"g");a.appendChild(this._realtimeSVG.svgElement),a.appendChild(this._playReverseSVG.svgElement),a.appendChild(this._playForwardSVG.svgElement),a.appendChild(this._pauseSVG.svgElement);let c=Hh({tagName:"circle",class:"cesium-animation-shuttleRingBack",cx:100,cy:100,r:99});this._shuttleRingBackPanel=c;let u=V3.animation_pathSwooshFX,f=V3.animation_pathPointer,d=Hh({tagName:"g",class:"cesium-animation-shuttleRingSwoosh",children:[{tagName:u.tagName,transform:"translate(100,97) scale(-1,1)",id:"animation_pathSwooshFX",d:u.d},{tagName:u.tagName,transform:"translate(100,97)",id:"animation_pathSwooshFX",d:u.d},{tagName:"line",x1:100,y1:8,x2:100,y2:22}]});this._shuttleRingSwooshG=d,this._shuttleRingPointer=Hh({class:"cesium-animation-shuttleRingPointer",id:"animation_pathPointer",tagName:f.tagName,d:f.d});let p=Hh({tagName:"g",transform:"translate(100,100)"});this._knobOuter=Hh({tagName:"circle",class:"cesium-animation-knobOuter",cx:0,cy:0,r:71});let g=61,m=Hh({tagName:"circle",class:"cesium-animation-knobInner",cx:0,cy:0,r:g});this._knobDate=F$(0,-24,""),this._knobTime=F$(0,-7,""),this._knobStatus=F$(0,-41,"");let x=Hh({tagName:"circle",class:"cesium-animation-blank",cx:0,cy:0,r:g}),b=document.createElementNS(SA,"g");b.setAttribute("class","cesium-animation-shuttleRingG"),e.appendChild(o),s.appendChild(b),s.appendChild(p),s.appendChild(a),b.appendChild(c),b.appendChild(d),b.appendChild(this._shuttleRingPointer),p.appendChild(this._knobOuter),p.appendChild(m),p.appendChild(this._knobDate),p.appendChild(this._knobTime),p.appendChild(this._knobStatus),p.appendChild(x),r.appendChild(s),e.appendChild(r);let T=this;function C(O){bCt(T,O)}this._mouseCallback=C,c.addEventListener("mousedown",C,!0),c.addEventListener("touchstart",C,!0),d.addEventListener("mousedown",C,!0),d.addEventListener("touchstart",C,!0),n.addEventListener("mousemove",C,!0),n.addEventListener("touchmove",C,!0),n.addEventListener("mouseup",C,!0),n.addEventListener("touchend",C,!0),n.addEventListener("touchcancel",C,!0),this._shuttleRingPointer.addEventListener("mousedown",C,!0),this._shuttleRingPointer.addEventListener("touchstart",C,!0),this._knobOuter.addEventListener("mousedown",C,!0),this._knobOuter.addEventListener("touchstart",C,!0);let A=this._knobTime.childNodes[0],E=this._knobDate.childNodes[0],v=this._knobStatus.childNodes[0],D;this._subscriptions=[_a(t.pauseViewModel,"toggled",function(O){D!==O&&(D=O,D?T._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPausePointer"):T._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPointer"))}),_a(t,"shuttleRingAngle",function(O){yCt(T._shuttleRingPointer,T._knobOuter,O)}),_a(t,"dateLabel",function(O){E.textContent!==O&&(E.textContent=O)}),_a(t,"timeLabel",function(O){A.textContent!==O&&(A.textContent=O)}),_a(t,"multiplierLabel",function(O){v.textContent!==O&&(v.textContent=O)})],this.applyThemeChanges(),this.resize()}Object.defineProperties(Nv.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});Nv.prototype.isDestroyed=function(){return!1};Nv.prototype.destroy=function(){l(this._observer)&&(this._observer.disconnect(),this._observer=void 0);let e=this._container.ownerDocument,t=this._mouseCallback;this._shuttleRingBackPanel.removeEventListener("mousedown",t,!0),this._shuttleRingBackPanel.removeEventListener("touchstart",t,!0),this._shuttleRingSwooshG.removeEventListener("mousedown",t,!0),this._shuttleRingSwooshG.removeEventListener("touchstart",t,!0),e.removeEventListener("mousemove",t,!0),e.removeEventListener("touchmove",t,!0),e.removeEventListener("mouseup",t,!0),e.removeEventListener("touchend",t,!0),e.removeEventListener("touchcancel",t,!0),this._shuttleRingPointer.removeEventListener("mousedown",t,!0),this._shuttleRingPointer.removeEventListener("touchstart",t,!0),this._knobOuter.removeEventListener("mousedown",t,!0),this._knobOuter.removeEventListener("touchstart",t,!0),this._container.removeChild(this._svgNode),this._container.removeChild(this._theme),this._realtimeSVG.destroy(),this._playReverseSVG.destroy(),this._playForwardSVG.destroy(),this._pauseSVG.destroy();let n=this._subscriptions;for(let i=0,o=n.length;i<o;i++)n[i].dispose();return ue(this)};Nv.prototype.resize=function(){let e=this._container.clientWidth,t=this._container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;let n=this._svgNode,i=200,o=132,r=e,s=t;e===0&&t===0?(r=i,s=o):e===0?(s=t,r=i*(t/o)):t===0&&(r=e,s=o*(e/i));let a=r/i,c=s/o;n.style.cssText=`width: ${r}px; height: ${s}px; position: absolute; bottom: 0; left: 0; overflow: hidden;`,n.setAttribute("width",r),n.setAttribute("height",s),n.setAttribute("viewBox",`0 0 ${r} ${s}`),this._topG.setAttribute("transform",`scale(${a},${c})`),this._centerX=Math.max(1,100*a),this._centerY=Math.max(1,100*c),this._lastHeight=e,this._lastWidth=t};Nv.prototype.applyThemeChanges=function(){let e=this._container.ownerDocument;if(!e.body.contains(this._container)){if(l(this._observer))return;let f=this;f._observer=new MutationObserver(function(){e.body.contains(f._container)&&(f._observer.disconnect(),f._observer=void 0,f.applyThemeChanges())}),f._observer.observe(e,{childList:!0,subtree:!0});return}let t=U0(this._themeNormal),n=U0(this._themeHover),i=U0(this._themeSelect),o=U0(this._themeDisabled),r=U0(this._themeKnob),s=U0(this._themePointer),a=U0(this._themeSwoosh),c=U0(this._themeSwooshHover),u=Hh({tagName:"defs",children:[{id:"animation_buttonNormal",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Qr(t,k3)},{tagName:"stop",offset:"12%","stop-color":Qr(t,g5)},{tagName:"stop",offset:"46%","stop-color":Qr(t,N$)},{tagName:"stop",offset:"81%","stop-color":Qr(t,y5)}]},{id:"animation_buttonHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Qr(n,k3)},{tagName:"stop",offset:"12%","stop-color":Qr(n,g5)},{tagName:"stop",offset:"46%","stop-color":Qr(n,N$)},{tagName:"stop",offset:"81%","stop-color":Qr(n,y5)}]},{id:"animation_buttonToggled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Qr(i,k3)},{tagName:"stop",offset:"12%","stop-color":Qr(i,g5)},{tagName:"stop",offset:"46%","stop-color":Qr(i,N$)},{tagName:"stop",offset:"81%","stop-color":Qr(i,y5)}]},{id:"animation_buttonDisabled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Qr(o,_Ct)},{tagName:"stop",offset:"75%","stop-color":Qr(o,gCt)}]},{id:"animation_blurred",tagName:"filter",width:"200%",height:"200%",x:"-50%",y:"-50%",children:[{tagName:"feGaussianBlur",stdDeviation:4,in:"SourceGraphic"}]},{id:"animation_shuttleRingSwooshGradient",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":a.toCssColorString()}]},{id:"animation_shuttleRingSwooshHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":c.toCssColorString()}]},{id:"animation_shuttleRingPointerGradient",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"40%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"60%","stop-color":Qr(s,XAe)},{tagName:"stop",offset:"100%","stop-color":Qr(s,XAe)}]},{id:"animation_shuttleRingPointerPaused",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":"#CCC"},{tagName:"stop",offset:"40%","stop-color":"#CCC"},{tagName:"stop",offset:"60%","stop-color":"#555"},{tagName:"stop",offset:"100%","stop-color":"#555"}]},{id:"animation_knobOuter",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Qr(r,k3)},{tagName:"stop",offset:"60%","stop-color":Qr(r,YAe)},{tagName:"stop",offset:"85%","stop-color":Qr(r,g5)}]},{id:"animation_knobInner",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Qr(r,YAe)},{tagName:"stop",offset:"60%","stop-color":Qr(r,k3)},{tagName:"stop",offset:"85%","stop-color":Qr(r,y5)}]}]});l(this._defsElement)?this._svgNode.replaceChild(u,this._defsElement):this._svgNode.appendChild(u),this._defsElement=u};var U3=Nv;var TCt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],z0=15,Fv=105;function ZAe(e,t){return e-t}function k$(e,t){let n=Do(t,e,ZAe);return n<0?~n:n}function ACt(e,t){if(Math.abs(e)<=z0)return e/z0;let n=z0,i=Fv,o,r=0,s;return e>0?(o=Math.log(t[t.length-1]),s=(o-r)/(i-n),Math.exp(r+s*(e-n))):(o=Math.log(-t[0]),s=(o-r)/(i-n),-Math.exp(r+s*(Math.abs(e)-n)))}function CCt(e,t,n){if(n.clockStep===fo.SYSTEM_CLOCK)return z0;if(Math.abs(e)<=1)return e*z0;let i=t[t.length-1];e>i?e=i:e<-i&&(e=-i);let o=z0,r=Fv,s,a=0,c;return e>0?(s=Math.log(i),c=(s-a)/(r-o),(Math.log(e)-a)/c+o):(s=Math.log(-t[0]),c=(s-a)/(r-o),-((Math.log(Math.abs(e))-a)/c+o))}function pd(e){let t=this;this._clockViewModel=e,this._allShuttleRingTicks=[],this._dateFormatter=pd.defaultDateFormatter,this._timeFormatter=pd.defaultTimeFormatter,this.shuttleRingDragging=!1,this.snapToTicks=!1,Te.track(this,["_allShuttleRingTicks","_dateFormatter","_timeFormatter","shuttleRingDragging","snapToTicks"]),this._sortedFilteredPositiveTicks=[],this.setShuttleRingTicks(pd.defaultTicks),this.timeLabel=void 0,Te.defineProperty(this,"timeLabel",function(){return t._timeFormatter(t._clockViewModel.currentTime,t)}),this.dateLabel=void 0,Te.defineProperty(this,"dateLabel",function(){return t._dateFormatter(t._clockViewModel.currentTime,t)}),this.multiplierLabel=void 0,Te.defineProperty(this,"multiplierLabel",function(){let s=t._clockViewModel;if(s.clockStep===fo.SYSTEM_CLOCK)return"Today";let a=s.multiplier;return a%1===0?`${a.toFixed(0)}x`:`${a.toFixed(3).replace(/0{0,3}$/,"")}x`}),this.shuttleRingAngle=void 0,Te.defineProperty(this,"shuttleRingAngle",{get:function(){return CCt(e.multiplier,t._allShuttleRingTicks,e)},set:function(s){s=Math.max(Math.min(s,Fv),-Fv);let a=t._allShuttleRingTicks,c=t._clockViewModel;if(c.clockStep=fo.SYSTEM_CLOCK_MULTIPLIER,Math.abs(s)===Fv){c.multiplier=s>0?a[a.length-1]:a[0];return}let u=ACt(s,a);if(t.snapToTicks)u=a[k$(u,a)];else if(u!==0){let f=Math.abs(u);if(f>100){let d=f.toFixed(0).length-2,p=Math.pow(10,d);u=Math.round(u/p)*p|0}else f>z0?u=Math.round(u):f>1?u=+u.toFixed(1):f>0&&(u=+u.toFixed(2))}c.multiplier=u}}),this._canAnimate=void 0,Te.defineProperty(this,"_canAnimate",function(){let s=t._clockViewModel,a=s.clockRange;if(t.shuttleRingDragging||a===Nr.UNBOUNDED)return!0;let c=s.multiplier,u=s.currentTime,f=s.startTime,d=!1;if(a===Nr.LOOP_STOP)d=J.greaterThan(u,f)||u.equals(f)&&c>0;else{let p=s.stopTime;d=J.greaterThan(u,f)&&J.lessThan(u,p)||u.equals(f)&&c>0||u.equals(p)&&c<0}return d||(s.shouldAnimate=!1),d}),this._isSystemTimeAvailable=void 0,Te.defineProperty(this,"_isSystemTimeAvailable",function(){let s=t._clockViewModel;if(s.clockRange===Nr.UNBOUNDED)return!0;let c=s.systemTime;return J.greaterThanOrEquals(c,s.startTime)&&J.lessThanOrEquals(c,s.stopTime)}),this._isAnimating=void 0,Te.defineProperty(this,"_isAnimating",function(){return t._clockViewModel.shouldAnimate&&(t._canAnimate||t.shuttleRingDragging)});let n=Cn(function(){let s=t._clockViewModel;s.shouldAnimate?s.shouldAnimate=!1:t._canAnimate&&(s.shouldAnimate=!0)});this._pauseViewModel=new V0(n,{toggled:Te.computed(function(){return!t._isAnimating}),tooltip:"Pause"});let i=Cn(function(){let s=t._clockViewModel,a=s.multiplier;a>0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playReverseViewModel=new V0(i,{toggled:Te.computed(function(){return t._isAnimating&&e.multiplier<0}),tooltip:"Play Reverse"});let o=Cn(function(){let s=t._clockViewModel,a=s.multiplier;a<0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playForwardViewModel=new V0(o,{toggled:Te.computed(function(){return t._isAnimating&&e.multiplier>0&&e.clockStep!==fo.SYSTEM_CLOCK}),tooltip:"Play Forward"});let r=Cn(function(){t._clockViewModel.clockStep=fo.SYSTEM_CLOCK},Te.getObservable(this,"_isSystemTimeAvailable"));this._playRealtimeViewModel=new V0(r,{toggled:Te.computed(function(){return e.clockStep===fo.SYSTEM_CLOCK}),tooltip:Te.computed(function(){return t._isSystemTimeAvailable?"Today (real-time)":"Current time not in range"})}),this._slower=Cn(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,u=k$(c,a)-1;u>=0&&(s.multiplier=a[u])}),this._faster=Cn(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,u=k$(c,a)+1;u<a.length&&(s.multiplier=a[u])})}pd.defaultDateFormatter=function(e,t){let n=J.toGregorianDate(e);return`${TCt[n.month-1]} ${n.day} ${n.year}`};pd.defaultTicks=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800];pd.defaultTimeFormatter=function(e,t){let n=J.toGregorianDate(e),i=Math.round(n.millisecond);return Math.abs(t._clockViewModel.multiplier)<1?`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")}.${i.toString().padStart(3,"0")}`:`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")} UTC`};pd.prototype.getShuttleRingTicks=function(){return this._sortedFilteredPositiveTicks.slice(0)};pd.prototype.setShuttleRingTicks=function(e){let t,n,i,o={},r=this._sortedFilteredPositiveTicks;for(r.length=0,t=0,n=e.length;t<n;++t)i=e[t],o.hasOwnProperty(i)||(o[i]=!0,r.push(i));r.sort(ZAe);let s=[];for(n=r.length,t=n-1;t>=0;--t)i=r[t],i!==0&&s.push(-i);Array.prototype.push.apply(s,r),this._allShuttleRingTicks=s};Object.defineProperties(pd.prototype,{slower:{get:function(){return this._slower}},faster:{get:function(){return this._faster}},clockViewModel:{get:function(){return this._clockViewModel}},pauseViewModel:{get:function(){return this._pauseViewModel}},playReverseViewModel:{get:function(){return this._playReverseViewModel}},playForwardViewModel:{get:function(){return this._playForwardViewModel}},playRealtimeViewModel:{get:function(){return this._playRealtimeViewModel}},dateFormatter:{get:function(){return this._dateFormatter},set:function(e){this._dateFormatter=e}},timeFormatter:{get:function(){return this._timeFormatter},set:function(e){this._timeFormatter=e}}});pd._maxShuttleRingAngle=Fv;pd._realtimeShuttleRingAngle=z0;var z3=pd;function $Ae(e){e=y(e,y.EMPTY_OBJECT);let t=e.globe,n=y(e.imageryProviderViewModels,[]),i=y(e.terrainProviderViewModels,[]);this._globe=t,this.imageryProviderViewModels=n.slice(0),this.terrainProviderViewModels=i.slice(0),this.dropDownVisible=!1,Te.track(this,["imageryProviderViewModels","terrainProviderViewModels","dropDownVisible"]);let o=Te.getObservable(this,"imageryProviderViewModels"),r=Te.pureComputed(function(){let d=o(),p={},g;for(g=0;g<d.length;g++){let b=d[g],T=b.category;l(p[T])?p[T].push(b):p[T]=[b]}let m=Object.keys(p),x=[];for(g=0;g<m.length;g++){let b=m[g];x.push({name:b,providers:p[b]})}return x});this._imageryProviders=r;let s=Te.getObservable(this,"terrainProviderViewModels"),a=Te.pureComputed(function(){let d=s(),p={},g;for(g=0;g<d.length;g++){let b=d[g],T=b.category;l(p[T])?p[T].push(b):p[T]=[b]}let m=Object.keys(p),x=[];for(g=0;g<m.length;g++){let b=m[g];x.push({name:b,providers:p[b]})}return x});this._terrainProviders=a,this.buttonTooltip=void 0,Te.defineProperty(this,"buttonTooltip",function(){let d=this.selectedImagery,p=this.selectedTerrain,g=l(d)?d.name:void 0,m=l(p)?p.name:void 0;return l(g)&&l(m)?`${g} ${m}`:l(g)?g:m}),this.buttonImageUrl=void 0,Te.defineProperty(this,"buttonImageUrl",function(){let d=this.selectedImagery;if(l(d))return d.iconUrl}),this.selectedImagery=void 0;let c=Te.observable();this._currentImageryLayers=[],Te.defineProperty(this,"selectedImagery",{get:function(){return c()},set:function(d){if(c()===d){this.dropDownVisible=!1;return}let p,g=this._currentImageryLayers,m=g.length,x=this._globe.imageryLayers,b=!1;for(p=0;p<m;p++){let T=x.length;for(let C=0;C<T;C++){let A=x.get(C);if(A===g[p]){x.remove(A),b=!0;break}}}if(l(d)){let T=d.creationCommand();if(Array.isArray(T)){let C=T.length;for(this._currentImageryLayers=[],p=C-1;p>=0;p--){let A=da.fromProviderAsync(T[p]);x.add(A,0),this._currentImageryLayers.push(A)}}else{this._currentImageryLayers=[];let C=da.fromProviderAsync(T);if(C.name=d.name,b)x.add(C,0);else{let A=x.get(0);l(A)&&x.remove(A),x.add(C,0)}this._currentImageryLayers.push(C)}}c(d),this.dropDownVisible=!1}}),this.selectedTerrain=void 0;let u=Te.observable();Te.defineProperty(this,"selectedTerrain",{get:function(){return u()},set:function(d){if(u()===d){this.dropDownVisible=!1;return}let p;if(l(d)&&(p=d.creationCommand()),l(p)&&!l(p.then))this._globe.depthTestAgainstTerrain=!(p instanceof qm),this._globe.terrainProvider=p;else if(l(p)){let g=!1,m=this._globe.terrainProviderChanged.addEventListener(()=>{g=!0,m()}),b=new D3(p).readyEvent.addEventListener(T=>{g||(this._globe.depthTestAgainstTerrain=!(T instanceof qm),this._globe.terrainProvider=T,b())})}u(d),this.dropDownVisible=!1}});let f=this;this._toggleDropDown=Cn(function(){f.dropDownVisible=!f.dropDownVisible}),this.selectedImagery=y(e.selectedImageryProviderViewModel,n[0]),this.selectedTerrain=y(e.selectedTerrainProviderViewModel,i[0])}Object.defineProperties($Ae.prototype,{toggleDropDown:{get:function(){return this._toggleDropDown}},globe:{get:function(){return this._globe}}});var H3=$Ae;function b5(e,t){e=Pn(e);let n=new H3(t),i=document.createElement("button");i.type="button",i.className="cesium-button cesium-toolbar-button",i.setAttribute("data-bind","attr: { title: buttonTooltip },click: toggleDropDown"),e.appendChild(i);let o=document.createElement("img");o.setAttribute("draggable","false"),o.className="cesium-baseLayerPicker-selected",o.setAttribute("data-bind","attr: { src: buttonImageUrl }, visible: !!buttonImageUrl"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-baseLayerPicker-dropDown",r.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-dropDown-visible" : dropDownVisible }'),e.appendChild(r);let s=document.createElement("div");s.className="cesium-baseLayerPicker-sectionTitle",s.setAttribute("data-bind","visible: imageryProviderViewModels.length > 0"),s.innerHTML="Imagery",r.appendChild(s);let a=document.createElement("div");a.className="cesium-baseLayerPicker-section",a.setAttribute("data-bind","foreach: _imageryProviders"),r.appendChild(a);let c=document.createElement("div");c.className="cesium-baseLayerPicker-category",a.appendChild(c);let u=document.createElement("div");u.className="cesium-baseLayerPicker-categoryTitle",u.setAttribute("data-bind","text: name"),c.appendChild(u);let f=document.createElement("div");f.className="cesium-baseLayerPicker-choices",f.setAttribute("data-bind","foreach: providers"),c.appendChild(f);let d=document.createElement("div");d.className="cesium-baseLayerPicker-item",d.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedImagery },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedImagery = $data; }'),f.appendChild(d);let p=document.createElement("img");p.className="cesium-baseLayerPicker-itemIcon",p.setAttribute("data-bind","attr: { src: iconUrl }"),p.setAttribute("draggable","false"),d.appendChild(p);let g=document.createElement("div");g.className="cesium-baseLayerPicker-itemLabel",g.setAttribute("data-bind","text: name"),d.appendChild(g);let m=document.createElement("div");m.className="cesium-baseLayerPicker-sectionTitle",m.setAttribute("data-bind","visible: terrainProviderViewModels.length > 0"),m.innerHTML="Terrain",r.appendChild(m);let x=document.createElement("div");x.className="cesium-baseLayerPicker-section",x.setAttribute("data-bind","foreach: _terrainProviders"),r.appendChild(x);let b=document.createElement("div");b.className="cesium-baseLayerPicker-category",x.appendChild(b);let T=document.createElement("div");T.className="cesium-baseLayerPicker-categoryTitle",T.setAttribute("data-bind","text: name"),b.appendChild(T);let C=document.createElement("div");C.className="cesium-baseLayerPicker-choices",C.setAttribute("data-bind","foreach: providers"),b.appendChild(C);let A=document.createElement("div");A.className="cesium-baseLayerPicker-item",A.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedTerrain },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedTerrain = $data; }'),C.appendChild(A);let E=document.createElement("img");E.className="cesium-baseLayerPicker-itemIcon",E.setAttribute("data-bind","attr: { src: iconUrl }"),E.setAttribute("draggable","false"),A.appendChild(E);let v=document.createElement("div");v.className="cesium-baseLayerPicker-itemLabel",v.setAttribute("data-bind","text: name"),A.appendChild(v),Te.applyBindings(n,i),Te.applyBindings(n,r),this._viewModel=n,this._container=e,this._element=i,this._dropPanel=r,this._closeDropDown=function(D){i.contains(D.target)||r.contains(D.target)||(n.dropDownVisible=!1)},Vt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(b5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});b5.prototype.isDestroyed=function(){return!1};b5.prototype.destroy=function(){return Vt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Te.cleanNode(this._element),Te.cleanNode(this._dropPanel),this._container.removeChild(this._element),this._container.removeChild(this._dropPanel),ue(this)};var G3=b5;function QAe(e){let t=e.creationFunction;l(t.canExecute)||(t=Cn(t)),this._creationCommand=t,this.name=e.name,this.tooltip=e.tooltip,this.iconUrl=e.iconUrl,this._category=y(e.category,""),Te.track(this,["name","tooltip","iconUrl"])}Object.defineProperties(QAe.prototype,{creationCommand:{get:function(){return this._creationCommand}},category:{get:function(){return this._category}}});var Jr=QAe;function ECt(){let e=[],t=devicePixelRatio>=2;return e.push(new Jr({name:"Bing Maps Aerial",iconUrl:en("Widgets/Images/ImageryProviders/bingAerial.png"),tooltip:"Bing Maps aerial imagery, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return rg({style:og.AERIAL})}})),e.push(new Jr({name:"Bing Maps Aerial with Labels",iconUrl:en("Widgets/Images/ImageryProviders/bingAerialLabels.png"),tooltip:"Bing Maps aerial imagery with labels, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return rg({style:og.AERIAL_WITH_LABELS})}})),e.push(new Jr({name:"Bing Maps Roads",iconUrl:en("Widgets/Images/ImageryProviders/bingRoads.png"),tooltip:"Bing Maps standard road maps, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return rg({style:og.ROAD})}})),e.push(new Jr({name:"ArcGIS World Imagery",iconUrl:en("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png"),tooltip:`ArcGIS World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 nin select communities). For more information on this map, including the terms of use, visit us online at https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9`,category:"Other",creationFunction:function(){return ng.fromBasemapType(Oh.SATELLITE,{enablePickFeatures:!1})}})),e.push(new Jr({name:"ArcGIS World Hillshade",iconUrl:en("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png"),tooltip:`ArcGIS World Hillshade map portrays elevation as an artistic hillshade. This map is designed to be used as a backdrop for topographical, soil, hydro, landcover or other outdoor recreational maps. The map was compiled from a variety of sources from several data providers. The basemap has global coverage down to a scale of ~1:72k. In select areas of the United States and Europe, coverage is available down to ~1:9k. For more information on this map, including the terms of use, visit us online at https://www.arcgis.com/home/item.html?id=1b243539f4514b6ba35e7d995890db1d`,category:"Other",creationFunction:function(){return ng.fromBasemapType(Oh.HILLSHADE,{enablePickFeatures:!1})}})),e.push(new Jr({name:"Esri World Ocean",iconUrl:en("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png"),tooltip:`ArcGIS World Ocean map is designed to be used as a base map by marine GIS professionals and as a reference map by anyone interested in ocean data. The base map features marine bathymetry. Land features include inland waters and roads overlaid on land cover and shaded relief imagery. The map was compiled from a variety of best available sources from several data providers, including General Bathymetric Chart of the Oceans GEBCO_08 Grid, National Oceanic and Atmospheric Administration (NOAA), and National Geographic, Garmin, HERE, Geonames.org, and Esri, and various other contributors. The base map currently provides coverage for the world down to a scale of ~1:577k, and coverage down to 1:72k in US coastal areas, and various other areas. Coverage down to ~ 1:9k is available limited areas based on regional hydrographic survey data. The base map was designed and developed by Esri. For more information on this map, including our terms of use, visit us online at https://www.arcgis.com/home/item.html?id=1e126e7520f9466c9ca28b8f28b5e500`,category:"Other",creationFunction:function(){return ng.fromBasemapType(Oh.OCEANS,{enablePickFeatures:!1})}})),e.push(new Jr({name:"Open\xADStreet\xADMap",iconUrl:en("Widgets/Images/ImageryProviders/openStreetMap.png"),tooltip:`OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world. http://www.openstreetmap.org`,category:"Other",creationFunction:function(){return new xg({url:"https://tile.openstreetmap.org/"})}})),e.push(new Jr({name:"Stadia x Stamen Watercolor",iconUrl:en("Widgets/Images/ImageryProviders/stamenWatercolor.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and reminiscent of hand drawn maps, the watercolor maps from Stamen Design apply raster effect area washes and organic edges over a paper texture to add warm pop to any map. https://docs.stadiamaps.com/map-styles/stamen-watercolor/`,category:"Other",creationFunction:function(){return new xg({url:"https://tiles.stadiamaps.com/tiles/stamen_watercolor/",fileExtension:"jpg",credit:`© <a href="https://stamen.com/" target="_blank">Stamen Design</a> © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Jr({name:"Stadia x Stamen Toner",iconUrl:en("Widgets/Images/ImageryProviders/stamenToner.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and the most popular of the excellent styles from Stamen Design, these high-contrast B+W (black and white) maps are the perfect backdrop for your colorful and eye-catching overlays. https://docs.stadiamaps.com/map-styles/stamen-toner/`,category:"Other",creationFunction:function(){return new xg({url:"https://tiles.stadiamaps.com/tiles/stamen_toner/",retinaTiles:t,credit:`© <a href="https://stamen.com/" target="_blank">Stamen Design</a> © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Jr({name:"Stadia Alidade Smooth",iconUrl:en("Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png"),tooltip:`Stadia's custom Alidade Smooth style is designed for maps that use a lot of markers or overlays. It features a muted color scheme and fewer points of interest to allow your added data to shine. https://docs.stadiamaps.com/map-styles/alidade-smooth/`,category:"Other",creationFunction:function(){return new xg({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Jr({name:"Stadia Alidade Smooth Dark",iconUrl:en("Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png"),tooltip:`Stadia Alidade Smooth Dark, like its lighter cousin, is also designed to stay out of the way. It just flips the dark mode switch on the color scheme. With the lights out, your data can now literally shine. https://docs.stadiamaps.com/map-styles/alidade-smooth-dark/`,category:"Other",creationFunction:function(){return new xg({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Jr({name:"Sentinel-2",iconUrl:en("Widgets/Images/ImageryProviders/sentinel-2.png"),tooltip:"Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).",category:"Cesium ion",creationFunction:function(){return ig.fromAssetId(3954)}})),e.push(new Jr({name:"Blue Marble",iconUrl:en("Widgets/Images/ImageryProviders/blueMarble.png"),tooltip:"Blue Marble Next Generation July, 2004 imagery from NASA.",category:"Cesium ion",creationFunction:function(){return ig.fromAssetId(3845)}})),e.push(new Jr({name:"Earth at night",iconUrl:en("Widgets/Images/ImageryProviders/earthAtNight.png"),tooltip:"The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.",category:"Cesium ion",creationFunction:function(){return ig.fromAssetId(3812)}})),e.push(new Jr({name:"Natural Earth\xA0II",iconUrl:en("Widgets/Images/ImageryProviders/naturalEarthII.png"),tooltip:`Natural Earth II, darkened for contrast. http://www.naturalearthdata.com/`,category:"Cesium ion",creationFunction:function(){return v0.fromUrl(en("Assets/Textures/NaturalEarthII"))}})),e}var W3=ECt;function SCt(){let e=[];return e.push(new Jr({name:"WGS84 Ellipsoid",iconUrl:en("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){return new qm}})),e.push(new Jr({name:"Cesium World Terrain",iconUrl:en("Widgets/Images/TerrainProviders/CesiumWorldTerrain.png"),tooltip:"High-resolution global terrain tileset curated from several datasources and hosted by Cesium ion",category:"Cesium ion",creationFunction:function(){return NT({requestWaterMask:!0,requestVertexNormals:!0})}})),e}var j3=SCt;function vCt(e){return function(t){let n=e._scene.pick(t.position);l(n)&&n.primitive instanceof oa&&(e.tileset=n.primitive),e.pickActive=!1}}function eCe(e,t){t?e._eventHandler.setInputAction(function(n){let i=e._scene.pick(n.endPosition);l(i)&&i.primitive instanceof oa&&(e.tileset=i.primitive)},bn.MOUSE_MOVE):(e._eventHandler.removeInputAction(bn.MOUSE_MOVE),e.picking=e.picking)}var wCt={maximumFractionDigits:3};function q3(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,wCt):Math.round(t).toLocaleString()}function Y3(e,t){if(!l(e))return"";let n=t?e._statisticsPerPass[Mo.PICK]:e._statisticsPerPass[Mo.RENDER],i='<ul class="cesium-cesiumInspector-statistics">';return i+=`<li><strong>Visited: </strong>${n.visited.toLocaleString()}</li><li><strong>Selected: </strong>${n.selected.toLocaleString()}</li><li><strong>Commands: </strong>${n.numberOfCommands.toLocaleString()}</li>`,i+="</ul>",t||(i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Requests: </strong>${n.numberOfPendingRequests.toLocaleString()}</li><li><strong>Attempted: </strong>${n.numberOfAttemptedRequests.toLocaleString()}</li><li><strong>Processing: </strong>${n.numberOfTilesProcessing.toLocaleString()}</li><li><strong>Content Ready: </strong>${n.numberOfTilesWithContentReady.toLocaleString()}</li><li><strong>Total: </strong>${n.numberOfTilesTotal.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Features Selected: </strong>${n.numberOfFeaturesSelected.toLocaleString()}</li><li><strong>Features Loaded: </strong>${n.numberOfFeaturesLoaded.toLocaleString()}</li><li><strong>Points Selected: </strong>${n.numberOfPointsSelected.toLocaleString()}</li><li><strong>Points Loaded: </strong>${n.numberOfPointsLoaded.toLocaleString()}</li><li><strong>Triangles Selected: </strong>${n.numberOfTrianglesSelected.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Tiles styled: </strong>${n.numberOfTilesStyled.toLocaleString()}</li><li><strong>Features styled: </strong>${n.numberOfFeaturesStyled.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Children Union Culled: </strong>${n.numberOfTilesCulledWithChildrenUnion.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Geometry Memory (MB): </strong>${q3(n.geometryByteLength)}</li><li><strong>Texture Memory (MB): </strong>${q3(n.texturesByteLength)}</li><li><strong>Batch Table Memory (MB): </strong>${q3(n.batchTableByteLength)}</li>`,i+="</ul>"),i}function tCe(){let e=zi.statistics;return` <ul class="cesium-cesiumInspector-statistics"> <li><strong>Geometry Memory (MB): </strong>${q3(e.geometryByteLength)}</li> <li><strong>Texture Memory (MB): </strong>${q3(e.texturesByteLength)}</li> </ul> `}var DCt=[{text:"Highlight",value:Rl.HIGHLIGHT},{text:"Replace",value:Rl.REPLACE},{text:"Mix",value:Rl.MIX}],JAe=new H(1,1,0,.4),PCt=new H,T5=new H;function ga(e,t){let n=this,i=e.canvas;this._eventHandler=new Yu(i),this._scene=e,this._performanceContainer=t,this._canvas=i,this._performanceDisplay=new cg({container:t}),this._statisticsText="",this._pickStatisticsText="",this._resourceCacheStatisticsText="",this._editorError="",this.performance=!1,this.showStatistics=!0,this.showPickStatistics=!0,this.showResourceCacheStatistics=!1,this.inspectorVisible=!0,this.tilesetVisible=!1,this.displayVisible=!1,this.updateVisible=!1,this.loggingVisible=!1,this.styleVisible=!1,this.tileDebugLabelsVisible=!1,this.optimizationVisible=!1,this.styleString="{}",this.hasEnabledWireframe=!1,this._tileset=void 0,this._feature=void 0,this._tile=void 0,Te.track(this,["performance","inspectorVisible","_statisticsText","_pickStatisticsText","_resourceCacheStatisticsText","_editorError","showPickStatistics","showStatistics","showResourceCacheStatistics","tilesetVisible","displayVisible","updateVisible","loggingVisible","styleVisible","optimizationVisible","tileDebugLabelsVisible","styleString","_feature","_tile","_tileset","hasEnabledWireframe"]),this._properties=Te.observable({}),this.properties=[],Te.defineProperty(this,"properties",function(){let k=[],Y=n._properties();for(let W in Y)Y.hasOwnProperty(W)&&k.push(W);return k});let o=Te.observable();Te.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return o()},set:function(k){o(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceError=k)}}),this.dynamicScreenSpaceError=!1;let r=Te.observable();Te.defineProperty(this,"colorBlendMode",{get:function(){return r()},set:function(k){r(k),l(n._tileset)&&(n._tileset.colorBlendMode=k,n._scene.requestRender())}}),this.colorBlendMode=Rl.HIGHLIGHT;let s=Te.observable(),a=Te.observable();Te.defineProperty(this,"picking",{get:function(){return a()},set:function(k){a(k),k?n._eventHandler.setInputAction(function(Y){let W=e.pick(Y.endPosition);if(W instanceof Ns?(n.feature=W,n.tile=W.content.tile):l(W)&&l(W.content)?(n.feature=void 0,n.tile=W.content.tile):(n.feature=void 0,n.tile=void 0),!!l(n._tileset)){if(s&&l(W)&&l(W.content)){let Q;e.pickPositionSupported&&(Q=e.pickPosition(Y.endPosition),l(Q)&&(n._tileset.debugPickPosition=Q)),n._tileset.debugPickedTile=W.content.tile}else n._tileset.debugPickedTile=void 0;n._scene.requestRender()}},bn.MOUSE_MOVE):(n.feature=void 0,n.tile=void 0,n._eventHandler.removeInputAction(bn.MOUSE_MOVE))}}),this.picking=!0;let c=Te.observable();Te.defineProperty(this,"colorize",{get:function(){return c()},set:function(k){c(k),l(n._tileset)&&(n._tileset.debugColorizeTiles=k,n._scene.requestRender())}}),this.colorize=!1;let u=Te.observable();Te.defineProperty(this,"wireframe",{get:function(){return u()},set:function(k){u(k),l(n._tileset)&&(n._tileset.debugWireframe=k,n._scene.requestRender())}}),this.wireframe=!1;let f=Te.observable();Te.defineProperty(this,"showBoundingVolumes",{get:function(){return f()},set:function(k){f(k),l(n._tileset)&&(n._tileset.debugShowBoundingVolume=k,n._scene.requestRender())}}),this.showBoundingVolumes=!1;let d=Te.observable();Te.defineProperty(this,"showContentBoundingVolumes",{get:function(){return d()},set:function(k){d(k),l(n._tileset)&&(n._tileset.debugShowContentBoundingVolume=k,n._scene.requestRender())}}),this.showContentBoundingVolumes=!1;let p=Te.observable();Te.defineProperty(this,"showRequestVolumes",{get:function(){return p()},set:function(k){p(k),l(n._tileset)&&(n._tileset.debugShowViewerRequestVolume=k,n._scene.requestRender())}}),this.showRequestVolumes=!1;let g=Te.observable();Te.defineProperty(this,"freezeFrame",{get:function(){return g()},set:function(k){g(k),l(n._tileset)&&(n._tileset.debugFreezeFrame=k,n._scene.debugShowFrustumPlanes=k,n._scene.requestRender())}}),this.freezeFrame=!1,Te.defineProperty(this,"showOnlyPickedTileDebugLabel",{get:function(){return s()},set:function(k){s(k),l(n._tileset)&&(n._tileset.debugPickedTileLabelOnly=k,n._scene.requestRender())}}),this.showOnlyPickedTileDebugLabel=!1;let m=Te.observable();Te.defineProperty(this,"showGeometricError",{get:function(){return m()},set:function(k){m(k),l(n._tileset)&&(n._tileset.debugShowGeometricError=k,n._scene.requestRender())}}),this.showGeometricError=!1;let x=Te.observable();Te.defineProperty(this,"showRenderingStatistics",{get:function(){return x()},set:function(k){x(k),l(n._tileset)&&(n._tileset.debugShowRenderingStatistics=k,n._scene.requestRender())}}),this.showRenderingStatistics=!1;let b=Te.observable();Te.defineProperty(this,"showMemoryUsage",{get:function(){return b()},set:function(k){b(k),l(n._tileset)&&(n._tileset.debugShowMemoryUsage=k,n._scene.requestRender())}}),this.showMemoryUsage=!1;let T=Te.observable();Te.defineProperty(this,"showUrl",{get:function(){return T()},set:function(k){T(k),l(n._tileset)&&(n._tileset.debugShowUrl=k,n._scene.requestRender())}}),this.showUrl=!1;let C=Te.observable();Te.defineProperty(this,"maximumScreenSpaceError",{get:function(){return C()},set:function(k){k=Number(k),isNaN(k)||(C(k),l(n._tileset)&&(n._tileset.maximumScreenSpaceError=k))}}),this.maximumScreenSpaceError=16;let A=Te.observable();Te.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return A()},set:function(k){k=Number(k),isNaN(k)||(A(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=k))}}),this.dynamicScreenSpaceErrorDensity=2e-4,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,Te.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(A(),1/6)},set:function(k){let Y=Math.pow(k,6);A(Y),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=Y)}});let E=Te.observable();Te.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return E()},set:function(k){k=Number(k),isNaN(k)||(E(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorFactor=k))}}),this.dynamicScreenSpaceErrorFactor=24;let v=vCt(this),D=Te.observable();Te.defineProperty(this,"pickActive",{get:function(){return D()},set:function(k){D(k),k?n._eventHandler.setInputAction(v,bn.LEFT_CLICK):n._eventHandler.removeInputAction(bn.LEFT_CLICK)}});let O=Te.observable();Te.defineProperty(this,"pointCloudShading",{get:function(){return O()},set:function(k){O(k),l(n._tileset)&&(n._tileset.pointCloudShading.attenuation=k)}}),this.pointCloudShading=!1;let I=Te.observable();Te.defineProperty(this,"geometricErrorScale",{get:function(){return I()},set:function(k){k=Number(k),isNaN(k)||(I(k),l(n._tileset)&&(n._tileset.pointCloudShading.geometricErrorScale=k))}}),this.geometricErrorScale=1;let L=Te.observable();Te.defineProperty(this,"maximumAttenuation",{get:function(){return L()},set:function(k){k=Number(k),isNaN(k)||(L(k),l(n._tileset)&&(n._tileset.pointCloudShading.maximumAttenuation=k===0?void 0:k))}}),this.maximumAttenuation=0;let N=Te.observable();Te.defineProperty(this,"baseResolution",{get:function(){return N()},set:function(k){k=Number(k),isNaN(k)||(N(k),l(n._tileset)&&(n._tileset.pointCloudShading.baseResolution=k===0?void 0:k))}}),this.baseResolution=0;let _=Te.observable();Te.defineProperty(this,"eyeDomeLighting",{get:function(){return _()},set:function(k){_(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLighting=k)}}),this.eyeDomeLighting=!1;let S=Te.observable();Te.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return S()},set:function(k){k=Number(k),isNaN(k)||(S(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingStrength=k))}}),this.eyeDomeLightingStrength=1;let w=Te.observable();Te.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return w()},set:function(k){k=Number(k),isNaN(k)||(w(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingRadius=k))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;let P=Te.observable();Te.defineProperty(this,"skipLevelOfDetail",{get:function(){return P()},set:function(k){P(k),l(n._tileset)&&(n._tileset.skipLevelOfDetail=k)}}),this.skipLevelOfDetail=!0;let M=Te.observable();Te.defineProperty(this,"skipScreenSpaceErrorFactor",{get:function(){return M()},set:function(k){k=Number(k),isNaN(k)||(M(k),l(n._tileset)&&(n._tileset.skipScreenSpaceErrorFactor=k))}}),this.skipScreenSpaceErrorFactor=16;let B=Te.observable();Te.defineProperty(this,"baseScreenSpaceError",{get:function(){return B()},set:function(k){k=Number(k),isNaN(k)||(B(k),l(n._tileset)&&(n._tileset.baseScreenSpaceError=k))}}),this.baseScreenSpaceError=1024;let U=Te.observable();Te.defineProperty(this,"skipLevels",{get:function(){return U()},set:function(k){k=Number(k),isNaN(k)||(U(k),l(n._tileset)&&(n._tileset.skipLevels=k))}}),this.skipLevels=1;let V=Te.observable();Te.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return V()},set:function(k){V(k),l(n._tileset)&&(n._tileset.immediatelyLoadDesiredLevelOfDetail=k)}}),this.immediatelyLoadDesiredLevelOfDetail=!1;let G=Te.observable();Te.defineProperty(this,"loadSiblings",{get:function(){return G()},set:function(k){G(k),l(n._tileset)&&(n._tileset.loadSiblings=k)}}),this.loadSiblings=!1,this._style=void 0,this._shouldStyle=!1,this._definedProperties=["properties","dynamicScreenSpaceError","colorBlendMode","picking","colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","maximumScreenSpaceError","dynamicScreenSpaceErrorDensity","baseScreenSpaceError","skipScreenSpaceErrorFactor","skipLevelOfDetail","skipLevels","immediatelyLoadDesiredLevelOfDetail","loadSiblings","dynamicScreenSpaceErrorDensitySliderValue","dynamicScreenSpaceErrorFactor","pickActive","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl","pointCloudShading","geometricErrorScale","maximumAttenuation","baseResolution","eyeDomeLighting","eyeDomeLightingStrength","eyeDomeLightingRadius"],this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()}),l(this._tileset)||eCe(this,!0)}Object.defineProperties(ga.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},statisticsText:{get:function(){return this._statisticsText}},pickStatisticsText:{get:function(){return this._pickStatisticsText}},resourceCacheStatisticsText:{get:function(){return this._resourceCacheStatisticsText}},colorBlendModes:{get:function(){return DCt}},editorError:{get:function(){return this._editorError}},tileset:{get:function(){return this._tileset},set:function(e){if(this._tileset=e,this._style=void 0,this.styleString="{}",this.feature=void 0,this.tile=void 0,l(e)){this._properties(e.properties);let t=["colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl"],n=t.length;for(let o=0;o<n;++o){let r=t[o];this[r]=this[r]}this.maximumScreenSpaceError=e.maximumScreenSpaceError,this.dynamicScreenSpaceError=e.dynamicScreenSpaceError,this.dynamicScreenSpaceErrorDensity=e.dynamicScreenSpaceErrorDensity,this.dynamicScreenSpaceErrorFactor=e.dynamicScreenSpaceErrorFactor,this.colorBlendMode=e.colorBlendMode,this.skipLevelOfDetail=e.skipLevelOfDetail,this.skipScreenSpaceErrorFactor=e.skipScreenSpaceErrorFactor,this.baseScreenSpaceError=e.baseScreenSpaceError,this.skipLevels=e.skipLevels,this.immediatelyLoadDesiredLevelOfDetail=e.immediatelyLoadDesiredLevelOfDetail,this.loadSiblings=e.loadSiblings,this.hasEnabledWireframe=e._enableDebugWireframe;let i=e.pointCloudShading;this.pointCloudShading=i.attenuation,this.geometricErrorScale=i.geometricErrorScale,this.maximumAttenuation=i.maximumAttenuation?i.maximumAttenuation:0,this.baseResolution=i.baseResolution?i.baseResolution:0,this.eyeDomeLighting=i.eyeDomeLighting,this.eyeDomeLightingStrength=i.eyeDomeLightingStrength,this.eyeDomeLightingRadius=i.eyeDomeLightingRadius,this._scene.requestRender()}else this._properties({});this._statisticsText=Y3(e,!1),this._pickStatisticsText=Y3(e,!0),this._resourceCacheStatisticsText=tCe(),eCe(this,!1)}},feature:{get:function(){return this._feature},set:function(e){if(this._feature===e)return;let t=this._feature;l(t)&&!t.content.isDestroyed()&&(!this.colorize&&l(this._style)?t.color=l(this._style.color)?this._style.color.evaluateColor(t,PCt):H.WHITE:t.color=T5,this._scene.requestRender()),l(e)&&(H.clone(e.color,T5),e.color=JAe,this._scene.requestRender()),this._feature=e}},tile:{get:function(){return this._tile},set:function(e){if(this._tile===e)return;let t=this._tile;l(t)&&!t.isDestroyed()&&!V$(t.content)&&(t.color=T5,this._scene.requestRender()),l(e)&&!V$(e.content)&&(H.clone(e.color,T5),e.color=JAe,this._scene.requestRender()),this._tile=e}}});function V$(e){if(!l(e))return!1;if(e.featuresLength>0)return!0;let t=e.innerContents;if(l(t)){let n=t.length;for(let i=0;i<n;++i)if(!V$(t[i]))return!1;return!0}return!1}ga.prototype.togglePickTileset=function(){this.pickActive=!this.pickActive};ga.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};ga.prototype.toggleTileset=function(){this.tilesetVisible=!this.tilesetVisible};ga.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};ga.prototype.toggleUpdate=function(){this.updateVisible=!this.updateVisible};ga.prototype.toggleLogging=function(){this.loggingVisible=!this.loggingVisible};ga.prototype.toggleStyle=function(){this.styleVisible=!this.styleVisible};ga.prototype.toggleTileDebugLabels=function(){this.tileDebugLabelsVisible=!this.tileDebugLabelsVisible};ga.prototype.toggleOptimization=function(){this.optimizationVisible=!this.optimizationVisible};ga.prototype.trimTilesCache=function(){l(this._tileset)&&this._tileset.trimLoadedTiles()};ga.prototype.compileStyle=function(){let e=this._tileset;if(!(!l(e)||this.styleString===JSON.stringify(e.style))){this._editorError="";try{this.styleString.length===0&&(this.styleString="{}"),this._style=new hA(JSON.parse(this.styleString)),this._shouldStyle=!0,this._scene.requestRender()}catch(t){this._editorError=t.toString()}this.feature=this._feature,this.tile=this._tile}};ga.prototype.styleEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` `),c=a.length,u;if(t.shiftKey)for(u=0;u<c;++u)a[u][0]===" "&&(a[u][1]===" "?(a[u]=a[u].substr(2),r-=2):(a[u]=a[u].substr(1),r-=1));else for(u=0;u<c;++u)a[u]=` ${a[u]}`,r+=2;let f=a.join(` `);n.value=n.value.slice(0,i)+f+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileStyle();return!0};ga.prototype._update=function(){let e=this._tileset;if(this.performance&&this._performanceDisplay.update(),l(e)){if(e.isDestroyed()){this.tile=void 0,this.feature=void 0,this.tileset=void 0;return}let t=e.style;this._style!==e.style&&(this._shouldStyle?(e.style=this._style,this._shouldStyle=!1):(this._style=t,this.styleString=JSON.stringify(t.style,null," ")))}this.showStatistics&&(this._statisticsText=Y3(e,!1),this._pickStatisticsText=Y3(e,!0),this._resourceCacheStatisticsText=tCe())};ga.prototype.isDestroyed=function(){return!1};ga.prototype.destroy=function(){this._eventHandler.destroy(),this._removePostRenderEvent();let e=this;return this._definedProperties.forEach(function(t){Te.getObservable(e,t).dispose()}),ue(this)};ga.getStatistics=Y3;var X3=ga;function A5(e,t){e=Pn(e);let n=document.createElement("div"),i=document.createElement("div");i.setAttribute("data-bind","visible: performance");let o=new X3(t,i);this._viewModel=o,this._container=e,this._element=n;let r=document.createElement("div");r.textContent="3D Tiles Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleInspector"),n.appendChild(r),n.className="cesium-cesiumInspector cesium-3DTilesInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",n.appendChild(s);let a=Ua.createSection,c=Ua.createCheckbox,u=Ua.createRangeInput,f=Ua.createButton,d=a(s,"Tileset","tilesetVisible","toggleTileset"),p=a(s,"Display","displayVisible","toggleDisplay"),g=a(s,"Update","updateVisible","toggleUpdate"),m=a(s,"Logging","loggingVisible","toggleLogging"),x=a(s,"Tile Debug Labels","tileDebugLabelsVisible","toggleTileDebugLabels"),b=a(s,"Style","styleVisible","toggleStyle"),T=a(s,"Optimization","optimizationVisible","toggleOptimization"),C=document.createElement("div");C.className="field-group";let A=document.createElement("label");A.className="field-label",A.appendChild(document.createTextNode("Properties: "));let E=document.createElement("div");E.setAttribute("data-bind","text: properties"),C.appendChild(A),C.appendChild(E),d.appendChild(C),d.appendChild(f("Pick Tileset","togglePickTileset","pickActive")),d.appendChild(f("Trim Tiles Cache","trimTilesCache")),d.appendChild(c("Enable Picking","picking")),p.appendChild(c("Colorize","colorize"));let v=p.appendChild(c("Wireframe","wireframe","_tileset === undefined || hasEnabledWireframe")),D=document.createElement("p");D.setAttribute("data-bind","visible: _tileset !== undefined && !hasEnabledWireframe"),D.setAttribute("class","cesium-3DTilesInspector-disabledElementsInfo"),D.innerText="Set enableDebugWireframe to true in the tileset constructor to enable this option.",v.appendChild(D),p.appendChild(c("Bounding Volumes","showBoundingVolumes")),p.appendChild(c("Content Volumes","showContentBoundingVolumes")),p.appendChild(c("Request Volumes","showRequestVolumes")),p.appendChild(c("Point Cloud Shading","pointCloudShading"));let O=document.createElement("div");O.setAttribute("data-bind","visible: pointCloudShading"),O.appendChild(u("Geometric Error Scale","geometricErrorScale",0,2,.01)),O.appendChild(u("Maximum Attenuation","maximumAttenuation",0,32,1)),O.appendChild(u("Base Resolution","baseResolution",0,1,.01)),O.appendChild(c("Eye Dome Lighting (EDL)","eyeDomeLighting")),p.appendChild(O);let I=document.createElement("div");I.setAttribute("data-bind","visible: eyeDomeLighting"),I.appendChild(u("EDL Strength","eyeDomeLightingStrength",0,2,.1)),I.appendChild(u("EDL Radius","eyeDomeLightingRadius",0,4,.1)),O.appendChild(I),g.appendChild(c("Freeze Frame","freezeFrame")),g.appendChild(c("Dynamic Screen Space Error","dynamicScreenSpaceError"));let L=document.createElement("div");L.appendChild(u("Maximum Screen Space Error","maximumScreenSpaceError",0,128,1)),g.appendChild(L);let N=document.createElement("div");N.setAttribute("data-bind","visible: dynamicScreenSpaceError"),N.appendChild(u("Screen Space Error Density","dynamicScreenSpaceErrorDensitySliderValue",0,1,.005,"dynamicScreenSpaceErrorDensity")),N.appendChild(u("Screen Space Error Factor","dynamicScreenSpaceErrorFactor",1,32,.1)),g.appendChild(N),m.appendChild(c("Performance","performance")),m.appendChild(i),m.appendChild(c("Statistics","showStatistics"));let _=document.createElement("div");_.className="cesium-3dTilesInspector-statistics",_.setAttribute("data-bind","html: statisticsText, visible: showStatistics"),m.appendChild(_),m.appendChild(c("Pick Statistics","showPickStatistics"));let S=document.createElement("div");S.className="cesium-3dTilesInspector-statistics",S.setAttribute("data-bind","html: pickStatisticsText, visible: showPickStatistics"),m.appendChild(S),m.appendChild(c("Resource Cache Statistics","showResourceCacheStatistics"));let w=document.createElement("div");w.className="cesium-3dTilesInspector-statistics",w.setAttribute("data-bind","html: resourceCacheStatisticsText, visible: showResourceCacheStatistics"),m.appendChild(w);let P=document.createElement("div");b.appendChild(P),P.appendChild(document.createTextNode("Color Blend Mode: "));let M=document.createElement("select");M.setAttribute("data-bind",'options: colorBlendModes, optionsText: "text", optionsValue: "value", value: colorBlendMode'),P.appendChild(M);let B=document.createElement("textarea");B.setAttribute("data-bind","textInput: styleString, event: { keydown: styleEditorKeyPress }"),P.className="cesium-cesiumInspector-styleEditor",P.appendChild(B);let U=f("Compile (Ctrl+Enter)","compileStyle");P.appendChild(U);let V=document.createElement("div");V.className="cesium-cesiumInspector-error",V.setAttribute("data-bind","text: editorError"),P.appendChild(V),x.appendChild(c("Show Picked Only","showOnlyPickedTileDebugLabel")),x.appendChild(c("Geometric Error","showGeometricError")),x.appendChild(c("Rendering Statistics","showRenderingStatistics")),x.appendChild(c("Memory Usage (MB)","showMemoryUsage")),x.appendChild(c("Url","showUrl")),T.appendChild(c("Skip Tile LODs","skipLevelOfDetail"));let G=document.createElement("div");G.appendChild(u("Skip SSE Factor","skipScreenSpaceErrorFactor",1,50,1)),T.appendChild(G);let k=document.createElement("div");k.appendChild(u("SSE before skipping LOD","baseScreenSpaceError",0,4096,1)),T.appendChild(k);let Y=document.createElement("div");Y.appendChild(u("Min. levels to skip","skipLevels",0,10,1)),T.appendChild(Y),T.appendChild(c("Load only tiles that meet the max SSE.","immediatelyLoadDesiredLevelOfDetail")),T.appendChild(c("Load siblings of visible tiles","loadSiblings")),Te.applyBindings(o,n)}Object.defineProperties(A5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});A5.prototype.isDestroyed=function(){return!1};A5.prototype.destroy=function(){return Te.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var K3=A5;function ICt(e){let t;if(l(e)){t="Command Statistics";let n=e.commandsInFrustums;for(let i in n)if(n.hasOwnProperty(i)){let o=parseInt(i,10),r;if(o===7)r="1, 2 and 3";else{let s=[];for(let a=2;a>=0;a--){let c=Math.pow(2,a);o>=c&&(s.push(a+1),o-=c)}r=s.reverse().join(" and ")}t+=`<br> ${n[i]} in frustum ${r}`}t+=`<br>Total: ${e.totalCommands}`}return t}function U$(e,t,n){let i=Math.min(n,t);return i=Math.max(i,e),i}var RCt=new pn,OCt=new h;function Z3(e,t){let n=this,i=e.canvas,o=new Yu(i);this._eventHandler=o,this._scene=e,this._canvas=i,this._primitive=void 0,this._tile=void 0,this._modelMatrixPrimitive=void 0,this._performanceDisplay=void 0,this._performanceContainer=t;let r=this._scene.globe;r.depthTestAgainstTerrain=!0,this.frustums=!1,this.frustumPlanes=!1,this.performance=!1,this.shaderCacheText="",this.primitiveBoundingSphere=!1,this.primitiveReferenceFrame=!1,this.filterPrimitive=!1,this.tileBoundingSphere=!1,this.filterTile=!1,this.wireframe=!1,this.depthFrustum=1,this._numberOfFrustums=1,this.suspendUpdates=!1,this.tileCoordinates=!1,this.frustumStatisticText=!1,this.tileText="",this.hasPickedPrimitive=!1,this.hasPickedTile=!1,this.pickPrimitiveActive=!1,this.pickTileActive=!1,this.dropDownVisible=!0,this.generalVisible=!0,this.primitivesVisible=!1,this.terrainVisible=!1,this.depthFrustumText="",Te.track(this,["frustums","frustumPlanes","performance","shaderCacheText","primitiveBoundingSphere","primitiveReferenceFrame","filterPrimitive","tileBoundingSphere","filterTile","wireframe","depthFrustum","suspendUpdates","tileCoordinates","frustumStatisticText","tileText","hasPickedPrimitive","hasPickedTile","pickPrimitiveActive","pickTileActive","dropDownVisible","generalVisible","primitivesVisible","terrainVisible","depthFrustumText"]),this._toggleDropDown=Cn(function(){n.dropDownVisible=!n.dropDownVisible}),this._toggleGeneral=Cn(function(){n.generalVisible=!n.generalVisible}),this._togglePrimitives=Cn(function(){n.primitivesVisible=!n.primitivesVisible}),this._toggleTerrain=Cn(function(){n.terrainVisible=!n.terrainVisible}),this._frustumsSubscription=Te.getObservable(this,"frustums").subscribe(function(u){n._scene.debugShowFrustums=u,n._scene.requestRender()}),this._frustumPlanesSubscription=Te.getObservable(this,"frustumPlanes").subscribe(function(u){n._scene.debugShowFrustumPlanes=u,n._scene.requestRender()}),this._performanceSubscription=Te.getObservable(this,"performance").subscribe(function(u){u?n._performanceDisplay=new cg({container:n._performanceContainer}):n._performanceContainer.innerHTML=""}),this._showPrimitiveBoundingSphere=Cn(function(){return n._primitive.debugShowBoundingVolume=n.primitiveBoundingSphere,n._scene.requestRender(),!0}),this._primitiveBoundingSphereSubscription=Te.getObservable(this,"primitiveBoundingSphere").subscribe(function(){n._showPrimitiveBoundingSphere()}),this._showPrimitiveReferenceFrame=Cn(function(){if(n.primitiveReferenceFrame){let u=n._primitive.modelMatrix;n._modelMatrixPrimitive=new f3({modelMatrix:u}),n._scene.primitives.add(n._modelMatrixPrimitive)}else l(n._modelMatrixPrimitive)&&(n._scene.primitives.remove(n._modelMatrixPrimitive),n._modelMatrixPrimitive=void 0);return n._scene.requestRender(),!0}),this._primitiveReferenceFrameSubscription=Te.getObservable(this,"primitiveReferenceFrame").subscribe(function(){n._showPrimitiveReferenceFrame()}),this._doFilterPrimitive=Cn(function(){return n.filterPrimitive?n._scene.debugCommandFilter=function(u){return l(n._modelMatrixPrimitive)&&u.owner===n._modelMatrixPrimitive._primitive?!0:l(n._primitive)?u.owner===n._primitive||u.owner===n._primitive._billboardCollection||u.owner.primitive===n._primitive:!1}:n._scene.debugCommandFilter=void 0,!0}),this._filterPrimitiveSubscription=Te.getObservable(this,"filterPrimitive").subscribe(function(){n._doFilterPrimitive(),n._scene.requestRender()}),this._wireframeSubscription=Te.getObservable(this,"wireframe").subscribe(function(u){r._surface.tileProvider._debug.wireframe=u,n._scene.requestRender()}),this._depthFrustumSubscription=Te.getObservable(this,"depthFrustum").subscribe(function(u){n._scene.debugShowDepthFrustum=u,n._scene.requestRender()}),this._incrementDepthFrustum=Cn(function(){let u=n.depthFrustum+1;return n.depthFrustum=U$(1,n._numberOfFrustums,u),n._scene.requestRender(),!0}),this._decrementDepthFrustum=Cn(function(){let u=n.depthFrustum-1;return n.depthFrustum=U$(1,n._numberOfFrustums,u),n._scene.requestRender(),!0}),this._suspendUpdatesSubscription=Te.getObservable(this,"suspendUpdates").subscribe(function(u){r._surface._debug.suspendLodUpdate=u,u||(n.filterTile=!1)});let s;this._showTileCoordinates=Cn(function(){return n.tileCoordinates&&!l(s)?s=e.imageryLayers.addImageryProvider(new I3({tilingScheme:e.terrainProvider.tilingScheme})):!n.tileCoordinates&&l(s)&&(e.imageryLayers.remove(s),s=void 0),!0}),this._tileCoordinatesSubscription=Te.getObservable(this,"tileCoordinates").subscribe(function(){n._showTileCoordinates(),n._scene.requestRender()}),this._tileBoundingSphereSubscription=Te.getObservable(this,"tileBoundingSphere").subscribe(function(){n._showTileBoundingSphere(),n._scene.requestRender()}),this._showTileBoundingSphere=Cn(function(){return n.tileBoundingSphere?r._surface.tileProvider._debug.boundingSphereTile=n._tile:r._surface.tileProvider._debug.boundingSphereTile=void 0,n._scene.requestRender(),!0}),this._doFilterTile=Cn(function(){return n.filterTile?(n.suspendUpdates=!0,r._surface._tilesToRender=[],l(n._tile)&&n._tile.renderable&&r._surface._tilesToRender.push(n._tile)):n.suspendUpdates=!1,!0}),this._filterTileSubscription=Te.getObservable(this,"filterTile").subscribe(function(){n.doFilterTile(),n._scene.requestRender()});function a(u){let f=n._scene.pick({x:u.position.x,y:u.position.y});l(f)&&(n.primitive=l(f.collection)?f.collection:f.primitive),n._scene.requestRender(),n.pickPrimitiveActive=!1}this._pickPrimitive=Cn(function(){n.pickPrimitiveActive=!n.pickPrimitiveActive}),this._pickPrimitiveActiveSubscription=Te.getObservable(this,"pickPrimitiveActive").subscribe(function(u){u?o.setInputAction(a,bn.LEFT_CLICK):o.removeInputAction(bn.LEFT_CLICK)});function c(u){let f,d=r.ellipsoid,p=n._scene.camera.getPickRay(u.position,RCt),g=r.pick(p,n._scene,OCt);if(l(g)){let m=d.cartesianToCartographic(g),x=r._surface.tileProvider._tilesToRenderByTextureCount;for(let b=0;!f&&b<x.length;++b){let T=x[b];if(l(T))for(let C=0;!f&&C<T.length;++C){let A=T[C];se.contains(A.rectangle,m)&&(f=A)}}}n.tile=f,n.pickTileActive=!1}this._pickTile=Cn(function(){n.pickTileActive=!n.pickTileActive}),this._pickTileActiveSubscription=Te.getObservable(this,"pickTileActive").subscribe(function(u){u?o.setInputAction(c,bn.LEFT_CLICK):o.removeInputAction(bn.LEFT_CLICK)}),this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()})}Object.defineProperties(Z3.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},toggleDropDown:{get:function(){return this._toggleDropDown}},showPrimitiveBoundingSphere:{get:function(){return this._showPrimitiveBoundingSphere}},showPrimitiveReferenceFrame:{get:function(){return this._showPrimitiveReferenceFrame}},doFilterPrimitive:{get:function(){return this._doFilterPrimitive}},incrementDepthFrustum:{get:function(){return this._incrementDepthFrustum}},decrementDepthFrustum:{get:function(){return this._decrementDepthFrustum}},showTileCoordinates:{get:function(){return this._showTileCoordinates}},showTileBoundingSphere:{get:function(){return this._showTileBoundingSphere}},doFilterTile:{get:function(){return this._doFilterTile}},toggleGeneral:{get:function(){return this._toggleGeneral}},togglePrimitives:{get:function(){return this._togglePrimitives}},toggleTerrain:{get:function(){return this._toggleTerrain}},pickPrimitive:{get:function(){return this._pickPrimitive}},pickTile:{get:function(){return this._pickTile}},selectParent:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.parent})}},selectNW:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.northwestChild})}},selectNE:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.northeastChild})}},selectSW:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.southwestChild})}},selectSE:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.southeastChild})}},primitive:{get:function(){return this._primitive},set:function(e){let t=this._primitive;e!==t&&(this.hasPickedPrimitive=!0,l(t)&&(t.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void 0,l(this._modelMatrixPrimitive)&&(this._scene.primitives.remove(this._modelMatrixPrimitive),this._modelMatrixPrimitive=void 0),this._primitive=e,e.show=!1,setTimeout(function(){e.show=!0},50),this.showPrimitiveBoundingSphere(),this.showPrimitiveReferenceFrame(),this.doFilterPrimitive())}},tile:{get:function(){return this._tile},set:function(e){if(l(e)){this.hasPickedTile=!0;let t=this._tile;if(e!==t){this.tileText=`L: ${e.level} X: ${e.x} Y: ${e.y}`,this.tileText+=`<br>SW corner: ${e.rectangle.west}, ${e.rectangle.south}`,this.tileText+=`<br>NE corner: ${e.rectangle.east}, ${e.rectangle.north}`;let n=e.data;l(n)&&l(n.tileBoundingRegion)?this.tileText+=`<br>Min: ${n.tileBoundingRegion.minimumHeight} Max: ${n.tileBoundingRegion.maximumHeight}`:this.tileText+="<br>(Tile is not loaded)"}this._tile=e,this.showTileBoundingSphere(),this.doFilterTile()}else this.hasPickedTile=!1,this._tile=void 0}}});Z3.prototype._update=function(){this.frustums&&(this.frustumStatisticText=ICt(this._scene.debugFrustumStatistics));let e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=U$(1,e,this.depthFrustum),this.depthFrustumText=`${this.depthFrustum} of ${e}`,this.performance&&this._performanceDisplay.update(),this.primitiveReferenceFrame&&(this._modelMatrixPrimitive.modelMatrix=this._primitive.modelMatrix),this.shaderCacheText=`Cached shaders: ${this._scene.context.shaderCache.numberOfShaders}`};Z3.prototype.isDestroyed=function(){return!1};Z3.prototype.destroy=function(){return this._eventHandler.destroy(),this._removePostRenderEvent(),this._frustumsSubscription.dispose(),this._frustumPlanesSubscription.dispose(),this._performanceSubscription.dispose(),this._primitiveBoundingSphereSubscription.dispose(),this._primitiveReferenceFrameSubscription.dispose(),this._filterPrimitiveSubscription.dispose(),this._wireframeSubscription.dispose(),this._depthFrustumSubscription.dispose(),this._suspendUpdatesSubscription.dispose(),this._tileCoordinatesSubscription.dispose(),this._tileBoundingSphereSubscription.dispose(),this._filterTileSubscription.dispose(),this._pickPrimitiveActiveSubscription.dispose(),this._pickTileActiveSubscription.dispose(),ue(this)};var $3=Z3;function C5(e,t){e=Pn(e);let n=document.createElement("div"),i=new $3(t,n);this._viewModel=i,this._container=e;let o=document.createElement("div");this._element=o;let r=document.createElement("div");r.textContent="Cesium Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleDropDown"),o.appendChild(r),o.className="cesium-cesiumInspector",o.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : dropDownVisible, "cesium-cesiumInspector-hidden" : !dropDownVisible }'),e.appendChild(this._element);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",o.appendChild(s);let a=Ua.createSection,c=Ua.createCheckbox,u=a(s,"General","generalVisible","toggleGeneral"),f=c("Show Frustums","frustums"),d=document.createElement("div");d.className="cesium-cesiumInspector-frustumStatistics",d.setAttribute("data-bind","visible: frustums, html: frustumStatisticText"),f.appendChild(d),u.appendChild(f),u.appendChild(c("Show Frustum Planes","frustumPlanes")),u.appendChild(c("Performance Display","performance")),n.className="cesium-cesiumInspector-performanceDisplay",u.appendChild(n);let p=document.createElement("div");p.className="cesium-cesiumInspector-shaderCache",p.setAttribute("data-bind","html: shaderCacheText"),u.appendChild(p);let g=document.createElement("div");u.appendChild(g);let m=document.createElement("span");m.setAttribute("data-bind",'html: " Frustum:"'),g.appendChild(m);let x=document.createElement("span");x.setAttribute("data-bind","text: depthFrustumText"),g.appendChild(x);let b=document.createElement("input");b.type="button",b.value="-",b.className="cesium-cesiumInspector-pickButton",b.setAttribute("data-bind","click: decrementDepthFrustum"),g.appendChild(b);let T=document.createElement("input");T.type="button",T.value="+",T.className="cesium-cesiumInspector-pickButton",T.setAttribute("data-bind","click: incrementDepthFrustum"),g.appendChild(T);let C=a(s,"Primitives","primitivesVisible","togglePrimitives"),A=document.createElement("div");A.className="cesium-cesiumInspector-pickSection",C.appendChild(A);let E=document.createElement("input");E.type="button",E.value="Pick a primitive",E.className="cesium-cesiumInspector-pickButton",E.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickPrimitiveActive}, click: pickPrimitive');let v=document.createElement("div");v.className="cesium-cesiumInspector-center",v.appendChild(E),A.appendChild(v),A.appendChild(c("Show bounding sphere","primitiveBoundingSphere","hasPickedPrimitive")),A.appendChild(c("Show reference frame","primitiveReferenceFrame","hasPickedPrimitive")),this._primitiveOnly=c("Show only selected","filterPrimitive","hasPickedPrimitive"),A.appendChild(this._primitiveOnly);let D=a(s,"Terrain","terrainVisible","toggleTerrain"),O=document.createElement("div");O.className="cesium-cesiumInspector-pickSection",D.appendChild(O);let I=document.createElement("input");I.type="button",I.value="Pick a tile",I.className="cesium-cesiumInspector-pickButton",I.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickTileActive}, click: pickTile'),v=document.createElement("div"),v.appendChild(I),v.className="cesium-cesiumInspector-center",O.appendChild(v);let L=document.createElement("div");O.appendChild(L);let N=document.createElement("input");N.type="button",N.value="Parent",N.className="cesium-cesiumInspector-pickButton",N.setAttribute("data-bind","click: selectParent");let _=document.createElement("input");_.type="button",_.value="NW",_.className="cesium-cesiumInspector-pickButton",_.setAttribute("data-bind","click: selectNW");let S=document.createElement("input");S.type="button",S.value="NE",S.className="cesium-cesiumInspector-pickButton",S.setAttribute("data-bind","click: selectNE");let w=document.createElement("input");w.type="button",w.value="SW",w.className="cesium-cesiumInspector-pickButton",w.setAttribute("data-bind","click: selectSW");let P=document.createElement("input");P.type="button",P.value="SE",P.className="cesium-cesiumInspector-pickButton",P.setAttribute("data-bind","click: selectSE");let M=document.createElement("div");M.className="cesium-cesiumInspector-tileText",L.className="cesium-cesiumInspector-frustumStatistics",L.appendChild(M),L.setAttribute("data-bind","visible: hasPickedTile"),M.setAttribute("data-bind","html: tileText");let B=document.createElement("div");B.className="cesium-cesiumInspector-relativeText",B.textContent="Select relative:",L.appendChild(B);let U=document.createElement("table"),V=document.createElement("tr"),G=document.createElement("tr"),k=document.createElement("td");k.appendChild(N);let Y=document.createElement("td");Y.appendChild(_);let W=document.createElement("td");W.appendChild(S),V.appendChild(k),V.appendChild(Y),V.appendChild(W);let Q=document.createElement("td"),j=document.createElement("td");j.appendChild(w);let K=document.createElement("td");K.appendChild(P),G.appendChild(Q),G.appendChild(j),G.appendChild(K),U.appendChild(V),U.appendChild(G),L.appendChild(U),O.appendChild(c("Show bounding volume","tileBoundingSphere","hasPickedTile")),O.appendChild(c("Show only selected","filterTile","hasPickedTile")),D.appendChild(c("Wireframe","wireframe")),D.appendChild(c("Suspend LOD update","suspendUpdates")),D.appendChild(c("Show tile coordinates","tileCoordinates")),Te.applyBindings(i,this._element)}Object.defineProperties(C5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});C5.prototype.isDestroyed=function(){return!1};C5.prototype.destroy=function(){return Te.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var Q3=C5;function E5(e,t){l(t)||(t=document.body),t=Pn(t);let n=this,i=Te.observable(hr.fullscreen),o=Te.observable(hr.enabled),r=t.ownerDocument;this.isFullscreen=void 0,Te.defineProperty(this,"isFullscreen",{get:function(){return i()}}),this.isFullscreenEnabled=void 0,Te.defineProperty(this,"isFullscreenEnabled",{get:function(){return o()},set:function(s){o(s&&hr.enabled)}}),this.tooltip=void 0,Te.defineProperty(this,"tooltip",function(){return this.isFullscreenEnabled?i()?"Exit full screen":"Full screen":"Full screen unavailable"}),this._command=Cn(function(){hr.fullscreen?hr.exitFullscreen():hr.requestFullscreen(n._fullscreenElement)},Te.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=y(Pn(e),r.body),this._callback=function(){i(hr.fullscreen)},r.addEventListener(hr.changeEventName,this._callback)}Object.defineProperties(E5.prototype,{fullscreenElement:{get:function(){return this._fullscreenElement},set:function(e){this._fullscreenElement=e}},command:{get:function(){return this._command}}});E5.prototype.isDestroyed=function(){return!1};E5.prototype.destroy=function(){document.removeEventListener(hr.changeEventName,this._callback),ue(this)};var J3=E5;var MCt="M 83.96875 17.5625 L 83.96875 17.59375 L 76.65625 24.875 L 97.09375 24.96875 L 76.09375 45.96875 L 81.9375 51.8125 L 102.78125 30.9375 L 102.875 51.15625 L 110.15625 43.875 L 110.1875 17.59375 L 83.96875 17.5625 z M 44.125 17.59375 L 17.90625 17.625 L 17.9375 43.90625 L 25.21875 51.1875 L 25.3125 30.96875 L 46.15625 51.8125 L 52 45.96875 L 31 25 L 51.4375 24.90625 L 44.125 17.59375 z M 46.0625 76.03125 L 25.1875 96.875 L 25.09375 76.65625 L 17.8125 83.9375 L 17.8125 110.21875 L 44 110.25 L 51.3125 102.9375 L 30.90625 102.84375 L 51.875 81.875 L 46.0625 76.03125 z M 82 76.15625 L 76.15625 82 L 97.15625 103 L 76.71875 103.0625 L 84.03125 110.375 L 110.25 110.34375 L 110.21875 84.0625 L 102.9375 76.8125 L 102.84375 97 L 82 76.15625 z",LCt="M 104.34375 17.5625 L 83.5 38.4375 L 83.40625 18.21875 L 76.125 25.5 L 76.09375 51.78125 L 102.3125 51.8125 L 102.3125 51.78125 L 109.625 44.5 L 89.1875 44.40625 L 110.1875 23.40625 L 104.34375 17.5625 z M 23.75 17.59375 L 17.90625 23.4375 L 38.90625 44.4375 L 18.5 44.53125 L 25.78125 51.8125 L 52 51.78125 L 51.96875 25.53125 L 44.6875 18.25 L 44.625 38.46875 L 23.75 17.59375 z M 25.6875 76.03125 L 18.375 83.3125 L 38.78125 83.40625 L 17.8125 104.40625 L 23.625 110.25 L 44.5 89.375 L 44.59375 109.59375 L 51.875 102.3125 L 51.875 76.0625 L 25.6875 76.03125 z M 102.375 76.15625 L 76.15625 76.1875 L 76.1875 102.4375 L 83.46875 109.71875 L 83.5625 89.53125 L 104.40625 110.375 L 110.25 104.53125 L 89.25 83.53125 L 109.6875 83.46875 L 102.375 76.15625 z";function S5(e,t){e=Pn(e);let n=new J3(t,e);n._exitFullScreenPath=LCt,n._enterFullScreenPath=MCt;let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-fullscreenButton",i.setAttribute("data-bind","attr: { title: tooltip },click: command,enable: isFullscreenEnabled,cesiumSvgPath: { path: isFullscreen ? _exitFullScreenPath : _enterFullScreenPath, width: 128, height: 128 }"),e.appendChild(i),Te.applyBindings(n,i),this._container=e,this._viewModel=n,this._element=i}Object.defineProperties(S5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});S5.prototype.isDestroyed=function(){return!1};S5.prototype.destroy=function(){return this._viewModel.destroy(),Te.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var ek=S5;var nCe=1e3;function _d(e){l(e.geocoderServices)?this._geocoderServices=e.geocoderServices:this._geocoderServices=[new pF({scene:e.scene})],this._viewContainer=e.container,this._scene=e.scene,this._flightDuration=e.flightDuration,this._searchText="",this._isSearchInProgress=!1,this._wasGeocodeCancelled=!1,this._previousCredits=[],this._complete=new pe,this._suggestions=[],this._selectedSuggestion=void 0,this._showSuggestions=!0,this._handleArrowDown=oCe,this._handleArrowUp=iCe;let t=this;this._suggestionsVisible=Te.pureComputed(function(){let o=Te.getObservable(t,"_suggestions")().length>0,r=Te.getObservable(t,"_showSuggestions")();return o&&r}),this._searchCommand=Cn(function(i){if(i=y(i,b0.SEARCH),t._focusTextbox=!1,l(t._selectedSuggestion))return t.activateSuggestion(t._selectedSuggestion),!1;if(t.hideSuggestions(),t.isSearchInProgress)UCt(t);else return kCt(t,t._geocoderServices,i)}),this.deselectSuggestion=function(){t._selectedSuggestion=void 0},this.handleKeyDown=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38;return(r||s)&&o.preventDefault(),!0},this.handleKeyUp=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38,a=o.key==="Enter"||o.keyCode===13;return s?iCe(t):r?oCe(t):a&&t._searchCommand(),!0},this.activateSuggestion=function(i){t.hideSuggestions(),t._searchText=i.displayName;let o=i.destination;aCe(t),t.destinationFound(t,o)},this.hideSuggestions=function(){t._showSuggestions=!1,t._selectedSuggestion=void 0},this.showSuggestions=function(){t._showSuggestions=!0},this.handleMouseover=function(i,o){i!==t._selectedSuggestion&&(t._selectedSuggestion=i)},this.keepExpanded=!1,this.autoComplete=y(e.autocomplete,!0),this.destinationFound=y(e.destinationFound,_d.flyToDestination),this._focusTextbox=!1,Te.track(this,["_searchText","_isSearchInProgress","keepExpanded","_suggestions","_selectedSuggestion","_showSuggestions","_focusTextbox"]);let n=Te.getObservable(this,"_searchText");n.extend({rateLimit:{timeout:500}}),this._suggestionSubscription=n.subscribe(function(){_d._updateSearchSuggestions(t)}),this.isSearchInProgress=void 0,Te.defineProperty(this,"isSearchInProgress",{get:function(){return this._isSearchInProgress}}),this.searchText=void 0,Te.defineProperty(this,"searchText",{get:function(){return this.isSearchInProgress?"Searching...":this._searchText},set:function(i){this._searchText=i}}),this.flightDuration=void 0,Te.defineProperty(this,"flightDuration",{get:function(){return this._flightDuration},set:function(i){this._flightDuration=i}})}Object.defineProperties(_d.prototype,{complete:{get:function(){return this._complete}},scene:{get:function(){return this._scene}},search:{get:function(){return this._searchCommand}},selectedSuggestion:{get:function(){return this._selectedSuggestion}},suggestions:{get:function(){return this._suggestions}}});_d.prototype.destroy=function(){this._suggestionSubscription.dispose()};function iCe(e){if(e._suggestions.length===0)return;let t=e._suggestions.indexOf(e._selectedSuggestion);if(t===-1||t===0){e._selectedSuggestion=void 0;return}let n=t-1;e._selectedSuggestion=e._suggestions[n],_d._adjustSuggestionsScroll(e,n)}function oCe(e){if(e._suggestions.length===0)return;let t=e._suggestions.length,i=(e._suggestions.indexOf(e._selectedSuggestion)+1)%t;e._selectedSuggestion=e._suggestions[i],_d._adjustSuggestionsScroll(e,i)}function NCt(e,t){let n=l(t)?t.availability:void 0;return l(n)?FT(t,[e]).then(function(i){return e=i[0],e.height+=nCe,e}):(e.height+=nCe,Promise.resolve(e))}function FCt(e,t){let n=e._scene,o=n.mapProjection.ellipsoid,r=n.camera,s=n.terrainProvider,a=t,c;return t instanceof se?R.equalsEpsilon(t.south,t.north,R.EPSILON7)&&R.equalsEpsilon(t.east,t.west,R.EPSILON7)?t=se.center(t):c=CA(t,n):t=o.cartesianToCartographic(t),l(c)||(c=NCt(t,s)),c.then(function(u){a=o.cartographicToCartesian(u)}).finally(function(){r.flyTo({destination:a,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:F.IDENTITY})})}async function BCt(e,t,n){try{return{state:"fulfilled",value:await e.geocode(t,n),credits:e.credit}}catch(i){return{state:"rejected",reason:i}}}async function kCt(e,t,n){let i=e._searchText;if(sCe(i)){e.showSuggestions();return}e._isSearchInProgress=!0,e._wasGeocodeCancelled=!1;let o,r;for(o=0;o<t.length;o++){if(e._wasGeocodeCancelled)return;if(r=await BCt(t[o],i,n),l(r)&&r.state==="fulfilled"&&r.value.length>0)break}if(e._wasGeocodeCancelled)return;e._isSearchInProgress=!1,H$(e);let s=r.value;if(r.state==="fulfilled"&&l(s)&&s.length>0){e._searchText=s[0].displayName,e.destinationFound(e,s[0].destination);let a=rCe(e,VS.getCreditsFromResult(s[0]));l(a)||z$(e,t[o].credit);return}e._searchText=`${i} (not found)`}function z$(e,t){l(t)&&!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&(e._scene.frameState.creditDisplay.addStaticCredit(t),e._previousCredits.push(t))}function rCe(e,t){return l(t)&&t.forEach(n=>z$(e,n)),t}function H$(e){!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&e._previousCredits.forEach(t=>{e._scene.frameState.creditDisplay.removeStaticCredit(t)}),e._previousCredits.length=0}function VCt(e,t){let n=Pn(e._viewContainer),i=n.getElementsByClassName("search-results")[0],r=n.getElementsByTagName("li")[t];if(t===0){i.scrollTop=0;return}let s=r.offsetTop;s+r.clientHeight>i.clientHeight?i.scrollTop=s+r.clientHeight:s<i.scrollTop&&(i.scrollTop=s)}function UCt(e){e._isSearchInProgress&&(e._isSearchInProgress=!1,e._wasGeocodeCancelled=!0)}function sCe(e){return/^\s*$/.test(e)}function aCe(e){Te.getObservable(e,"_suggestions").removeAll()}async function zCt(e){if(!e.autoComplete)return;let t=e._searchText;if(aCe(e),H$(e),!sCe(t))for(let n of e._geocoderServices){let i=await n.geocode(t,b0.AUTOCOMPLETE);if(e._suggestions=e._suggestions.concat(i),i.length>0){let o=!0;i.forEach(r=>{let s=VS.getCreditsFromResult(r);o=o&&!l(s),rCe(e,s)}),o&&z$(e,n.credit)}if(e._suggestions.length>=5)return}}_d.flyToDestination=FCt;_d._updateSearchSuggestions=zCt;_d._adjustSuggestionsScroll=VCt;_d.prototype.isDestroyed=function(){return!1};_d.prototype.destroy=function(){return H$(this),ue(this)};var tk=_d;var HCt="M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z",GCt="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z";function v5(e){let t=Pn(e.container),n=new tk(e);n._startSearchPath=HCt,n._stopSearchPath=GCt;let i=document.createElement("form");i.setAttribute("data-bind","submit: search");let o=document.createElement("input");o.type="search",o.className="cesium-geocoder-input",o.setAttribute("placeholder","Enter an address or landmark..."),o.setAttribute("data-bind",'textInput: searchText,disable: isSearchInProgress,event: { keyup: handleKeyUp, keydown: handleKeyDown, mouseover: deselectSuggestion },css: { "cesium-geocoder-input-wide" : keepExpanded || searchText.length > 0 },hasFocus: _focusTextbox'),this._onTextBoxFocus=function(){setTimeout(function(){o.select()},0)},o.addEventListener("focus",this._onTextBoxFocus,!1),i.appendChild(o),this._textBox=o;let r=document.createElement("span");r.className="cesium-geocoder-searchButton",r.setAttribute("data-bind","click: search,cesiumSvgPath: { path: isSearchInProgress ? _stopSearchPath : _startSearchPath, width: 32, height: 32 }"),i.appendChild(r),t.appendChild(i);let s=document.createElement("div");s.className="search-results",s.setAttribute("data-bind","visible: _suggestionsVisible");let a=document.createElement("ul");a.setAttribute("data-bind","foreach: _suggestions");let c=document.createElement("li");a.appendChild(c),c.setAttribute("data-bind","text: $data.displayName, click: $parent.activateSuggestion, event: { mouseover: $parent.handleMouseover}, css: { active: $data === $parent._selectedSuggestion }"),s.appendChild(a),t.appendChild(s),Te.applyBindings(n,i),Te.applyBindings(n,s),this._container=t,this._searchSuggestionsContainer=s,this._viewModel=n,this._form=i,this._onInputBegin=function(u){let f=u.target;typeof u.composedPath=="function"&&(f=u.composedPath()[0]),t.contains(f)||(n._focusTextbox=!1,n.hideSuggestions())},this._onInputEnd=function(u){n._focusTextbox=!0,n.showSuggestions()},Vt.supportsPointerEvents()?(document.addEventListener("pointerdown",this._onInputBegin,!0),t.addEventListener("pointerup",this._onInputEnd,!0),t.addEventListener("pointercancel",this._onInputEnd,!0)):(document.addEventListener("mousedown",this._onInputBegin,!0),t.addEventListener("mouseup",this._onInputEnd,!0),document.addEventListener("touchstart",this._onInputBegin,!0),t.addEventListener("touchend",this._onInputEnd,!0),t.addEventListener("touchcancel",this._onInputEnd,!0))}Object.defineProperties(v5.prototype,{container:{get:function(){return this._container}},searchSuggestionsContainer:{get:function(){return this._searchSuggestionsContainer}},viewModel:{get:function(){return this._viewModel}}});v5.prototype.isDestroyed=function(){return!1};v5.prototype.destroy=function(){let e=this._container;return Vt.supportsPointerEvents()?(document.removeEventListener("pointerdown",this._onInputBegin,!0),e.removeEventListener("pointerup",this._onInputEnd,!0)):(document.removeEventListener("mousedown",this._onInputBegin,!0),e.removeEventListener("mouseup",this._onInputEnd,!0),document.removeEventListener("touchstart",this._onInputBegin,!0),e.removeEventListener("touchend",this._onInputEnd,!0)),this._viewModel.destroy(),Te.cleanNode(this._form),Te.cleanNode(this._searchSuggestionsContainer),e.removeChild(this._form),e.removeChild(this._searchSuggestionsContainer),this._textBox.removeEventListener("focus",this._onTextBoxFocus,!1),ue(this)};var nk=v5;function cCe(e,t){this._scene=e,this._duration=t;let n=this;this._command=Cn(function(){n._scene.camera.flyHome(n._duration)}),this.tooltip="View Home",Te.track(this,["tooltip"])}Object.defineProperties(cCe.prototype,{scene:{get:function(){return this._scene}},command:{get:function(){return this._command}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}}});var ik=cCe;function w5(e,t,n){e=Pn(e);let i=new ik(t,n);i._svgPath="M14,4l-10,8.75h20l-4.25-3.7188v-4.6562h-2.812v2.1875l-2.938-2.5625zm-7.0938,9.906v10.094h14.094v-10.094h-14.094zm2.1876,2.313h3.3122v4.25h-3.3122v-4.25zm5.8442,1.281h3.406v6.438h-3.406v-6.438z";let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button cesium-home-button",o.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 28, height: 28 }"),e.appendChild(o),Te.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(w5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});w5.prototype.isDestroyed=function(){return!1};w5.prototype.destroy=function(){return Te.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var ok=w5;function WCt(e,t){t.currentTarget.parentElement.parentElement.querySelector(`#${e.name}-expander`).classList.toggle("active"),t.currentTarget.textContent=t.currentTarget.textContent==="+"?"-":"+"}function uCe(e,t){Te.track(e);for(let n=0;n<e.sublayers.length;n++)uCe(e.sublayers[n],t)}function D5(e){return e.modelName==="FullModel"}function fCe(e){return e.modelName==="Overview"}function dCe(e){return fCe(e)||D5(e)}function lCe(e,t){if(dCe(e)){e.visibility=!1;for(let i=0;i<e.sublayers.length;i++)e.sublayers[i].visibility=!0;let n={name:e.name,modelName:e.modelName,disable:Te.observable(!1),index:t.sublayers.length};return t.topLayers.push(n),t.sublayers.push(e),n}}function jCt(e,t){if(dCe(e)){t.sublayers.forEach(i=>i.visibility=!1),t.sublayers[e.index].visibility=!0;let n=document.getElementById("bsl-wrapper");D5(e)?(t.currentLevel=t.selectedLevel,n.style.display="block"):(t.selectedLevel=t.currentLevel,t.currentLevel="All",n.style.display="none")}}async function qCt(e,t){try{let n=e.getAttributeNames();for(let i=0;i<n.length;i++)if(n[i]==="BldgLevel"){let o=e.getAttributeValues(n[i]);for(let r=0;r<o.length;r++)t.push(o[r])}t.sort((i,o)=>i-o),t.unshift("All")}catch(n){console.log(`There was an error getting attributes: ${n}`)}}function YCt(e){let t=this;this.levels=[],this.viewModel={sublayers:[],levels:this.levels,currentLevel:Te.observable(),selectedLevel:"All",topLayers:[{name:"Select a layer to explore...",disable:Te.observable(!0),index:-1}],currentLayer:Te.observable(),expandClickHandler:WCt,setOptionDisable:function(i,o){Te.applyBindingsToNode(i,{disable:o.disable},o)},defaultLayer:void 0},this.viewModel.currentLayer.subscribe(function(i){jCt(i,t.viewModel)});let n=e.sublayers;for(let i=0;i<n.length;i++){uCe(n[i],this.viewModel);let o=lCe(n[i],this.viewModel);l(o)&&(fCe(o)||!l(this.viewModel.defaultLayer)&&D5(o))&&(this.viewModel.defaultLayer=o)}if(this.viewModel.topLayers.length===1&&n.length>0){e.show=!1;let i={name:"Full Model",modelName:"FullModel",visibility:e.show,sublayers:e.sublayers};this.viewModel.defaultLayer=lCe(i,this.viewModel),this.viewModel.currentLayer.subscribe(function(o){e.show=D5(o)})}else this.viewModel.topLayers.length===1&&(this.viewModel.topLayers[0].name="Building layers not found");return qCt(e,this.levels),this.viewModel.currentLevel.subscribe(function(i){i!=="All"?e.filterByAttributes([{name:"BldgLevel",values:[i]}]):e.filterByAttributes()}),this.viewModel}var rk=YCt;function XCt(e,t){let n=document.getElementById(e),i=document.createElement("div");i.classList.add("cesium-viewer-i3s-explorer"),i.innerHTML=` <h3>Building explorer</h3> <select data-bind="options: topLayers, optionsText: 'name', optionsAfterRender: setOptionDisable, value: currentLayer" ></select> <div id="bsl-wrapper"> <h3>Select Level</h3> <select data-bind="options: levels, value: currentLevel"></select> <h3>Disciplines & Categories</h3> <ul class="layersList" data-bind="foreach: sublayers"> <ul class="layersList" data-bind="foreach: sublayers.sort(function (l, r) { return l.name.localeCompare(r.name) })"> <li> <div class="li-wrapper"> <span class="expandItem" data-bind="click: $root.expandClickHandler" >+</span > <input type="checkbox" data-bind="checked: visibility, valueUpdate: 'input', attr: { id: name}" /> <label data-bind="attr: { for: name}"> <span data-bind="text: name"></span> </label> </div> <ul class="nested" data-bind="attr: { id: name + '-expander'}"> <li data-bind="foreach: sublayers.sort(function (l, r) { return l.name.localeCompare(r.name) })"> <div class="li-wrapper"> <input type="checkbox" data-bind="checked: visibility, valueUpdate: 'input', attr: { id: name}" /> <label data-bind="attr: { for: name}"> <span data-bind="text: name"></span> </label> </div> </li> </ul> </li> </ul> </ul> </div>`,n.appendChild(i);let o=new rk(t);Te.track(o),Te.applyBindings(o,n),l(o.defaultLayer)&&(o.currentLayer=o.defaultLayer)}var G$=XCt;function hCe(){this.showInstructions=!1;let e=this;this._command=Cn(function(){e.showInstructions=!e.showInstructions}),this._showClick=Cn(function(){e._touch=!1}),this._showTouch=Cn(function(){e._touch=!0}),this._touch=!1,this.tooltip="Navigation Instructions",Te.track(this,["tooltip","showInstructions","_touch"])}Object.defineProperties(hCe.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}});var sk=hCe;function P5(e){let t=Pn(e.container),n=new sk,i=y(e.instructionsInitiallyVisible,!1);n.showInstructions=i,n._svgPath="M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.328,24.371h-2.707v-2.596h2.707V24.371zM17.328,19.003v0.858h-2.707v-1.057c0-3.19,3.63-3.696,3.63-5.963c0-1.034-0.924-1.826-2.134-1.826c-1.254,0-2.354,0.924-2.354,0.924l-1.541-1.915c0,0,1.519-1.584,4.137-1.584c2.487,0,4.796,1.54,4.796,4.136C21.156,16.208,17.328,16.627,17.328,19.003z";let o=document.createElement("span");o.className="cesium-navigationHelpButton-wrapper",t.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-navigation-help-button",r.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 32, height: 32 }"),o.appendChild(r);let s=document.createElement("div");s.className="cesium-navigation-help",s.setAttribute("data-bind",'css: { "cesium-navigation-help-visible" : showInstructions}'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-navigation-button cesium-navigation-button-left",a.setAttribute("data-bind",'click: showClick, css: {"cesium-navigation-button-selected": !_touch, "cesium-navigation-button-unselected": _touch}');let c=document.createElement("img");c.src=en("Widgets/Images/NavigationHelp/Mouse.svg"),c.className="cesium-navigation-button-icon",c.style.width="25px",c.style.height="25px",a.appendChild(c),a.appendChild(document.createTextNode("Mouse"));let u=document.createElement("button");u.type="button",u.className="cesium-navigation-button cesium-navigation-button-right",u.setAttribute("data-bind",'click: showTouch, css: {"cesium-navigation-button-selected": _touch, "cesium-navigation-button-unselected": !_touch}');let f=document.createElement("img");f.src=en("Widgets/Images/NavigationHelp/Touch.svg"),f.className="cesium-navigation-button-icon",f.style.width="25px",f.style.height="25px",u.appendChild(f),u.appendChild(document.createTextNode("Touch")),s.appendChild(a),s.appendChild(u);let d=document.createElement("div");d.className="cesium-click-navigation-help cesium-navigation-help-instructions",d.setAttribute("data-bind",'css: { "cesium-click-navigation-help-visible" : !_touch}'),d.innerHTML=` <table> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/MouseLeft.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">Left click + drag</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/MouseRight.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Right click + drag, or</div> <div class="cesium-navigation-help-details">Mouse wheel scroll</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/MouseMiddle.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Rotate view</div> <div class="cesium-navigation-help-details">Middle click + drag, or</div> <div class="cesium-navigation-help-details">CTRL + Left/Right click + drag</div> </td> </tr> </table>`,s.appendChild(d);let p=document.createElement("div");p.className="cesium-touch-navigation-help cesium-navigation-help-instructions",p.setAttribute("data-bind",'css: { "cesium-touch-navigation-help-visible" : _touch}'),p.innerHTML=` <table> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/TouchDrag.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">One finger drag</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/TouchZoom.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Two finger pinch</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/TouchTilt.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Tilt view</div> <div class="cesium-navigation-help-details">Two finger drag, same direction</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/TouchRotate.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-tilt">Rotate view</div> <div class="cesium-navigation-help-details">Two finger drag, opposite direction</div> </td> </tr> </table>`,s.appendChild(p),Te.applyBindings(n,o),this._container=t,this._viewModel=n,this._wrapper=o,this._closeInstructions=function(g){o.contains(g.target)||(n.showInstructions=!1)},Vt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}Object.defineProperties(P5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});P5.prototype.isDestroyed=function(){return!1};P5.prototype.destroy=function(){return Vt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeInstructions,!0):(document.removeEventListener("mousedown",this._closeInstructions,!0),document.removeEventListener("touchstart",this._closeInstructions,!0)),Te.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var ak=P5;var KCt="M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4853444 22.104033 11.423165 24.0625 13.84375 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 8.975298 28.305952 7.03125 25.875 7.03125 L 13.84375 7.03125 z",ZCt="M 27.34375 1.65625 L 5.28125 27.9375 L 8.09375 30.3125 L 30.15625 4.03125 L 27.34375 1.65625 z M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4724893 20.232036 9.5676108 20.7379 9.75 21.21875 L 21.65625 7.03125 L 13.84375 7.03125 z M 28.21875 7.71875 L 14.53125 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 9.8371439 29.456025 8.4902779 28.21875 7.71875 z";function W$(){this._cameraClicked=new pe,this._closeClicked=new pe,this.maxHeight=500,this.enableCamera=!1,this.isCameraTracking=!1,this.showInfo=!1,this.titleText="",this.description="",Te.track(this,["showInfo","titleText","description","maxHeight","enableCamera","isCameraTracking"]),this._loadingIndicatorHtml='<div class="cesium-infoBox-loadingContainer"><span class="cesium-infoBox-loading"></span></div>',this.cameraIconPath=void 0,Te.defineProperty(this,"cameraIconPath",{get:function(){return!this.enableCamera||this.isCameraTracking?ZCt:KCt}}),Te.defineProperty(this,"_bodyless",{get:function(){return!l(this.description)||this.description.length===0}})}W$.prototype.maxHeightOffset=function(e){return`${this.maxHeight-e}px`};Object.defineProperties(W$.prototype,{cameraClicked:{get:function(){return this._cameraClicked}},closeClicked:{get:function(){return this._closeClicked}}});var ck=W$;function I5(e){e=Pn(e);let t=document.createElement("div");t.className="cesium-infoBox",t.setAttribute("data-bind",'css: { "cesium-infoBox-visible" : showInfo, "cesium-infoBox-bodyless" : _bodyless }'),e.appendChild(t);let n=document.createElement("div");n.className="cesium-infoBox-title",n.setAttribute("data-bind","text: titleText"),t.appendChild(n);let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-infoBox-camera",i.setAttribute("data-bind",'attr: { title: "Focus camera on object" },click: function () { cameraClicked.raiseEvent(this); },enable: enableCamera,cesiumSvgPath: { path: cameraIconPath, width: 32, height: 32 }'),t.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-infoBox-close",o.setAttribute("data-bind","click: function () { closeClicked.raiseEvent(this); }"),o.innerHTML="×",t.appendChild(o);let r=document.createElement("iframe");r.className="cesium-infoBox-iframe",r.setAttribute("sandbox","allow-same-origin allow-popups allow-forms"),r.setAttribute("data-bind","style : { maxHeight : maxHeightOffset(40) }"),r.setAttribute("allowfullscreen",!0),t.appendChild(r);let s=new ck;Te.applyBindings(s,t),this._container=e,this._element=t,this._frame=r,this._viewModel=s,this._descriptionSubscription=void 0;let a=this;r.addEventListener("load",function(){let c=r.contentDocument,u=c.createElement("link");u.href=en("Widgets/InfoBox/InfoBoxDescription.css"),u.rel="stylesheet",u.type="text/css";let f=c.createElement("div");f.className="cesium-infoBox-description",c.head.appendChild(u),c.body.appendChild(f),a._descriptionSubscription=_a(s,"description",function(d){r.style.height="5px",f.innerHTML=d;let p=null,g=f.firstElementChild;if(g!==null&&f.childNodes.length===1){let x=window.getComputedStyle(g);if(x!==null){let b=x["background-color"],T=H.fromCssColorString(b);l(T)&&T.alpha!==0&&(p=x["background-color"])}}t.style["background-color"]=p;let m=f.getBoundingClientRect().height;r.style.height=`${m}px`})}),r.setAttribute("src","about:blank")}Object.defineProperties(I5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}},frame:{get:function(){return this._frame}}});I5.prototype.isDestroyed=function(){return!1};I5.prototype.destroy=function(){let e=this._container;return Te.cleanNode(this._element),e.removeChild(this._element),l(this._descriptionSubscription)&&this._descriptionSubscription.dispose(),ue(this)};var lk=I5;function j$(e){this._scene=e.scene,this.lowFrameRateMessage=y(e.lowFrameRateMessage,"This application appears to be performing poorly on your system. Please try using a different web browser or updating your video drivers."),this.lowFrameRateMessageDismissed=!1,this.showingLowFrameRateMessage=!1,Te.track(this,["lowFrameRateMessage","lowFrameRateMessageDismissed","showingLowFrameRateMessage"]);let t=this;this._dismissMessage=Cn(function(){t.showingLowFrameRateMessage=!1,t.lowFrameRateMessageDismissed=!0});let n=m3.fromScene(e.scene);this._unsubscribeLowFrameRate=n.lowFrameRate.addEventListener(function(){t.lowFrameRateMessageDismissed||(t.showingLowFrameRateMessage=!0)}),this._unsubscribeNominalFrameRate=n.nominalFrameRate.addEventListener(function(){t.showingLowFrameRateMessage=!1})}Object.defineProperties(j$.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}});j$.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),ue(this)};var uk=j$;function R5(e){let t=Pn(e.container),n=new uk(e),i=document.createElement("div");i.className="cesium-performance-watchdog-message-area",i.setAttribute("data-bind","visible: showingLowFrameRateMessage");let o=document.createElement("button");o.setAttribute("type","button"),o.className="cesium-performance-watchdog-message-dismiss",o.innerHTML="×",o.setAttribute("data-bind","click: dismissMessage"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-performance-watchdog-message",r.setAttribute("data-bind","html: lowFrameRateMessage"),i.appendChild(r),t.appendChild(i),Te.applyBindings(n,i),this._container=t,this._viewModel=n,this._element=i}Object.defineProperties(R5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});R5.prototype.isDestroyed=function(){return!1};R5.prototype.destroy=function(){return this._viewModel.destroy(),Te.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var fk=R5;function O5(e){this._scene=e,this._orthographic=e.camera.frustum instanceof rn,this._flightInProgress=!1,this.dropDownVisible=!1,this.tooltipPerspective="Perspective Projection",this.tooltipOrthographic="Orthographic Projection",this.selectedTooltip=void 0,this.sceneMode=e.mode,Te.track(this,["_orthographic","_flightInProgress","sceneMode","dropDownVisible","tooltipPerspective","tooltipOrthographic"]);let t=this;Te.defineProperty(this,"selectedTooltip",function(){return t._orthographic?t.tooltipOrthographic:t.tooltipPerspective}),this._toggleDropDown=Cn(function(){t.sceneMode===ne.SCENE2D||t._flightInProgress||(t.dropDownVisible=!t.dropDownVisible)}),this._eventHelper=new Ir,this._eventHelper.add(e.morphComplete,function(n,i,o,r){t.sceneMode=o,t._orthographic=o===ne.SCENE2D||t._scene.camera.frustum instanceof rn}),this._eventHelper.add(e.preRender,function(){t._flightInProgress=l(e.camera._currentFlight)}),this._switchToPerspective=Cn(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToPerspectiveFrustum(),t._orthographic=!1,t.dropDownVisible=!1)}),this._switchToOrthographic=Cn(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToOrthographicFrustum(),t._orthographic=!0,t.dropDownVisible=!1)}),this._sceneMode=ne}Object.defineProperties(O5.prototype,{scene:{get:function(){return this._scene}},toggleDropDown:{get:function(){return this._toggleDropDown}},switchToPerspective:{get:function(){return this._switchToPerspective}},switchToOrthographic:{get:function(){return this._switchToOrthographic}},isOrthographicProjection:{get:function(){return this._orthographic}}});O5.prototype.isDestroyed=function(){return!1};O5.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var dk=O5;var $Ct="M 28.15625,10.4375 9.125,13.21875 13.75,43.25 41.75,55.09375 50.8125,37 54.5,11.9375 z m 0.125,3 19.976451,0.394265 L 43.03125,16.875 22.6875,14.28125 z M 50.971746,15.705477 47.90625,36.03125 42.53125,46 44.84375,19.3125 z M 12.625,16.03125 l 29.15625,3.6875 -2.65625,31 L 16.4375,41.125 z",QCt="m 31.560594,6.5254438 -20.75,12.4687502 0.1875,24.5625 22.28125,11.8125 19.5,-12 0.65625,-0.375 0,-0.75 0.0312,-23.21875 z m 0.0625,3.125 16.65625,9.5000002 -16.125,10.28125 -17.34375,-9.71875 z m 18.96875,11.1875002 0.15625,20.65625 -17.46875,10.59375 0.15625,-20.28125 z m -37.0625,1.25 17.21875,9.625 -0.15625,19.21875 -16.9375,-9 z";function M5(e,t){e=Pn(e);let n=new dk(t);n._perspectivePath=$Ct,n._orthographicPath=QCt;let i=document.createElement("span");i.className="cesium-projectionPicker-wrapper cesium-toolbar-button",e.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button",o.setAttribute("data-bind",'css: { "cesium-projectionPicker-buttonPerspective": !_orthographic, "cesium-projectionPicker-buttonOrthographic": _orthographic, "cesium-button-disabled" : sceneMode === _sceneMode.SCENE2D || _flightInProgress, "cesium-projectionPicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),o.innerHTML='<!-- ko cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64, css: "cesium-projectionPicker-iconPerspective" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64, css: "cesium-projectionPicker-iconOrthographic" } --><!-- /ko -->',i.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",r.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && _orthographic), "cesium-projectionPicker-none" : !_orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible },attr: { title: tooltipPerspective },click: switchToPerspective,cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64 }'),i.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && !_orthographic), "cesium-projectionPicker-none" : _orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible},attr: { title: tooltipOrthographic },click: switchToOrthographic,cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64 }'),i.appendChild(s),Te.applyBindings(n,i),this._viewModel=n,this._container=e,this._wrapper=i,this._closeDropDown=function(a){i.contains(a.target)||(n.dropDownVisible=!1)},Vt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(M5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});M5.prototype.isDestroyed=function(){return!1};M5.prototype.destroy=function(){return this._viewModel.destroy(),Vt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Te.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var hk=M5;function L5(e,t){this._scene=e;let n=this,i=function(o,r,s,a){n.sceneMode=s,n.dropDownVisible=!1};this._eventHelper=new Ir,this._eventHelper.add(e.morphStart,i),this._duration=y(t,2),this.sceneMode=e.mode,this.dropDownVisible=!1,this.tooltip2D="2D",this.tooltip3D="3D",this.tooltipColumbusView="Columbus View",Te.track(this,["sceneMode","dropDownVisible","tooltip2D","tooltip3D","tooltipColumbusView"]),this.selectedTooltip=void 0,Te.defineProperty(this,"selectedTooltip",function(){let o=n.sceneMode;return o===ne.SCENE2D?n.tooltip2D:o===ne.SCENE3D?n.tooltip3D:n.tooltipColumbusView}),this._toggleDropDown=Cn(function(){n.dropDownVisible=!n.dropDownVisible}),this._morphTo2D=Cn(function(){e.morphTo2D(n._duration)}),this._morphTo3D=Cn(function(){e.morphTo3D(n._duration)}),this._morphToColumbusView=Cn(function(){e.morphToColumbusView(n._duration)}),this._sceneMode=ne}Object.defineProperties(L5.prototype,{scene:{get:function(){return this._scene}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}},toggleDropDown:{get:function(){return this._toggleDropDown}},morphTo2D:{get:function(){return this._morphTo2D}},morphTo3D:{get:function(){return this._morphTo3D}},morphToColumbusView:{get:function(){return this._morphToColumbusView}}});L5.prototype.isDestroyed=function(){return!1};L5.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var mk=L5;var JCt="m 32.401392,4.9330437 c -7.087603,0 -14.096095,2.884602 -19.10793,7.8946843 -5.0118352,5.010083 -7.9296167,11.987468 -7.9296167,19.072999 0,7.085531 2.9177815,14.097848 7.9296167,19.107931 4.837653,4.835961 11.541408,7.631372 18.374354,7.82482 0.05712,0.01231 0.454119,0.139729 0.454119,0.139729 l 0.03493,-0.104797 c 0.08246,7.84e-4 0.162033,0.03493 0.244525,0.03493 0.08304,0 0.161515,-0.03414 0.244526,-0.03493 l 0.03493,0.104797 c 0,0 0.309474,-0.129487 0.349323,-0.139729 6.867765,-0.168094 13.582903,-2.965206 18.444218,-7.82482 2.558195,-2.5573 4.551081,-5.638134 5.903547,-8.977584 1.297191,-3.202966 2.02607,-6.661489 2.02607,-10.130347 0,-6.237309 -2.366261,-12.31219 -6.322734,-17.116794 -0.0034,-0.02316 0.0049,-0.04488 0,-0.06986 -0.01733,-0.08745 -0.104529,-0.278855 -0.104797,-0.279458 -5.31e-4,-0.0012 -0.522988,-0.628147 -0.523984,-0.62878 -3.47e-4,-2.2e-4 -0.133444,-0.03532 -0.244525,-0.06987 C 51.944299,13.447603 51.751076,13.104317 51.474391,12.827728 46.462556,7.8176457 39.488996,4.9330437 32.401392,4.9330437 z m -2.130866,3.5281554 0.104797,9.6762289 c -4.111695,-0.08361 -7.109829,-0.423664 -9.257041,-0.943171 1.198093,-2.269271 2.524531,-4.124404 3.91241,-5.414496 2.167498,-2.0147811 3.950145,-2.8540169 5.239834,-3.3185619 z m 2.794579,0 c 1.280302,0.4754953 3.022186,1.3285948 5.065173,3.2486979 1.424667,1.338973 2.788862,3.303645 3.982275,5.728886 -2.29082,0.403367 -5.381258,0.621049 -8.942651,0.698645 L 33.065105,8.4611991 z m 5.728886,0.2445256 c 4.004072,1.1230822 7.793098,3.1481363 10.724195,6.0782083 0.03468,0.03466 0.07033,0.06991 0.104797,0.104797 -0.45375,0.313891 -0.923054,0.663002 -1.956205,1.082899 -0.647388,0.263114 -1.906242,0.477396 -2.829511,0.733577 -1.382296,-2.988132 -3.027146,-5.368585 -4.785716,-7.0213781 -0.422866,-0.397432 -0.835818,-0.6453247 -1.25756,-0.9781032 z m -15.33525,0.7685092 c -0.106753,0.09503 -0.207753,0.145402 -0.31439,0.244526 -1.684973,1.5662541 -3.298068,3.8232211 -4.680919,6.5672591 -0.343797,-0.14942 -1.035052,-0.273198 -1.292493,-0.419186 -0.956528,-0.542427 -1.362964,-1.022024 -1.537018,-1.292493 -0.0241,-0.03745 -0.01868,-0.0401 -0.03493,-0.06986 2.250095,-2.163342 4.948824,-3.869984 7.859752,-5.0302421 z m -9.641296,7.0912431 c 0.464973,0.571618 0.937729,1.169056 1.956205,1.746612 0.349907,0.198425 1.107143,0.335404 1.537018,0.523983 -1.20166,3.172984 -1.998037,7.051901 -2.165798,11.772162 C 14.256557,30.361384 12.934823,30.161483 12.280427,29.90959 10.644437,29.279855 9.6888882,28.674891 9.1714586,28.267775 8.6540289,27.860658 8.6474751,27.778724 8.6474751,27.778724 l -0.069864,0.03493 C 9.3100294,23.691285 11.163248,19.798527 13.817445,16.565477 z m 37.552149,0.523984 c 2.548924,3.289983 4.265057,7.202594 4.890513,11.318043 -0.650428,0.410896 -1.756876,1.001936 -3.563088,1.606882 -1.171552,0.392383 -3.163859,0.759153 -4.960377,1.117832 -0.04367,-4.752703 -0.784809,-8.591423 -1.88634,-11.807094 0.917574,-0.263678 2.170552,-0.486495 2.864443,-0.76851 1.274693,-0.518066 2.003942,-1.001558 2.654849,-1.467153 z m -31.439008,2.619917 c 2.487341,0.672766 5.775813,1.137775 10.479669,1.222628 l 0.104797,10.689263 0,0.03493 0,0.733577 c -5.435005,-0.09059 -9.512219,-0.519044 -12.610536,-1.117831 0.106127,-4.776683 0.879334,-8.55791 2.02607,-11.562569 z m 23.264866,0.31439 c 1.073459,3.067541 1.833795,6.821314 1.816476,11.702298 -3.054474,0.423245 -7.062018,0.648559 -11.702298,0.698644 l 0,-0.838373 -0.104796,-10.654331 c 4.082416,-0.0864 7.404468,-0.403886 9.990618,-0.908238 z M 8.2632205,30.922625 c 0.7558676,0.510548 1.5529563,1.013339 3.0041715,1.57195 0.937518,0.360875 2.612202,0.647642 3.91241,0.978102 0.112814,3.85566 0.703989,7.107756 1.606883,9.920754 -1.147172,-0.324262 -2.644553,-0.640648 -3.423359,-0.978102 -1.516688,-0.657177 -2.386627,-1.287332 -2.864443,-1.71168 -0.477816,-0.424347 -0.489051,-0.489051 -0.489051,-0.489051 L 9.8002387,40.319395 C 8.791691,37.621767 8.1584238,34.769583 8.1584238,31.900727 c 0,-0.330153 0.090589,-0.648169 0.1047967,-0.978102 z m 48.2763445,0.419186 c 0.0047,0.188973 0.06986,0.36991 0.06986,0.558916 0,2.938869 -0.620228,5.873558 -1.676747,8.628261 -0.07435,0.07583 -0.06552,0.07411 -0.454119,0.349323 -0.606965,0.429857 -1.631665,1.042044 -3.318562,1.676747 -1.208528,0.454713 -3.204964,0.850894 -5.135038,1.25756 0.84593,-2.765726 1.41808,-6.005357 1.606883,-9.815957 2.232369,-0.413371 4.483758,-0.840201 5.938479,-1.327425 1.410632,-0.472457 2.153108,-0.89469 2.96924,-1.327425 z m -38.530252,2.864443 c 3.208141,0.56697 7.372279,0.898588 12.575603,0.978103 l 0.174662,9.885821 c -4.392517,-0.06139 -8.106722,-0.320566 -10.863925,-0.803441 -1.051954,-2.664695 -1.692909,-6.043794 -1.88634,-10.060483 z m 26.793022,0.31439 c -0.246298,3.923551 -0.877762,7.263679 -1.816476,9.885822 -2.561957,0.361954 -5.766249,0.560708 -9.431703,0.62878 l -0.174661,-9.815957 c 4.491734,-0.04969 8.334769,-0.293032 11.42284,-0.698645 z M 12.035901,44.860585 c 0.09977,0.04523 0.105535,0.09465 0.209594,0.139729 1.337656,0.579602 3.441099,1.058072 5.589157,1.537018 1.545042,3.399208 3.548524,5.969402 5.589157,7.789888 -3.034411,-1.215537 -5.871615,-3.007978 -8.174142,-5.309699 -1.245911,-1.245475 -2.271794,-2.662961 -3.213766,-4.156936 z m 40.69605,0 c -0.941972,1.493975 -1.967855,2.911461 -3.213765,4.156936 -2.74253,2.741571 -6.244106,4.696717 -9.955686,5.868615 0.261347,-0.241079 0.507495,-0.394491 0.768509,-0.663713 1.674841,-1.727516 3.320792,-4.181056 4.645987,-7.265904 2.962447,-0.503021 5.408965,-1.122293 7.161107,-1.781544 0.284034,-0.106865 0.337297,-0.207323 0.593848,-0.31439 z m -31.404076,2.305527 c 2.645807,0.376448 5.701178,0.649995 9.466635,0.698645 l 0.139729,7.789888 c -1.38739,-0.480844 -3.316218,-1.29837 -5.659022,-3.388427 -1.388822,-1.238993 -2.743668,-3.0113 -3.947342,-5.100106 z m 20.365491,0.104797 c -1.04872,2.041937 -2.174337,3.779068 -3.353494,4.995309 -1.853177,1.911459 -3.425515,2.82679 -4.611055,3.353494 l -0.139729,-7.789887 c 3.13091,-0.05714 5.728238,-0.278725 8.104278,-0.558916 z",eEt="m 2.9825053,17.550598 0,1.368113 0,26.267766 0,1.368113 1.36811,0 54.9981397,0 1.36811,0 0,-1.368113 0,-26.267766 0,-1.368113 -1.36811,0 -54.9981397,0 -1.36811,0 z m 2.73623,2.736226 10.3292497,0 0,10.466063 -10.3292497,0 0,-10.466063 z m 13.0654697,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 10.32926,0 0,10.466063 -10.32926,0 0,-10.466063 z m -41.9326497,13.202288 10.3292497,0 0,10.329252 -10.3292497,0 0,-10.329252 z m 13.0654697,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 10.32926,0 0,10.329252 -10.32926,0 0,-10.329252 z",tEt="m 14.723969,17.675598 -0.340489,0.817175 -11.1680536,26.183638 -0.817175,1.872692 2.076986,0 54.7506996,0 2.07698,0 -0.81717,-1.872692 -11.16805,-26.183638 -0.34049,-0.817175 -0.91933,0 -32.414586,0 -0.919322,0 z m 1.838643,2.723916 6.196908,0 -2.928209,10.418977 -7.729111,0 4.460412,-10.418977 z m 9.02297,0 4.903049,0 0,10.418977 -7.831258,0 2.928209,-10.418977 z m 7.626964,0 5.584031,0 2.62176,10.418977 -8.205791,0 0,-10.418977 z m 8.410081,0 5.51593,0 4.46042,10.418977 -7.38863,0 -2.58772,-10.418977 z m -30.678091,13.142892 8.103649,0 -2.89416,10.282782 -9.6018026,0 4.3923136,-10.282782 z m 10.929711,0 8.614384,0 0,10.282782 -11.508544,0 2.89416,-10.282782 z m 11.338299,0 8.852721,0 2.58772,10.282782 -11.440441,0 0,-10.282782 z m 11.678781,0 7.86531,0 4.39231,10.282782 -9.6699,0 -2.58772,-10.282782 z";function N5(e,t,n){e=Pn(e);let i=new mk(t,n);i._globePath=JCt,i._flatMapPath=eEt,i._columbusViewPath=tEt;let o=document.createElement("span");o.className="cesium-sceneModePicker-wrapper cesium-toolbar-button",e.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button",r.setAttribute("data-bind",'css: { "cesium-sceneModePicker-button2D": sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-button3D": sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-buttonColumbusView": sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),r.innerHTML='<!-- ko cesiumSvgPath: { path: _globePath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon3D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon2D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-iconColumbusView" } --><!-- /ko -->',o.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE3D)) || (!dropDownVisible && (sceneMode === _sceneMode.SCENE3D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip3D },click: morphTo3D,cesiumSvgPath: { path: _globePath, width: 64, height: 64 }'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",a.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE2D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip2D },click: morphTo2D,cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64 }'),o.appendChild(a);let c=document.createElement("button");c.type="button",c.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",c.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.COLUMBUS_VIEW)) || (!dropDownVisible && (sceneMode === _sceneMode.COLUMBUS_VIEW)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-hidden" : !dropDownVisible},attr: { title: tooltipColumbusView },click: morphToColumbusView,cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64 }'),o.appendChild(c),Te.applyBindings(i,o),this._viewModel=i,this._container=e,this._wrapper=o,this._closeDropDown=function(u){o.contains(u.target)||(i.dropDownVisible=!1)},Vt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(N5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});N5.prototype.isDestroyed=function(){return!1};N5.prototype.destroy=function(){return this._viewModel.destroy(),Vt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Te.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var pk=N5;var nEt=new z,F5="-1000px";function _k(e,t,n){this._scene=e,this._screenPositionX=F5,this._screenPositionY=F5,this._tweens=e.tweens,this._container=y(n,document.body),this._selectionIndicatorElement=t,this._scale=1,this.position=void 0,this.showSelection=!1,Te.track(this,["position","_screenPositionX","_screenPositionY","_scale","showSelection"]),this.isVisible=void 0,Te.defineProperty(this,"isVisible",{get:function(){return this.showSelection&&l(this.position)}}),Te.defineProperty(this,"_transform",{get:function(){return`scale(${this._scale})`}}),this.computeScreenSpacePosition=function(i,o){return Hi.wgs84ToWindowCoordinates(e,i,o)}}_k.prototype.update=function(){if(this.showSelection&&l(this.position)){let e=this.computeScreenSpacePosition(this.position,nEt);if(!l(e))this._screenPositionX=F5,this._screenPositionY=F5;else{let t=this._container,n=t.parentNode.clientWidth,i=t.parentNode.clientHeight,o=this._selectionIndicatorElement.clientWidth,r=o*.5;e.x=Math.min(Math.max(e.x,-o),n+o)-r,e.y=Math.min(Math.max(e.y,-o),i+o)-r,this._screenPositionX=`${Math.floor(e.x+.25)}px`,this._screenPositionY=`${Math.floor(e.y+.25)}px`}}};_k.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:Br.EXPONENTIAL_OUT})};_k.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:Br.EXPONENTIAL_OUT})};Object.defineProperties(_k.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}});var gk=_k;function B5(e,t){e=Pn(e),this._container=e;let n=document.createElement("div");n.className="cesium-selection-wrapper",n.setAttribute("data-bind",'style: { "top" : _screenPositionY, "left" : _screenPositionX },css: { "cesium-selection-wrapper-visible" : isVisible }'),e.appendChild(n),this._element=n;let i="http://www.w3.org/2000/svg",o="M -34 -34 L -34 -11.25 L -30 -15.25 L -30 -30 L -15.25 -30 L -11.25 -34 L -34 -34 z M 11.25 -34 L 15.25 -30 L 30 -30 L 30 -15.25 L 34 -11.25 L 34 -34 L 11.25 -34 z M -34 11.25 L -34 34 L -11.25 34 L -15.25 30 L -30 30 L -30 15.25 L -34 11.25 z M 34 11.25 L 30 15.25 L 30 30 L 15.25 30 L 11.25 34 L 34 34 L 34 11.25 z",r=document.createElementNS(i,"svg:svg");r.setAttribute("width",160),r.setAttribute("height",160),r.setAttribute("viewBox","0 0 160 160");let s=document.createElementNS(i,"g");s.setAttribute("transform","translate(80,80)"),r.appendChild(s);let a=document.createElementNS(i,"path");a.setAttribute("data-bind","attr: { transform: _transform }"),a.setAttribute("d",o),s.appendChild(a),n.appendChild(r);let c=new gk(t,this._element,this._container);this._viewModel=c,Te.applyBindings(this._viewModel,this._element)}Object.defineProperties(B5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});B5.prototype.isDestroyed=function(){return!1};B5.prototype.destroy=function(){let e=this._container;return Te.cleanNode(this._element),e.removeChild(this._element),ue(this)};var yk=B5;function vA(e,t,n){this._color=e,this._height=t,this._base=y(n,0)}vA.prototype.getHeight=function(){return this._height};vA.prototype.getBase=function(){return this._base};vA.prototype.getStartTime=function(){return this._start};vA.prototype.getStopTime=function(){return this._stop};vA.prototype.setRange=function(e,t){this._start=e,this._stop=t};vA.prototype.render=function(e){let t="";if(this._start&&this._stop&&this._color){let n=J.secondsDifference(this._start,e.epochJulian),i=Math.round(e.timeBarWidth*e.getAlpha(n)),o=J.secondsDifference(this._stop,e.epochJulian),r=Math.round(e.timeBarWidth*e.getAlpha(o))-i;i<0&&(r+=i,i=0),i+r>e.timeBarWidth&&(r=e.timeBarWidth-i),r>0&&(t=`<span class="cesium-timeline-highlight" style="left: ${i.toString()}px; width: ${r.toString()}px; bottom: ${this._base.toString()}px; height: ${this._height}px; background-color: ${this._color};"></span>`)}return t};var xk=vA;function mCe(e,t,n,i){this.interval=e,this.height=t,this.color=n||new H(.5,.5,.5,1),this.backgroundColor=i||new H(0,0,0,0)}mCe.prototype.render=function(e,t){let n=this.interval.start,i=this.interval.stop,o=t.startJulian,r=J.addSeconds(t.startJulian,t.duration,new J);if(J.lessThan(n,o)&&J.greaterThan(i,r))e.fillStyle=this.color.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height);else if(J.lessThanOrEquals(n,r)&&J.greaterThanOrEquals(i,o)){let s,a,c;for(s=0;s<t.timeBarWidth;++s){let u=J.addSeconds(t.startJulian,s/t.timeBarWidth*t.duration,new J);!l(a)&&J.greaterThanOrEquals(u,n)?a=s:!l(c)&&J.greaterThanOrEquals(u,i)&&(c=s)}e.fillStyle=this.backgroundColor.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height),l(a)&&(l(c)||(c=t.timeBarWidth),e.fillStyle=this.color.toCssColorString(),e.fillRect(a,t.y,Math.max(c-a,1),this.height))}};var bk=mCe;var q$=1e12,gd={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},_l={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},H0=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800,1296e3,2592e3,5184e3,7776e3,15552e3,31536e3,63072e3,126144e3,15768e4,31536e4,63072e4,126144e4,15768e5,31536e5,63072e5,126144e5,15768e6,31536e6],iEt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function gl(e,t){e=Pn(e);let n=e.ownerDocument;this.container=e;let i=n.createElement("div");i.className="cesium-timeline-main",e.appendChild(i),this._topDiv=i,this._endJulian=void 0,this._epochJulian=void 0,this._lastXPos=void 0,this._scrubElement=void 0,this._startJulian=void 0,this._timeBarSecondsSpan=void 0,this._clock=t,this._scrubJulian=t.currentTime,this._mainTicSpan=-1,this._mouseMode=gd.none,this._touchMode=_l.none,this._touchState={centerX:0,spanX:0},this._mouseX=0,this._timelineDrag=0,this._timelineDragLocation=void 0,this._lastHeight=void 0,this._lastWidth=void 0,this._topDiv.innerHTML='<div class="cesium-timeline-bar"></div><div class="cesium-timeline-trackContainer"><canvas class="cesium-timeline-tracks" width="10" height="1"></canvas></div><div class="cesium-timeline-needle"></div><span class="cesium-timeline-ruler"></span>',this._timeBarEle=this._topDiv.childNodes[0],this._trackContainer=this._topDiv.childNodes[1],this._trackListEle=this._topDiv.childNodes[1].childNodes[0],this._needleEle=this._topDiv.childNodes[2],this._rulerEle=this._topDiv.childNodes[3],this._context=this._trackListEle.getContext("2d"),this._trackList=[],this._highlightRanges=[],this.zoomTo(t.startTime,t.stopTime),this._onMouseDown=oEt(this),this._onMouseUp=rEt(this),this._onMouseMove=sEt(this),this._onMouseWheel=aEt(this),this._onTouchStart=cEt(this),this._onTouchMove=uEt(this),this._onTouchEnd=lEt(this);let o=this._timeBarEle;n.addEventListener("mouseup",this._onMouseUp,!1),n.addEventListener("mousemove",this._onMouseMove,!1),o.addEventListener("mousedown",this._onMouseDown,!1),o.addEventListener("DOMMouseScroll",this._onMouseWheel,!1),o.addEventListener("mousewheel",this._onMouseWheel,!1),o.addEventListener("touchstart",this._onTouchStart,!1),o.addEventListener("touchmove",this._onTouchMove,!1),o.addEventListener("touchend",this._onTouchEnd,!1),o.addEventListener("touchcancel",this._onTouchEnd,!1),this._topDiv.oncontextmenu=function(){return!1},t.onTick.addEventListener(this.updateFromClock,this),this.updateFromClock()}gl.prototype.addEventListener=function(e,t,n){this._topDiv.addEventListener(e,t,n)};gl.prototype.removeEventListener=function(e,t,n){this._topDiv.removeEventListener(e,t,n)};gl.prototype.isDestroyed=function(){return!1};gl.prototype.destroy=function(){this._clock.onTick.removeEventListener(this.updateFromClock,this);let e=this.container.ownerDocument;e.removeEventListener("mouseup",this._onMouseUp,!1),e.removeEventListener("mousemove",this._onMouseMove,!1);let t=this._timeBarEle;t.removeEventListener("mousedown",this._onMouseDown,!1),t.removeEventListener("DOMMouseScroll",this._onMouseWheel,!1),t.removeEventListener("mousewheel",this._onMouseWheel,!1),t.removeEventListener("touchstart",this._onTouchStart,!1),t.removeEventListener("touchmove",this._onTouchMove,!1),t.removeEventListener("touchend",this._onTouchEnd,!1),t.removeEventListener("touchcancel",this._onTouchEnd,!1),this.container.removeChild(this._topDiv),ue(this)};gl.prototype.addHighlightRange=function(e,t,n){let i=new xk(e,t,n);return this._highlightRanges.push(i),this.resize(),i};gl.prototype.addTrack=function(e,t,n,i){let o=new bk(e,t,n,i);return this._trackList.push(o),this._lastHeight=void 0,this.resize(),o};gl.prototype.zoomTo=function(e,t){if(this._startJulian=e,this._endJulian=t,this._timeBarSecondsSpan=J.secondsDifference(t,e),this._clock&&this._clock.clockRange!==Nr.UNBOUNDED){let i=this._clock.startTime,o=this._clock.stopTime,r=J.secondsDifference(o,i),s=J.secondsDifference(i,this._startJulian),a=J.secondsDifference(o,this._endJulian);this._timeBarSecondsSpan>=r?(this._timeBarSecondsSpan=r,this._startJulian=this._clock.startTime,this._endJulian=this._clock.stopTime):s>0?(this._endJulian=J.addSeconds(this._endJulian,s,new J),this._startJulian=i,this._timeBarSecondsSpan=J.secondsDifference(this._endJulian,this._startJulian)):a<0&&(this._startJulian=J.addSeconds(this._startJulian,a,new J),this._endJulian=o,this._timeBarSecondsSpan=J.secondsDifference(this._endJulian,this._startJulian))}this._makeTics();let n=document.createEvent("Event");n.initEvent("setzoom",!0,!0),n.startJulian=this._startJulian,n.endJulian=this._endJulian,n.epochJulian=this._epochJulian,n.totalSpan=this._timeBarSecondsSpan,n.mainTicSpan=this._mainTicSpan,this._topDiv.dispatchEvent(n)};gl.prototype.zoomFrom=function(e){let t=J.secondsDifference(this._scrubJulian,this._startJulian);e>1||t<0||t>this._timeBarSecondsSpan?t=this._timeBarSecondsSpan*.5:t+=t-this._timeBarSecondsSpan*.5;let n=this._timeBarSecondsSpan-t;this.zoomTo(J.addSeconds(this._startJulian,t-t*e,new J),J.addSeconds(this._endJulian,n*e-n,new J))};function Y$(e){return e<10?`0${e.toString()}`:e.toString()}gl.prototype.makeLabel=function(e){let t=J.toGregorianDate(e),n=t.millisecond,i=" UTC";if(n>0&&this._timeBarSecondsSpan<3600){for(i=Math.floor(n).toString();i.length<3;)i=`0${i}`;i=`.${i}`}return`${iEt[t.month-1]} ${t.day} ${t.year} ${Y$(t.hour)}:${Y$(t.minute)}:${Y$(t.second)}${i}`};gl.prototype.smallestTicInPixels=7;gl.prototype._makeTics=function(){let e=this._timeBarEle,t=J.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan),i=n-8,o,r=this;this._needleEle.style.left=`${n.toString()}px`;let s="",a=.01,c=31536e6,u=1e-10,f=0,d=this._timeBarSecondsSpan;d<a?(d=a,this._timeBarSecondsSpan=a,this._endJulian=J.addSeconds(this._startJulian,a,new J)):d>c&&(d=c,this._timeBarSecondsSpan=c,this._endJulian=J.addSeconds(this._startJulian,c,new J));let p=this._timeBarEle.clientWidth;p<10&&(p=10);let g=this._startJulian,m=Math.min(d/p*1e-5,.4),x,b=J.toGregorianDate(g);d>31536e4?x=J.fromDate(new Date(Date.UTC(Math.floor(b.year/100)*100,0))):d>31536e3?x=J.fromDate(new Date(Date.UTC(Math.floor(b.year/10)*10,0))):d>86400?x=J.fromDate(new Date(Date.UTC(b.year,0))):x=J.fromDate(new Date(Date.UTC(b.year,b.month,b.day)));let T=J.secondsDifference(this._startJulian,J.addSeconds(x,m,new J)),C=T+d;this._epochJulian=x;function A(k){return Math.floor(T/k)*k}function E(k,Y){return Math.ceil(k/Y+.5)*Y}function v(k){return(k-T)/d}function D(k,Y){return k-Y*Math.round(k/Y)}this._rulerEle.innerHTML=this.makeLabel(J.addSeconds(this._endJulian,-a,new J));let O=this._rulerEle.offsetWidth+20;O<30&&(O=180);let I=f;f-=u;let L={startTime:T,startJulian:g,epochJulian:x,duration:d,timeBarWidth:p,getAlpha:v};this._highlightRanges.forEach(function(k){s+=k.render(L)});let N=0,_=0,S=0,w=O/p;w>1&&(w=1),w*=this._timeBarSecondsSpan;let P=-1,M=-1,B=H0.length,U;for(U=0;U<B;++U){let k=H0[U];if(++P,N=k,k>w&&k>f)break;M<0&&p*(k/this._timeBarSecondsSpan)>=this.smallestTicInPixels&&(M=P)}if(P>0){for(;P>0;)if(--P,Math.abs(D(N,H0[P]))<1e-5){H0[P]>=f&&(_=H0[P]);break}if(M>=0)for(;M<P;){if(Math.abs(D(_,H0[M]))<1e-5&&H0[M]>=f){S=H0[M];break}++M}}f=I,f>u&&S<1e-5&&Math.abs(f-N)>u&&(S=f,f<=N+u&&(_=0));let V=-999999,G;if(p*(S/this._timeBarSecondsSpan)>=3)for(o=A(S);o<=C;o=E(o,S))s+=`<span class="cesium-timeline-ticTiny" style="left: ${Math.round(p*v(o)).toString()}px;"></span>`;if(p*(_/this._timeBarSecondsSpan)>=3)for(o=A(_);o<=C;o=E(o,_))s+=`<span class="cesium-timeline-ticSub" style="left: ${Math.round(p*v(o)).toString()}px;"></span>`;if(p*(N/this._timeBarSecondsSpan)>=2){this._mainTicSpan=N,C+=N,o=A(N);let k=J.computeTaiMinusUtc(x);for(;o<=C;){let Y=J.addSeconds(g,o-T,new J);if(N>2.1){let K=J.computeTaiMinusUtc(Y);Math.abs(K-k)>.1&&(o+=K-k,Y=J.addSeconds(g,o-T,new J))}let W=Math.round(p*v(o)),Q=this.makeLabel(Y);this._rulerEle.innerHTML=Q,G=this._rulerEle.offsetWidth,G<10&&(G=O);let j=W-(G/2-1);j>V?(V=j+G+5,s+=`<span class="cesium-timeline-ticMain" style="left: ${W.toString()}px;"></span><span class="cesium-timeline-ticLabel" style="left: ${j.toString()}px;">${Q}</span>`):s+=`<span class="cesium-timeline-ticSub" style="left: ${W.toString()}px;"></span>`,o=E(o,N)}}else this._mainTicSpan=-1;s+=`<span class="cesium-timeline-icon16" style="left:${i}px;bottom:0;background-position: 0 0;"></span>`,e.innerHTML=s,this._scrubElement=e.lastChild,this._context.clearRect(0,0,this._trackListEle.width,this._trackListEle.height),L.y=0,this._trackList.forEach(function(k){k.render(r._context,L),L.y+=k.height})};gl.prototype.updateFromClock=function(){this._scrubJulian=this._clock.currentTime;let e=this._scrubElement;if(l(this._scrubElement)){let t=J.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan);this._lastXPos!==n&&(this._lastXPos=n,e.style.left=`${n-8}px`,this._needleEle.style.left=`${n}px`)}l(this._timelineDragLocation)&&(this._setTimeBarTime(this._timelineDragLocation,this._timelineDragLocation*this._timeBarSecondsSpan/this._topDiv.clientWidth),this.zoomTo(J.addSeconds(this._startJulian,this._timelineDrag,new J),J.addSeconds(this._endJulian,this._timelineDrag,new J)))};gl.prototype._setTimeBarTime=function(e,t){if(e=Math.round(e),this._scrubJulian=J.addSeconds(this._startJulian,t,new J),this._scrubElement){let i=e-8;this._scrubElement.style.left=`${i.toString()}px`,this._needleEle.style.left=`${e.toString()}px`}let n=document.createEvent("Event");n.initEvent("settime",!0,!0),n.clientX=e,n.timeSeconds=t,n.timeJulian=this._scrubJulian,n.clock=this._clock,this._topDiv.dispatchEvent(n)};function oEt(e){return function(t){e._mouseMode!==gd.touchOnly&&(t.button===0?(e._mouseMode=gd.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,t.button===2?e._mouseMode=gd.zoom:e._mouseMode=gd.slide)),t.preventDefault()}}function rEt(e){return function(t){e._mouseMode=gd.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function sEt(e){return function(t){let n;if(e._mouseMode===gd.scrub){t.preventDefault();let i=t.clientX-e._topDiv.getBoundingClientRect().left;i<0?(e._timelineDragLocation=0,e._timelineDrag=-.01*e._timeBarSecondsSpan):i>e._topDiv.clientWidth?(e._timelineDragLocation=e._topDiv.clientWidth,e._timelineDrag=.01*e._timeBarSecondsSpan):(e._timelineDragLocation=void 0,e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))}else if(e._mouseMode===gd.slide){if(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0){let i=n*e._timeBarSecondsSpan/e._topDiv.clientWidth;e.zoomTo(J.addSeconds(e._startJulian,i,new J),J.addSeconds(e._endJulian,i,new J))}}else e._mouseMode===gd.zoom&&(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0&&e.zoomFrom(Math.pow(1.01,n)))}}function aEt(e){return function(t){let n=t.wheelDeltaY||t.wheelDelta||-t.detail;q$=Math.max(Math.min(Math.abs(n),q$),1),n/=q$,e.zoomFrom(Math.pow(1.05,-n))}}function cEt(e){return function(t){let n=t.touches.length,i,o,r=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=gd.touchOnly,n===1?(i=J.secondsDifference(e._scrubJulian,e._startJulian),o=Math.round(i*e._topDiv.clientWidth/e._timeBarSecondsSpan+r),Math.abs(t.touches[0].clientX-o)<50?(e._touchMode=_l.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=n===1?"-16px 0":"0 0")):(e._touchMode=_l.singleTap,e._touchState.centerX=t.touches[0].clientX-r)):n===2?(e._touchMode=_l.slideZoom,e._touchState.centerX=(t.touches[0].clientX+t.touches[1].clientX)*.5-r,e._touchState.spanX=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):e._touchMode=_l.ignore}}function lEt(e){return function(t){let n=t.touches.length,i=e._topDiv.getBoundingClientRect().left;e._touchMode===_l.singleTap?(e._touchMode=_l.scrub,e._onTouchMove(t)):e._touchMode===_l.scrub&&e._onTouchMove(t),e._mouseMode=gd.touchOnly,n!==1?e._touchMode=n>0?_l.ignore:_l.none:e._touchMode===_l.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-i),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function uEt(e){return function(t){let n,i,o,r,s,a,c=1,u=e._topDiv.getBoundingClientRect().left;e._touchMode===_l.singleTap&&(e._touchMode=_l.slideZoom),e._mouseMode=gd.touchOnly,e._touchMode===_l.scrub?(t.preventDefault(),t.changedTouches.length===1&&(i=t.changedTouches[0].clientX-u,i>=0&&i<=e._topDiv.clientWidth&&e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))):e._touchMode===_l.slideZoom&&(o=t.touches.length,o===2?(r=(t.touches[0].clientX+t.touches[1].clientX)*.5-u,s=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):o===1&&(r=t.touches[0].clientX-u,s=0),l(r)&&(s>0&&e._touchState.spanX>0?(c=e._touchState.spanX/s,a=J.addSeconds(e._startJulian,(e._touchState.centerX*e._timeBarSecondsSpan-r*e._timeBarSecondsSpan*c)/e._topDiv.clientWidth,new J)):(n=e._touchState.centerX-r,a=J.addSeconds(e._startJulian,n*e._timeBarSecondsSpan/e._topDiv.clientWidth,new J)),e.zoomTo(a,J.addSeconds(a,e._timeBarSecondsSpan*c,new J)),e._touchState.centerX=r,e._touchState.spanX=s))}}gl.prototype.resize=function(){let e=this.container.clientWidth,t=this.container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;this._trackContainer.style.height=`${t}px`;let n=1;this._trackList.forEach(function(i){n+=i.height}),this._trackListEle.style.height=`${n.toString()}px`,this._trackListEle.width=this._trackListEle.clientWidth,this._trackListEle.height=n,this._makeTics(),this._lastXPos=void 0,this._lastWidth=e,this._lastHeight=t};var Tk=gl;var _Ce=wo(pCe(),1);function fEt(e){let t=!1,n=window.screen;return l(n)&&(l(n.lockOrientation)?t=n.lockOrientation(e):l(n.mozLockOrientation)?t=n.mozLockOrientation(e):l(n.msLockOrientation)?t=n.msLockOrientation(e):l(n.orientation&&n.orientation.lock)&&(t=n.orientation.lock(e))),t}function gCe(){let e=window.screen;l(e)&&(l(e.unlockOrientation)?e.unlockOrientation():l(e.mozUnlockOrientation)?e.mozUnlockOrientation():l(e.msUnlockOrientation)?e.msUnlockOrientation():l(e.orientation&&e.orientation.unlock)&&e.orientation.unlock())}function dEt(e,t,n,i){i()||(n()?(t.useWebVR=!1,e._locked&&(gCe(),e._locked=!1),e._noSleep.disable(),hr.exitFullscreen(),n(!1)):(hr.fullscreen||hr.requestFullscreen(e._vrElement),e._noSleep.enable(),e._locked||(e._locked=fEt("landscape")),t.useWebVR=!0,n(!0)))}function k5(e,t){let n=this,i=Te.observable(hr.enabled),o=Te.observable(!1);this.isVRMode=void 0,Te.defineProperty(this,"isVRMode",{get:function(){return o()}}),this.isVREnabled=void 0,Te.defineProperty(this,"isVREnabled",{get:function(){return i()},set:function(s){i(s&&hr.enabled)}}),this.tooltip=void 0,Te.defineProperty(this,"tooltip",function(){return i()?o()?"Exit VR mode":"Enter VR mode":"VR mode is unavailable"});let r=Te.observable(!1);this._isOrthographic=void 0,Te.defineProperty(this,"_isOrthographic",{get:function(){return r()}}),this._eventHelper=new Ir,this._eventHelper.add(e.preRender,function(){r(e.camera.frustum instanceof rn)}),this._locked=!1,this._noSleep=new _Ce.default,this._command=Cn(function(){dEt(n,e,o,r)},Te.getObservable(this,"isVREnabled")),this._vrElement=y(Pn(t),document.body),this._callback=function(){!hr.fullscreen&&o()&&(e.useWebVR=!1,n._locked&&(gCe(),n._locked=!1),n._noSleep.disable(),o(!1))},document.addEventListener(hr.changeEventName,this._callback)}Object.defineProperties(k5.prototype,{vrElement:{get:function(){return this._vrElement},set:function(e){this._vrElement=e}},command:{get:function(){return this._command}}});k5.prototype.isDestroyed=function(){return!1};k5.prototype.destroy=function(){this._eventHelper.removeAll(),document.removeEventListener(hr.changeEventName,this._callback),ue(this)};var Ck=k5;var hEt="M 5.3125 6.375 C 4.008126 6.375 2.96875 7.4141499 2.96875 8.71875 L 2.96875 19.5 C 2.96875 20.8043 4.008126 21.875 5.3125 21.875 L 13.65625 21.875 C 13.71832 20.0547 14.845166 18.59375 16.21875 18.59375 C 17.592088 18.59375 18.71881 20.0552 18.78125 21.875 L 27.09375 21.875 C 28.398125 21.875 29.4375 20.8043 29.4375 19.5 L 29.4375 8.71875 C 29.4375 7.4141499 28.398125 6.375 27.09375 6.375 L 5.3125 6.375 z M 9.625 10.4375 C 11.55989 10.4375 13.125 12.03385 13.125 13.96875 C 13.125 15.90365 11.55989 17.46875 9.625 17.46875 C 7.69011 17.46875 6.125 15.90365 6.125 13.96875 C 6.125 12.03385 7.69011 10.4375 9.625 10.4375 z M 22.46875 10.4375 C 24.40364 10.4375 25.96875 12.03385 25.96875 13.96875 C 25.96875 15.90365 24.40364 17.46875 22.46875 17.46875 C 20.53386 17.46875 18.96875 15.90365 18.96875 13.96875 C 18.96875 12.03385 20.53386 10.4375 22.46875 10.4375 z",mEt="M 25.770585,2.4552065 C 15.72282,13.962707 10.699956,19.704407 8.1768352,22.580207 c -1.261561,1.4379 -1.902282,2.1427 -2.21875,2.5 -0.141624,0.1599 -0.208984,0.2355 -0.25,0.2813 l 0.6875,0.75 c 10e-5,-10e-5 0.679191,0.727 0.6875,0.7187 0.01662,-0.016 0.02451,-0.024 0.03125,-0.031 0.01348,-0.014 0.04013,-0.038 0.0625,-0.062 0.04474,-0.05 0.120921,-0.1315 0.28125,-0.3126 0.320657,-0.3619 0.956139,-1.0921 2.2187499,-2.5312 2.5252219,-2.8781 7.5454589,-8.6169 17.5937499,-20.1250005 l -1.5,-1.3125 z m -20.5624998,3.9063 c -1.304375,0 -2.34375,1.0391 -2.34375,2.3437 l 0,10.8125005 c 0,1.3043 1.039375,2.375 2.34375,2.375 l 2.25,0 c 1.9518039,-2.2246 7.4710958,-8.5584 13.5624998,-15.5312005 l -15.8124998,0 z m 21.1249998,0 c -1.855467,2.1245 -2.114296,2.4005 -3.59375,4.0936995 1.767282,0.1815 3.15625,1.685301 3.15625,3.500001 0,1.9349 -1.56511,3.5 -3.5,3.5 -1.658043,0 -3.043426,-1.1411 -3.40625,-2.6875 -1.089617,1.2461 -2.647139,2.9988 -3.46875,3.9375 0.191501,-0.062 0.388502,-0.094 0.59375,-0.094 1.373338,0 2.50006,1.4614 2.5625,3.2812 l 8.3125,0 c 1.304375,0 2.34375,-1.0707 2.34375,-2.375 l 0,-10.8125005 c 0,-1.3046 -1.039375,-2.3437 -2.34375,-2.3437 l -0.65625,0 z M 9.5518351,10.423906 c 1.9348899,0 3.4999999,1.596401 3.4999999,3.531301 0,1.9349 -1.56511,3.5 -3.4999999,3.5 -1.9348899,0 -3.4999999,-1.5651 -3.4999999,-3.5 0,-1.9349 1.56511,-3.531301 3.4999999,-3.531301 z m 4.2187499,10.312601 c -0.206517,0.2356 -0.844218,0.9428 -1.03125,1.1562 l 0.8125,0 c 0.01392,-0.4081 0.107026,-0.7968 0.21875,-1.1562 z";function V5(e,t,n){e=Pn(e);let i=new Ck(t,n);i._exitVRPath=mEt,i._enterVRPath=hEt;let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-vrButton",o.setAttribute("data-bind",'css: { "cesium-button-disabled" : _isOrthographic }, attr: { title: tooltip },click: command,enable: isVREnabled,cesiumSvgPath: { path: isVRMode ? _exitVRPath : _enterVRPath, width: 32, height: 32 }'),e.appendChild(o),Te.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(V5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});V5.prototype.isDestroyed=function(){return!1};V5.prototype.destroy=function(){return this._viewModel.destroy(),Te.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var Ek=V5;var G0=new ae;function bCe(e){let t=e.clock;t.currentTime=e.timeJulian,t.shouldAnimate=!1}function pEt(e){let t=e.getPropertyIds(),n="";return t.forEach(function(i){let o=e.getProperty(i);l(o)&&(n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}),n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function _Et(e){let t,n=[],i=e.getPropertyIds();for(t=0;t<i.length;t++){let r=i[t];/^name$/i.test(r)?n[0]=e.getProperty(r):/name/i.test(r)?n[1]=e.getProperty(r):/^title$/i.test(r)?n[2]=e.getProperty(r):/^(id|identifier)$/i.test(r)?n[3]=e.getProperty(r):/element/i.test(r)?n[4]=e.getProperty(r):/(id|identifier)$/i.test(r)&&(n[5]=e.getProperty(r))}let o=n.length;for(t=0;t<o;t++){let r=n[t];if(l(r)&&r!=="")return r}return"Unnamed Feature"}function yCe(e,t){let n=e.scene.pick(t.position);if(l(n)){let i=y(n.id,n.primitive.id);if(i instanceof Zo)return i;if(n instanceof Ns)return new Zo({name:_Et(n),description:pEt(n),feature:n})}if(l(e.scene.globe))return xEt(e,t.position)}var gEt=new J;function TCe(e,t,n){if(l(n)){let i=n.clock;if(l(i)&&(i.getValue(t),l(e))){let o=i.startTime,r=i.stopTime;J.equals(o,r)&&(r=J.addSeconds(o,R.EPSILON2,gEt)),e.updateFromClock(),e.zoomTo(o,r)}}}var yEt=new h;function xEt(e,t){let n=e.scene,i=n.camera.getPickRay(t),o=n.imageryLayers.pickImageryLayerFeatures(i,n);if(!l(o))return;let r=new Zo({id:"Loading...",description:"Loading feature information..."});return o.then(function(s){if(e.selectedEntity!==r)return;if(!l(s)||s.length===0){e.selectedEntity=xCe();return}let a=s[0],c=new Zo({id:a.name,description:a.description});if(l(a.position)){let u=e.scene.globe.ellipsoid.cartographicToCartesian(a.position,yEt);c.position=new zc(u)}e.selectedEntity=c},function(){e.selectedEntity===r&&(e.selectedEntity=xCe())}),r}function xCe(){return new Zo({id:"None",description:"No features found."})}function bEt(e,t){let n=e._geocoder,i=e._homeButton,o=e._sceneModePicker,r=e._projectionPicker,s=e._baseLayerPicker,a=e._animation,c=e._timeline,u=e._fullscreenButton,f=e._infoBox,d=e._selectionIndicator,p=t?"hidden":"visible";if(l(n)&&(n.container.style.visibility=p),l(i)&&(i.container.style.visibility=p),l(o)&&(o.container.style.visibility=p),l(r)&&(r.container.style.visibility=p),l(s)&&(s.container.style.visibility=p),l(a)&&(a.container.style.visibility=p),l(c)&&(c.container.style.visibility=p),l(u)&&u.viewModel.isFullscreenEnabled&&(u.container.style.visibility=p),l(f)&&(f.container.style.visibility=p),l(d)&&(d.container.style.visibility=p),e._container){let g=t||!l(u)?0:u.container.clientWidth;e._vrButton.container.style.right=`${g}px`,e.forceResize()}}function Mi(e,t){e=Pn(e),t=y(t,y.EMPTY_OBJECT);let n=(!l(t.globe)||t.globe!==!1)&&(!l(t.baseLayerPicker)||t.baseLayerPicker!==!1),i=this,o=document.createElement("div");o.className="cesium-viewer",e.appendChild(o);let r=document.createElement("div");r.className="cesium-viewer-cesiumWidgetContainer",o.appendChild(r);let s=document.createElement("div");s.className="cesium-viewer-bottom",o.appendChild(s);let a=y(t.scene3DOnly,!1),c,u,f=!1;l(t.clockViewModel)?(u=t.clockViewModel,c=u.clock):(c=new ah,u=new F3(c),f=!0),l(t.shouldAnimate)&&(c.shouldAnimate=t.shouldAnimate);let d=new o3(r,{baseLayer:n||l(t.baseLayer)||l(t.imageryProvider)?!1:void 0,clock:c,skyBox:t.skyBox,skyAtmosphere:t.skyAtmosphere,sceneMode:t.sceneMode,mapProjection:t.mapProjection,globe:t.globe,orderIndependentTranslucency:t.orderIndependentTranslucency,contextOptions:t.contextOptions,useDefaultRenderLoop:t.useDefaultRenderLoop,targetFrameRate:t.targetFrameRate,showRenderLoopErrors:t.showRenderLoopErrors,useBrowserRecommendedResolution:t.useBrowserRecommendedResolution,creditContainer:l(t.creditContainer)?t.creditContainer:s,creditViewport:t.creditViewport,scene3DOnly:a,shadows:t.shadows,terrainShadows:t.terrainShadows,mapMode2D:t.mapMode2D,blurActiveElementOnCanvasFocus:t.blurActiveElementOnCanvasFocus,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples}),p=t.dataSources,g=!1;l(p)||(p=new vL,g=!0);let m=d.scene,x=new uN({scene:m,dataSourceCollection:p}),b=new Ir;b.add(c.onTick,Mi.prototype._onTick,this),b.add(m.morphStart,Mi.prototype._clearTrackedObject,this);let T;if(!l(t.selectionIndicator)||t.selectionIndicator!==!1){let W=document.createElement("div");W.className="cesium-viewer-selectionIndicatorContainer",o.appendChild(W),T=new yk(W,m)}let C;if(!l(t.infoBox)||t.infoBox!==!1){let W=document.createElement("div");W.className="cesium-viewer-infoBoxContainer",o.appendChild(W),C=new lk(W);let Q=C.viewModel;b.add(Q.cameraClicked,Mi.prototype._onInfoBoxCameraClicked,this),b.add(Q.closeClicked,Mi.prototype._onInfoBoxClockClicked,this)}let A=document.createElement("div");A.className="cesium-viewer-toolbar",o.appendChild(A);let E;if(!l(t.geocoder)||t.geocoder!==!1){let W=document.createElement("div");W.className="cesium-viewer-geocoderContainer",A.appendChild(W);let Q;l(t.geocoder)&&typeof t.geocoder!="boolean"&&(Q=Array.isArray(t.geocoder)?t.geocoder:[t.geocoder]),E=new nk({container:W,geocoderServices:Q,scene:m}),b.add(E.viewModel.search.beforeExecute,Mi.prototype._clearObjects,this)}let v;(!l(t.homeButton)||t.homeButton!==!1)&&(v=new ok(A,m),l(E)&&b.add(v.viewModel.command.afterExecute,function(){let W=E.viewModel;W.searchText="",W.isSearchInProgress&&W.search()}),b.add(v.viewModel.command.beforeExecute,Mi.prototype._clearTrackedObject,this));let D;!a&&(!l(t.sceneModePicker)||t.sceneModePicker!==!1)&&(D=new pk(A,m));let O;t.projectionPicker&&(O=new hk(A,m));let I,L;if(n){let W=y(t.imageryProviderViewModels,W3()),Q=y(t.terrainProviderViewModels,j3());I=new G3(A,{globe:m.globe,imageryProviderViewModels:W,selectedImageryProviderViewModel:t.selectedImageryProviderViewModel,terrainProviderViewModels:Q,selectedTerrainProviderViewModel:t.selectedTerrainProviderViewModel}),L=A.getElementsByClassName("cesium-baseLayerPicker-dropDown")[0]}l(t.baseLayer)&&t.baseLayer!==!1&&(n&&(I.viewModel.selectedImagery=void 0),m.imageryLayers.removeAll(),m.imageryLayers.add(t.baseLayer)),l(t.terrainProvider)&&(n&&(I.viewModel.selectedTerrain=void 0),m.terrainProvider=t.terrainProvider),l(t.terrain)&&(n&&(I.viewModel.selectedTerrain=void 0,m.globe.depthTestAgainstTerrain=!0),m.setTerrain(t.terrain));let N;if(!l(t.navigationHelpButton)||t.navigationHelpButton!==!1){let W=!0;try{if(l(window.localStorage)){let Q=window.localStorage.getItem("cesium-hasSeenNavHelp");l(Q)&&Q?W=!1:window.localStorage.setItem("cesium-hasSeenNavHelp","true")}}catch{}N=new ak({container:A,instructionsInitiallyVisible:y(t.navigationInstructionsInitiallyVisible,W)})}let _;if(!l(t.animation)||t.animation!==!1){let W=document.createElement("div");W.className="cesium-viewer-animationContainer",o.appendChild(W),_=new U3(W,new z3(u))}let S;if(!l(t.timeline)||t.timeline!==!1){let W=document.createElement("div");W.className="cesium-viewer-timelineContainer",o.appendChild(W),S=new Tk(W,c),S.addEventListener("settime",bCe,!1),S.zoomTo(c.startTime,c.stopTime)}let w,P,M;(!l(t.fullscreenButton)||t.fullscreenButton!==!1)&&(M=document.createElement("div"),M.className="cesium-viewer-fullscreenContainer",o.appendChild(M),w=new ek(M,t.fullscreenElement),P=_a(w.viewModel,"isFullscreenEnabled",function(W){M.style.display=W?"block":"none",l(S)&&(S.container.style.right=`${M.clientWidth}px`,S.resize())}));let B,U,V;if(t.vrButton){let W=document.createElement("div");W.className="cesium-viewer-vrContainer",o.appendChild(W),B=new Ek(W,m,t.fullScreenElement),U=_a(B.viewModel,"isVREnabled",function(Q){W.style.display=Q?"block":"none",l(w)&&(W.style.right=`${M.clientWidth}px`),l(S)&&(S.container.style.right=`${W.clientWidth}px`,S.resize())}),V=_a(B.viewModel,"isVRMode",function(Q){bEt(i,Q)})}this._baseLayerPickerDropDown=L,this._fullscreenSubscription=P,this._vrSubscription=U,this._vrModeSubscription=V,this._dataSourceChangedListeners={},this._automaticallyTrackDataSourceClocks=y(t.automaticallyTrackDataSourceClocks,!0),this._container=e,this._bottomContainer=s,this._element=o,this._cesiumWidget=d,this._selectionIndicator=T,this._infoBox=C,this._dataSourceCollection=p,this._destroyDataSourceCollection=g,this._dataSourceDisplay=x,this._clockViewModel=u,this._destroyClockViewModel=f,this._toolbar=A,this._homeButton=v,this._sceneModePicker=D,this._projectionPicker=O,this._baseLayerPicker=I,this._navigationHelpButton=N,this._animation=_,this._timeline=S,this._fullscreenButton=w,this._vrButton=B,this._geocoder=E,this._eventHelper=b,this._lastWidth=0,this._lastHeight=0,this._allowDataSourcesToSuspendAnimation=!0,this._entityView=void 0,this._enableInfoOrSelection=l(C)||l(T),this._clockTrackedDataSource=void 0,this._trackedEntity=void 0,this._needTrackedEntityUpdate=!1,this._selectedEntity=void 0,this._zoomIsFlight=!1,this._zoomTarget=void 0,this._zoomPromise=void 0,this._zoomOptions=void 0,this._selectedEntityChanged=new pe,this._trackedEntityChanged=new pe,Te.track(this,["_trackedEntity","_selectedEntity","_clockTrackedDataSource"]),b.add(p.dataSourceAdded,Mi.prototype._onDataSourceAdded,this),b.add(p.dataSourceRemoved,Mi.prototype._onDataSourceRemoved,this),b.add(m.postUpdate,Mi.prototype.resize,this),b.add(m.postRender,Mi.prototype._postRender,this);let G=p.length;for(let W=0;W<G;W++)this._dataSourceAdded(p,p.get(W));this._dataSourceAdded(void 0,x.defaultDataSource),b.add(p.dataSourceAdded,Mi.prototype._dataSourceAdded,this),b.add(p.dataSourceRemoved,Mi.prototype._dataSourceRemoved,this);function k(W){let Q=yCe(i,W);l(Q)?q.getValueOrUndefined(Q.position,i.clock.currentTime)?i.trackedEntity=Q:i.zoomTo(Q):l(i.trackedEntity)&&(i.trackedEntity=void 0)}function Y(W){i.selectedEntity=yCe(i,W)}d.screenSpaceEventHandler.setInputAction(Y,bn.LEFT_CLICK),d.screenSpaceEventHandler.setInputAction(k,bn.LEFT_DOUBLE_CLICK)}Object.defineProperties(Mi.prototype,{container:{get:function(){return this._container}},creditDisplay:{get:function(){return this._cesiumWidget.creditDisplay}},bottomContainer:{get:function(){return this._bottomContainer}},cesiumWidget:{get:function(){return this._cesiumWidget}},selectionIndicator:{get:function(){return this._selectionIndicator}},infoBox:{get:function(){return this._infoBox}},geocoder:{get:function(){return this._geocoder}},homeButton:{get:function(){return this._homeButton}},sceneModePicker:{get:function(){return this._sceneModePicker}},projectionPicker:{get:function(){return this._projectionPicker}},baseLayerPicker:{get:function(){return this._baseLayerPicker}},navigationHelpButton:{get:function(){return this._navigationHelpButton}},animation:{get:function(){return this._animation}},timeline:{get:function(){return this._timeline}},fullscreenButton:{get:function(){return this._fullscreenButton}},vrButton:{get:function(){return this._vrButton}},dataSourceDisplay:{get:function(){return this._dataSourceDisplay}},entities:{get:function(){return this._dataSourceDisplay.defaultDataSource.entities}},dataSources:{get:function(){return this._dataSourceCollection}},canvas:{get:function(){return this._cesiumWidget.canvas}},scene:{get:function(){return this._cesiumWidget.scene}},shadows:{get:function(){return this.scene.shadowMap.enabled},set:function(e){this.scene.shadowMap.enabled=e}},terrainShadows:{get:function(){return this.scene.globe.shadows},set:function(e){this.scene.globe.shadows=e}},shadowMap:{get:function(){return this.scene.shadowMap}},imageryLayers:{get:function(){return this.scene.imageryLayers}},terrainProvider:{get:function(){return this.scene.terrainProvider},set:function(e){this.scene.terrainProvider=e}},camera:{get:function(){return this.scene.camera}},postProcessStages:{get:function(){return this.scene.postProcessStages}},clock:{get:function(){return this._clockViewModel.clock}},clockViewModel:{get:function(){return this._clockViewModel}},screenSpaceEventHandler:{get:function(){return this._cesiumWidget.screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._cesiumWidget.targetFrameRate},set:function(e){this._cesiumWidget.targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._cesiumWidget.useDefaultRenderLoop},set:function(e){this._cesiumWidget.useDefaultRenderLoop=e}},resolutionScale:{get:function(){return this._cesiumWidget.resolutionScale},set:function(e){this._cesiumWidget.resolutionScale=e}},useBrowserRecommendedResolution:{get:function(){return this._cesiumWidget.useBrowserRecommendedResolution},set:function(e){this._cesiumWidget.useBrowserRecommendedResolution=e}},allowDataSourcesToSuspendAnimation:{get:function(){return this._allowDataSourcesToSuspendAnimation},set:function(e){this._allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._trackedEntity},set:function(e){if(this._trackedEntity!==e){this._trackedEntity=e,K$(this);let t=this.scene,n=t.mode;!l(e)||!l(e.position)?(this._needTrackedEntityUpdate=!1,(n===ne.COLUMBUS_VIEW||n===ne.SCENE2D)&&(t.screenSpaceCameraController.enableTranslate=!0),(n===ne.COLUMBUS_VIEW||n===ne.SCENE3D)&&(t.screenSpaceCameraController.enableTilt=!0),this._entityView=void 0,this.camera.lookAtTransform(F.IDENTITY)):this._needTrackedEntityUpdate=!0,this._trackedEntityChanged.raiseEvent(e),this.scene.requestRender()}}},selectedEntity:{get:function(){return this._selectedEntity},set:function(e){if(this._selectedEntity!==e){this._selectedEntity=e;let t=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(e)?l(t)&&t.animateAppear():l(t)&&t.animateDepart(),this._selectedEntityChanged.raiseEvent(e)}}},selectedEntityChanged:{get:function(){return this._selectedEntityChanged}},trackedEntityChanged:{get:function(){return this._trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._clockTrackedDataSource},set:function(e){this._clockTrackedDataSource!==e&&(this._clockTrackedDataSource=e,TCe(this._timeline,this.clock,e))}}});Mi.prototype.extend=function(e,t){e(this,t)};Mi.prototype.resize=function(){let e=this._cesiumWidget,t=this._container,n=t.clientWidth,i=t.clientHeight,o=l(this._animation),r=l(this._timeline);if(e.resize(),n===this._lastWidth&&i===this._lastHeight)return;let s=i-125,a=this._baseLayerPickerDropDown;if(l(a)&&(a.style.maxHeight=`${s}px`),l(this._geocoder)){let g=this._geocoder.searchSuggestionsContainer;g.style.maxHeight=`${s}px`}l(this._infoBox)&&(this._infoBox.viewModel.maxHeight=s);let c=this._timeline,u,f=0,d=0,p=0;if(o&&window.getComputedStyle(this._animation.container).visibility!=="hidden"){let g=this._lastWidth;u=this._animation.container,n>900?(f=169,g<=900&&(u.style.width="169px",u.style.height="112px",this._animation.resize())):n>=600?(f=136,(g<600||g>900)&&(u.style.width="136px",u.style.height="90px",this._animation.resize())):(f=106,(g>600||g===0)&&(u.style.width="106px",u.style.height="70px",this._animation.resize())),d=f+5}if(r&&window.getComputedStyle(this._timeline.container).visibility!=="hidden"){let g=this._fullscreenButton,m=this._vrButton,x=c.container,b=x.style;p=x.clientHeight+3,b.left=`${f}px`;let T=0;l(g)&&(T+=g.container.clientWidth),l(m)&&(T+=m.container.clientWidth),b.right=`${T}px`,c.resize()}this._bottomContainer.style.left=`${d}px`,this._bottomContainer.style.bottom=`${p}px`,this._lastWidth=n,this._lastHeight=i};Mi.prototype.forceResize=function(){this._lastWidth=0,this.resize()};Mi.prototype.render=function(){this._cesiumWidget.render()};Mi.prototype.isDestroyed=function(){return!1};Mi.prototype.destroy=function(){let e;l(this.screenSpaceEventHandler)&&!this.screenSpaceEventHandler.isDestroyed()&&(this.screenSpaceEventHandler.removeInputAction(bn.LEFT_CLICK),this.screenSpaceEventHandler.removeInputAction(bn.LEFT_DOUBLE_CLICK));let t=this.dataSources,n=t.length;for(e=0;e<n;e++)this._dataSourceRemoved(t,t.get(e));return this._dataSourceRemoved(void 0,this._dataSourceDisplay.defaultDataSource),this._container.removeChild(this._element),this._element.removeChild(this._toolbar),this._eventHelper.removeAll(),l(this._geocoder)&&(this._geocoder=this._geocoder.destroy()),l(this._homeButton)&&(this._homeButton=this._homeButton.destroy()),l(this._sceneModePicker)&&(this._sceneModePicker=this._sceneModePicker.destroy()),l(this._projectionPicker)&&(this._projectionPicker=this._projectionPicker.destroy()),l(this._baseLayerPicker)&&(this._baseLayerPicker=this._baseLayerPicker.destroy()),l(this._animation)&&(this._element.removeChild(this._animation.container),this._animation=this._animation.destroy()),l(this._timeline)&&(this._timeline.removeEventListener("settime",bCe,!1),this._element.removeChild(this._timeline.container),this._timeline=this._timeline.destroy()),l(this._fullscreenButton)&&(this._fullscreenSubscription.dispose(),this._element.removeChild(this._fullscreenButton.container),this._fullscreenButton=this._fullscreenButton.destroy()),l(this._vrButton)&&(this._vrSubscription.dispose(),this._vrModeSubscription.dispose(),this._element.removeChild(this._vrButton.container),this._vrButton=this._vrButton.destroy()),l(this._infoBox)&&(this._element.removeChild(this._infoBox.container),this._infoBox=this._infoBox.destroy()),l(this._selectionIndicator)&&(this._element.removeChild(this._selectionIndicator.container),this._selectionIndicator=this._selectionIndicator.destroy()),this._destroyClockViewModel&&(this._clockViewModel=this._clockViewModel.destroy()),this._dataSourceDisplay=this._dataSourceDisplay.destroy(),this._cesiumWidget=this._cesiumWidget.destroy(),this._destroyDataSourceCollection&&(this._dataSourceCollection=this._dataSourceCollection.destroy()),ue(this)};Mi.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(Mi.prototype._onEntityCollectionChanged,this)};Mi.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(Mi.prototype._onEntityCollectionChanged,this),l(this.trackedEntity)&&n.getById(this.trackedEntity.id)===this.trackedEntity&&(this.trackedEntity=void 0),l(this.selectedEntity)&&n.getById(this.selectedEntity.id)===this.selectedEntity&&(this.selectedEntity=void 0)};Mi.prototype._onTick=function(e){let t=e.currentTime,n=this._dataSourceDisplay.update(t);this._allowDataSourcesToSuspendAnimation&&(this._clockViewModel.canAnimate=n);let i=this._entityView;if(l(i)){let f=this._trackedEntity;this._dataSourceDisplay.getBoundingSphere(f,!1,G0)===at.DONE&&i.update(t,G0)}let o,r=!1,s=this.selectedEntity,a=l(s)&&this._enableInfoOrSelection;a&&s.isShowing&&s.isAvailable(t)&&(this._dataSourceDisplay.getBoundingSphere(s,!0,G0)!==at.FAILED?o=G0.center:l(s.position)&&(o=s.position.getValue(t,o)),r=l(o));let c=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(c)&&(c.position=h.clone(o,c.position),c.showSelection=a&&r,c.update());let u=l(this._infoBox)?this._infoBox.viewModel:void 0;l(u)&&(u.showInfo=a,u.enableCamera=r,u.isCameraTracking=this.trackedEntity===this.selectedEntity,a?(u.titleText=y(s.name,s.id),u.description=q.getValueOrDefault(s.description,t,"")):(u.titleText="",u.description=""))};Mi.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.trackedEntity===r&&(this.trackedEntity=void 0),this.selectedEntity===r&&(this.selectedEntity=void 0)}};Mi.prototype._onInfoBoxCameraClicked=function(e){if(e.isCameraTracking&&this.trackedEntity===this.selectedEntity)this.trackedEntity=void 0;else{let n=this.selectedEntity.position;l(n)?this.trackedEntity=this.selectedEntity:this.zoomTo(this.selectedEntity)}};Mi.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};Mi.prototype._onInfoBoxClockClicked=function(e){this.selectedEntity=void 0};Mi.prototype._clearObjects=function(){this.trackedEntity=void 0,this.selectedEntity=void 0};Mi.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&TCe(this.timeline,this.clock,e)};Mi.prototype._onDataSourceAdded=function(e,t){this._automaticallyTrackDataSourceClocks&&(this.clockTrackedDataSource=t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,Mi.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};Mi.prototype._onDataSourceRemoved=function(e,t){let n=this.clockTrackedDataSource===t,i=t.entities.id;if(this._dataSourceChangedListeners[i](),this._dataSourceChangedListeners[i]=void 0,n){let o=e.length;this._automaticallyTrackDataSourceClocks&&o>0?this.clockTrackedDataSource=e.get(o-1):this.clockTrackedDataSource=void 0}};Mi.prototype.zoomTo=function(e,t){return ACe(this,e,{offset:t},!1)};Mi.prototype.flyTo=function(e,t){return ACe(this,e,t,!0)};function ACe(e,t,n,i){K$(e);let o=new Promise(r=>{e._completeZoom=function(s){r(s)}});return e._zoomPromise=o,e._zoomIsFlight=i,e._zoomOptions=n,Promise.resolve(t).then(function(r){if(e._zoomPromise===o){if(r instanceof da){let s;l(r.imageryProvider)?s=Promise.resolve(r.getImageryRectangle()):s=new Promise(a=>{let c=r.readyEvent.addEventListener(()=>{c(),a(r.getImageryRectangle())})}),s.then(function(a){return CA(a,e.scene)}).then(function(a){e._zoomPromise===o&&(e._zoomTarget=a)});return}if(r instanceof oa||r instanceof Lv||r instanceof F0){e._zoomTarget=r;return}if(r.isLoading&&l(r.loadingEvent)){let s=r.loadingEvent.addEventListener(function(){s(),e._zoomPromise===o&&(e._zoomTarget=r.entities.values.slice(0))});return}if(Array.isArray(r)){e._zoomTarget=r.slice(0);return}r=y(r.values,r),l(r.entities)&&(r=r.entities.values),Array.isArray(r)?e._zoomTarget=r.slice(0):e._zoomTarget=[r]}}),e.scene.requestRender(),o}function Sk(e){e._zoomPromise=void 0,e._zoomTarget=void 0,e._zoomOptions=void 0}function K$(e){let t=e._zoomPromise;l(t)&&(Sk(e),e._completeZoom(!1))}Mi.prototype._postRender=function(){TEt(this),AEt(this)};function TEt(e){let t=e._zoomTarget;if(!l(t)||e.scene.mode===ne.MORPHING)return;let n=e.scene,i=n.camera,o=y(e._zoomOptions,{}),r;function s(f){l(o.offset)||(o.offset=new Qf(0,-.5,f.radius)),r={offset:o.offset,duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyToBoundingSphere(t.boundingSphere,r):(i.viewBoundingSphere(f,o.offset),i.lookAtTransform(F.IDENTITY),e._completeZoom(!0)),Sk(e)}if(t instanceof Lv){if(l(t.boundingSphere)){s(t.boundingSphere);return}let f=t.frameChanged.addEventListener(function(d){s(d.boundingSphere),f()});return}if(t instanceof oa||t instanceof F0){s(t.boundingSphere);return}if(t instanceof fe){r={destination:n.mapProjection.ellipsoid.cartographicToCartesian(t),duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyTo(r):(i.setView(r),e._completeZoom(!0)),Sk(e);return}let a=t,c=[];for(let f=0,d=a.length;f<d;f++){let p=e._dataSourceDisplay.getBoundingSphere(a[f],!1,G0);if(p===at.PENDING)return;p!==at.FAILED&&c.push(ae.clone(G0))}if(c.length===0){K$(e);return}e.trackedEntity=void 0;let u=ae.fromBoundingSpheres(c);e._zoomIsFlight?(Sk(e),i.flyToBoundingSphere(u,{duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)},offset:o.offset})):(i.viewBoundingSphere(u,o.offset),i.lookAtTransform(F.IDENTITY),Sk(e),e._completeZoom(!0))}function AEt(e){if(!e._needTrackedEntityUpdate)return;let t=e._trackedEntity,n=e.clock.currentTime,i=q.getValueOrUndefined(t.position,n);if(!l(i))return;let o=e.scene,r=e._dataSourceDisplay.getBoundingSphere(t,!1,G0);if(r===at.PENDING)return;let s=o.mode;(s===ne.COLUMBUS_VIEW||s===ne.SCENE2D)&&(o.screenSpaceCameraController.enableTranslate=!1),(s===ne.COLUMBUS_VIEW||s===ne.SCENE3D)&&(o.screenSpaceCameraController.enableTilt=!1);let a=r!==at.FAILED?G0:void 0;e._entityView=new dN(t,o,o.mapProjection.ellipsoid),e._entityView.update(n,a),e._needTrackedEntityUpdate=!1}var Z$=Mi;function CEt(e){let t=document.createElement("div");t.className="cesium-viewer-cesium3DTilesInspectorContainer",e.container.appendChild(t);let n=new K3(t,e.scene);Object.defineProperties(e,{cesium3DTilesInspector:{get:function(){return n}}})}var $$=CEt;function EEt(e){let t=document.createElement("div");t.className="cesium-viewer-cesiumInspectorContainer",e.container.appendChild(t);let n=new Q3(t,e.scene);Object.defineProperties(e,{cesiumInspector:{get:function(){return n}}})}var Q$=EEt;function SEt(e,t){t=y(t,y.EMPTY_OBJECT);let n=!0,i=y(t.flyToOnDrop,!0),o=new pe,r=y(t.clearOnDrop,!0),s=y(t.dropTarget,e.container),a=y(t.clampToGround,!0),c=t.proxy;s=Pn(s),Object.defineProperties(e,{dropTarget:{get:function(){return s},set:function(f){CCe(s,u),s=f,J$(s,u)}},dropEnabled:{get:function(){return n},set:function(f){f!==n&&(f?J$(s,u):CCe(s,u),n=f)}},dropError:{get:function(){return o}},clearOnDrop:{get:function(){return r},set:function(f){r=f}},flyToOnDrop:{get:function(){return i},set:function(f){i=f}},proxy:{get:function(){return c},set:function(f){c=f}},clampToGround:{get:function(){return a},set:function(f){a=f}}});function u(f){wA(f),r&&(e.entities.removeAll(),e.dataSources.removeAll());let d=f.dataTransfer.files,p=d.length;for(let g=0;g<p;g++){let m=d[g],x=new FileReader;x.onload=vEt(e,m,c,a),x.onerror=wEt(e,m),x.readAsText(m)}}J$(s,u),e.destroy=CF(e,e.destroy,function(){e.dropEnabled=!1}),e._handleDrop=u}function wA(e){e.stopPropagation(),e.preventDefault()}function CCe(e,t){let n=e;l(n)&&(n.removeEventListener("drop",t,!1),n.removeEventListener("dragenter",wA,!1),n.removeEventListener("dragover",wA,!1),n.removeEventListener("dragexit",wA,!1))}function J$(e,t){e.addEventListener("drop",t,!1),e.addEventListener("dragenter",wA,!1),e.addEventListener("dragover",wA,!1),e.addEventListener("dragexit",wA,!1)}function vEt(e,t,n,i){let o=e.scene;return function(r){let s=t.name;try{let a;if(/\.czml$/i.test(s))a=SL.load(JSON.parse(r.target.result),{sourceUri:s});else if(/\.geojson$/i.test(s)||/\.json$/i.test(s)||/\.topojson$/i.test(s))a=pN.load(JSON.parse(r.target.result),{sourceUri:s,clampToGround:i});else if(/\.(kml|kmz)$/i.test(s))a=qN.load(t,{sourceUri:s,proxy:n,camera:o.camera,canvas:o.canvas,clampToGround:i,screenOverlayContainer:e.container});else if(/\.gpx$/i.test(s))a=xN.load(t,{sourceUri:s,proxy:n});else{e.dropError.raiseEvent(e,s,`Unrecognized file: ${s}`);return}l(a)&&e.dataSources.add(a).then(function(c){e.flyToOnDrop&&e.flyTo(c)}).catch(function(c){e.dropError.raiseEvent(e,s,c)})}catch(a){e.dropError.raiseEvent(e,s,a)}}}function wEt(e,t){return function(n){e.dropError.raiseEvent(e,t.name,n.target.error)}}var eQ=SEt;function DEt(e,t){t=y(t,y.EMPTY_OBJECT);let n=new fk({scene:e.scene,container:e.bottomContainer,lowFrameRateMessage:t.lowFrameRateMessage});Object.defineProperties(e,{performanceWatchdog:{get:function(){return n}}})}var tQ=DEt;function ECe(e){let t=e.split(` `),n;for(n=0;n<t.length&&!t[n].match(/\S/);n++);if(n===t.length)return"";let i="",o=/^\s*/,s=t[n].match(o)[0].length;for(let a=n;a<t.length;a++){let c=t[a];c.match(o)[0].length>=s&&(c=c.slice(s)),i+=`${c} `}return i}function yd(e){this._scene=e,this._voxelPrimitive=void 0,this._customShaderCompilationRemoveCallback=void 0,this._definedProperties=[],this._getPrimitiveFunctions=[],this._modelMatrixReady=!1;let t=this;function n(o){let{name:r,initialValue:s}=o;t._definedProperties.push(r);let a=o.setPrimitiveFunction;a===!0&&(a=function(f){t._voxelPrimitive[r]=f});let c=o.getPrimitiveFunction;c===!0&&(c=function(){t[r]=t._voxelPrimitive[r]}),l(c)&&t._getPrimitiveFunctions.push(c);let u=Te.observable();return Te.defineProperty(t,r,{get:function(){return u()},set:function(f){typeof s=="number"&&typeof f=="string"&&(f=Number(f),isNaN(f)&&(f=s)),typeof s=="boolean"&&typeof f=="number"&&(f=f===1),u(f),l(a)&&l(t._voxelPrimitive)&&(a(f),e.requestRender())}}),t[r]=s,u}function i(o,r){return function(s){let a=t._voxelPrimitive[o].clone();a[r]=s,t._voxelPrimitive[o]=a}}n({name:"inspectorVisible",initialValue:!0}),n({name:"displayVisible",initialValue:!1}),n({name:"transformVisible",initialValue:!1}),n({name:"boundsVisible",initialValue:!1}),n({name:"clippingVisible",initialValue:!1}),n({name:"shaderVisible",initialValue:!1}),n({name:"shaderString",initialValue:"",getPrimitiveFunction:function(){let o=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=ECe(o)}}),n({name:"shaderCompilationMessage",initialValue:""}),n({name:"shaderCompilationSuccess",initialValue:!0}),n({name:"depthTest",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"show",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"disableUpdate",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"debugDraw",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"jitter",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"nearestSampling",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"screenSpaceError",initialValue:4,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"stepSize",initialValue:1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"shapeIsBox",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsBox=o===Oi.BOX}}),n({name:"shapeIsEllipsoid",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsEllipsoid=o===Oi.ELLIPSOID}}),n({name:"shapeIsCylinder",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsCylinder=o===Oi.CYLINDER}}),n({name:"boundsBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMaxX=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsBoxMinX",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMinX=t._voxelPrimitive.minBounds.x}}),n({name:"boundsBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMaxY=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsBoxMinY",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMinY=t._voxelPrimitive.minBounds.y}}),n({name:"boundsBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMaxZ=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsBoxMinZ",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMinZ=t._voxelPrimitive.minBounds.z}}),n({name:"boundsEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLongitude=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLongitude=t._voxelPrimitive.minBounds.x}}),n({name:"boundsEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLatitude=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLatitude=t._voxelPrimitive.minBounds.y}}),n({name:"boundsEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxHeight=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMinHeight=t._voxelPrimitive.minBounds.z}}),n({name:"boundsCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMaxRadius=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMinRadius=t._voxelPrimitive.minBounds.x}}),n({name:"boundsCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMaxHeight=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMinHeight=t._voxelPrimitive.minBounds.y}}),n({name:"boundsCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMaxAngle=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMinAngle=t._voxelPrimitive.minBounds.z}}),n({name:"clippingBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMaxX=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingBoxMinX",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMinX=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMaxY=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingBoxMinY",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMinY=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMaxZ=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingBoxMinZ",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMinZ=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLongitude=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLongitude=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLatitude=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLatitude=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxHeight=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMinHeight=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMaxRadius=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMinRadius=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMaxHeight=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMinHeight=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMaxAngle=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMinAngle=t._voxelPrimitive.minClippingBounds.z}}),n({name:"translationX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&lp(t)},getPrimitiveFunction:function(){t.translationX=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"translationY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&lp(t)},getPrimitiveFunction:function(){t.translationY=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"translationZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&lp(t)},getPrimitiveFunction:function(){t.translationZ=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"scaleX",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&lp(t)},getPrimitiveFunction:function(){t.scaleX=F.getScale(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"scaleY",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&lp(t)},getPrimitiveFunction:function(){t.scaleY=F.getScale(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"scaleZ",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&lp(t)},getPrimitiveFunction:function(){t.scaleZ=F.getScale(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"angleX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&lp(t)}}),n({name:"angleY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&lp(t)}}),n({name:"angleZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&lp(t)}})}var PEt=new h,IEt=new h,REt=new $a,OEt=new $;function lp(e){let t=h.fromElements(e.translationX,e.translationY,e.translationZ,PEt),n=h.fromElements(e.scaleX,e.scaleY,e.scaleZ,IEt),i=REt;i.heading=e.angleX,i.pitch=e.angleY,i.roll=e.angleZ;let o=$.fromHeadingPitchRoll(i,OEt),r=$.multiplyByScale(o,n,o);e._voxelPrimitive.modelMatrix=F.fromRotationTranslation(r,t,e._voxelPrimitive.modelMatrix)}Object.defineProperties(yd.prototype,{scene:{get:function(){return this._scene}},voxelPrimitive:{get:function(){return this._voxelPrimitive},set:function(e){if(l(this._customShaderCompilationRemoveCallback)&&this._customShaderCompilationRemoveCallback(),l(e)){this._voxelPrimitive=e;let t=this;t._customShaderCompilationRemoveCallback=t._voxelPrimitive.customShaderCompilationEvent.addEventListener(function(n){let i=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=ECe(i),l(n)?(t.shaderCompilationMessage=n.message,t.shaderCompilationSuccess=!1):(t.shaderCompilationMessage="Shader compiled successfully!",t.shaderCompilationSuccess=!0)}),t._modelMatrixReady=!1;for(let n=0;n<t._getPrimitiveFunctions.length;n++)t._getPrimitiveFunctions[n]();t._modelMatrixReady=!0,lp(t)}}}});yd.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};yd.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};yd.prototype.toggleTransform=function(){this.transformVisible=!this.transformVisible};yd.prototype.toggleBounds=function(){this.boundsVisible=!this.boundsVisible};yd.prototype.toggleClipping=function(){this.clippingVisible=!this.clippingVisible};yd.prototype.toggleShader=function(){this.shaderVisible=!this.shaderVisible};yd.prototype.compileShader=function(){l(this._voxelPrimitive)&&(this._voxelPrimitive.customShader=new lA({fragmentShaderText:this.shaderString,uniforms:this._voxelPrimitive.customShader.uniforms}))};yd.prototype.shaderEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` `),c=a.length,u;if(t.shiftKey)for(u=0;u<c;++u)a[u][0]===" "&&(a[u][1]===" "?(a[u]=a[u].substr(2),r-=2):(a[u]=a[u].substr(1),r-=1));else for(u=0;u<c;++u)a[u]=` ${a[u]}`,r+=2;let f=a.join(` `);n.value=n.value.slice(0,i)+f+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileShader();return!0};yd.prototype.isDestroyed=function(){return!1};yd.prototype.destroy=function(){let e=this;return this._definedProperties.forEach(function(t){Te.getObservable(e,t).dispose()}),ue(this)};var vk=yd;function U5(e,t){e=Pn(e);let n=document.createElement("div"),i=new vk(t);this._viewModel=i,this._container=e,this._element=n;let o=document.createElement("div");o.textContent="Voxel Inspector",o.className="cesium-cesiumInspector-button",o.setAttribute("data-bind","click: toggleInspector"),n.appendChild(o),n.className="cesium-cesiumInspector cesium-VoxelInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let r=document.createElement("div");r.className="cesium-cesiumInspector-dropDown",n.appendChild(r);let s=Ua.createSection,a=Ua.createCheckbox,c=Ua.createRangeInput,u=Ua.createButton,f=s(r,"Display","displayVisible","toggleDisplay"),d=s(r,"Transform","transformVisible","toggleTransform"),p=s(r,"Bounds","boundsVisible","toggleBounds"),g=s(r,"Clipping","clippingVisible","toggleClipping"),m=s(r,"Shader","shaderVisible","toggleShader");f.appendChild(a("Depth Test","depthTest")),f.appendChild(a("Show","show")),f.appendChild(a("Disable Update","disableUpdate")),f.appendChild(a("Debug Draw","debugDraw")),f.appendChild(a("Jitter","jitter")),f.appendChild(a("Nearest Sampling","nearestSampling")),f.appendChild(c("Screen Space Error","screenSpaceError",0,128)),f.appendChild(c("Step Size","stepSize",0,2));let x=10,b=10,T=R.PI;d.appendChild(c("Translation X","translationX",-x,+x)),d.appendChild(c("Translation Y","translationY",-x,+x)),d.appendChild(c("Translation Z","translationZ",-x,+x)),d.appendChild(c("Scale X","scaleX",0,+b)),d.appendChild(c("Scale Y","scaleY",0,+b)),d.appendChild(c("Scale Z","scaleZ",0,+b)),d.appendChild(c("Heading","angleX",-T,+T)),d.appendChild(c("Pitch","angleY",-T,+T)),d.appendChild(c("Roll","angleZ",-T,+T));let C=Oi.getMinBounds(Oi.BOX),A=Oi.getMaxBounds(Oi.BOX),E=h.fromElements(Oi.getMinBounds(Oi.ELLIPSOID).x,Oi.getMinBounds(Oi.ELLIPSOID).y,-te.WGS84.maximumRadius,new h),v=h.fromElements(Oi.getMaxBounds(Oi.ELLIPSOID).x,Oi.getMaxBounds(Oi.ELLIPSOID).y,1e7,new h),D=Oi.getMinBounds(Oi.CYLINDER),O=Oi.getMaxBounds(Oi.CYLINDER);Bv("Max X","Min X","Max Y","Min Y","Max Z","Min Z","boundsBoxMaxX","boundsBoxMinX","boundsBoxMaxY","boundsBoxMinY","boundsBoxMaxZ","boundsBoxMinZ",C,A,"shapeIsBox",p),Bv("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","boundsEllipsoidMaxLongitude","boundsEllipsoidMinLongitude","boundsEllipsoidMaxLatitude","boundsEllipsoidMinLatitude","boundsEllipsoidMaxHeight","boundsEllipsoidMinHeight",E,v,"shapeIsEllipsoid",p),Bv("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","boundsCylinderMaxRadius","boundsCylinderMinRadius","boundsCylinderMaxHeight","boundsCylinderMinHeight","boundsCylinderMaxAngle","boundsCylinderMinAngle",D,O,"shapeIsCylinder",p),Bv("Max X","Min X","Max Y","Min Y","Max Z","Min Z","clippingBoxMaxX","clippingBoxMinX","clippingBoxMaxY","clippingBoxMinY","clippingBoxMaxZ","clippingBoxMinZ",C,A,"shapeIsBox",g),Bv("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","clippingEllipsoidMaxLongitude","clippingEllipsoidMinLongitude","clippingEllipsoidMaxLatitude","clippingEllipsoidMinLatitude","clippingEllipsoidMaxHeight","clippingEllipsoidMinHeight",E,v,"shapeIsEllipsoid",g),Bv("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","clippingCylinderMaxRadius","clippingCylinderMinRadius","clippingCylinderMaxHeight","clippingCylinderMinHeight","clippingCylinderMaxAngle","clippingCylinderMinAngle",D,O,"shapeIsCylinder",g);let I=document.createElement("div");m.appendChild(I);let L=document.createElement("textarea");L.setAttribute("data-bind","textInput: shaderString, event: { keydown: shaderEditorKeyPress }"),I.className="cesium-cesiumInspector-styleEditor",I.appendChild(L);let N=u("Compile (Ctrl+Enter)","compileShader");I.appendChild(N);let _=document.createElement("label");_.style.display="block",_.setAttribute("data-bind","text: shaderCompilationMessage, style: {color: shaderCompilationSuccess ? 'green' : 'red'}"),I.appendChild(_),Te.applyBindings(i,n)}Object.defineProperties(U5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});U5.prototype.isDestroyed=function(){return!1};U5.prototype.destroy=function(){return Te.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};function Bv(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){let b=Ua.createRangeInput,T=p,C=g,A=x.appendChild(document.createElement("div"));A.setAttribute("data-bind",`if: ${m}`),A.appendChild(b(e,s,T.x,C.x)),A.appendChild(b(t,a,T.x,C.x)),A.appendChild(b(n,c,T.y,C.y)),A.appendChild(b(i,u,T.y,C.y)),A.appendChild(b(o,f,T.z,C.z)),A.appendChild(b(r,d,T.z,C.z))}var wk=U5;function MEt(e){let t=document.createElement("div");t.className="cesium-viewer-voxelInspectorContainer",e.container.appendChild(t);let n=new wk(t,e.scene);Object.defineProperties(e,{voxelInspector:{get:function(){return n}}})}var nQ=MEt;globalThis.CESIUM_VERSION="1.118.1";var LEt="1.118.1";0&&(module.exports={AlphaMode,AlphaPipelineStage,Animation,AnimationViewModel,Appearance,ApproximateTerrainHeights,ArcGISTiledElevationTerrainProvider,ArcGisBaseMapType,ArcGisMapServerImageryProvider,ArcGisMapService,ArcType,ArticulationStageType,AssociativeArray,Atmosphere,AtmospherePipelineStage,AttributeCompression,AttributeType,AutoExposure,AutomaticUniforms,Axis,AxisAlignedBoundingBox,B3dmLoader,B3dmParser,BaseLayerPicker,BaseLayerPickerViewModel,BatchTable,BatchTableHierarchy,BatchTexture,BatchTexturePipelineStage,Billboard,BillboardCollection,BillboardGraphics,BillboardVisualizer,BingMapsGeocoderService,BingMapsImageryProvider,BingMapsStyle,BlendEquation,BlendFunction,BlendOption,BlendingState,BoundingRectangle,BoundingSphere,BoundingSphereState,BoundingVolumeSemantics,BoxEmitter,BoxGeometry,BoxGeometryUpdater,BoxGraphics,BoxOutlineGeometry,BrdfLutGenerator,Buffer,BufferLoader,BufferUsage,CPUStylingPipelineStage,CallbackProperty,Camera,CameraEventAggregator,CameraEventType,CameraFlightPath,Cartesian2,Cartesian3,Cartesian4,Cartographic,CartographicGeocoderService,CatmullRomSpline,Cesium3DContentGroup,Cesium3DTile,Cesium3DTileBatchTable,Cesium3DTileColorBlendMode,Cesium3DTileContent,Cesium3DTileContentFactory,Cesium3DTileContentState,Cesium3DTileContentType,Cesium3DTileFeature,Cesium3DTileFeatureTable,Cesium3DTileOptimizationHint,Cesium3DTileOptimizations,Cesium3DTilePass,Cesium3DTilePassState,Cesium3DTilePointFeature,Cesium3DTileRefine,Cesium3DTileStyle,Cesium3DTileStyleEngine,Cesium3DTilesInspector,Cesium3DTilesInspectorViewModel,Cesium3DTilesVoxelProvider,Cesium3DTileset,Cesium3DTilesetBaseTraversal,Cesium3DTilesetCache,Cesium3DTilesetGraphics,Cesium3DTilesetHeatmap,Cesium3DTilesetMetadata,Cesium3DTilesetMostDetailedTraversal,Cesium3DTilesetSkipTraversal,Cesium3DTilesetStatistics,Cesium3DTilesetTraversal,Cesium3DTilesetVisualizer,CesiumInspector,CesiumInspectorViewModel,CesiumTerrainProvider,CesiumWidget,Check,CheckerboardMaterialProperty,CircleEmitter,CircleGeometry,CircleOutlineGeometry,ClassificationModelDrawCommand,ClassificationPipelineStage,ClassificationPrimitive,ClassificationType,ClearCommand,ClippingPlane,ClippingPlaneCollection,ClippingPolygon,ClippingPolygonCollection,Clock,ClockRange,ClockStep,ClockViewModel,CloudCollection,CloudType,Color,ColorBlendMode,ColorGeometryInstanceAttribute,ColorMaterialProperty,Command,ComponentDatatype,Composite3DTileContent,CompositeEntityCollection,CompositeMaterialProperty,CompositePositionProperty,CompositeProperty,CompressedTextureBuffer,ComputeCommand,ComputeEngine,ConditionsExpression,ConeEmitter,ConstantPositionProperty,ConstantProperty,ConstantSpline,ContentMetadata,Context,ContextLimits,CoplanarPolygonGeometry,CoplanarPolygonGeometryLibrary,CoplanarPolygonOutlineGeometry,CornerType,CorridorGeometry,CorridorGeometryLibrary,CorridorGeometryUpdater,CorridorGraphics,CorridorOutlineGeometry,Credit,CreditDisplay,CubeMap,CubeMapFace,CubicRealPolynomial,CullFace,CullingVolume,CumulusCloud,CustomDataSource,CustomHeightmapTerrainProvider,CustomShader,CustomShaderMode,CustomShaderPipelineStage,CustomShaderTranslucencyMode,CylinderGeometry,CylinderGeometryLibrary,CylinderGeometryUpdater,CylinderGraphics,CylinderOutlineGeometry,CzmlDataSource,DataSource,DataSourceClock,DataSourceCollection,DataSourceDisplay,DebugAppearance,DebugCameraPrimitive,DebugInspector,DebugModelMatrixPrimitive,DefaultProxy,DepthFunction,DepthPlane,DequantizationPipelineStage,DerivedCommand,DeveloperError,DeviceOrientationCameraController,DirectionalLight,DiscardEmptyTileImagePolicy,DiscardMissingTileImagePolicy,DistanceDisplayCondition,DistanceDisplayConditionGeometryInstanceAttribute,DoubleEndedPriorityQueue,DoublyLinkedList,DracoLoader,DrawCommand,DynamicAtmosphereLightingType,DynamicGeometryBatch,DynamicGeometryUpdater,EarthOrientationParameters,EarthOrientationParametersSample,EasingFunction,EllipseGeometry,EllipseGeometryLibrary,EllipseGeometryUpdater,EllipseGraphics,EllipseOutlineGeometry,Ellipsoid,EllipsoidGeodesic,EllipsoidGeometry,EllipsoidGeometryUpdater,EllipsoidGraphics,EllipsoidOutlineGeometry,EllipsoidPrimitive,EllipsoidRhumbLine,EllipsoidSurfaceAppearance,EllipsoidTangentPlane,EllipsoidTerrainProvider,EllipsoidalOccluder,Empty3DTileContent,EncodedCartesian3,Entity,EntityCluster,EntityCollection,EntityView,Event,EventHelper,Expression,ExpressionNodeType,ExtrapolationType,FeatureDetection,FeatureIdPipelineStage,Fog,ForEach,FrameRateMonitor,FrameState,Framebuffer,FramebufferManager,FrustumCommands,FrustumGeometry,FrustumOutlineGeometry,Fullscreen,FullscreenButton,FullscreenButtonViewModel,GeoJsonDataSource,GeoJsonLoader,GeocodeType,Geocoder,GeocoderService,GeocoderViewModel,GeographicProjection,GeographicTilingScheme,Geometry,Geometry3DTileContent,GeometryAttribute,GeometryAttributes,GeometryFactory,GeometryInstance,GeometryInstanceAttribute,GeometryOffsetAttribute,GeometryPipeline,GeometryPipelineStage,GeometryType,GeometryUpdater,GeometryUpdaterSet,GeometryVisualizer,GetFeatureInfoFormat,Globe,GlobeDepth,GlobeSurfaceShaderSet,GlobeSurfaceTile,GlobeSurfaceTileProvider,GlobeTranslucency,GlobeTranslucencyFramebuffer,GlobeTranslucencyState,GltfBufferViewLoader,GltfDracoLoader,GltfImageLoader,GltfIndexBufferLoader,GltfJsonLoader,GltfLoader,GltfLoaderUtil,GltfStructuralMetadataLoader,GltfTextureLoader,GltfVertexBufferLoader,GoogleEarthEnterpriseImageryProvider,GoogleEarthEnterpriseMapsProvider,GoogleEarthEnterpriseMetadata,GoogleEarthEnterpriseTerrainData,GoogleEarthEnterpriseTerrainProvider,GoogleEarthEnterpriseTileInformation,GoogleMaps,GpxDataSource,GregorianDate,GridImageryProvider,GridMaterialProperty,GroundGeometryUpdater,GroundPolylineGeometry,GroundPolylinePrimitive,GroundPrimitive,GroupMetadata,HeadingPitchRange,HeadingPitchRoll,Heap,HeightReference,HeightmapEncoding,HeightmapTerrainData,HeightmapTessellator,HermitePolynomialApproximation,HermiteSpline,HilbertOrder,HomeButton,HomeButtonViewModel,HorizontalOrigin,I3SBuildingSceneLayerExplorer,I3SBuildingSceneLayerExplorerViewModel,I3SDataProvider,I3SDecoder,I3SFeature,I3SField,I3SGeometry,I3SLayer,I3SNode,I3SStatistics,I3SSublayer,I3SSymbology,I3dmLoader,I3dmParser,Iau2000Orientation,Iau2006XysData,Iau2006XysSample,IauOrientationAxes,IauOrientationParameters,ImageBasedLighting,ImageBasedLightingPipelineStage,ImageMaterialProperty,Imagery,ImageryLayer,ImageryLayerCollection,ImageryLayerFeatureInfo,ImageryProvider,ImageryState,Implicit3DTileContent,ImplicitAvailabilityBitstream,ImplicitMetadataView,ImplicitSubdivisionScheme,ImplicitSubtree,ImplicitSubtreeCache,ImplicitSubtreeMetadata,ImplicitTileCoordinates,ImplicitTileset,IndexDatatype,InfoBox,InfoBoxViewModel,InspectorShared,InstanceAttributeSemantic,InstancingPipelineStage,InterpolationAlgorithm,InterpolationType,Intersect,IntersectionTests,Intersections2D,Interval,InvertClassification,Ion,IonGeocoderService,IonImageryProvider,IonResource,IonWorldImageryStyle,Iso8601,JobScheduler,JobType,JsonMetadataTable,JulianDate,KTX2Transcoder,KeyboardEventModifier,KeyframeNode,KmlCamera,KmlDataSource,KmlLookAt,KmlTour,KmlTourFlyTo,KmlTourWait,Label,LabelCollection,LabelGraphics,LabelStyle,LabelVisualizer,LagrangePolynomialApproximation,LeapSecond,Light,LightingModel,LightingPipelineStage,LinearApproximation,LinearSpline,ManagedArray,MapMode2D,MapProjection,MapboxImageryProvider,MapboxStyleImageryProvider,Material,MaterialAppearance,MaterialPipelineStage,MaterialProperty,Math,Matrix2,Matrix3,Matrix4,Megatexture,MetadataClass,MetadataClassProperty,MetadataComponentType,MetadataEntity,MetadataEnum,MetadataEnumValue,MetadataPipelineStage,MetadataSchema,MetadataSchemaLoader,MetadataSemantic,MetadataTable,MetadataTableProperty,MetadataType,MipmapHint,Model,Model3DTileContent,ModelAlphaOptions,ModelAnimation,ModelAnimationChannel,ModelAnimationCollection,ModelAnimationLoop,ModelAnimationState,ModelArticulation,ModelArticulationStage,ModelClippingPlanesPipelineStage,ModelClippingPolygonsPipelineStage,ModelColorPipelineStage,ModelComponents,ModelDrawCommand,ModelFeature,ModelFeatureTable,ModelGraphics,ModelLightingOptions,ModelMatrixUpdateStage,ModelNode,ModelRenderResources,ModelRuntimeNode,ModelRuntimePrimitive,ModelSceneGraph,ModelSilhouettePipelineStage,ModelSkin,ModelSplitterPipelineStage,ModelStatistics,ModelType,ModelUtility,ModelVisualizer,Moon,MorphTargetsPipelineStage,MorphWeightSpline,MortonOrder,Multiple3DTileContent,MultisampleFramebuffer,NavigationHelpButton,NavigationHelpButtonViewModel,NearFarScalar,NeverTileDiscardPolicy,NodeRenderResources,NodeStatisticsPipelineStage,NodeTransformationProperty,OIT,Occluder,OctahedralProjectedCubeMap,OffsetGeometryInstanceAttribute,OpenCageGeocoderService,OpenStreetMapImageryProvider,OrderedGroundPrimitiveCollection,OrientedBoundingBox,OrthographicFrustum,OrthographicOffCenterFrustum,Packable,PackableForInterpolation,Particle,ParticleBurst,ParticleEmitter,ParticleSystem,Pass,PassState,PathGraphics,PathVisualizer,PeliasGeocoderService,PerInstanceColorAppearance,PerformanceDisplay,PerformanceWatchdog,PerformanceWatchdogViewModel,PerspectiveFrustum,PerspectiveOffCenterFrustum,PickDepth,PickDepthFramebuffer,PickFramebuffer,Picking,PickingPipelineStage,PinBuilder,PixelDatatype,PixelFormat,Plane,PlaneGeometry,PlaneGeometryUpdater,PlaneGraphics,PlaneOutlineGeometry,PntsLoader,PntsParser,PointCloud,PointCloudEyeDomeLighting,PointCloudShading,PointCloudStylingPipelineStage,PointGraphics,PointPrimitive,PointPrimitiveCollection,PointVisualizer,PolygonGeometry,PolygonGeometryLibrary,PolygonGeometryUpdater,PolygonGraphics,PolygonHierarchy,PolygonOutlineGeometry,PolygonPipeline,Polyline,PolylineArrowMaterialProperty,PolylineCollection,PolylineColorAppearance,PolylineDashMaterialProperty,PolylineGeometry,PolylineGeometryUpdater,PolylineGlowMaterialProperty,PolylineGraphics,PolylineMaterialAppearance,PolylineOutlineMaterialProperty,PolylinePipeline,PolylineVisualizer,PolylineVolumeGeometry,PolylineVolumeGeometryLibrary,PolylineVolumeGeometryUpdater,PolylineVolumeGraphics,PolylineVolumeOutlineGeometry,PositionProperty,PositionPropertyArray,PostProcessStage,PostProcessStageCollection,PostProcessStageComposite,PostProcessStageLibrary,PostProcessStageSampleMode,PostProcessStageTextureCache,Primitive,PrimitiveCollection,PrimitiveLoadPlan,PrimitiveOutlineGenerator,PrimitiveOutlinePipelineStage,PrimitivePipeline,PrimitiveRenderResources,PrimitiveState,PrimitiveStatisticsPipelineStage,PrimitiveType,ProjectionPicker,ProjectionPickerViewModel,Property,PropertyArray,PropertyAttribute,PropertyAttributeProperty,PropertyBag,PropertyTable,PropertyTexture,PropertyTextureProperty,ProviderViewModel,Proxy,QuadraticRealPolynomial,QuadtreeOccluders,QuadtreePrimitive,QuadtreeTile,QuadtreeTileLoadState,QuadtreeTileProvider,QuantizedMeshTerrainData,QuarticRealPolynomial,Quaternion,QuaternionSpline,Queue,Ray,Rectangle,RectangleCollisionChecker,RectangleGeometry,RectangleGeometryLibrary,RectangleGeometryUpdater,RectangleGraphics,RectangleOutlineGeometry,ReferenceFrame,ReferenceProperty,RenderState,Renderbuffer,RenderbufferFormat,Request,RequestErrorEvent,RequestScheduler,RequestState,RequestType,Resource,ResourceCache,ResourceCacheKey,ResourceCacheStatistics,ResourceLoader,ResourceLoaderState,Rotation,RuntimeError,S2Cell,SDFSettings,SampledPositionProperty,SampledProperty,Sampler,ScaledPositionProperty,Scene,SceneFramebuffer,SceneMode,SceneMode2DPipelineStage,SceneModePicker,SceneModePickerViewModel,SceneTransforms,SceneTransitioner,ScreenSpaceCameraController,ScreenSpaceEventHandler,ScreenSpaceEventType,SelectedFeatureIdPipelineStage,SelectionIndicator,SelectionIndicatorViewModel,SensorVolumePortionToDisplay,ShaderBuilder,ShaderCache,ShaderDestination,ShaderFunction,ShaderProgram,ShaderSource,ShaderStruct,ShadowMap,ShadowMapShader,ShadowMode,ShadowVolumeAppearance,ShowGeometryInstanceAttribute,Simon1994PlanetaryPositions,SimplePolylineGeometry,SingleTileImageryProvider,SkinningPipelineStage,SkyAtmosphere,SkyBox,SpatialNode,SphereEmitter,SphereGeometry,SphereOutlineGeometry,Spherical,Spline,SplitDirection,Splitter,StaticGeometryColorBatch,StaticGeometryPerMaterialBatch,StaticGroundGeometryColorBatch,StaticGroundGeometryPerMaterialBatch,StaticGroundPolylinePerMaterialBatch,StaticOutlineGeometryBatch,StencilConstants,StencilFunction,StencilOperation,SteppedSpline,Stereographic,StripeMaterialProperty,StripeOrientation,StructuralMetadata,StyleCommandsNeeded,StyleExpression,Sun,SunLight,SunPostProcess,SupportedImageFormats,SvgPathBindingHandler,TaskProcessor,Terrain,TerrainData,TerrainEncoding,TerrainFillMesh,TerrainMesh,TerrainOffsetProperty,TerrainProvider,TerrainQuantization,TerrainState,Texture,TextureAtlas,TextureCache,TextureMagnificationFilter,TextureManager,TextureMinificationFilter,TextureUniform,TextureWrap,TileAvailability,TileBoundingRegion,TileBoundingS2Cell,TileBoundingSphere,TileBoundingVolume,TileCoordinatesImageryProvider,TileDiscardPolicy,TileEdge,TileImagery,TileMapServiceImageryProvider,TileMetadata,TileOrientedBoundingBox,TileProviderError,TileReplacementQueue,TileSelectionResult,TileState,Tileset3DTileContent,TilesetMetadata,TilesetPipelineStage,TilingScheme,TimeConstants,TimeDynamicImagery,TimeDynamicPointCloud,TimeInterval,TimeIntervalCollection,TimeIntervalCollectionPositionProperty,TimeIntervalCollectionProperty,TimeStandard,Timeline,TimelineHighlightRange,TimelineTrack,Tipsify,ToggleButtonViewModel,Tonemapper,Transforms,TranslationRotationScale,TranslucentTileClassification,TridiagonalSystemSolver,TrustedServers,TweenCollection,UniformState,UniformType,UrlTemplateImageryProvider,VERSION,VRButton,VRButtonViewModel,VRTheWorldTerrainProvider,VaryingType,Vector3DTileBatch,Vector3DTileClampedPolylines,Vector3DTileContent,Vector3DTileGeometry,Vector3DTilePoints,Vector3DTilePolygons,Vector3DTilePolylines,Vector3DTilePrimitive,VelocityOrientationProperty,VelocityVectorProperty,VertexArray,VertexArrayFacade,VertexAttributeSemantic,VertexFormat,VerticalExaggeration,VerticalExaggerationPipelineStage,VerticalOrigin,VideoSynchronizer,View,Viewer,ViewportQuad,Visibility,Visualizer,VoxelBoxShape,VoxelCell,VoxelContent,VoxelCylinderShape,VoxelEllipsoidShape,VoxelInspector,VoxelInspectorViewModel,VoxelPrimitive,VoxelProvider,VoxelRenderResources,VoxelShape,VoxelShapeType,VoxelTraversal,VulkanConstants,WallGeometry,WallGeometryLibrary,WallGeometryUpdater,WallGraphics,WallOutlineGeometry,WebGLConstants,WebMapServiceImageryProvider,WebMapTileServiceImageryProvider,WebMercatorProjection,WebMercatorTilingScheme,WindingOrder,WireframeIndexGenerator,WireframePipelineStage,_shadersAcesTonemappingStage,_shadersAdditiveBlend,_shadersAdjustTranslucentFS,_shadersAllMaterialAppearanceFS,_shadersAllMaterialAppearanceVS,_shadersAmbientOcclusionGenerate,_shadersAmbientOcclusionModulate,_shadersAspectRampMaterial,_shadersAtmosphereCommon,_shadersAtmosphereStageFS,_shadersAtmosphereStageVS,_shadersBasicMaterialAppearanceFS,_shadersBasicMaterialAppearanceVS,_shadersBillboardCollectionFS,_shadersBillboardCollectionVS,_shadersBlackAndWhite,_shadersBloomComposite,_shadersBrdfLutGeneratorFS,_shadersBrightPass,_shadersBrightness,_shadersBumpMapMaterial,_shadersCPUStylingStageFS,_shadersCPUStylingStageVS,_shadersCheckerboardMaterial,_shadersCloudCollectionFS,_shadersCloudCollectionVS,_shadersCloudNoiseFS,_shadersCloudNoiseVS,_shadersCompareAndPackTranslucentDepth,_shadersCompositeOITFS,_shadersCompositeTranslucentClassification,_shadersContrastBias,_shadersCustomShaderStageFS,_shadersCustomShaderStageVS,_shadersCzmBuiltins,_shadersDepthOfField,_shadersDepthPlaneFS,_shadersDepthPlaneVS,_shadersDepthView,_shadersDepthViewPacked,_shadersDotMaterial,_shadersEdgeDetection,_shadersElevationBandMaterial,_shadersElevationContourMaterial,_shadersElevationRampMaterial,_shadersEllipsoidFS,_shadersEllipsoidSurfaceAppearanceFS,_shadersEllipsoidSurfaceAppearanceVS,_shadersEllipsoidVS,_shadersFXAA,_shadersFXAA3_11,_shadersFadeMaterial,_shadersFeatureIdStageFS,_shadersFeatureIdStageVS,_shadersFilmicTonemapping,_shadersGaussianBlur1D,_shadersGeometryStageFS,_shadersGeometryStageVS,_shadersGlobeFS,_shadersGlobeVS,_shadersGridMaterial,_shadersGroundAtmosphere,_shadersHSBToRGB,_shadersHSLToRGB,_shadersImageBasedLightingStageFS,_shadersInstancingStageCommon,_shadersInstancingStageVS,_shadersIntersectBox,_shadersIntersectClippingPlanes,_shadersIntersectCylinder,_shadersIntersectDepth,_shadersIntersectEllipsoid,_shadersIntersectLongitude,_shadersIntersection,_shadersIntersectionUtils,_shadersLegacyInstancingStageVS,_shadersLensFlare,_shadersLightingStageFS,_shadersMaterialStageFS,_shadersMegatexture,_shadersMetadataStageFS,_shadersMetadataStageVS,_shadersModelClippingPlanesStageFS,_shadersModelClippingPolygonsStageFS,_shadersModelClippingPolygonsStageVS,_shadersModelColorStageFS,_shadersModelFS,_shadersModelSilhouetteStageFS,_shadersModelSilhouetteStageVS,_shadersModelSplitterStageFS,_shadersModelVS,_shadersModifiedReinhardTonemapping,_shadersMorphTargetsStageVS,_shadersNightVision,_shadersNormalMapMaterial,_shadersOctahedralProjectionAtlasFS,_shadersOctahedralProjectionFS,_shadersOctahedralProjectionVS,_shadersOctree,_shadersPassThrough,_shadersPassThroughDepth,_shadersPerInstanceColorAppearanceFS,_shadersPerInstanceColorAppearanceVS,_shadersPerInstanceFlatColorAppearanceFS,_shadersPerInstanceFlatColorAppearanceVS,_shadersPointCloudEyeDomeLighting,_shadersPointCloudStylingStageVS,_shadersPointPrimitiveCollectionFS,_shadersPointPrimitiveCollectionVS,_shadersPolygonSignedDistanceFS,_shadersPolylineArrowMaterial,_shadersPolylineColorAppearanceVS,_shadersPolylineCommon,_shadersPolylineDashMaterial,_shadersPolylineFS,_shadersPolylineGlowMaterial,_shadersPolylineMaterialAppearanceVS,_shadersPolylineOutlineMaterial,_shadersPolylineShadowVolumeFS,_shadersPolylineShadowVolumeMorphFS,_shadersPolylineShadowVolumeMorphVS,_shadersPolylineShadowVolumeVS,_shadersPolylineVS,_shadersPrimitiveOutlineStageFS,_shadersPrimitiveOutlineStageVS,_shadersRGBToHSB,_shadersRGBToHSL,_shadersRGBToXYZ,_shadersReinhardTonemapping,_shadersReprojectWebMercatorFS,_shadersReprojectWebMercatorVS,_shadersRimLightingMaterial,_shadersSelectedFeatureIdStageCommon,_shadersShadowVolumeAppearanceFS,_shadersShadowVolumeAppearanceVS,_shadersShadowVolumeFS,_shadersSilhouette,_shadersSkinningStageVS,_shadersSkyAtmosphereCommon,_shadersSkyAtmosphereFS,_shadersSkyAtmosphereVS,_shadersSkyBoxFS,_shadersSkyBoxVS,_shadersSlopeRampMaterial,_shadersStripeMaterial,_shadersSunFS,_shadersSunTextureFS,_shadersSunVS,_shadersTexturedMaterialAppearanceFS,_shadersTexturedMaterialAppearanceVS,_shadersVector3DTileClampedPolylinesFS,_shadersVector3DTileClampedPolylinesVS,_shadersVector3DTilePolylinesVS,_shadersVectorTileVS,_shadersVerticalExaggerationStageVS,_shadersViewportQuadFS,_shadersViewportQuadVS,_shadersVoxelFS,_shadersVoxelUtils,_shadersVoxelVS,_shadersWater,_shadersXYZToRGB,_shadersacesTonemapping,_shadersalphaWeight,_shadersantialias,_shadersapplyHSBShift,_shadersapproximateSphericalCoordinates,_shadersapproximateTanh,_shadersbackFacing,_shadersbranchFreeTernary,_shaderscascadeColor,_shaderscascadeDistance,_shaderscascadeMatrix,_shaderscascadeWeights,_shadersclipPolygons,_shaderscolumbusViewMorph,_shaderscomputeAtmosphereColor,_shaderscomputeGroundAtmosphereScattering,_shaderscomputePosition,_shaderscomputeScattering,_shadersconvertUvToBox,_shadersconvertUvToCylinder,_shadersconvertUvToEllipsoid,_shaderscosineAndSine,_shadersdecompressTextureCoordinates,_shadersdegreesPerRadian,_shadersdepthClamp,_shadersdepthRange,_shadersdepthRangeStruct,_shaderseastNorthUpToEyeCoordinates,_shadersellipsoidContainsPoint,_shadersellipsoidWgs84TextureCoordinates,_shadersepsilon1,_shadersepsilon2,_shadersepsilon3,_shadersepsilon4,_shadersepsilon5,_shadersepsilon6,_shadersepsilon7,_shadersequalsEpsilon,_shaderseyeOffset,_shaderseyeToWindowCoordinates,_shadersfastApproximateAtan,_shadersfog,_shadersgammaCorrect,_shadersgeodeticSurfaceNormal,_shadersgetDefaultMaterial,_shadersgetDynamicAtmosphereLightDirection,_shadersgetLambertDiffuse,_shadersgetSpecular,_shadersgetWaterNoise,_shadershue,_shadersinfinity,_shadersinverseGamma,_shadersisEmpty,_shadersisFull,_shaderslatitudeToWebMercatorFraction,_shaderslineDistance,_shaderslinearToSrgb,_shadersluminance,_shadersmaterial,_shadersmaterialInput,_shadersmaximumComponent,_shadersmetersPerPixel,_shadersmodelMaterial,_shadersmodelToWindowCoordinates,_shadersmodelVertexOutput,_shadersmultiplyWithColorBalance,_shadersnearFarScalar,_shadersoctDecode,_shadersoneOverPi,_shadersoneOverTwoPi,_shaderspackDepth,_shaderspassCesium3DTile,_shaderspassCesium3DTileClassification,_shaderspassCesium3DTileClassificationIgnoreShow,_shaderspassClassification,_shaderspassCompute,_shaderspassEnvironment,_shaderspassGlobe,_shaderspassOpaque,_shaderspassOverlay,_shaderspassTerrainClassification,_shaderspassTranslucent,_shaderspassVoxels,_shaderspbrLighting,_shadersphong,_shaderspi,_shaderspiOverFour,_shaderspiOverSix,_shaderspiOverThree,_shaderspiOverTwo,_shadersplaneDistance,_shaderspointAlongRay,_shadersradiansPerDegree,_shadersray,_shadersrayEllipsoidIntersectionInterval,_shadersraySegment,_shadersraySphereIntersectionInterval,_shadersreadDepth,_shadersreadNonPerspective,_shadersreverseLogDepth,_shadersround,_shaderssampleOctahedralProjection,_shaderssaturation,_shaderssceneMode2D,_shaderssceneMode3D,_shaderssceneModeColumbusView,_shaderssceneModeMorphing,_shadersshadowDepthCompare,_shadersshadowParameters,_shadersshadowVisibility,_shaderssignNotZero,_shaderssolarRadius,_shaderssphericalHarmonics,_shaderssrgbToLinear,_shaderstangentToEyeSpaceMatrix,_shaderstextureCube,_shadersthreePiOver2,_shaderstransformPlane,_shaderstranslateRelativeToEye,_shaderstranslucentPhong,_shaderstranspose,_shaderstwoPi,_shadersunpackClippingExtents,_shadersunpackDepth,_shadersunpackFloat,_shadersunpackUint,_shadersvalueTransform,_shadersvertexLogDepth,_shaderswebMercatorMaxLatitude,_shaderswindowToEyeCoordinates,_shaderswriteDepthClamp,_shaderswriteLogDepth,_shaderswriteNonPerspective,addBuffer,addDefaults,addExtensionsRequired,addExtensionsUsed,addPipelineExtras,addToArray,appendForwardSlash,arrayRemoveDuplicates,barycentricCoordinates,binarySearch,buildDrawCommand,buildModuleUrl,buildVoxelDrawCommands,clone,combine,computeFlyToLocationForRectangle,createBillboardPointCallback,createCommand,createDefaultImageryProviderViewModels,createDefaultTerrainProviderViewModels,createElevationBandMaterial,createGooglePhotorealistic3DTileset,createGuid,createMaterialPropertyDescriptor,createOsmBuildingsAsync,createPropertyDescriptor,createRawPropertyDescriptor,createTangentSpaceDebugPrimitive,createTaskProcessorWorker,createUniform,createUniformArray,createWorldBathymetryAsync,createWorldImageryAsync,createWorldTerrainAsync,decodeGoogleEarthEnterpriseData,decodeVectorPolylinePositions,defaultValue,defer,defined,demodernizeShader,deprecationWarning,destroyObject,exportKml,findAccessorMinMax,findContentMetadata,findGroupMetadata,findTileMetadata,forEachTextureInMaterial,formatError,freezeRenderState,getAbsoluteUri,getAccessorByteStride,getBaseUri,getBinaryAccessor,getClipAndStyleCode,getClippingFunction,getComponentReader,getElement,getExtensionFromUri,getFilenameFromUri,getImageFromTypedArray,getImagePixels,getJsonFromTypedArray,getMagic,getStringFromTypedArray,getTimestamp,hasExtension,heightReferenceOnEntityPropertyChanged,isBitSet,isBlobUri,isCrossOriginUrl,isDataUri,isLeapYear,knockout,knockout_3_5_1,knockout_es5,loadAndExecuteScript,loadCubeMap,loadImageFromTypedArray,loadKTX2,mergeSort,moveTechniqueRenderStates,moveTechniquesToExtension,numberOfComponentsForType,objectToQuery,oneTimeWarning,parseBatchTable,parseFeatureMetadataLegacy,parseGlb,parseResponseHeaders,parseStructuralMetadata,pickModel,pointInsideTriangle,preprocess3DTileContent,processVoxelProperties,queryToObject,readAccessorPacked,removeExtension,removeExtensionsRequired,removeExtensionsUsed,removePipelineExtras,removeUnusedElements,resizeImageToNextPowerOfTwo,sampleTerrain,sampleTerrainMostDetailed,scaleToGeodeticSurface,srgbToLinear,subdivideArray,subscribeAndEvaluate,updateAccessorComponentTypes,updateVersion,usesExtension,viewerCesium3DTilesInspectorMixin,viewerCesiumInspectorMixin,viewerDragDropMixin,viewerPerformanceWatchdogMixin,viewerVoxelInspectorMixin,webGLConstantToGlslType,wrapFunction,writeTextToCanvas});
Close